Et ass 2017 a Benotze vun engem VPN gouf e Loft. Wéinst de villen externen Privatsphär betrëfft an de Fakt datt Ären eegene ISP Är Browsergeschicht kann verkafen, gëtt et keng Gerechtegkeet fir net een ze benotzen.

Sécher, Dir kënnt fir ee vun den Honnerte vu VPN Servicer bezuelen, awer nach eng Kéier, Dir vertraut op een mat Ären Daten. Déi meescht si super an der Realitéit, awer wann Dir e komplette Kontroll wëllt, kënnt Dir Ären eegene VPN op engem Virtual Private Server (VPS) bauen oder Ären eegene private Server lounen wann Dir Iech fillt wéi Dir wierklech haart sidd An.

Alles wat Dir braucht fir e VPN ze bauen ass d'Open Source OpenVPN Software a Linux (oder BSD). Konfiguratioun kann involvéiert sinn, awer et ass net onméiglech fir een mat Basis Linux Fäegkeeten eng Verdeelung wéi Ubuntu ze maachen.

Fir dëse Guide braucht Dir e VPS deen Ubuntu leeft. Dir kënnt ee ganz einfach vun engem wéi DigitalOcean oder Linode aushuelen. Follegt déi elementar Sécherheetsinstruktiounen fir de Setup. Gitt sécher datt Dir kee fundamentale Feeler mécht wéi de Root Zougang duerch SSH erlaben.

Denkt och drun datt Dir de ganzen Setup op der Kommandozeil via SSH op Äre VPS leeft. Et gëtt näischt dat verréckte Linux Wëssen erfuerdert, awer bereet ze Typ amplaz vu Klick.

Kritt wat Dir braucht

Ubuntu packt a verdeelt OpenVPN a senge Repositories. Dir musst just apt benotze fir et z'installéieren. Dir braucht och de Verschlësselungs Schlëssel Generatioun Outil. Installéiert béid.

$ sudo apt install openvpn einfach-rsa

Ariichten d'Firewall

Als nächst musst Dir d'Firewall këmmeren. Dëst ass e wichtege Bäitrag fir Äre VPN ze sécheren an Datenleckungen an ongewollten Zougang ze vermeiden.

Iptables ass d'Haapt Firewall fir Linux an Är bescht Optioun fir Zougang zu Ubuntu Ports ze kontrolléieren. Dir hutt et scho installéiert, fir datt Dir Är Firewall Reegele kann ufänken.

Fannt d'Interface

Ier Dir Regelen am Iptables schreift, musst Dir erausfannen, wéi eng Interface Ären Server benotzt fir mam Internet ze verbannen. Run ifconfig fir Är Netzwierkinterfaces ze weisen. Deen mat enger Inet-Adress déi passt mat der IP Adress mat där Dir verbonne sidd ass déi richteg Interface.

Iptables Basics

Et ass normalerweis net eng gutt Iddi Saachen aus dem Internet zoufälleg ze kopéieren an ze pechen. Dëst ass virun allem wouer wann Dir mat Sécherheetsprobleemer sidd. Huelt Iech e bëssen Zäit hei fir sech mat den Iptables Reegelen vertraut ze maachen ier Dir se agitt.

Kuckt dëst Beispill vun enger iptables Reegel.

- INPUT - i eth0 - p tcp - m Staat - Staat GESCHAFFT - Sport 443 - j ACCEPT

Okay, also - A bedeit datt Dir eng nei Regel bäidréit. Da bedeit INPUT datt et eng Entrée ass op Ärem Server. Et gëtt och en OUTPUT. Den -i Fändel seet iptables op wéi eng Interface dës Regel uwend. Dir kënnt -p benotze fir ze präziséieren zu deem Protokoll d'Regel uwend. Dës Regel befaasst sech mat TCP. -m spezifizéiert eng Bedingung déi eng Verbindung muss erfëllen. An dësem Fall muss et dem spezifizéierte Status entspriechen. Natierlech weist dann -state e Status, an dësem Fall eng ESTABLISCHT Verbindung. Deen nächsten Deel seet iptables op wéi eng Port dës Regel uwend. Hei ass et Port 443, den HTTPS Port. De leschte Fändel ass -j. Et steet fir "sprangen" a seet iptables wat mat der Verbindung ze dinn huet. Wann dës Verbindung mat allen Ufuerderunge vun der Reegel entsprécht, da géif iptables se akzeptéieren.

Ariichten Är Regelen

Also sollt Dir eng allgemeng Iddi hunn wéi iptables Reegelen elo funktionnéieren. De Rescht vun dëser Rubrik erkläert wéi Dir Är Regelen bit for bit opstellt.

De beschte Wee fir e Set vun iptables Reegelen ze kreéieren ass eng Datei ze kreéieren déi all d'Regele enthält. Duerno kënnt Dir alles an iptables importéieren op eemol. Regele fir een ze setzen kann duerchernee sinn, besonnesch wann Dir en neie Set vu Reegele vun Ufank un ufänkt.

Maacht eng Datei am / tmp Verzeechnes fir Är Reegelen ze kreéieren.

$ vim / tmp / ipv4

Start dës Datei mat * Filter. Dëst seet iptables datt déi folgend Paketfilterregelen uwenden.

Loopback

Déi éischt Sektioun vun de Regelen gëtt de loopback Interface gespaart. Si soen iptables datt de Server op der loopback Interface de Verkéier vu sech selwer misst akzeptéieren. Et sollt och den Traffic refuséieren deen net aus dem loopback kënnt.

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

Belsch

Als nächst, erlaabt Ping. Dir sollt fäeg sinn Äre Server ze pingelen fir sécherzestellen datt en online ass wann et anescht net verfügbar ass. An dësem Fall sinn nëmmen Echo-Ufroen erlaabt an de Server kann den ICMP-Output selwer schécken.

-A INPUT -p icmp -m Staat - Stat NEW --icmp-Typ 8 -j ACCEPT - INPUT - p icmp - m Staat - Staat ESTABLISCHT, VERHËLLT - j ACCEPT -A OUTPUT -p icmp -j ACCEPT

SSH

Dir braucht SSH. Dëst ass deen eenzege Wee fir Äre Server z'erreechen. D'SSH Reegele si spezifesch fir Är Internet Interface. Also gitt sécher datt Dir eth0 benotzt fir den Interface deen Äre Server tatsächlech benotzt.

Et kann och eng gutt Iddi sinn Är SSH Verbindunge vum Port 22 z'änneren, well dëst ass den Standardastellung deen potenziell Ugräifer géif probéieren. Wann Dir dëst maacht, gitt sécher datt Dir dëst och an Ären iptables Reegelen ännert.

- INPUT - i eth0 - p tcp - m Staat - Staat NEW, SET - Port 22 - j ACCEPT -A OUTPUT -o eth0 -p tcp -m Staat - Stat ESTABLISCHT --port 22 -j ACCEPT

OpenVPN

An dëser nächster Sektioun gëtt den Datenverkéier op a vum OpenVPN Server iwwer UDP aktivéiert.

- INPUT - i eth0 - p udp - m Staat - Staat NEI, SET - Port 1194 - j ACCEPT -A OUTPUT -o eth0 -p udp -m Staat - Stat ESTABLISCHT --port 1194 -j ACCEPT

DNS

Elo erlaabt DNS Verbindungen iwwer UDP an TCP. Dir wëllt datt Äre VPN DNS veraarbecht, net Ären ISP. Dëst ass ee vun de Grënn firwat Dir e VPN op der éischter Plaz opstellt.

- INPUT - i eth0 - p udp - m Staat - Staat ESTABLISCHT - Sport 53 - j ACCEPT -A OUTPUT -o eth0 -p udp -m Staat - Stat NEW, ESTABLISERT --port 53 -j ACCEPT - INPUT - ech eth0 - p tcp - m Staat - Staat ESTABLISCHT - Sport 53 - j ACCEPT -A OUTPUT -o eth0 -p tcp -m Staat - Stat NEW, ESTABLISCHT --port 53 -j ACCEPT

HTTP / S

Fir Ubuntu selwer z'update, musst Dir eng Zuel vu Reegele addéieren fir ausgaang Verbindunge vun HTTP an HTTPS z'erméiglechen. Notiz datt dës Regelen nëmmen de Server erlaben HTTP Verbindungen ze initiéieren. Dofir kënnt Dir et net als Webserver benotzen oder iwwer Port 80 oder Port 443 connectéieren

- INPUT - i eth0 - p tcp - m Staat - Staat ESTABLISCHT - Sport 80 - j ACCEPT - INPUT - i eth0 - p tcp - m Staat - Staat ESTABLISCHT - Sport 443 - j ACCEPT -A OUTPUT -o eth0 -p tcp - m Staat - Stat NEW, ESTABLISÉIERT --port 80 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m Staat - Stat NEW, ESTABLISCHT --port 443 -j ACCEPT

NTP

Dir braucht NTP fir d'Server Auer fir richteg ze lafen. Mat NTP kann Äre Server mat Zäitserveren ronderëm d'Welt synchroniséieren. Eng falsch Auer op Ärem Server kann Verbindungsprobleemer verursaachen. Also et ass eng gutt Iddi NTP ze bedreiwen. Erëm, Dir sollt nëmmen déi Sortie a bestehend Verbindunge akzeptéieren.

- INPUT - i eth0 - p udp - m Staat - Staat ESTABLISCHT - Sport 123 - j ACCEPT -A OUTPUT -o eth0 -p udp -m Staat - Stat NEW, ESTABLISCHT --port 123 -j ACCEPT

DO

Spär d'TUN Interface datt OpenVPN benotzt fir Tunnelverkéier.

-En INPUT -i tun0 -j ACCEPT -A FORWARD -i tun0 -j ACCEPT -A OUTPUT -o tun0 -j ACCEPT

Dir musst TUN erlaben de Traffic fir de VPN op Äre reguläre Interface weiderzebréngen. Dir kënnt dës IP Adress an der OpenVPN Konfiguratioun fannen. Wann Dir et an der Konfiguratioun ännert, ännert se se och an Äre Reegelen.

-A FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -j ACCEPT -A FORWARD -m Staat - Stat ESTABLISCHT, VERHUELT -j ACCEPT

Logéieren

Et ass eng gutt Iddi e Log ze halen vun allem wat iptables refuséiert. An dësem Fall ass alles gemengt dat passt net an ee vun dëse Reegelen. Mat der Hëllef vu Logbicher kënnt Dir bestëmmen ob et béiswëlleg Aktivitéit ass oder ob e Versuch gemaach gëtt fir eppes schued géint Äre Server ze maachen.

-INPUT -m Limite –limit 3 / min -j LOG –Log-Präfix "iptables_INPUT_denied:" –log Niveau 4-A FORWARD -m Limite -limit 3 / min -j LOG-Log Präfix "iptables_FORWARD_denied:" - Log -Niveau 4-A OUTPUT -m Limite –limit 3 / min -j LOG –Log Präfix "iptables_OUTPUT_denied:" –log-Niveau 4

Alles anescht ofwenden

No allem musst Dir alles blockéieren wat net an Är Regelen passt. Dat ass tatsächlech den Zweck vun enger Firewall.

-INPUT -j REJECT -J REJECT -A OUTPUT -j REJECT

Zoumaachen d'Datei mat COMMIT fir iptables ze soen all Regelen ze engagéieren.

OpenVPN iptables Reegelen

NAT masquerading

Dir musst d'Verbindungen iwwer de VPN astellen, wéi wa se vum Server selwer koumen. Dësen Deel kann net an der regulärer iptables Datei enthale sinn, well en aneren Dësch benotzt gëtt. Awer dat ass gutt, et ass just eng Zeil.

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

Forward IPv4 Traffic

Dir musst de Forward vum IPv4 Traffic erlaben, sou datt et tëscht dem VPN an der aktueller Netzwierkinterface vun Ärem Server kann iwwerdroe ginn. Open /etc/sysctl.d/99-sysctl.conf mat sudo.

Fannt d'Linn ënnen an entfernt den # fir de Kommentarkarakter ze läschen.

net.ipv4.ip_forward = 1

Ennert all IPv6 Verbindungen

Leider sidd Dir nach net mat iptables gemaach. Dir musst all IPv6 Traffic blockéieren. Dësen OpenVPN Server ënnerstëtzt nëmmen IPv4, wat gutt ass well Dir keng Situatioun opkënnt wou Dir IPv6 braucht. Als Resultat kann d'Informatioun iwwer IPv6 Verbindunge verluer goen. Dëst ass de Géigendeel vu wat Dir wëllt wann Dir e VPN benotzt.

Ier Dir d'Reegele fir iptables setzt, musst Dir IPv6 iergendwou am System deaktivéieren.

Füügt déi folgend Linnen op /etc/sysctl.d/99-sysctl.conf. Wann Dir et vun der viregter Sektioun ofgeschloss hutt, öffnen et erëm mat 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

Aktivéiert Är Ännerungen.

$ sudo sysctl -p

Kommentéiert all IPv6 Linnen an / etc / hosts. Dir wäert och hei sudo brauchen.

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

Schlussendlech kënnt Dir d'IPv6 iptables Reegele schreiwen. Erstellt eng Datei fir si op / tmp / ipv6.

* FILTER -INPUT -j REJECT -J REJECT -A OUTPUT -j REJECT OBLIGATE

Dir gesitt, si sinn einfach. Alles ofleenen

Importéiert a späichert an iptables

Dir musst dës Reegele importéiere fir datt se eppes maache kënnen. Elo ass d'Zäit komm.

Start andeems Dir alles anescht läscht wat do ass. Dir wëllt net, datt al Regelen op de Wee kommen.

$ sudo iptables -F && sudo iptables -X

Importéiert Är IPv4 an IPv6 Regelen.

$ sudo iptables-Restauréieren

Dir wäert dat wahrscheinlech ni méi maachen. Also braucht Dir en neie Package fir Är Reegele permanent ze späicheren.

$ sudo apt installéiert iptables-persistent

Wärend der Installatioun gëtt Iech gefrot Är existent Regelen ze späicheren. Äntwert "jo".

Wann Dir spéider Ännerunge maacht, kënnt Dir och Är gespäichte Konfiguratiounen aktualiséieren.

Spuert $ sudo Service netfilterpersistent

Et huet eng Zäit gedauert, awer Är Firewall ass prett. Op der nächster Säit beschäftege mir eis mat der Erstelle vun den néidegen Verschlësselungsschlësselen.

Klickt hei: Nächst Säit