Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Stavíme VPN - CIPE

CIPE je jedno z nejjednodušších dostupných VPN řešení, které je ovšem omezeno na koncové body používající Linux nebo Windows. Jeho výhodou je triviální konfigurace a efektivní fungování. CIPE je standardní součástí distribuce Red Hat Linux a právě řešením modelového VPN příkladu v této distribuci se bude zabývat tento článek.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

CIPE navazuje mezi koncovými body IP-PPP tunel, který pro zapouzdření používá UDP. Na rozdíl od jiných implementací tedy nepotřebuje ke svému fungování žádný další protokol třetí vrstvy a vystačí si s jedním UDP socketem, takže je možné jej poměrně snadno používat i v prostředí firewallů, NAT překladů apod.

O šifrování přenášených datagramů se stará rychlá symetrická šifra blowfish s délkou klíče 128 bitů. Volitelně je možné používat IDEA. Novější verze CIPE mohou používat také autentizaci založenou na asymetrických klíčích RSA.

Způsob použití CIPE nejlépe dokumentuje následující příklad. Řekněme, že máme dvě sítě 192.168.0.0/24 a 192.168.1.0/24, které jsou připojeny do Internetu skrze routery s veřejnými IP adresami 240.0.0.1 a 240.0.1.1 tak, jak je to vidět na následujícím schematu. Potřebujeme mezi těmito sítěmi vytvořit propojení tak, aby počítače na síti A mohly bezpečně komunikovat s počítači v síti B.

Nejdříve je nutné sestavit tajný klíč, který bude použit k autentizaci. Klíč má podobu 128 bitového čísla v hexadecimálním tvaru, které uložíme do souboru /etc/cipe/options-cipcb0 na oba dva routery. Soubor s klíčem musí mít nastavená práva přístupu pouze pro roota:

# echo "key 12345678901234567890abcdefabcdef" &qt;
  /etc/cipe/options-cipcb0
# chmod 0600 /etc/cipe/options-cipcb0

Nyní je potřeba vytvořit virtuální interface sloužící k vlastní realizaci spojení. V Red Hat Linuxu je k tomuto účelu připraven skript ifup-cipcb, proto postačí na routeru A vytvořit definiční soubor /etc/sysconfig/net­work-scripts/ifcfg-cipcb0 s následujícím obsahem:

DEVICE=cipcb0
ONBOOT=yes
USERCTL=yes
MYPORT=5000
PEER=240.0.1.1:5000
PTPADDR=192.168.1.253
IPADDR=192.168.0.253

Na routeru B pak ve stejném souboru:

DEVICE=cipcb0
ONBOOT=yes
USERCTL=yes
MYPORT=5000
PEER=240.0.0.1:5000
PTPADDR=192.168.0.253
IPADDR=192.168.1.253

Význam jednotlivých parametrů je následující:

  • MYPORT – číslo UDP portu, na kterém CIPE očekává spojení. Může být vcelku libovolný, pouze se ujistěte, zdali případný firewall nefiltruje spojení na tento port.
  • PEER – veřejná IP adresa a číslo CIPE portu protilehlého routeru. Na tuto adresu bude navazováno CIPE spojení skrze existující fyzické rozhraní. Touto adresou tedy musejí být routery přístupné ještě před konfigurováním CIPE tunelu.
  • IPADDR – adresa lokálního konce IP tunelu
  • PTPADDR – adresa vzdáleného konce IP tunelu

Po správném nastavení parametrů již můžeme vytvořit rozhraní pomocí příkazu „ifup cipcb0“. O vytvoření zařízení se můžeme přesvědčit příkazem ifconfig:

[root@routerA]# ifconfig cipcb0
cipcb0  Link encap:IPIP Tunnel  HWaddr
        inet addr:192.168.0.253  P-t-P:192.158.1.253
      Mask:255.255.255.255
        UP POINTOPOINT NOTRAILERS RUNNING NOARP  MTU:1442  Metric:1
        RX packets:0 errors:0 dropped:0 overruns:0 frame:0
        TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:100
        RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Rozhraní je samozřejmě nutné vytvořit i na routeru B. Fungování IP tunelu nejlépe ověříme pomocí pingu na adresu vzdáleného konce CIPE tunelu. Pokud máte rozhraní na obou stranách vytvořené a ping přesto nefunguje, hledejte problém nejspíše na firewallu, vypnutém IP-forwardingu, špatných právech k souboru s klíčem atd.

Jestliže vám funguje ping na CIPE adresu druhého routeru, můžete přistoupit k nastavení routování sítě do sítě B:

[root@routerA]# route add -net 192.168.1.0/24 dev cipcb0

podobně na routeru B:

[root@routerB]# route add -net 192.168.0.0/24 dev cipcb0

Routování je možné nastavovat v některém ze startovacích skriptů, nebo přímo v /etc/cipe/ip-up, který se volá při vytváření rozhraní. Kompletní routovací tabulka pak může na routeru A vypadat nějak takto:

[root@routerA]# netstat -rn
192.168.1.0     *        255.255.255.0   U   40  0  0 cipcb0
240.0.1.0   *        255.255.255.252 U   40  0  0 ppp0
192.168.1.253   *            255.255.255.255 UH  40  0  0 cipcb0
192.168.0.0     *            255.255.255.0   U   40  0  0 eth0
127.0.0.0       *            255.0.0.0       U   40  0  0 lo
default         240.0.1.2    0.0.0.0         UG  40  0  0 ppp0

Po nastavení routování bychom již měli být schopni transparentně navazovat spojení ze sítě A do sítě B.

davame_internetu_obsah
       

Jak vidíte, použití CIPE je snadné. Ovšem pokud máte na VPN technologii o malinko větší nároky, např. komunikaci většího počtu uzlů v multipoint režimu, případně interoperabilitu mezi jinými koncovými body, než jsou Linux a Windows (viz odkazy), nezbude vám, než se poohlédnout někde jinde. Proto se příšte budeme zabývat některou z implentací VPN technologie IPsec.

Zajímavé odkazy

Školení: Linux – Firewall, Samba, VPN

Na třídenním školení se naučíte nainstalovat a spravovat Firewall a Router, SAMBA Doménový a Souborový server. Dále si zprovozníte vlastní, zabezpečený VPN server.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 3,08

Přehled názorů

VPN na blokovane siti
anonymous 10. 9. 2002 00:56
Nový
└ 
Re: VPN na blokovane siti
Miroslav Petříček 10. 9. 2002 08:50
Nový
dynamicke IP
honza 10. 9. 2002 12:14
Nový
alternativa
hanz 10. 9. 2002 21:45
Nový
├ 
Re: alternativa
anonymní uživatel 11. 9. 2002 21:28
Nový
└ 
Re: alternativa
Michal Krause 18. 9. 2002 19:47
Nový
zariadenie
Ferec 11. 9. 2002 14:35
Nový
└ 
Re: zariadenie
Marek 11. 9. 2002 16:09
Nový
Zatez procesoru
Jiri Naprstek 19. 9. 2002 23:28
Nový
pozor na práva
Angel 21. 4. 2003 09:05
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem