Anonim

On vuosi 2017, ja VPN: n käytöstä on tullut ketterä. Laajojen ulkoisten tietosuojahuolenaiheiden ja oman Internet-palveluntarjoajasi voi myydä selaushistorian välillä ei oikeastaan ​​ole mitään perustetta käyttää sitä.

Toki, voit maksaa yhden sadasta VPN-palveluista siellä, mutta jälleen kerran luotat siihen, että joku muu käyttää tietojasi. Useimmat ovat todellisuudessa hienoja, mutta jos haluat täydellisen hallinnan, voit rakentaa oman VPN: n V irtual P virvate S -verver -sovelluksella (VPS) tai vuokrata oman yksityisen palvelimen, jos sinusta tuntuu, että olet todella kova siitä.

Kaikki mitä tarvitset VPN: n luomiseen, ovat avoimen lähdekoodin OpenVPN-ohjelmisto ja Linux (tai BSD). Kokoonpanoon voi osallistua, mutta jonkun kanssa, jolla on jopa perustason Linux-taito, ei ole mahdotonta vetää pois Ubuntun kaltaisesta levityksestä.

Tätä opasta varten tarvitset VPS: n, joka käyttää Ubuntua. Voit valita yhden helposti joltakin, kuten DigitalOcean tai Linode . Seuraa heidän perusturvaohjeitaan päästäksesi alkuun. Varmista, että et tee perusvirheitä, kuten sallia juuripääsy SSH: n kautta.

Muista myös, että aiot tehdä tämän koko asennuksen komentorivillä SSH: n yli VPS: ään. Mikään ei edellytä hullua määrää Linux-tietämyksestä, mutta ole valmis valmistamaan kirjoittamista napsauttamisen sijasta.

Hanki mitä tarvitset

Pikalinkit

  • Hanki mitä tarvitset
  • Asenna palomuuri
    • Etsi käyttöliittymä
    • Iptables-perusteet
    • Asenna säännöt
      • loopback
      • ping
      • SSH
      • OpenVPN
      • DNS
      • HTTP / S
      • NTP
      • TUN
      • hakkuu
      • Hylkää kaikki muu
      • NAT naamiointi
    • Välitä IPv4-liikennettä
    • Pysäytä kaikki IPv6-yhteydet
    • Tuo ja tallenna Iptablesiin

Ubuntu pakata ja jakaa OpenVPN -varastoihinsa. Asenna se vain apt-ohjelmalla. Tarvitset myös työkalun salausavainten luomiseen. Asenna ne molemmat.

$ sudo apt install openvpn easy-rsa

Asenna palomuuri

Seuraavaksi sinun on pidettävä huolta palomuurista. Se on tärkeä työkalu VPN-tietoturvan pitämisessä ja sekä tiedon vuotamisen että ei-toivotun pääsyn estämisessä.

Iptables on Linuxin tärkein palomuuri, ja se on paras tapa hallita pääsyä Ubuntun satamiin. Sinulla on jo se asennettuna, joten voit aloittaa palomuurisääntöjen määrittämisen.

Etsi käyttöliittymä

Ennen kuin aloitat sääntöjen kirjoittamisen iptable-ohjelmiin, selvitä, minkä käyttöliittymän kanssa palvelimesi on yhteydessä Internetiin. Suorita ifconfig näyttääksesi verkkorajapinnat. Se, jolla on inet-addr: vastaa IP-osoitetta, johon olet yhteydessä, oikea liitäntä.

Iptables-perusteet

Yleensä ei ole hyvä idea kopioida ja liittää asioita satunnaisesti terminaaliin Internetistä. Tämä pätee erityisesti, kun käsittelet turvallisuuteen liittyviä aiheita. Joten vie aikaa täällä oppiaksesi vähän iptables-säännöistä ennen kuin aloitat niiden kirjoittamisen.

Katso tätä esimerkkiä iptables-säännöstä.

-A INPUT -i eth0 -p tcp -m tila - valtio PERUSTETTU -sport 443 -j HYVÄKSY

Okei, niin -A tarkoittaa, että aiot lisätä uuden säännön. Sitten INPUT tarkoittaa, että se koskee syöttämistä palvelimellesi. Siellä on myös TULOS. -I-lippu kertoo iptableille, mihin rajapintaan tämä sääntö on tarkoitettu. Voit määrittää, mitä protokollaa sääntö koskee -p: llä. Tämä sääntö käsittelee TCP: tä. -m määrittelee ehdon, jonka yhteyden on täytettävä. Tässä tapauksessa sen on vastattava määritettyä tilaa. Tietysti silloin - tila määrittelee tilan, tässä tapauksessa PERUSTETTAVAN yhteyden. Seuraava osa kertoo iptableille, mihin porttiin tämä sääntö on tarkoitettu. Se on portti 443, HTTPS-portti, täällä. Viimeinen lippu on -j. Se tarkoittaa ”hypätä” ja kertoo iptablesille, mitä tehdä yhteydelle. Jos tämä yhteys täyttäisi kaikki säännön vaatimukset, iptables hyväksyisi sen.

Asenna säännöt

Joten sinulla pitäisi olla yleinen käsitys siitä, kuinka iptable-säännöt toimivat nyt. Tämän osan loppuosassa kerrotaan, kuinka säännöt määritetään pala kappaleelta.

Paras tapa luoda joukko iptable-sääntöjä on luoda tiedosto, joka sisältää ne kaikki. Sitten voit tuoda kaiken iptable-ohjelmiin kerralla. Sääntöjen asettaminen yksitellen voi saada hämmentävää, varsinkin jos aloitat uuden säännön alusta alkaen.

Luo tiedosto / tmp-hakemistoon sääntöjen luomiseksi.

$ vim / tmp / ipv4

Käynnistä tiedosto * -suodattimella. Tämä kertoo iptableille, että seuraava tapahtuu pakettien suodattamista koskeviksi säännöiksi.

loopback

Ensimmäinen sääntöosasto lukitsee takaisinsovittamisrajapinnan. He kertovat iptableille, että palvelimen on hyväksyttävä liikenne itsestään loopback-rajapinnalla. Sen pitäisi myös torjua itsestään tuleva liikenne, joka ei tule takaisinpiirit.

-A INPUT -i lo -j ACCEPT -A INPUT! -i lo -s 127.0.0.0/8 -j REJECT -A TULOS -o lo -j ACCEPT

ping

Seuraavaksi salli ping. Sinun pitäisi voida pingittää palvelin varmistaaksesi, että se on verkossa, jos siihen ei muulla tavoin päästä. Tässä tapauksessa vain kaikupyynnöt ovat sallittuja, ja palvelin sallii itsensä lähettää ICMP-lähdön.

-A INPUT -p icmp -m tila - tila UUSI --icmp-tyyppi 8 -j ACCEPT -A INPUT -p icmp -m tila - tila PERUSTETTU, LIITTYVÄT -j ACCEPT -A TULOS -p icmp -j ACCEPT

SSH

Tarvitset SSH. Vain tällä tavoin pääset palvelimellesi. SSH-säännöt koskevat Internet-käyttöliittymääsi, joten muista korvata eth0 sillä palvelimen todellisella käyttöliittymällä.

Voi olla myös hyvä idea muuttaa SSH-yhteytesi pois portista 22, koska se on oletus, jota mahdolliset hyökkääjät yrittävät. Jos teet niin, muista muuttaa se myös iptable-säännöissä.

-A INPUT -i eth0 -p tcp -m -tila - valtio UUSI, PERUSTETTU --dport 22 -j HYVÄKSYTTY -LÄHTÖ -O eth0 -p tcp -m tila - tila ESTETTELY --sport 22 -j ACCEPT

OpenVPN

Tämä seuraava kappale sallii liikenteen OpenVPN-palvelimelle ja sieltä UDP: n kautta.

-A INPUT -i eth0 -p udp -m -tila - valtio UUSI, PERUSTETTU --dport 1194 -j HYVÄKSYTTY -OUTPUT -o eth0 -p udp -m tila - tila PERUSTETTU --sport 1194 -j HYVÄKSY

DNS

Salli nyt DNS-yhteydet UDP: n ja TCP: n kautta. Haluat, että VPN käsittelee DNS: ää, ei Internet-palveluntarjoajaasi. Se on osa syytä, jonka vuoksi olet määrittänyt VPN: n.

-A INPUT -i eth0 -p udp -m -tila - valtio PERUSTETTU --sport 53 -j HYVÄKSYTTY -LÄHTÖ -O eth0 -p udp -m -tila - tila UUSI, PERUSTETTU --dport 53 -j HYVÄKSYNTÄ -A INPUT -i eth0 -p tcp -m -tila - valtio PERUSTETTU --sport 53 -j HYVÄKSYTTY -LÄHTÖ -o eth0 -p tcp -m -tila - valtio UUSI, PERUSTETTU --dport 53 -j HYVÄKSY

HTTP / S

Jotta Ubuntu pystyisi päivittämään itsensä, sinun on lisättävä joukko sääntöjä, jotka sallivat lähtevän HTTP- ja HTTPS-yhteyden. Huomaa, että nämä säännöt sallivat palvelimen vain aloittaa HTTP-yhteydet, joten et voi käyttää sitä Web-palvelimena tai muodostaa yhteyttä porttiin 80 tai porttiin 443

-A INPUT -i eth0 -p tcp -m -tila - valtio PERUSTETTU --sport 80 -j ACCEPT -A INPUT -i eth0 -p tcp -m tila - state ESTABLISHED --sport 443 -j ACCEPT -A outputut - o eth0 -p tcp -m tila - valtio UUSI, PERUSTETTU --dport 80 -j HYVÄKSYTTY - TULOS -o eth0 -p tcp -m tila - valtio UUSI, PERUSTATTU --dport 443 -j HYVÄKSY

NTP

Tarvitset NTP-palvelimen, jotta palvelimen kello toimii oikein. NTP antaa palvelimellesi synkronoinnin aikapalvelimien kanssa ympäri maailmaa. Väärä kello palvelimellasi voi aiheuttaa yhteysongelmia, joten NTP: n suorittaminen on hyvä idea. Jälleen kerran sinun pitäisi hyväksyä vain lähtevät ja jo luodut yhteydet.

-A INPUT -i eth0 -p udp -m -tila - valtio PERUSTETTU --sport 123 -j HYVÄKSYTTY -LÄHTÖ -O eth0 -p udp -m -tila - tila UUSI, PERUSTETTU --dport 123 -j HYVÄKSY

TUN

Poista TUN-käyttöliittymä, jota OpenVPN käyttää liikenteen tunnelointiin.

-A INPUT -i tun0 -j ACCEPT -A FORWARD -i tun0 -j ACCEPT -AULOS -O tun0 -j ACCEPT

Sinun on sallittava, että TUN välittää liikennettä VPN: n tavalliseen käyttöliittymään. Löydät kyseisen IP-osoitteen OpenVPN-kokoonpanosta. Jos muutat sitä kokoonpanossa, muuta se myös sääntöissään.

-E eteenpäin -i tun0 -o eth0 -s 10.8.0.0/24 -j HYVÄKSYTTY -E eteenpäin -m tila - valtio PERUSTETTU, LIITTYVÄT -j HYVÄKSYNTÄ

hakkuu

On hyvä pitää lokit kaikesta, mikä iptables hylätään. Tässä tapauksessa se tarkoittaa mitä tahansa, mikä ei sovi mihinkään näistä säännöistä. Lokien avulla näet, esiintyykö haittaohjelmia tai yritetäänkö tehdä jotain häiriöttä palvelinta vastaan.

-A INPUT -m raja - raja 3 / min -j LOG -log-etuliite “iptables_INPUT_denied:” –logi-taso 4
-E eteenpäin -m raja –raja 3 / min -j LOG –logi-etuliite “iptables_FORWARD_denied:” –logi-taso 4
-LÄHTÖ -M rajoitus –raja 3 / min -j LOG –logi-etuliite “iptables_OUTPUT_denied:” –logi-taso 4

Hylkää kaikki muu

Lopuksi sinun on estettävä kaikki, jotka eivät sovi sääntöihisi. Se on ensisijaisesti palomuurin tarkoitus.

-A TULOS -j Hylkää -A eteenpäin -j Hylkää -A TULOS -j Hylkää

Sulje tiedosto COMMIT: llä kertoa iptableille sitoutumaan kaikkiin sääntöihin.

NAT naamiointi

Tarvitset VPN: n yhteydet näyttämään siltä, ​​että ne tulevat itse palvelimelta. Tätä palaa ei voi sisällyttää tavalliseen iptable-tiedostoon, koska se käyttää erilaista taulukkoa. Hyvä on, tosin se on vain yksi rivi.

$ sudo iptables -t nat -A JÄLKEEN -10.8.0.0/24 -o eth0 -j MASQUERADE

Välitä IPv4-liikennettä

Sinun on sallittava IPv4-liikenteen edelleenlähetys, jotta se voi kulkea VPN: n ja palvelimen todellisen verkkoliittymän välillä. Avaa /etc/sysctl.d/99-sysctl.conf sudo-sovelluksella.

Etsi alla oleva rivi ja kommentoi sitä poistamalla #.

net.ipv4.ip_forward = 1

Pysäytä kaikki IPv6-yhteydet

Valitettavasti et ole vielä valmistautunut iptable-ohjelmiin. Sinun on estettävä kaikki IPv6-liikenne. Tämä OpenVPN-palvelin tukee vain IPv4: tä, mikä on hienoa, koska et joudu tilanteeseen, jossa tarvitset IPv6: ta. Seurauksena on, että kaikki IPv6-yhteydet voivat mahdollisesti vuotaa tietoja, mikä on päinvastainen kuin haluat VPN: ää käytettäessä.

Ennen kuin asetat iptable-ohjelmia koskevia sääntöjä, sinun on poistettava IPv6 käytöstä muualla järjestelmässä.

Lisää seuraavat rivit tiedostoon /etc/sysctl.d/99-sysctl.conf. Jos suljet sen edellisestä osasta, avaa se uudelleen sudo-sovelluksella.

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

Aktivoi muutokset.

$ sudo sysctl -p

Kommentoi kaikkia IPv6-rivejä hakemistossa / etc / hosts. Tarvitset myös sudo täällä.

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

Voit viimeinkin kirjoittaa IPv6 iptable -säännöt. Luo tiedosto heille hakemistossa / tmp / ipv6.

* suodatin -A INPUT -j HALLITTAMINEN -E eteenpäin -j REJECT -A tuloste -j REJECT COMMIT

Katso, he ovat yksinkertaisia. Hylkää kaikki.

Tuo ja tallenna Iptablesiin

Sinun on tuotava nämä säännöt voidaksesi tehdä mitään. Joten nyt on aika tehdä se.

Aloita puhdistamalla kaikki muu siellä oleva. Et halua, että vanhat säännöt pääsevät tielle.

$ sudo iptables -F && sudo iptables -X

Tuo sekä IPv4- että IPv6-säännöt.

$ sudo iptable-palauta </ ​​tmp / ipv4 $ sudo iptables-palauta </ ​​tmp / ipv6

Et todennäköisesti koskaan halua tehdä sitä uudestaan. Joten tarvitset uuden paketin säästääksesi säännöt pysyvästi.

$ sudo apt install iptables-persistent

Asennuksen aikana paketti pyytää sinua tallentamaan nykyiset säännöt. Vastaa ”Kyllä”.

Jos teet muutoksia myöhemmin, voit päivittää myös tallennetut kokoonpanot.

$ sudo-palvelun netfilter-pysyvä säästö

Kesti hetken, mutta palomuuri on valmis menemään. Seuraavalla sivulla aiomme luoda tarvittavat salausavaimet.

Napsauta tätä: Seuraava sivu

Kaikki vpns-tiedoista: kuinka omat vpn-asetukset määritetään openvpn-ohjelmalla (osa 3)