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