IPsec na IPv6
Když jsem byl poprvé postavený před úkol vyrobit privátní šifrovaný tunel mezi
různými pobočkami jednoho podniku, sáhnul jsem po IPsec, i když se nabízela
řada dalších možností. Pokud si pamatuji, lákalo mě na IPsec to, že jde o
technologii standardizovanou, podporovanou v IPv6. A i když jsem o IPv6 tehdy
ani neuvažoval, nechtěl jsem si zavřít ani tato vrátka a chtěl jsem získat
zkušenosti nejraději právě s IPsec.
23.2.2011 11:00 |
Petr Bravenec
| Články autora
| přečteno 9050×
Moje první VPN byla postavená na balíku OpenSwan. Fungovalo to hezky.
Neklame-li mne paměť, vytvořilo se v každém z routerů jedno síťové rozhraní
právě pro účely VPN. V pravidlech iptables se s tím pak dobře pracovalo -
veškerý provoz, který se objevil na síťovém rozhraní tap0 (nepamatuji si
název), patřil do vedlejší sítě a bylo snadné jej filtrovat.
Postupem času byl balík OpenSwan nahrazen balíkem IPsec Tools a jednoho dne
jsem byl providerovým natem (NAT - network address translation, překlad adres)
prostě donucen k přechodu. Filozofii balíku IPsec Tools jsem ovšem neporozuměl.
Síťová rozhraní určená speciálně pro VPN zmizela, veškerý provoz se objevoval
na rozhraní, kterým byl router připojený do internetu. Moje první myšlenka: "Co
tohle vymyslelo za inteligenta"? Abych se nemusel příliš trápit s pravidly v
iptables a neohrozil bezpečnost sítě, zprovoznil jsem VPN mezi dvěma servery
umístěnými vevnitř sítě, až za firewally. Neexistenci speciálního síťového rozhraní
jsem až do nedávna považoval za těžký handycap a katastrofální nedomyšlenost ze strany
autorů balíku IPsec Tools.
Před pár týdny jsem začal experimentovat s IPv6. Jednou z věcí, kterou mě napadlo
vyzkoušet, bylo samozřejmě IPsec. Život síťového administrátora je s IPv6 v
mnoha ohledech neporovnatelně jednodušší, postavím-li jako protiklad IPv4. S
IPv6 mi najednou docvaklo a pochopil jsem, proč v IPsec Tools žádné zvláštní
síťové rozhraní pro VNP neexistuje a existovat nemůže. V IPv6 totiž neexistuje
ani VPN. A jestliže něco neexistuje, nepotřebuje to ke své neexistenci žádné
zvláštní prostředky a zacházení.
Aby můj provokativní výrok nezapadl a aby byl dostatečně úderný, uvedu jej v
dalším nadpisu:
Pro IPv6 neexistuje žádná VPN
Abych své tvrzení ozřejmil, vysvětlím v prvé řadě fungování VPN s IPv4. Obvykle
se spojují dvě oddělené sítě - dejme jim adresový rozsah 10.10/16 a 10.20/16.
Mezi těmito sítěmi leží celý širý internet s adresami, které s rozsahy našich
síti nekomunikují. V IPv4 nelze poslat IP paket počítači 10.10.1.1 na počítač
10.20.1.1, protože takový paket bude zahozen pravděpodobně už na prvním routeru
mezi oběma sítěmi. Mezi sítě je proto nutné vložit vlastní - virtuální router,
který spojení mezi oběma sítěmi zprostředkuje (a udělá to šifrovaně). Aby mohl
router spojovat dvě sítě, potřebuje k tomu obvykle dvě síťové karty - proto je
neexistence dalšího síťového rozhraní v IPsec Tools tak matoucí a nepříjemná.
Jaká je však situace v IPv6? Všechny počítače v obou vnitropodnikových sítích
mají veřejnou IP adresu. Firewall mezi internetem a vnitřní sítí je
pochopitelně i nadále nutnost - nechceme přeci, aby se nám kdokoliv z internetu
procházel naší sítí. I provoz zevnitř ven je vhodné omezit - skladník ke své
práci na noční směně přístup na internet určitě nepotřebuje. I když na
firewallu neexistuje NAT a i když jsou všechny adresy veřejné, síť je díky
striktním pravidlům chráněná stejně dobře, jako na IPv4. Neexistence NATu navíc
dovoluje pravidla podstatným způsobem zjednodušit - zmenší se tak prostor pro
dělání chyb.
A teď přijde ta nejdůležitější informace: obě sítě na sebe díky veřejným
adresám vidí. Mezi sítěmi nemusí být žádný speciální router, který překlene
jinak nezdolatelnou propast internetu. V pravidlech firewallu stačí povolit
mezi oběma sítěmi veškerý provoz (s omezeními uvedenými v předchozím odstavci,
aby vám skladník na noční nestahoval péčko) a provoz mezi různými pobočkami je
zajištěn. Protože mezi sítěmi není žádný virtuální router, nepotřebujete ani
další síťové rozhraní.
Má to však háček - provoz mezi pobočkami není nijak zabezpečen. Kdokoliv na
internetu si může prohlédnout nejen IP adresy a vidí tedy i vnitřní strukturu
vaší sítě, kdokoliv na interentu si může dokonce přečíst obsah vašich datových
paketů a tím defakto prozkoumat i obsah vašich disků, aniž by jakkoli zaútočil
na některou z vašich sítí.
Zde nastupuje na scénu IPsec, který jednoduše zapne mezi oběma firewally na
obou pobočkách šifrování. Žádný tunel se nevytváří, důvod pro existenci nějaké
virtuální privátní sítě neexistuje, mezi oběma hraničními routery se prostě jen
zapne šifrování.
Prostě se jen zapne šifrování... a filozofie IPsec najednou dává smysl.
Jak IPsec funguje
Popis činnosti maximálně zjednoduším, je zbytečné sáhodlouze líčit věci, které
už jsou popsané jinde:
http://knihy.nic.cz
Ve stručnosti to shrnu aspoň takto: každý paket, který prochází skrz router se
zapnutým IPsec, se porovná s tabulkou politik. Pravidla v této tabulce si
můžete představit například jako pravidla iptables. V této tabulce je
kupříkladu uvedeno, že pakety odcházející na pobočku B se mají zašifrovat
(sedíme na routeru pobočky A). Dále je zde uvedeno pravidlo, že pakety
přicházející z pobočky B jsou zašifrované a musejí se rozšifrovat.
Pro šifrování existují dva režimy: transport a tunnel. Režim transport
zašifruje pouze obsah každého paketu. Hlavičky, kde jsou uvedené IP adresy obou
stran, zůstávají čitelné. Při průchodu přes internet tak může případný útočník
prozkoumat architekturu vaší sítě. Režim tunnel zašifruje i původní hlavičky a
v paketech zůstanou pouze IP adresy obou hraničních serverů. Případný útočník
sice vidí, že nějaká komunikace probíhá, odesilatel, místo určení a obsah
paketu mu však zůstává zcela skryt.
Politiky se nastavují pomocí příkazu setkey. V praxi je však takové nastavení
příliš složité, protože se musí nastavit veškeré parametry šifrované komunikace
a to včetně hesel. Práci s nastavením vám proto usnadní další pomocník, který
domluví veškeré parametry šifrovaného spojení za vás. V IPsec Tools k tomu
slouží program racoon.
Jak IPsec nastavit
Každý z obou uvedených programů (setkey a racoon) mají vlastní konfigurační
soubor. Navíc potřebujete ještě třetí konfigurační soubor s hesly. Nebudu to
příliš rozebírat, vložím sem přímo ukázku konfiguračních souborů s potřebnými
komentáři. Bude-li vám připadat, že je ukázka příliš stručná, najděte si na
internetu nějaký článek o nastavení IPv4 - najdete jich více než dost. Hlavním
záměrem tohoto článku bylo upozornit na snadnost a přímočarost nastavení IPsec v
IPv6 síti, ne detailní rozbor konfigurace.
Součástí ukázky jsou dva šifrované tunely, jeden v režimu transport
mezi dvěma konkrétními počítači, druhý pak v režimu tunnel mezi dvěma
sítěmi. Konfigurace na protějším routeru vypadá stejně, pouze adresy jsou
zrcadlově přehozené.
Propojovat budeme síť 2001:db8:a::/48 (síť A) a 2001:db8:b/48 (síť B), pro
transport pak přibereme i počítač s adresou 2001:db8:c::1. Routery mají adresy
2001:db8:a::1 a 2001:db8:b::1.
/etc/racoon/racoon.conf
path pre_shared_key "/etc/racoon/psk.txt";
# Racoon bude poslouchat na této adrese
# Máte-li nastavené i IPv4 adresy, můžete uvést i ty.
listen {
isakmp 2001:db8:a::1;
}
# Slovem 'anonymous' se nastavují defaultní parametry.
# Jednotlivá spojení se budou odkazovat na tuto část
remote anonymous {
exchange_mode main;
generate_policy on;
proposal {
encryption_algorithm 3des;
hash_algorithm md5;
authentication_method pre_shared_key;
dh_group modp1024;
}
}
# Tato SA se použije pro všechna spojení, nejsou-li pro spojení
# nastavené jiné parametry
sainfo anonymous {
pfs_group modp768;
encryption_algorithm 3des;
authentication_algorithm hmac_md5;
compression_algorithm deflate;
}
# Seznam počítačů (routerů), se kterými navazujeme spojení
# pro výměnu klíčů a nastavení parametrů linky
remote 2001:db8:b::1 inherit anonymous { }
remote 2001:db8:c::1 inherit anonymous { }
/etc/racoon/setkey.conf
#!/sbin/setkey -f
flush;
spdflush;
# tunel do sítě B
# Na prvním řádku jsou sítě, mezi kterými se komunikuje,
# na druhé řádku jsou uvedené IP adresy routerů. Ty
# zabezpečují síťový provoz, hlavičky jsou nastavené na
# tyto IP adresy
# Politika pro odchozí pakety
spdadd 2001:db8:a::1/48 2001:db8:b::1/48 any -P out ipsec
esp/tunnel/2001:db8:a::1-2001:db8:b::1/require ;
# Politika pro příchozí pakety
spdadd 2001:db8:b::1/48 2001:db8:a::1/48 any -P in ipsec
esp/tunnel/2001:db8:b::1-2001:db8:a::1/require ;
# transport na host C
# Nastavení je podobné jako v režimu tunnel
# Nastavení hraničních routerů chybí, není potřeba,
# protože hlavičky IP paketu zůstávají původní, adresy se nemění
# Politika pro odchozí pakety
spdadd 2001:db8:a::1/48 2001:db8:c::1/48 any -P out ipsec
esp/transport//require ;
# Politika pro příchozí pakety
spdadd 2001:db8:c::1/48 2001:db8:a::1/48 any -P in ipsec
esp/transport//require ;
/etc/racoon/psk.txt
2001:db8:a::1 heslo_pro_router_A
2001:db8:c::1 heslo_pro_pocitac_C
V souboru racoon.conf si všimněte konstrukcí uvedených jako anonymous.
Jejich pomocí se nastaví defaultní hodnoty - v žádném jiném návodu jsem zatím
takto provedenou konfiguraci neviděl. Díky této konfiguraci oceníte
snadnost nastavení, máte-li šifrovaných spojení větší množství. Potom vám stačí
zadávat pouze řádek "remote 2001:db8:b::1 inherit anonymous {}", heslo, a
zhruba čtyři řádky do souboru s politikami (setkey.conf).
Verze pro tisk
|
Nejsou žádné diskuzní příspěvky u dané položky.
Příspívat do diskuze mohou pouze registrovaní uživatelé.
|
|

Vyhledávání software

Vyhledávání článků
28.11.2018 23:56 /František Kučera Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1
12.11.2018 21:28 /Redakce Linuxsoft.cz 22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář
6.11.2018 2:04 /František Kučera Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
4.10.2018 21:30 /Ondřej Čečák LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář
18.9.2018 23:30 /František Kučera Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
9.9.2018 14:15 /Redakce Linuxsoft.cz 20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business.
Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář
12.8.2018 16:58 /František Kučera Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář
16.7.2018 1:05 /František Kučera Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář
Více ...
Přidat zprávičku
 Poslední diskuze
31.7.2023 14:13 /
Linda Graham iPhone Services
30.11.2022 9:32 /
Kyle McDermott Hosting download unavailable
13.12.2018 10:57 /
Jan Mareš Re: zavináč
2.12.2018 23:56 /
František Kučera Sraz
5.10.2018 17:12 /
Jakub Kuljovsky Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?
Více ...
|