Anonim

Leto 2017 in uporaba VPN-ja je postala brez možganov. Med obremenitvami zunanjih skrbi glede zasebnosti in lastnim ponudnikom internetnih storitev, da lahko prodaja zgodovino brskanja, resnično ni opravičila, da tega ne uporabljate.

Seveda, lahko plačate eno od sto storitev VPN tam, vendar se še enkrat zanašate na nekoga drugega s svojimi podatki. Večina je v resnici odlična, toda če želite popoln nadzor, lahko zgradite svoj VPN na V irtual P rivate S erver (VPS) ali najamete svoj zasebni strežnik, če se vam zdi, da ste z njim resnično trdi.

Vse, kar potrebujete za izgradnjo VPN, sta odprtokodna programska oprema OpenVPN in Linux (ali BSD). Konfiguracija je lahko vključena, vendar ni nemogoče, če se nekdo s še tako osnovnimi Linuxovimi znanji izvleče iz distribucije kot je Ubuntu.

Za ta vodnik boste potrebovali VPS z Ubuntujem. Lahko ga preprosto izberete od nekoga, kot sta DigitalOcean ali Linode . Za nastavitev upoštevajte njihova osnovna varnostna navodila. Pazite, da ne boste delali osnovnih napak, kot je omogočanje korenskega dostopa prek SSH.

Upoštevajte tudi, da boste to počeli v celotni namestitvi v ukazni vrstici prek SSH na vaš VPS. Ni ničesar, kar zahteva noro količino znanja Linuxa, vendar bodite pripravljeni na tipkanje namesto da kliknete.

Pridobivanje tistega, kar potrebuješ

hitre povezave

  • Pridobivanje tistega, kar potrebuješ
  • Nastavite požarni zid
    • Poiščite vmesnik
    • Osnove Iptables
    • Postavite svoja pravila
      • Loopback
      • Ping
      • SSH
      • OpenVPN
      • DNS
      • HTTP / S
      • NTP
      • TUN
      • Zapisovanje dnevnikov
      • Zavrni vse ostalo
      • NAT Maskiranje
    • Posreduj IPv4 promet
    • Prekini vse povezave IPv6
    • Uvozi in shrani v aplikacijo Iptables

Ubuntu pakira in distribuira OpenVPN v svojih skladiščih. Za namestitev potrebujete le apt. Potrebovali boste tudi orodje za ustvarjanje šifrirnih ključev. Namestite jih oboje.

$ sudo apt namestite openvpn easy-rsa

Nastavite požarni zid

Nato morate poskrbeti za požarni zid. To je pomemben del varovanja VPN-ja in preprečevanja uhajanja podatkov in neželenega dostopa.

Iptables je glavni požarni zid za Linux in je vaša najboljša možnost za nadzor dostopa do pristanišč Ubuntu. Že ga boste namestili, tako da lahko začnete postavljati pravila požarnega zidu.

Poiščite vmesnik

Preden začnete pisati pravila v iptables, ugotovite, s katerim vmesnikom je vaš strežnik povezan z internetom. Zaženite ifconfig, da prikažete omrežne vmesnike. Tisti, ki ima inet addr: ujema se z naslovom IP, s katerim ste povezani, je pravi vmesnik.

Osnove Iptables

Ponavadi ni dobro, da naključno preko interneta stvari kopirate in prilepite v terminal. To še posebej velja, ko se ukvarjate z varnostnimi temami. Preden začnete z njimi vnašati nekaj časa, se pozanimajte o pravilih iptables.

Oglejte si ta primer pravila iptables.

-A VHOD -i eth0 -p tcp -m stanje –država POSTAVLJEN –sport 443 -j SPREJEM

V redu, torej - pomeni, da boste dodali novo pravilo. Nato INPUT pomeni, da bo zadeval vnos v vaš strežnik. Obstaja tudi IZHOD. Zastavica -i pove iptables, za kateri vmesnik je to pravilo. Določite lahko, za kateri protokol velja pravilo -p. To pravilo obravnava tcp. -m določa pogoj, da mora biti izpolnjena povezava. V tem primeru se mora ujemati z navedenim stanjem. Seveda potem –state določa stanje, v tem primeru VZpostavljena povezava. Naslednji del pove iptables, za katera vrata je to pravilo. Tu je vrata 443, HTTPS vrata. Zadnja zastava je -j. Pomeni "skok" in iptables pove, kaj naj naredim s povezavo. Če bi ta povezava izpolnjevala vse zahteve v pravilu, bi jo sprejeli iptables.

Postavite svoja pravila

Torej, morali bi imeti splošno predstavo o tem, kako zdaj delujejo pravila iptables. Preostali del tega razdelka vam bo povedal, kako lahko svoja pravila nastavite po delih.

Najboljši način za ustvarjanje niza pravil iptables je ustvarjanje datoteke, ki vsebuje vse te. Nato lahko vse hkrati uvozite v iptables. Postavljanje pravil posamezno lahko postane zmedeno, še posebej, če začnete nov nabor pravil iz nič.

Ustvarite datoteko v / tmp imeniku, da sestavite svoja pravila.

$ vim / tmp / ipv4

Začnite to datoteko s * filter. To pove iptables, da bodo v nadaljevanju pravila filtriranja paketov.

Loopback

Prvi del pravil zaklene vmesnik za povratno povezavo. Na iptables pravijo, da bi strežnik moral sprejemati promet od sebe na vmesniku loopback. Prav tako bi moral zavrniti promet, ki prihaja iz njega samega in ne prihaja iz povratne zanke.

-A VHOD -i lo -j SPREJEM -A VHOD! -i lo -s 127.0.0.0/8 -j PRIJAVA -A IZHOD -o lo -j SPREJEM

Ping

Nato omogočite ping. Morali bi imeti možnost, da pokličete strežnik in se prepričate, da je na spletu, če drugače ni dosegljiv. V tem primeru so dovoljene samo zahteve za odmev in strežnik bo dovolil, da pošlje ICMP izhod.

-A VHOD -p icmp -m stanje - država NOVO - tipka tipa 8 -j SPREJEM -A VHOD -p icmp -m stanje - država USTANOVLJENA, POVEZANA -j ACCEPT -A IZHOD -p icmp -j ACCEPT

SSH

Potrebujete SSH. To je edini način, da lahko pridete do svojega strežnika. Pravila SSH so značilna za vaš internetni vmesnik, zato preverite, ali nadomestite eth0 s tistim, ki ga uporablja vaš strežnik.

Prav tako bi bilo dobro, če bi svoje povezave SSH izklopili iz vrat 22, ker bi to poskusili potencialni napadalci. Če to storite, se prepričajte, da to spremenite tudi v pravilih iptables.

-A VHOD -i eth0 -p tcp -m stanje - država NOVO, USTVARJENO --portport 22 -j SPREJEM -A IZHOD -o eth0 -p tcp -m stanje - država Vzpostavljen - šport 22 -j SPREJEM

OpenVPN

Naslednji del omogoča promet do strežnika OpenVPN in od njega prek UDP.

-A VHOD -i eth0 -p udp -m stanje --državno NOVO, USTAVLJENO --portport 1194 -j SPREJEM -A IZHOD -o eth0 -p udp -m država - država Vzpostavljen --sport 1194 -j SPREJEM

DNS

Zdaj dovolite povezave DNS prek UDP in TCP. Želite, da vaš VPN upravlja z DNS, ne s svojim ponudnikom internetnih storitev. To je del razloga, da najprej nastavite VPN.

-A VHOD -i eth0 -p udp -m stanje - država USTAVLJEN --sport 53 -j SPREJEM -A IZHOD -o eth0 -p udp -m stanje - država NOVO, USTAVLJEN --dport 53 -j SPREJEM -A INPUT -i eth0 -p tcp -m stanje - država Vzpostavljen - šport 53 -j SPREJEM -A IZHOD -o eth0 -p tcp -m stanje - država NOVO, USTAVLJEN --dport 53 -j SPREJEM

HTTP / S

Da se lahko Ubuntu lahko posodobi, morate dodati niz pravil, ki omogočajo odhodno povezavo HTTP in HTTPS. Upoštevajte, da ta pravila omogočajo strežniku, da vzpostavi povezave HTTP, zato ga ne morete uporabljati kot spletni strežnik ali povezati z njim prek vrat 80 ali vrat 443

-A VHOD -i eth0 -p tcp -m stanje - država Vzpostavljen --sport 80 -j SPREJEM -A VHOD -i eth0 -p tcp -m stanje - država Vzpostavljen --sport 443 -j SPREJEM -A IZHOD - o eth0 -p tcp -m stanje - država NOVO, USTVARJENO --portport 80 -j SPREJEM -A IZHOD -o eth0 -p tcp -m stanje - država NOVO, USTAVLJEN --dport 443 -j SPREJEM

NTP

Za pravilno delovanje strežniške ure boste potrebovali NTP. NTP omogoča, da se vaš strežnik sinhronizira s časovnimi strežniki po vsem svetu. Nepravilna ura na vašem strežniku lahko povzroči težave s povezavo, zato je izvajanje NTP dobra ideja. Še enkrat bi morali sprejeti samo odhodne in že vzpostavljene povezave.

-A VHOD -i eth0 -p udp -m stanje - država USTANOVITEV - šport 123 -j SPREJEM -A IZHOD -o eth0 -p udp -m stanje - država NOVO, USTAVLJEN --portport 123 -j SPREJEM

TUN

Odblokirajte vmesnik TUN, ki ga OpenVPN uporablja za tunelski promet.

-A VHOD -i tun0 -j SPREJEM -A NAPREJ -i tun0 -j ACCEPT -A IZHOD -o tun0 -j SPREJEM

TUN-u morate omogočiti, da posreduje promet na vaš običajni vmesnik za VPN. Ta naslov IP boste našli v konfiguraciji OpenVPN. Če ga spremenite v konfiguraciji, ga spremenite tudi v svojih pravilih.

-A NAPREJ -i tun0 -o eth0 -s 10.8.0.0/24 -j SPREJEM -A NAPREJ -m stanje - država USTANOVLJENA, POVEZANA -j SPREJEM

Beleženje

Dobro je voditi dnevnike o vsem, kar iptables zavrne. V tem primeru pomeni karkoli, kar ne ustreza nobenemu od teh pravil. Dnevniki vam omogočajo, da vidite, ali obstaja kakšna zlonamerna dejavnost ali kakršni koli poskusi, da bi naredili kaj škodljivega za vaš strežnik.

-A vhod -m omejitev – omejitev 3 / min -j LOG –log-prefiksa “iptables_INPUT_denied:” –loglog 4
-A NAPREJ -m omejitev – omejitev 3 / min -j LOG –log-prefiksa “iptables_FORWARD_denied:” –loglog 4
-A OUTPUT -m omejitev – omejitev 3 / min -j LOG –log-prefiksa “iptables_OUTPUT_denied:” –loglog 4

Zavrni vse ostalo

Končno morate blokirati vse, kar ne ustreza vašim pravilom. To je res namen tega, da imamo na prvem mestu požarni zid.

-A VHOD -j PRIJAVA -A NAPREJ -j PRIJAVA -A IZHOD -j PRIJAVA

Datoteko zaprite s sistemom COMMIT, če želite iptables povedati, da so zavezala vsa pravila.

NAT Maskiranje

Povezave iz VPN potrebujejo, da izgledajo, kot da prihajajo iz samega strežnika. Tega dela ni mogoče vključiti v navadno datoteko iptables, ker uporablja drugo tabelo. To je v redu, čeprav je samo ena vrstica.

$ sudo iptables -t nat -A POSTAVITEV -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Posreduj IPv4 promet

Omogočiti morate posredovanje prometa IPv4, tako da lahko poteka med VPN in dejanskim omrežnim vmesnikom vašega strežnika. Odprite /etc/sysctl.d/99-sysctl.conf s sudo.

Poiščite vrstico spodaj in jo komentirajte tako, da odstranite #.

net.ipv4.ip_forward = 1

Prekini vse povezave IPv6

Žal še niste končali z iptables. Blokirati morate ves promet IPv6. Ta strežnik OpenVPN podpira samo IPv4, kar je v redu, saj ne boste naleteli na situacijo, ko potrebujete IPv6. Posledično lahko vse povezave IPv6 puščajo informacije, kar je nasprotno od tistega, kar želite pri uporabi VPN.

Preden nastavite pravila za iptables, morate onemogočiti IPv6 povsod drugje v sistemu.

Naslednje vrstice dodajte v /etc/sysctl.d/99-sysctl.conf. Če ste ga zaprli iz prejšnjega razdelka, ga znova odprite s sudo.

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 net.ipv6.conf.eth0.disable_ipv6 = 1

Aktivirajte spremembe.

$ sudo sysctl -p

Komentirajte vse vrstice IPv6 v / etc / hosts. Tudi tu boste potrebovali sudo.

# :: 1 ip6-localhost ip6-loopback # fe00 :: 0 ip6-localnet # ff00 :: 0 ip6-mcastprefix # ff02 :: 1 ip6-allnodes # ff02 :: 2 ip6-allrouters

Končno lahko napišete pravila iptables IPv6. Za njih ustvarite datoteko na / tmp / ipv6.

* filter -A VHOD -j PRIJAVA -A NAPREJ -j PRIJAVA -A IZHOD -j PRIJAVA OBVEZ

Glej, preprosti so. Zavrni vse.

Uvozi in shrani v aplikacijo Iptables

Ta pravila morate uvoziti, da lahko kaj storijo. Torej, zdaj je čas za to.

Začnite z čiščenjem vsega, kar je tam. Nočete, da bi vam zastavili kakšna stara pravila.

$ sudo iptables -F && sudo iptables -X

Uvozite svoja pravila IPv4 in IPv6.

$ sudo iptables-obnovi </ tmp / ipv4 $ sudo ip6tables-obnovi </ tmp / ipv6

Verjetno tega nikoli več ne želite storiti. Torej, potrebovali boste nov paket, da trajno shranite svoja pravila.

$ sudo apt namestite iptables-obstojno

Med namestitvijo vas paket zahteva, da shranite svoja obstoječa pravila. Odgovor "Da."

Če kasneje spremenite spremembe, lahko posodobite tudi shranjene konfiguracije.

$ sudo storitev netfilter obstojno shranjevanje

Trajalo je nekaj časa, vendar je vaš požarni zid pripravljen. Na naslednji strani se bomo lotili ustvarjanja potrebnih šifrirnih ključev.

Kliknite tukaj: Naslednja stran

Vse o vpns: kako nastaviti svoj vpn z openvpn (3. del)