Anonim

Tas ir 2017. gads, un VPN izmantošana ir kļuvusi par prātu nedomājošu. Starp daudzām ārējām bažām par privātumu un to, ka jūsu interneta pakalpojumu sniedzējs var pārdot jūsu pārlūkošanas vēsturi, patiesībā nav pamata to neizmantot.

Protams, jūs varat samaksāt par vienu no simtiem VPN pakalpojumu, bet jūs atkal paļaujaties uz kādu citu ar saviem datiem. Lielākā daļa no tām patiesībā ir lieliski, taču, ja vēlaties pilnīgu kontroli, varat izveidot savu VPN uz V irtual P ervate S erver (VPS) vai iznomāt savu privāto serveri, ja jums šķiet, ka esat ar to ļoti nopietns.

Viss, kas jums nepieciešams, lai izveidotu VPN, ir atvērtā koda programmatūra OpenVPN un Linux (vai BSD). Konfigurācija var būt iesaistīta, taču tas nav neiespējami, ja kāds, kuram ir pat Linux pamatprasmes, izvērst tādu izplatīšanu kā Ubuntu.

Šajā rokasgrāmatā jums būs nepieciešams VPS, kurā darbojas Ubuntu. Jūs to varat ļoti ērti izvēlēties no kāda cita, piemēram, DigitalOcean vai Linode . Lai sāktu darbu, ievērojiet viņu galvenos drošības norādījumus. Pārliecinieties, ka jūs nepieņemat pamata kļūdas, piemēram, sakņu piekļuves atļaušanu, izmantojot SSH.

Ņemiet vērā arī to, ka visu šo iestatīšanu jūs veiksit komandrindas SSH uz savu VPS. Nav nekā tāda, kas prasa ļoti daudz Linux zināšanu, taču esiet gatavi tam, ka rakstāt, nevis noklikšķiniet.

Getting to, kas jums nepieciešams

Ātrās saites

  • Getting to, kas jums nepieciešams
  • Ugunsmūra iestatīšana
    • Atrodiet interfeisu
    • Iptable pamati
    • Iestatiet savus noteikumus
      • Atgriezeniskā saite
      • Ping
      • SSH
      • OpenVPN
      • DNS
      • HTTP / S
      • NTP
      • TUNS
      • Mežizstrāde
      • Noraidiet visu pārējo
      • NAT maskēšanās
    • Pārsūtīt IPv4 trafiku
    • Pārtrauciet visus IPv6 savienojumus
    • Importējiet un saglabājiet Iptables

Ubuntu iesaiņo un izplata OpenVPN savās krātuvēs. Lai to instalētu, ir jāizmanto tikai apt. Jums būs nepieciešams arī rīks šifrēšanas atslēgu ģenerēšanai. Instalējiet tos abus.

$ sudo apt instalēt openvpn easy-rsa

Ugunsmūra iestatīšana

Tālāk jums jārūpējas par ugunsmūri. Tas ir svarīgs faktors, lai saglabātu savu VPN drošu un novērstu gan datu noplūdi, gan nevēlamu piekļuvi.

Iptable ir Linux galvenais ugunsmūris, un tas ir jūsu labākais risinājums, lai kontrolētu piekļuvi Ubuntu portiem. Jums tas jau būs instalēts, tāpēc varat sākt iestatīt ugunsmūra kārtulas.

Atrodiet interfeisu

Pirms sākat rakstīt noteikumus iptables, noskaidrojiet, ar kuru interfeisu jūsu serveris ir savienots ar internetu. Palaist ifconfig, lai parādītu tīkla saskarnes. Tam, kam ir inet addr: atbilstoša IP adrese, ar kuru esat izveidojis savienojumu, ir pareizais interfeiss.

Iptable pamati

Parasti nav laba ideja nejauši nokopēt un ielīmēt lietas terminālī no interneta. Tas jo īpaši attiecas uz drošības tēmām. Tātad, pirms sākat tos ievadīt, veltiet šeit nedaudz laika, lai uzzinātu mazliet par iptables noteikumiem.

Apskatiet šo iptables noteikumu piemēru.

-IEVADS -i eth0 -p tcp -m stāvoklis-nodibinātais valsts -sport 443 -j ACCEPT

Labi, ka -A nozīmē, ka jūs pievienosit jaunu noteikumu. Tad INPUT nozīmē, ka tas attieksies uz ievadi jūsu serverī. Ir arī izlaide. Karods -i norāda iptable, kurai saskarnei šis noteikums ir paredzēts. Ar -p var norādīt, kuram protokolam tiek piemērota kārtula. Šis noteikums apstrādā tcp. -m norāda nosacījumu, ka savienojumam ir jāatbilst. Šajā gadījumā tam jāatbilst norādītajam stāvoklim. Protams, tad - valsts norāda stāvokli, šajā gadījumā - IZVEIDOTU savienojumu. Nākamā daļa iptable norāda, kurai ostai šis noteikums ir paredzēts. Šeit atrodas 443. ports, HTTPS ports. Pēdējais karodziņš ir -j. Tas nozīmē “lēkt”, un tas iptablei norāda, ko darīt ar savienojumu. Ja šis savienojums atbilstu visām noteikuma prasībām, iptables to PIEŅEMTU.

Iestatiet savus noteikumus

Tātad, jums vajadzētu būt vispārējai idejai, kā iptable noteikumi darbojas tagad. Pārējā šī sadaļa jums pateiks, kā iestatīt noteikumus pa daļām.

Labākais veids, kā izveidot iptable noteikumu kopu, ir izveidot failu, kurā ir visi šie noteikumi. Pēc tam jūs to visu varat importēt uzreiz iptables. Kārtulu iestatīšana pa vienam var mulsināt, it īpaši, ja jūs sākat jaunu noteikumu kopu no nulles.

Lai izveidotu savus noteikumus, izveidojiet failu direktorijā / tmp.

$ vim / tmp / ipv4

Sāciet šo failu ar * filtru. Tas iptable norāda, ka sekojošais būs noteikumi pakešu filtrēšanai.

Atgriezeniskā saite

Pirmajā noteikumu sadaļā tiek bloķēts atgriezeniskās saites interfeiss. Viņi iptablei saka, ka serverim ir jāpieņem trafiks no sevis atpakaļejošajā saskarnē. Tam vajadzētu arī noraidīt trafiku, kas nāk no sevis, nevis tādu, kas rodas no atgriezeniskās saites.

-A INPUT -i lo -j ACCEPT -A INPUT! -i lo -s 127.0.0.0/8 -j REJECT -A REZULTĀTS -o lo -j ACCEPT

Ping

Pēc tam atļaujiet ping. Jums vajadzētu būt iespējai piespraust serveri, lai pārliecinātos, ka tas ir tiešsaistē, ja citādi tas nav sasniedzams. Šajā gadījumā ir atļauti tikai atbalss pieprasījumi, un serveris atļaus pats nosūtīt ICMP izvadi.

-A IEVADS -p icmp -m stāvoklis - state JAUNS - 8.mp tips -j ACCEPT -A INPUT -p icmp -m statuss - state IZVEIDOTS, SAISTĪTS -j ACCEPT -A izeja -p icmp -j ACCEPT

SSH

Jums nepieciešama SSH. Tikai tā jūs varat sasniegt savu serveri. SSH noteikumi attiecas tikai uz jūsu interneta saskarni, tāpēc pārliecinieties, ka aizvietojat eth0 ar to, kuru interfeisu jūsu serveris faktiski izmanto.

Varētu būt arī laba ideja mainīt savus SSH savienojumus ārpus 22. porta, jo tas ir noklusējums, ko mēģinās potenciālie uzbrucēji. Ja jūs to darāt, noteikti mainiet to arī iptables noteikumos.

-A IEVADS -i eth0 -p tcp -m stāvoklis - stāvoklis JAUNS, IZVEIDOTS - 22. ziņojums -j PIEŅEMTS - IZEJS –O eth0-p tcp-m stāvoklis - statuss nodibināts - sports 22 -j ACCEPT

OpenVPN

Šis nākamais gabals atļauj trafiku uz un no OpenVPN servera, izmantojot UDP.

-A IEVADS -i eth0 -p udp -m stāvoklis - valsts JAUNS, IZVEIDOTS - ziņojums 1194 -j PIEŅEMTS - IZEJS -o eth0 -p udp-m stāvoklis - statuss nodibināts - sports 1194 -j PIEŅEMTS

DNS

Tagad atļaujiet DNS savienojumus, izmantojot UDP un TCP. Jūs vēlaties, lai jūsu VPN apstrādātu DNS, nevis jūsu ISP. Tas ir iemesls tam, ka, pirmkārt, iestatāt VPN.

-A IEVADS -i eth0 -p udp -m stāvoklis - statuss izveidots --sport 53 -j ACCEPT -A IZEJS -o eth0 -p udp -m stāvoklis - stāvoklis JAUNS, IZVEIDOTS - 53.ports -j ACCEPT -A IEVADS -i eth0 -p tcp -m stāvoklis - nodibinātais statuss --sport 53 -j ACCEPT -A IZVEIDE -o eth0 -p tcp -m stāvoklis - valsts JAUNS, IZVEIDOTS - 53.j ziņojums ACCEPT

HTTP / S

Lai Ubuntu varētu sevi atjaunināt, jums jāpievieno noteikumu kopums, kas atļauj izejošo HTTP un HTTPS savienojumu. Ņemiet vērā, ka šie noteikumi ļauj serverim iniciēt tikai HTTP savienojumus, tāpēc jūs to nevarat izmantot kā tīmekļa serveri vai izveidot savienojumu ar portu 80 vai 443.

-A IEVADS -i eth0 -p tcp -m stāvoklis - nodibināts statuss --sport 80 -j ACCEPT -A INPUT -i eth0 -p tcp -m stāvoklis - nodibināts statuss --sport 443 -j PIEŅEMŠANA - IZDEVUMS - o eth0 -p tcp -m stāvoklis - valsts JAUNS, IZVEIDOTS - ziņojums 80 -j PIEŅEMTS - IZEJS - līdz eth0 -p tcp-m stāvoklis - valsts JAUNS, IZVEIDOTS --dport 443 -j PIEŅEMT

NTP

Lai servera pulkstenis darbotos pareizi, jums būs nepieciešams NTP. NTP ļauj jūsu serverim sinhronizēt ar laika serveriem visā pasaulē. Ja serverī ir nepareizs pulkstenis, var rasties savienojuma problēmas, tāpēc laba ideja ir palaist NTP. Vēlreiz jāpieņem tikai izejošie un jau izveidotie savienojumi.

-A IEVADS -i eth0 -p udp -m stāvoklis - nodibināts statuss --sport 123 -j ACCEPT -A IZVĒLNE -o eth0 -p udp -m stāvoklis - valsts JAUNS, IZVEIDOTS - 123 ziņojums -j ACCEPT

TUNS

Atbloķējiet TUN saskarni, kuru OpenVPN izmanto tuneļa satiksmei.

-A INPUT -i tun0 -j ACCEPT -A FORWARD -i tun0 -j ACCEPT -A izeja -o tun0 -j ACCEPT

Jums jāļauj TUN pārsūtīt trafiku uz parasto VPN saskarni. Jūs atradīsit šo IP adresi OpenVPN konfigurācijā. Ja maināt to konfigurācijā, mainiet to arī savos noteikumos.

-A FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -j ACCEPT -A FORWARD -m stāvoklis - valsts IZVEIDOTS, SAISTĪTS -j ACCEPT

Mežizstrāde

Ir laba ideja glabāt žurnālus par visu, kas iptables tiek noraidīts. Šajā gadījumā tas nozīmē jebko, kas neatbilst nevienam no šiem noteikumiem. Žurnāli ļauj jums redzēt, vai pret jūsu serveri ir notikusi kāda ļaunprātīga darbība vai mēģinājumi izdarīt kaut ko nožēlojamu.

-A IEVADS -m ierobežojums –ierobežot 3 / min -j LOG –log-prefikss “iptables_INPUT_denied:” –log 4. līmenis
-A FORWARD -m ierobežojums –ierobežo 3 / min -j LOG –log-prefikss “iptables_FORWARD_denied:” –log 4. līmenis
-A IZLIETOJUMS -m ierobežojums –ierobežot 3 / min -j LOG –log-prefikss “iptables_OUTPUT_denied:” –log 4. līmenis

Noraidiet visu pārējo

Visbeidzot, jums ir jābloķē jebkas, kas neatbilst jūsu noteikumiem. Tas tiešām ir mērķis, pirmkārt, ar ugunsmūri.

-A IEVADS -j AIZSARDZĪBA -A FORWARD -j REJECT -A IZEJAS -j REJECT

Aizveriet failu ar COMMIT, lai norādītu iptables izpildīt visus noteikumus.

NAT maskēšanās

Jums ir nepieciešami savienojumi no VPN, lai izskatās, ka tie nāk no paša servera. Šo gabalu nevar iekļaut parastā iptable failā, jo tajā tiek izmantota cita tabula. Tas ir labi, lai gan, tā ir tikai viena līnija.

$ sudo iptables -t nat -A PĀRSTRĀDE -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Pārsūtīt IPv4 trafiku

Jums būs jāiespējo IPv4 datplūsmas pārsūtīšana, lai tā varētu pāriet starp VPN un servera faktisko tīkla saskarni. Atveriet /etc/sysctl.d/99-sysctl.conf ar sudo.

Atrodiet zemāk esošo līniju un atsauciet to, noņemot #.

net.ipv4.ip_forward = 1

Pārtrauciet visus IPv6 savienojumus

Atvainojiet, jūs vēl neesat pabeidzis ar iptables. Jums jābloķē visa IPv6 datplūsma. Šis OpenVPN serveris atbalstīs tikai IPv4, kas ir lieliski, jo jūs nedrīkstat nonākt situācijā, kad jums ir nepieciešams IPv6. Tā rezultātā jebkurš IPv6 savienojums var potenciāli noplūst informāciju, kas ir pretēja tam, ko vēlaties, izmantojot VPN.

Pirms iestatīt noteikumus par iptables, jums ir jāatspējo IPv6 visur citur sistēmā.

Pievienojiet šādas rindas /etc/sysctl.d/99-sysctl.conf. Ja to aizvērāt no iepriekšējās sadaļas, atkārtoti atveriet to ar 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

Aktivizējiet izmaiņas.

$ sudo sysctl -p

Komentējiet visas IPv6 līnijas mapē / etc / hosts. Arī jums šeit būs vajadzīgs sudo.

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

Beidzot varat uzrakstīt IPv6 iptables noteikumus. Izveidojiet viņiem failu, kas atrodas / tmp / ipv6.

* filtrs -A INPUT -j REJECT -A FORWARD -j REJECT -A REZULTĀTS -j REJECT COMMIT

Redziet, viņi ir vienkārši. Noraidīt visu.

Importējiet un saglabājiet Iptables

Jums ir jāimportē šie noteikumi, lai viņi varētu kaut ko darīt. Tātad, ir pienācis laiks to darīt.

Sākumā iztīriet visu pārējo. Jūs nevēlaties, lai tiktu traucēti kādi veci noteikumi.

$ sudo iptables -F && sudo iptables -X

Importējiet gan savus IPv4, gan IPv6 noteikumus.

$ sudo iptables-atjaunot </ tmp / ipv4 $ sudo iptables - atjaunot </ tmp / ipv6

Jūs, iespējams, nekad vairs nevēlaties to darīt. Tātad, lai neatgriezeniski saglabātu noteikumus, jums būs nepieciešama jauna pakete.

$ sudo apt install iptables-noturīgs

Instalēšanas laikā pakotne lūgs jums saglabāt esošos noteikumus. Atbilde “Jā”

Ja vēlāk veicat izmaiņas, varat atjaunināt arī saglabātās konfigurācijas.

$ sudo pakalpojums netfilter-noturīgs ietaupījums

Pagāja laiks, bet jūsu ugunsmūris ir gatavs darbam. Nākamajā lapā mēs centīsimies izveidot nepieciešamās šifrēšanas atslēgas.

Noklikšķiniet šeit: Nākamā lapa

Viss par vpns: kā iestatīt savu vpn ar openvpn (3. daļa)