2017. je godina, a korištenje VPN-a postalo je neozbiljno. Između opterećenja vanjskih briga o privatnosti i vašeg ISP-a koji je u mogućnosti prodavati povijest pregledavanja, ne postoji opravdanje da ga ne koristite.

Sigurno, možete platiti jednu od stotina VPN usluga vani, ali opet, s podacima se oslanjate na nekoga drugog. Većina ih je u stvarnosti sjajna, ali ako želite potpunu kontrolu, možete izgraditi vlastiti VPN na virtualnom privatnom poslužitelju (VPS) ili unajmiti vlastiti privatni poslužitelj, ako smatrate da ste s njim stvarno hardcore.

Sve što vam je potrebno za izgradnju VPN-a su OpenVPN softver otvorenog koda i Linux (ili BSD). Konfiguracija može biti uključena, ali nije nemoguće da se netko s čak i osnovnim Linux vještinama povuče na distribuciju poput Ubuntu-a.

Za ovaj će vam vodič trebati VPS s Ubuntuom. Možete ga pokupiti vrlo lako od nekoga poput DigitalOcean-a ili Linode-a. Pratite njihove osnovne sigurnosne vodiče za postavljanje. Pazite da ne napravite osnovne pogreške poput omogućavanja korijenskog pristupa putem SSH-a.

Isto tako, imajte na umu da ćete ovo raditi cijelim postavljanjem u naredbenom retku preko SSH-a vašem VPS-u. Ne postoji ništa što zahtijeva ludo puno znanja o Linuxu, ali budite spremni upisati umjesto klika.

Dobivanje onoga što vam treba

Ubuntu pakira i distribuira OpenVPN u svojim spremištima. Za instalaciju morate koristiti samo apt. Trebat će vam i alat za generiranje ključeva za šifriranje. Instalirajte ih oboje.

$ sudo apt instalirati openvpn easy-rsa

Postavljanje vatrozida

Dalje, morate voditi brigu o vatrozidu. Važan je dio zaštite VPN-a i sprječavanja istjecanja podataka i neželjenog pristupa.

Iptables je glavni vatrozid za Linux i najbolja je opcija za kontrolu pristupa Ubuntuovim portovima. Već je instaliran, tako da možete započeti s postavljanjem pravila vatrozida.

Pronađite sučelje

Prije nego što počnete pisati pravila u iptables, saznajte s kojim sučeljem je vaš poslužitelj povezan s Internetom. Pokrenite ifconfig za prikaz mrežnih sučelja. Pravo sučelje ima onaj koji ima inet addr: podudaranje IP adrese s kojom ste povezani.

Osnove Iptables

Obično nije dobra ideja nasumično kopirati i zalijepiti stvari u terminal s Interneta. To se posebno odnosi na obradu sigurnosnih tema. Dakle, odvojite malo vremena da naučite malo o pravilima iptables prije nego što ih počnete unositi.

Pogledajte ovaj primjer pravila iptables.

-A ULAZ -i eth0 -p tcp -m stanje –stanje UTVRĐENO –sport 443 -j PRIHVAT

U redu, znači - znači da ćete dodavati novo pravilo. Tada INPUT znači da će se odnositi na ulaz na vaš poslužitelj. Tu je i IZLAZ. Zastava -i kaže iptables za koje je sučelje ovo pravilo. Možete odrediti za koji se protokol odnosi pravilo s -p. Ovo se pravilo odnosi na tcp. -m određuje uvjet koji veza mora zadovoljiti. U ovom se slučaju mora podudarati s navedenim stanjem. Naravno, tada –state specificira stanje, u ovom slučaju Ustanovljena veza. Sljedeći dio govori iptables za koji port je ovo pravilo. Ovdje je priključak 443, HTTPS priključak. Posljednja zastava je -j. To je "skok", i govori iptables što učiniti s vezom. Ako ova veza ispunjava sve zahtjeve pravila, iptables bi je prihvatili.

Postavite svoja pravila

Dakle, trebali biste imati općenitu ideju kako sada rade iptables pravila. Ostatak ovog odjeljka opisat će vam kako postaviti svoja pravila pojedinačno.

Najbolji način za stvaranje skupa pravila iptables je stvaranje datoteke koja sadrži sve njih. Zatim ih možete uvesti sve u iptables odjednom. Postavljanje pravila pojedinačno može postati zbunjujuće, posebno ako započinjete novi set pravila ispočetka.

Stvorite datoteku u / tmp direktoriju kako biste izgradili svoja pravila.

$ vim / tmp / ipv4

Pokrenite tu datoteku pomoću * filtra. Ovo govori iptables da će ono što slijedi biti pravila za filtriranje paketa.

loopback

Prvi odjeljak pravila zaključava sučelje povratne petlje. Oni kažu iptables da bi poslužitelj trebao prihvatiti promet od sebe na sučelju povratne petlje. Također bi trebao odbaciti promet koji dolazi sam od sebe i ne dolazi iz petlje.

-A INPUT -i lo -j PRIHVAT
ULAZ! -i lo -s 127.0.0.0/8 -j REJECT
-A IZLAZI -o lo -j PRIHVAT

Ping

Zatim dopustite ping. Trebali biste moći pingirati svoj poslužitelj kako biste bili sigurni da je na mreži u slučaju da nije drugačije dostupno. U ovom su slučaju dopušteni samo zahtjevi odjeka, a poslužitelj će dopustiti sebi slanje ICMP rezultata.

-A ULAZ -p icmp -m stanje - stanje NOVO --cmp-tip 8 -j PRIHVAT
-A ULAZ -p icmp -m stanje - drzava UTVRĐENA, VEZANA -j PRIHVAT
-A IZLAZI -p icmp -j PRIHVAT

SSH

Trebate SSH. To je jedini način na koji možete doći do svog poslužitelja. SSH pravila specifična su za vaše internetsko sučelje, pa provjerite da zamijenite eth0 onim sučeljem koje vaš poslužitelj stvarno koristi.

Također bi moglo biti dobro zamijeniti SSH veze izvan priključka 22, jer je to zadana postavka koju bi potencijalni napadači pokušali. Ako to učinite, obavezno to promijenite i u svojim iptables pravilima.

-A ULAZ -i eth0 -p tcp -m stanje - država NOVO, UTVRĐENO --dport 22 -j PRIHVAT
-A IZLAZI -o eth0 -p tcp -m stanje - država UTVRĐEN --sport 22 -j PRIHVAT

OpenVPN

Sljedeći dio omogućuje promet do i sa OpenVPN poslužitelja preko UDP-a.

-A ULAZ -i eth0 -p udp -m stanje - država NOVO, UTVRĐENO --portport 1194 -j PRIHVAT
-A IZLAZI -o eth0 -p udp -m stanje - države USTANOVLJEN --sport 1194 -j PRIHVAT

DNS

Sada, dopustite DNS veze preko UDP i TCP. Želite da vaš VPN upravlja s DNS-om, a ne s davateljem internetskih usluga. To je razlog zašto na prvom mjestu postavljate VPN.

-A ULAZ -i eth0 -p udp -m stanje - država USTANOVLJEN --sport 53 -j PRIHVAT
-A IZLAZI -o eth0 -p udp -m stanje - drzava NOVO, USTAVLJENO --dport 53 -j PRIHVAT
-A ULAZ -i eth0 -p tcp -m stanje - država UTVRĐEN --sport 53 -j PRIHVAT
-A IZLAZI -o eth0 -p tcp -m stanje - država NOVO, UTVRĐENO --dport 53 -j PRIHVAT

HTTP / S

Da bi se Ubuntu mogao ažurirati, morate dodati skup pravila koja omogućuju odlaznu vezu HTTP-a i HTTPS-a. Imajte na umu da ta pravila dopuštaju poslužitelju da pokreće HTTP veze pa je ne možete koristiti kao web poslužitelj ili se povezati s njim preko porta 80 ili porta 443

-A ULAZ -i eth0 -p tcp -m stanje - država UTVRĐEN --sport 80 -j PRIHVAT
-A ULAZ -i eth0 -p tcp -m stanje - država UTVRĐEN --sport 443 -j PRIHVAT
-A IZLAZI -o eth0 -p tcp -m stanje - država NOVO, UTVRĐENO --portport 80 -j PRIHVAT
-A IZLAZI -o eth0 -p tcp -m stanje - država NOVO, UTVRĐENO --dport 443 -j PRIHVAT

NTP

Da biste pravilno održavali sat vašeg poslužitelja, trebat će vam NTP. NTP omogućuje vašem poslužitelju sinkronizaciju s poslužiteljima vremena širom svijeta. Pogrešan sat na vašem poslužitelju može uzrokovati probleme s vezom, tako da je pokretanje NTP-a dobra ideja. Još jednom, trebali biste prihvatiti samo odlazne i već uspostavljene veze.

-A ULAZ -i eth0 -p udp -m stanje - države USTANOVLJEN --sport 123 -j PRIHVAT
-A IZLAZI -o eth0 -p udp -m stanje - država NOVO, UTVRĐENO --portport 123 -j PRIJEM

TUN

Deblokirajte TUN sučelje koje OpenVPN koristi za tunelski promet.

-A ULAZ -i tun0 -j PRIHVAT
-A NAPRIJED -i tun0 -j PRIHVAT
-A IZLAZI -o tun0 -j PRIHVAT

Morate omogućiti TUN-u da proslijedi promet na vaše uobičajeno sučelje za VPN. Tu IP adresu pronaći ćete u OpenVPN konfiguraciji. Ako je promijenite u konfiguraciji, promijenite je i u svojim pravilima.

-A NAPON -i tun0 -o eth0 -s 10.8.0.0/24 -j PRIHVAT
-A NAPRIJED -m stanje - država USTAVLJENA, ODNOSNO -J PRIJEM

sječa drveta

Dobra je ideja voditi evidencije o svemu što je iptables odbačeno. U ovom slučaju, to znači sve što se ne uklapa ni u jedno od ovih pravila. U zapisnicima se može vidjeti ima li zlonamjernih aktivnosti ili bilo kakvih pokušaja da se učini što štetno protiv vašeg poslužitelja.

-A ULAZ -m granica –ograniči 3 / min -j LOG –log-prefiks „iptables_INPUT_denied:” –loglog 4-A FORWARD -m granica –ograniči 3 / min -j LOG –log-prefiks „iptables_FORWARD_denied:” - log-razina 4-A OUTPUT -m granica –ograniči 3 / min -j LOG –log-prefiks “iptables_OUTPUT_denied:” –log-level 4

Odbacite sve drugo

Napokon, morate blokirati sve što se ne uklapa u vaša pravila. To je zapravo svrha postavljanja vatrozida na prvo mjesto.

-A INPUT -j REJECT
-PREVREMA -J ODBIJAM
-A IZLAZAK -J REJECT

Zatvorite datoteku s COMMIT-om i recite da iptables počinju sva pravila.

Pravila za iptables OpenVPN

NAT maskiranje

Potrebne su vam veze s VPN-a da biste izgledali kao da dolaze s samog poslužitelja. Ovaj se komad ne može uključiti u običnu iptables datoteku jer koristi drugu tablicu. To je u redu, ipak, to je samo jedna linija.

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

Naprijed IPv4 prometa

Trebat ćete omogućiti prosljeđivanje IPv4 prometa kako bi mogao proći između VPN-a i stvarnog mrežnog sučelja vašeg poslužitelja. Otvorite /etc/sysctl.d/99-sysctl.conf sa sudo.

Pronađite donju liniju i komentirajte je uklanjanjem #.

net.ipv4.ip_forward = 1

Zaustavite sve IPv6 veze

Nažalost, još niste učinili s iptablesima. Morate blokirati sav IPv6 promet. Ovaj OpenVPN poslužitelj podržat će samo IPv4, što je u redu, jer nećete naići na situaciju u kojoj vam treba IPv6. Kao rezultat, svaka IPv6 veza može potencijalno procuriti informacije, što je suprotno onome što želite kad koristite VPN.

Prije postavljanja pravila za iptables, morate onemogućiti IPv6 bilo gdje drugdje u sustavu.

Sljedeće retke dodajte u /etc/sysctl.d/99-sysctl.conf. Ako ste ga zatvorili iz prethodnog odjeljka, ponovo ga otvorite sudom.

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 promjene.

$ sudo sysctl -p

Komentirajte sve IPv6 retke u / etc / hosts. Ovdje će vam trebati i sudo.

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

Napokon, možete napisati IPv6 iptables pravila. Kreirajte datoteku za njih na / tmp / ipv6.

*filtar

-A INPUT -j REJECT
-PREVREMA -J ODBIJAM
-A IZLAZAK -J REJECT

POČINITI

Oni su jednostavni. Odbacite sve.

Uvoz i spremanje u iptables

Ta pravila morate uvesti da bi mogli učiniti bilo šta. Dakle, sada je vrijeme za to.

Započnite s uklanjanjem svega ostalog. Ne želite da se na putu spreče neka stara pravila.

$ sudo iptables -F && sudo iptables -X

Uvozite svoja IPv4 i IPv6 pravila.

$ sudo iptables-return 

Vjerojatno nikad više ne želite to učiniti. Dakle, trebat će vam novi paket za trajno spremanje pravila.

$ sudo apt instalirati iptables-uporno

Tijekom instalacije paket će tražiti da spremite svoja postojeća pravila. Odgovorite "Da".

Ako kasnije napravite promjene, možete ažurirati i svoje spremljene konfiguracije.

$ sudo usluga netfilter uporno spremanje

Trebalo je neko vrijeme, ali vatrozid je spreman za rad. Na sljedećoj stranici rješavat ćemo stvaranje potrebnih ključeva za šifriranje.

Kliknite ovdje: Sljedeća stranica