GNU/Linux >> Znalost Linux >  >> Linux

Jak si vytvořit vlastní VPN – podrobné pokyny

VPN – co to je?

VPN je virtuální privátní síť, která vytváří šifrovaný tunel mezi vaším zařízením a internetovým připojením. Existuje dvojitá VPN, což je současné použití dvou různých serverů VPN. Při používání VeePN jsou všechna příchozí a odchozí data šifrována. Při připojení k serveru VPN bude veškerá vaše online aktivita procházet tímto tunelem a nikoli přes poskytovatele. Kyberzločinci, kteří chtějí skenovat váš provoz, tak uvidí pouze zemi, se kterou jste připojeni, a nebudou moci krást hesla ze sociálních sítí, kreditní karty ani žádné osobní údaje.

VPN je docela dobrý nástroj pro boj s kybernetickými narušiteli a zajímá vás otázka:„Mohu si nastavit svůj vlastní server VPN? Můžete si samozřejmě nastavit vlastní VPN nebo VPN řetězení. Vytvořením serveru VPN získáte mnoho výhod:

  • Své servery a lidi ovládáte pomocí VPN.
  • Můžete si být jisti, že vaše data nikdo nevlastní.
  • Získáte přístup k mnoha blokovaným zdrojům ve vaší oblasti.
  • Budete se moci připojit k veřejné síti Wi-Fi a nikdo nebude moci převzít vaše data.
  • Provoz ze speciálních služeb můžete skrýt.

Pokyny pro vytvoření vlastního serveru VPN založeného na Linuxu Debian

Níže naleznete podrobné pokyny, jak vytvořit domácí vpn. Pečlivě dodržujte všechny tipy, protože váš výsledek bude záviset na správnosti kroků.

Zaregistrujte se u Amazon AWS a připojte se k serveru

Amazon Web Services má jednoduchý proces registrace a tipy pro vytvoření profilu, abyste si tento krok mohli projít sami. Po dokončení procesu registrace přejděte na Lightsail a vyberte geografickou zónu, ve které chcete vytvořit server VPN. Poté vytvořte novou instanci a vyberte tato data:„OS Only“, operační systém Debian 9.5. Poté se vám zobrazí plán instance – bude vám vyhovovat ten nejběžnější s 512 MB RAM.

Některé stránky jsou agresivní vůči návštěvníkům, jejichž IP adresy patří oblíbeným hostitelům, a blokují je. Podle jejich názoru se takoví návštěvníci účastní útoků DDOS. Abyste nebyli zablokováni a nemuseli sdílet jednu IP adresu s tisíci dalších strojů AWS, přejděte na Networking a pak si nezapomeňte přidělit statickou IP. Přiřaďte jej k instanci, kterou jste vytvořili.

Nyní si musíte stáhnout soukromý klíč pro přístup SSH. Soukromý klíč se nachází v sekci Účet> SSH klíče. Stáhněte si tento klíč a nahrajte jej do klienta SSH. Nastavili jsme server na Bali pomocí iPad Pro a Termius. Můžete však použít jiného klienta SSH. Dobrou alternativou je například aplikace Terminal.app zabudovaná do macOS. V našich pokynech budeme uvažovat Terminál, ale algoritmus je podobný pro ostatní klienty SSH.

Začněme jednoduše – otevřete Terminál. Terminál má známý problém s názvem „místní nastavení“. Pokud používáte Termius, tento problém zde není. Přidejte několik nových řádků do místního souboru .profile macOS, abyste odstranili problém s místním nastavením. Upravte tento soubor pomocí textového editoru nano. Pomohlo by, kdybyste dostali něco takového:nano ~/ .profile. Nyní tam musíte vložit několik řádků:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Tento soubor musíte uložit pomocí příkazu Ctrl+X. Ukončete terminál pomocí příkazu Cmd+Q. Po tomto kroku jej spusťte znovu.

Nyní musíte přesunout dříve stažený soukromý klíč Lightsail do speciálního adresáře, kde jsou uloženy klíče SSH:mv ~/Downloads/YOUR_DOWNLOADED_KEY.pem ~/.ssh. Po tomto kroku omezte práva klíče. V opačném případě macOS zablokuje jeho použití. To lze provést pomocí těchto šifer:

cd ~/ .ssh/
chmod 600 YOUR_DOWNLOADED_KEY.pem

Po tomto kroku se můžete připojit ke svému stroji Lightsail. Uvidíte speciální pole YOUR_LIGHTSAIL_IP. V něm musíte zadat externí statickou IP adresu:ssh -i YOUR_DOWNLOADED_KEY.pem admin @ YOUR_LIGHTSAIL_IP. Pokud jste vše udělali správně, uvidíte speciální nápis se všemi svými údaji.

Nakonfigurujte Debian

Všechny následující kroky musíte provést pod uživatelem root. A tak zadejte sudo su. Poté aktualizujte index balíčků v úložištích. Možná sami vidíte, že existují aktualizace:apt-get update. Nyní je vaším úkolem nainstalovat tyto aktualizace:apt-get upgrade.

Nainstalujte strongSwan

Pomocí speciální šifry nainstalujte strongSwan:apt-get install strongswan. O tom, jak nastavit strongSwan, si povíme o něco později. V tuto chvíli je nejdůležitější vytvořit certifikáty, aby vaše zařízení mohla používat VPN.

Generovat přístupové certifikáty

V našem průvodci používáme certifikáty s vlastním podpisem, protože server VPN bude používat pouze náš tým. K vytvoření certifikátů potřebujete balíček strongswan-pki. Nainstalujte jej:balíček strongswan-pki.

Nyní můžete začít vytvářet certifikáty. Prvním krokem je vytvoření kořenového certifikátu. Především je známá jako CA (Certificate Authority). Tento certifikát vám vydá další potřebné certifikáty. Certifikát můžete vytvořit v souboru cap.pem:

cd /etc/ipsec.d
ipsec pki --gen --type rsa --size 4096 --outform pem > private/ca.pem
ipsec pki --self --ca --lifetime 3650 --in private/ca.pem --type rsa --digest sha256 --dn "CN=YOUR_LIGHTSAIL_IP" --outform pem > cacerts/ca.pem

K vytvoření certifikátu pro váš VPN server potřebujete soubor debian.pem:

ipsec pki --gen --type rsa --size 4096 --outform pem > private/debian.pem
ipsec pki --pub --in private/debian.pem --type rsa | ipsec pki --issue --lifetime 3650 --digest sha256 --cacert cacerts/ca.pem --cakey private/ca.pem --dn "CN=YOUR_LIGHTSAIL_IP" --san YOUR_LIGHTSAIL_IP --flag serverAuth --outform pem > certs/debian.pem

Chcete-li vytvořit certifikát pro svá zařízení, potřebujete soubor me.pem:

ipsec pki --gen --type rsa --size 4096 --outform pem > private/me.pem 
ipsec pki --pub --in private/me.pem --type rsa | ipsec pki --issue --lifetime 3650 --digest sha256 --cacert cacerts/ca.pem --cakey private/ca.pem --dn "CN=me" --san me --flag clientAuth --outform pem > certs/me.pem

Soubor ca.pem již nepotřebujete, proto jej z důvodu bezpečnosti a spolehlivosti smažte:rm /etc/ipsec.d/private/ca.pem. Dokončili jste proces vytváření certifikátů – gratulujeme, jste téměř u konce!

Co dělat, když certifikáty trvají příliš dlouho?

Co myslíme příliš dlouhou dobou? Například vaše certifikáty jsou generovány déle než 5 sekund. Tyto údaje naznačují nízké množství entropie. Všimněte si, že vytváření certifikátů může trvat 40 až 60 minut kvůli nízkému množství entropie, což není pro vaši práci příliš dobré. Chcete-li proto zkontrolovat množství entropie, můžete zahájit další relaci na další kartě:

Pomocí výše uvedeného příkazu uvidíte množství entropie v době požadavku. Pokud chcete ovládat entropii v reálném čase, můžete použít tento příkaz:watch -n 0.25 cat /proc/sys/kernel/random/entropy_avail.

Pokud výsledek ukazuje méně než 200 entropií, doporučujeme změnit poskytovatele hostingu. Mnoho odborníků také radí nainstalovat balíček haveged, jehož úkolem je generovat entropie. Užitečnost tohoto balíčku však nebyla prokázána, takže dále bude vše záviset na vás. Když používáte Amazon Lightsail, tyto problémy nevznikají a můžete rychle generovat klíče. Chcete-li ukončit požadavek, musíte použít klávesy Ctrl + Z.

Nakonfigurujte strongSwan

Chcete-li správně nakonfigurovat strongSwan, musíte vymazat výchozí konfiguraci strongSwan. Použijte tento příkaz:> /etc/ipsec.conf. Poté si můžete vytvořit svůj vlastní v textovém editoru nano:nano /etc/ipsec.conf.

Uvidíte pole YOUR_LIGHTSAIL_IP a vaším úkolem je nahradit jej externí IP adresou stroje v AWS Lightsail. Nyní můžete vložit text takto:

include /var/lib/strongswan/ipsec.conf.inc

config setup
    	uniqueids=never
    	charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2,  mgr 2"

conn %default
    	keyexchange=ikev2
    	ike=aes128gcm16-sha2_256-prfsha256-ecp256!
    	esp=aes128gcm16-sha2_256-ecp256!
    	fragmentation=yes
    	rekey=no
    	compress=yes
    	dpdaction=clear
    	left=%any
    	leftauth=pubkey
    	leftsourceip=YOUR_LIGHTSAIL_IP
    	leftid=YOUR_LIGHTSAIL_IP
    	leftcert=debian.pem
    	leftsendcert=always
    	leftsubnet=0.0.0.0/0
    	right=%any
    	rightauth=pubkey
    	rightsourceip=10.10.10.0/24
    	rightdns=8.8.8.8,8.8.4.4

conn ikev2-pubkey
    	auto=add

Důležité! strongSwan je velmi přísný ohledně všech odsazení v konfiguraci. Proto při zadávání příkazů oddělte jednotlivé části konfigurace pomocí klávesy Tab. V našem příkladu jsme specifikovali, jak by to mělo vypadat. Můžete použít náš model nebo udělat jen jednu odrážku. Jinak nebude strongSwan fungovat.

Vytvořený soubor uložte pomocí kláves Ctrl + X. V souboru ipsec.secrets, ve kterém jsou uloženy všechny odkazy na certifikáty a ověřovací klíče, přidejte na certifikát serveru speciální ukazatel:

nano /etc/ipsec.secrets
include /var/lib/strongswan/ipsec.secrets.inc

: RSA debian.pem

Pokud jste dodrželi všechny kroky, je nastavení Strongswan dokončeno. Bylo by užitečné restartovat službu:ipsec restart. Pokud jste zadali všechny příkazy správně, server se spustí s níže uvedenou zprávou:

Spouštění strongSwan 5.5.1 IPsec [startér]…

Pokud si všimnete, že program hlásí chybu, přečtěte si systémový protokol a zjistěte, v čem je problém. Příkaz zobrazí posledních 50 řádků protokolu:tail -n 50> /var/log/syslog.

Konfigurace nastavení síťového jádra

V souboru /etc/sysctl.conf musíte provést některé změny:nano /etc/sysctl.conf. Pomocí dvou kláves Ctrl + W vyhledejte v souboru následující proměnné a proveďte v nich změny:

  • Odkomentováním této možnosti povolíte předávání paketů:net.ipv4.ip_forward =1
  • Odkomentujte tento parametr, abyste zabránili útokům MITM:net.ipv4.conf.all.accept_redirects =0
  • Odkomentováním tohoto parametru zakážete odesílání přesměrování ICMP:net.ipv4.conf.all.send_redirects =0
  • Přidejte tento parametr kamkoli do souboru na nový řádek, čímž zakážete vyhledávání PMTU:net.ipv4.ip_no_pmtu_disc =1

Načtěte nové získané hodnoty:sysctl -p. Dokončili jste konfiguraci síťových parametrů jádra.

Konfigurace iptables

iptables je speciální nástroj, který spravuje a řídí vestavěný firewall netfilter v Linuxu. Nainstalujte balíček iptables-persistent, který vám umožní uložit pravidla iptables do souboru a načíst je při každém spuštění systému:apt-get install iptables-persistent.

Po instalaci tohoto balíčku vás systém požádá o zachování aktuálních pravidel IPv4 a IPv6. Musíte zadat „ne“, protože máte nový systém a žádná data k uložení.

Nyní začněte vytvářet pravidla iptables. Pro zajištění bezpečnosti a spolehlivosti vyčistěte všechny řetězce:

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
iptables -Z

Abyste neztratili přístup k systému, povolte připojení SSH na portu 22:

iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Dalším krokem je povolení připojení na rozhraní zpětné smyčky:iptables -A INPUT -i lo -j ACCEPT. Poté povolte příchozí připojení IPSec na portech UDP 500 a 4500:

iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT

Povolit přesměrování provozu ESP:

iptables -A FORWARD --match policy --pol ipsec --dir in  --proto esp -s 10.10.10.0/24 -j ACCEPT
iptables -A FORWARD --match policy --pol ipsec --dir out --proto esp -d 10.10.10.0/24 -j ACCEPT

Server VPN je jako vlákno mezi internetem a klienty VPN, takže musíte nakonfigurovat maskování provozu:

iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -m policy --pol ipsec --dir out -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE

Nakonfigurujte maximální velikost segmentu paketu:

iptables -t mangle -A FORWARD --match policy --pol ipsec --dir in -s 10.10.10.0/24 -o eth0 -p tcp -m tcp --tcp-flags SYN, RST SYN -m tcpmss --mss 1361: 1536 -j TCPMSS --set-mss 1360

Odepřít všechna připojení třetích stran k serveru pomocí příkazů:

iptables -A INPUT -j DROP
iptables -A FORWARD -j DROP

Uložte vytvořená pravidla, aby existovala po každém restartu:

netfilter-persistent save
netfilter-persistent reload

Restartujte systém:restartujte a zkontrolujte, zda pravidla, která jste vytvořili, fungují.

Povolit připojení v Lightsail Firewall

AWS Lightsail vytvořil svůj firewall na ochranu systémů. Vyberte svou instanci, přejděte na Síť a povolte připojení na portech UDP 500 a 4500. Současně odeberte port 80 – nebudete jej potřebovat.

Vytvořte soubor .mobileconfig pro iPhone, iPad a Mac

Vaše zařízení jsou iPhone, iPad a Mac, takže můžete používat jeden profil VPN .mobileconfig. Pomohlo by, kdybyste vytvořili konfiguraci On-Demand. Pokud se služba nebo aplikace pokusí přejít do režimu offline, připojení VPN bude nadále automaticky fungovat. Vyhnete se tak situaci, kdy jste zatloukli na navázání VPN připojení a provoz šel přes poskytovatele. Použijte skript, který vám vygeneruje tuto konfiguraci:

wget https://gist.githubusercontent.com/borisovonline/955b7c583c049464c878bbe43329a521/raw/966e8a1b0a413f794280aba147b7cea0661f77a8/mobileconfig.sh

Nainstalujte balíček zsh, aby skript fungoval správně:apt-get install zsh. Upravte název serveru na základě svých nápadů a napište externí IP adresu stroje Lightsail, kterou jste dříve zadali při vytváření certifikátů:

nano mobileconfig.sh
SERVER="AWS Frankfurt" FQDN="YOUR_LIGHTSAIL_IP"

Nyní spusťte skript a získejte soubor iphone.mobileconfig:

chmod u+x mobileconfig.sh
./mobileconfig.sh > iphone.mobileconfig.

Smažte tento soubor ze serveru připojením k Transmit nebo Cyberduck – odešlete jej do všech svých zařízení přes Airdrop. Potvrďte instalaci konfigurace na zařízení. Připojení k serveru VPN navážete automaticky.

Nezapomeňte po sobě uklidit:

rm mobileconfig.sh
rm iphone.mobileconfig

Linux
  1. Jak vytvořit roli IAM v AWS pomocí Terraform

  2. Jak vytvořit fyzický svazek v Linuxu pomocí LVM

  3. Jak vytvořit RPM pro svůj vlastní skript v CentOS/RedHat

  1. Jak vytvořit VPN na Ubuntu 20.04 pomocí Wireguard

  2. Jak vytvořit uživatele Linuxu pomocí Ansible

  3. Jak vytvořit svůj web Plesk

  1. Jak vytvořit svůj vlastní videokonferenční server pomocí Jitsi Meet na Ubuntu 18.04 LTS

  2. Jak vytvořit vlastní distribuci Linuxu s Yocto na Ubuntu

  3. Jak vytvořit S3 Bucket pomocí Pythonu Boto3 na AWS