Anonim

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 pouzdajete u nekoga drugog. Većina je u stvarnosti sjajna, ali ako želite potpunu kontrolu, možete izgraditi vlastiti VPN na V irtual P rivate S erveru (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 Linuxovim vještinama povuče na distribuciju poput Ubuntu-a.

Za ovaj vodič trebat će vam VPS koji pokreće Ubuntu. 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 ludu količinu znanja o Linuxu, ali budite spremni upisati umjesto da kliknete.

Dobivanje onoga što vam treba

Brze veze

  • Dobivanje onoga što vam treba
  • Postavljanje vatrozida
    • Pronađite sučelje
    • Osnove Iptables
    • Postavite svoja pravila
      • loopback
      • Ping
      • SSH
      • OpenVPN
      • DNS
      • HTTP / S
      • NTP
      • TUN
      • sječa drveta
      • Odbacite sve drugo
      • NAT maskiranje
    • Naprijed IPv4 prometa
    • Zaustavite sve IPv6 veze
    • Uvoz i spremanje u iptables

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. To je važan dio zaštite VPN-a i sprječavanja istjecanja podataka i neželjenog pristupa.

Iptables je glavni vatrozid za Linux, a vaša je najbolja opcija za kontrolu pristupa Ubuntu 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. Ona koja ima inet addr: podudaranje s IP adresom na koju ste povezani je pravo sučelje.

Osnove Iptables

Obično nije dobra ideja nasumično kopirati i zalijepiti stvari u terminal s Interneta. To posebno vrijedi kada se bavite sigurnosnim temama. Dakle, odvojite malo vremena ovdje kako biste naučili ponešto o iptables pravilima prije nego što ih počnete unositi.

Pogledajte ovaj primjer pravila iptables.

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

U redu, znači - znači da dodaješ 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

Započnite 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 ULAZ -i lo -j PRIHVATAK -A 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 mrežni, u slučaju da to nije dostupno na drugi način. 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 - drzava NOVO - tip-tipa 8 -j PRIHVATAK -A ULAZ -p icmp -m stanje - drzava UTVRĐENO, ODNOSNO -j PRIHVATAK -A IZLAZ -p icmp -j ACCEPT

SSH

Trebate SSH. To je jedini način da dođete do vašeg 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 mogla biti dobra ideja izmijeniti SSH veze izvan priključka 22, jer je to zadani zadatak koji bi pokušali potencijalni napadači. 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 --portport 22 -j PRIHVATAK -A IZLAZI -o eth0 -p tcp -m stanje - država USTANOVLJEN --sport 22 -j PRIHVATAK

OpenVPN

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

-A ULAZ -i eth0 -p udp -m stanje - drzava NOVO, USTANOVLJENO --portport 1194 -j PRIHVATAK -A IZLAZI -o eth0 -p udp -m stanje - drzava USTANOVLJEN --sport 1194 -j PRIHVATAK

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 - drzava USTANOVLJEN --sport 53 -j PRIHVATAK -A IZLAZ -o eth0 -p udp -m stanje - drzava NOVO, USTANOVLJENO --portport 53 -j PRIHVATAK -A INPUT -i eth0 -p tcp -m stanje - drzava USTANOVLJEN --sport 53 -j PRIHVATAK -A IZLAZI -o eth0 -p tcp -m stanje - drzava NOVO, USTAJENO --portport 53 -j PRIHVATAK

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ĐENO --sport 80 -j PRIHVATAK -A ULAZ -i eth0 -p tcp -m stanje - država UTVRĐEN --sport 443 -j PRIHVATAK -A IZLAZ - o eth0 -p tcp -m stanje - država NOVO, UTVRĐENO --portport 80 -j PRIHVATAK -A IZLAZI -o eth0 -p tcp -m stanje - država NOVO, USTAVLJENO --portport 443 -j PRIHVATI

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 - drzava USTANOVLJEN --sport 123 -j PRIHVATAK -A IZLAZI -o eth0 -p udp -m stanje - drzava NOVO, USTANOVLJENO --portport 123 -j PRIHVATAK

TUN

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

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

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

-A NAPRIJED -i tun0 -o eth0 -s 10.8.0.0/24 -j PRIHVATAK -A NAPRIJED -m stanje - država UTVRĐENA, ODNOSNO -J PRIJEM

sječa drveta

Dobra je ideja voditi evidencije o svemu što iptables odbacuje. U ovom slučaju, to znači išta š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 ograničenje –ograničiti 3 / min -j LOG –log-prefiks “iptables_INPUT_denied:” –log-nivo 4
-A FORWARD -m granica –ograniči 3 / min -j LOG –log-prefiks „iptables_FORWARD_denied:” –log-nivo 4
-A IZLAZI -m granica –ograničiti 3 / min -j LOG –log-prefiks „iptables_OUTPUT_denied:” –log-nivo 4

Odbacite sve drugo

Napokon, morate blokirati sve što se ne uklapa u vaša pravila. To je doista svrha imati vatrozid na prvom mjestu.

-A INPUT -j REJECT -A FORWARD -j REJECT -A IZLAZ -j REJECT

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

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 završili s iptablesima. Morate blokirati sav IPv6 promet. Ovaj OpenVPN poslužitelj će podržavati 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.

* filter -A INPUT -j REJECT -A FORWARD -j REJECT -A IZLAZI -j REJECT COMMIT

Vidite, jednostavni su. 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 brisanjem svega ostalog što je tu. Ne želite da ikakva stara pravila ometaju.

$ sudo iptables -F && sudo iptables -X

Uvozite svoja IPv4 i IPv6 pravila.

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

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

Sve o vpnsu: kako postaviti vlastiti vpn pomoću openvpn (dio 3)