Anonim

Tai 2017 m., O naudoti VPN tapo niekuo dėtas. Tarp daugybės išorinių rūpesčių dėl privatumo ir to, kad jūsų IPT gali parduoti savo naršymo istoriją, nėra jokio pagrindo jų nenaudoti.

Aišku, jūs galite sumokėti už vieną iš šimtų VPN paslaugų, bet vėlgi jūs pasitikite kažkuo kitu savo duomenimis. Iš tikrųjų dauguma jų yra puikūs, tačiau jei norite visiško valdymo, galite sukurti savo VPN naudodami „ V irtual P rivate S erver“ (VPS) arba išsinuomoti savo asmeninį serverį, jei jaučiatės tikrai su juo susierzinę.

Viskas, ko jums reikia norint sukurti VPN, yra atvirojo kodo „OpenVPN“ programinė įranga ir „Linux“ (arba BSD). Konfigūracija gali būti įtraukta, tačiau nėra neįmanoma su kažkuo, turinčiu net pagrindinius „Linux“ įgūdžius, atsisakyti tokio platinimo kaip Ubuntu.

Šiam vadovui jums reikės VPS, paleidžiančio „Ubuntu“. Galite labai lengvai atsirinkti vieną iš tokių, kaip „ DigitalOcean“ ar „ Linode“ . Vykdykite jų pagrindinius saugos vadovus. Įsitikinkite, kad nepadarėte pagrindinių klaidų, pavyzdžiui, leisdami šakninę prieigą per SSH.

Be to, atminkite, kad visa tai atliksite komandų eilutėje per SSH į savo VPS. Nereikia nieko, ką reikia žinoti apie „Linux“ žinias, tačiau būkite pasirengę rašyti, o ne spustelėti.

Gauk tai, ko tau reikia

Greitos nuorodos

  • Gauk tai, ko tau reikia
  • Nustatykite užkardą
    • Raskite sąsają
    • Iptable pagrindai
    • Susikurkite savo taisykles
      • Grįžtamasis ryšys
      • Pingas
      • SSH
      • „OpenVPN“
      • DNS
      • HTTP / S
      • NTP
      • TUNAS
      • Medienos ruoša
      • Atmeskite visa kita
      • NAT kaukimas
    • Pirmyn IPv4 srautą
    • Sustabdykite visus „IPv6“ ryšius
    • Importuokite ir išsaugokite „Iptables“

„Ubuntu“ pakuoja ir platina „OpenVPN“ savo saugyklose. Norėdami jį įdiegti, turite naudoti tik apt. Jums taip pat reikės šifravimo raktų generavimo įrankio. Įdiekite juos abu.

$ sudo apt įdiegti „openvpn easy-rsa“

Nustatykite užkardą

Kitas, jums reikia rūpintis ugniasiene. Tai svarbus dalykas užtikrinant VPN saugumą ir užkertant kelią duomenų nutekėjimui ir nepageidaujamai prieigai.

„Iptable“ yra pagrindinė „Linux“ ugniasienė, ir tai yra geriausias jūsų prieigos prie Ubuntu prievadų valdymo pasirinkimas. Jį jau turėsite įdiegę, todėl galėsite pradėti nustatyti ugniasienės taisykles.

Raskite sąsają

Prieš pradėdami rašyti taisykles į iptable, sužinokite, kokia sąsaja jūsų serveris yra prijungtas prie interneto. Paleiskite „ifconfig“, kad būtų rodomos tinklo sąsajos. Tas, kuris turi intarpą: atitinkantis IP adresą, prie kurio esate prisijungę, yra tinkama sąsaja.

Iptable pagrindai

Paprastai nėra gera idėja atsitiktinai kopijuoti ir įklijuoti daiktus į terminalą iš interneto. Tai ypač pasakytina apie saugumo problemas. Taigi, prieš pradėdami juos įvesti šiek tiek sužinoti apie „iptable“ taisykles.

Pažvelkite į šį „iptable“ taisyklės pavyzdį.

-ĮVADAS -i eth0 -p tcp -m būsena - įsteigta valstybė –sport 443 -j PRIIMTI

Gerai, taip -A reiškia, kad jūs pridėsite naują taisyklę. Tuomet INPUT reiškia, kad tai bus susiję su įvestimi į jūsų serverį. Taip pat yra IŠĖJIMAS. -I vėliava nurodo „iptable“, kuriai sąsajai ši taisyklė tinka. Galite nurodyti, kuriam protokolui taikoma taisyklė su -p. Ši taisyklė taikoma tcp. -m nurodo sąlygą, kurią turi atitikti ryšys. Tokiu atveju jis turi atitikti nurodytą būseną. Žinoma, tada - valstybė nurodo būseną, šiuo atveju - ĮRENGTĄ ryšį. Kitoje dalyje nurodoma „iptable“, kuriai prievadai taikoma ši taisyklė. Čia yra 443 prievadas, HTTPS prievadas. Paskutinė vėliava yra -j. Tai reiškia „šuolis“ ir „iptable“ nurodo, ką daryti su ryšiu. Jei šis ryšys atitiktų visus taisyklės reikalavimus, „iptables“ jį SUTINKtų.

Susikurkite savo taisykles

Taigi, jūs turėtumėte turėti bendrą idėją, kaip „iptables“ taisyklės veikia dabar. Likusiame šiame skyriuje jums bus paaiškinta, kaip išdėstyti taisykles kiekvienai daliai.

Geriausias būdas sukurti „iptable“ taisyklių rinkinį yra sukurti failą, kuriame būtų visos jos. Tada galite visa tai importuoti į „iptable“ iš karto. Taisyklių nustatymas po vieną gali painioti, ypač jei pradedate naują taisyklių rinkinį nuo nulio.

Norėdami sukurti savo taisykles, sukurkite failą / tmp kataloge.

$ vim / tmp / ipv4

Pradėkite tą failą naudodami * filtrą. Tai „iptable“ nurodo, kad tai, kas bus toliau, bus paketų filtravimo taisyklės.

Grįžtamasis ryšys

Pirmajame taisyklių skyriuje užrakinamas atgalinės sąsajos veikimas. Jie sako „iptable“, kad serveris turėtų priimti srautą iš savęs, naudodamas atgalinio ryšio sąsają. Tai taip pat turėtų atmesti srautą, atsirandantį iš savęs, o ne iš grįžtamojo ryšio.

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

Pingas

Kitas, leisti ping. Turėtumėte galėti prisegti savo serverį, kad įsitikintumėte, jog jis prisijungęs, jei kitaip jo nepasieks. Tokiu atveju leidžiamos tik aido užklausos, o serveris leis sau nusiųsti ICMP išvestį.

-A Įvestis -p icmp -m būsena - state NAUJI - „8mp“ tipo -j PRIIMTI -A INPUT -p icmp -m būsena - state SUSTABDYTA, SUSIJUSI -j ACCEPT -A REZULTATAS -p icmp -j ACCEPT

SSH

Jums reikia SSH. Tik taip galite pasiekti savo serverį. SSH taisyklės yra būdingos jūsų interneto sąsajai, todėl būtinai pakeiskite eth0 ta sąsaja, kurią jūsų serveris iš tikrųjų naudoja.

Taip pat gali būti gera idėja pakeisti savo SSH jungtis iš 22 uosto, nes tai yra numatytoji nuostata, kurią bandys potencialūs užpuolikai. Jei tai padarysite, būtinai pakeiskite tai ir „iptables“ taisyklėse.

-I ĮVADAS -i eth0 -p tcp -m būsena - būsena NAUJI, ĮSTEIGTA - 22 ataskaita -j PRIIMTI - IŠĖJIMAS - į eth0-p tcp-m būsena - valstybė ĮRENGTAS - „sportas 22“ -J PRIIMTI

„OpenVPN“

Šis kitas kūrinys leidžia srautą į „OpenVPN“ serverį ir iš jo per UDP.

-I INUTUT -i eth0 -p udp -m būsena - state NAUJAS, ĮSTEIGTAS - „port 1194 -j “PRIIMTI - REZULTATAS -o eth0 -p udp -m būsena - state ESTABLE --sport 1194 -j ACCEPT

DNS

Dabar leiskite DNS ryšius per UDP ir TCP. Norite, kad jūsų VPN tvarkytų DNS, o ne jūsų IPT. Tai yra priežastis, dėl kurios pirmiausia nustatote VPN.

-I ĮVADAS -i eth0 -p udp -m būsena - valstybė ĮRENGTA --sport 53 -j PRIIMTI - IŠĖJIMAS -et eth0 -p udp -m būsena - būsena NAUJI, ĮRENGTA --dport 53 -j PRIIMTI -A ĮVADAS -i eth0 -p tcp -m būsena - valstybė ĮRENGTA --sport 53 -j PRIIMTI - IŠĖJIMAS -o eth0 -p tcp -m būsena - būsena NAUJAS, ĮRENGTAS - dport 53 -j PRIIMTI

HTTP / S

Kad „Ubuntu“ galėtų atnaujinti save, turite pridėti taisyklių rinkinį, leidžiantį išeinantį HTTP ir HTTPS ryšį. Atminkite, kad šios taisyklės leidžia serveriui inicijuoti tik HTTP ryšius, todėl negalite jo naudoti kaip interneto serverio ar prisijungti prie jo per 80 ar 443 prievadus.

-ĮVADAS -i eth0 -p tcp -m būsena - valstybė ĮRENGTA --sportas 80 -j PRIPAŽINTI -ĮVADAS -i eth0 -p tcp -m būsena - valstybė ĮRENGTAS --sport 443 -j PRIIMTI -IŠĖJIMAS - o eth0 -p tcp -m būsena - state NAUJAS, ĮSTEIGTAS --dport 80 -j PRIIMTI - REZULTATAS -o eth0 -p tcp-m būsena - state NAUJAS, ĮRENGTAS --dport 443 -j ACCEPT

NTP

Norint, kad jūsų serverio laikrodis veiktų tinkamai, jums reikės NTP. NTP leidžia jūsų serveriui sinchronizuoti su laikmačio serveriais visame pasaulyje. Turėdami netinkamą laikrodį serveryje gali sukelti ryšio problemų, todėl NTP paleidimas yra gera idėja. Dar kartą turėtumėte priimti tik išeinančius ir jau užmegztus ryšius.

-I ĮVADAS -i eth0 -p udp -m būsena - valstija ĮRENGTA --sport 123 -j PRIIMTI - IŠĖJIMAS -et eth0 -p udp -m būsena - būsena NAUJI, ĮRENGTA --dport 123 -j PRIIMTI

TUNAS

Atblokuokite TUN sąsają, kurią „OpenVPN“ naudoja eismui tunelyje.

-I ĮVADAS -i tun0 -j PRIIMTI -A FORWARD -i tun0 -j ACCEPT -A išėjimas -o tun0 -j ACCEPT

Turite leisti TUN persiųsti srautą į įprastą VPN sąsają. Šį IP adresą rasite „OpenVPN“ konfigūracijoje. Jei pakeisite tai konfigūracijoje, pakeiskite tai ir savo taisyklėse.

-A FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -j PRIIMTI -A FORWARD -m būsena - state SUSTABDYTA, SUSIJUSI -j ACCEPT

Medienos ruoša

Gera idėja laikyti žurnalus apie viską, ką atmeta „iptables“. Šiuo atveju tai reiškia bet ką, kas neatitinka nė vienos iš šių taisyklių. Žurnalai leidžia pamatyti, ar nėra kokių nors kenkėjiškų veiksmų ar bandymų ką nors blogo padaryti prieš jūsų serverį.

-ĮVADAS –m riba –įriboti 3 / min –j LOG –logo priešdėlis „iptables_INPUT_denied:“ –log 4 lygis
-A FORWARD –m riba –sumažinti 3 / min –j LOG –logo priešdėlis „iptables_FORWARD_denied:“ –log-level 4
-A REZULTATAS –m riba –sumažinti 3 / min –j LOG –logo priešdėlis „iptables_OUTPUT_denied:“ –log-level 4

Atmeskite visa kita

Galiausiai turite užblokuoti viską, kas neatitinka jūsų taisyklių. Tai iš tikrųjų yra tikslas turėti ugniasienę.

-A Įvestis -j ATSISAKYTI -A FORWARD -j REJECT -A IŠĖJIMAS -j REJECT

Uždarykite failą naudodami „COMMIT“, kad nurodytumėte „iptable“, kad įvykdytų visas taisykles.

NAT kaukimas

Jei norite, kad VPN ryšiai atrodytų iš paties serverio, jums reikia jungčių. Šis gabalas negali būti įtrauktas į įprastą „iptables“ failą, nes jame naudojama kita lentelė. Vis dėlto gerai, kad tai tik viena eilutė.

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

Pirmyn IPv4 srautą

Turėsite įjungti „IPv4“ srauto peradresavimą, kad jis galėtų praeiti tarp VPN ir faktinės jūsų serverio tinklo sąsajos. Atidarykite /etc/sysctl.d/99-sysctl.conf su sudo.

Raskite žemiau esančią eilutę ir komentuokite ją pašalindami #.

net.ipv4.ip_forward = 1

Sustabdykite visus „IPv6“ ryšius

Deja, jūs dar nepadarėte darbo su „iptables“. Turite blokuoti visą „IPv6“ srautą. Šis „OpenVPN“ serveris palaikys tik „IPv4“, o tai puiku, nes nesusidursite su situacija, kai jums reikia „IPv6“. Dėl to bet kurios IPv6 jungtys gali nutekinti informaciją, kuri yra priešinga tam, ko norite, kai naudojate VPN.

Prieš nustatydami „iptable“ taisykles, turite išjungti „IPv6“ visur kitur sistemoje.

Įtraukite šias eilutes į /etc/sysctl.d/99-sysctl.conf. Jei uždarėte jį iš ankstesnio skyriaus, vėl atidarykite jį 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

Suaktyvinkite pakeitimus.

$ sudo sysctl -p

Komentuokite visas IPv6 eilutes, esančias / etc / hosts. Jums taip pat reikės sudo čia.

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

Pagaliau galite parašyti IPv6 „iptables“ taisykles. Sukurkite jiems failą, esantį / tmp / ipv6.

* filtras -A Įvestis -j REJECT -A FORWARD -j REJECT -A REZULTATAS -j REJECT COMMIT

Žiūrėk, jie paprasti. Viską atmesk.

Importuokite ir išsaugokite „Iptables“

Turite importuoti tas taisykles, kad jos galėtų ką nors padaryti. Taigi, atėjo laikas tai padaryti.

Pradėkite išvalydami visa kita, kas ten yra. Jūs nenorite, kad kliūtų senos taisyklės.

$ sudo iptables -F && sudo iptables -X

Importuokite savo „IPv4“ ir „IPv6“ taisykles.

$ sudo iptables - atkurti </ tmp / ipv4 $ sudo ip6table - atkurti </ tmp / ipv6

Tikriausiai niekada nenorėsite to daryti dar kartą. Taigi, norint visam laikui išsaugoti taisykles, jums reikės naujo paketo.

$ sudo apt install iptables-persistent

Diegimo metu paketas paprašys išsaugoti esamas taisykles. Atsakykite „Taip“.

Jei vėliau atliksite pakeitimus, taip pat galėsite atnaujinti išsaugotas konfigūracijas.

$ sudo paslaugos „netfilter“ nuolatinis taupymas

Tai užtruko, bet jūsų ugniasienė yra pasirengusi naudoti. Kitame puslapyje ketiname sukurti reikiamus šifravimo raktus.

Spustelėkite čia: Kitas puslapis

Viskas apie vpns: kaip susikurti savo vpn naudojant „openvpn“ (3 dalis)