Internet Info, s.r.o. Lupa Root Měšec Podnikatel DigiZone Slunečnice Vitalianew Bomba Navrcholu Weblogy Jagg Woko Dobrý web Computer.cz SK: MojeLinky

Hlavní navigace

Tuneluji, tuneluješ, tunelujeme: IPSec

Další možností, jak vytvořit tunel mezi dvěma sítěmi, je IPSec. To je podstatně mocnější technologie. Nejen, že vytvoří tunel, ale zároveň sama nastaví routing a hlavně umí zajistit šifrování přenášeného provozu.

Její nasazení ale není úplně bezproblémové. Tím prvním, na co narazíte, je fakt, že IPSec není standardní součásti kernelu řady 2.4. Některé distribuce ho v jádru přesto mají (SuSE, Mandrake, Debian), jinde však musíte patchovat kernel sami. Jádra řady 2.5 již mají IPSec podporu standardně zabudovanou. Tedy, přesněji řečeno, mají podporu IPv6, které IPSec obsahuje automaticky. Ale nebojte se, i tento IPSec lze používat v IPv4 sítích.

Dále ještě potřebujete balík programů pro práci s IPSec. Ten buď najdete ve své distribuci (v Debianu balík freeswan), nebo je, stejně jako patch do kernelu, dostupný na strákách projektu: www.freeswan.org.

Nyní se trochu podíváme na konfiguraci IPSecu. Konfigurace samotná je obsažena v souboru /etc/ipsec.conf. Na počátku jsou globální nastavení:

config setup
    interfaces=%defaultroute
    klipsdebug=none
    plutodebug=none
    plutoload=%search
    plutostart=%search
    uniqueids=yes

Zde se nastavují ladící výpisy a také, která IPSec spojení se mají automaticky navazovat po startu IPSecu. (Výchozí nastavení toto nechává podle nastavení u jednotlivých spojení.)

Důležitou položkou globální konfigurace je interfaces. V nastavení výše se říká, že IPSec má používat zařízení, přes které jde default route – zjednodušeně řečeno, zařízení, kterým odchází packety do internetu. Toto nastavení je také ve většině případů správné. V některých situacích budeme chtít používat IPSec na jiném zařízení nebo na více zařízeních. Toho dosáhneme nastavením:

interfaces=ipsec0=eth1

případně:

interfaces="ipsec0=eth1 ipsec1=ppp0"

Dále již následují samotné definice tunelu. Definici tunelu si zde postupně po řádcích rozebereme. Nejprve je jméno tunelu:

conn centrala-pobocka1

Dále vidíte definici „levého“ konce tunelu – jeho IP a podsíť, která se za ním nachází:

left=123.45.67.90
leftsubnet=192.168.0.0/16

Stejně tak následuje definice pro pravý konec tunelu:

right=123.45.67.80
rightsubnet=192.168.1.0/24

Zde bych se na chvíli zastavil. Jak vidíte, IPSec opravdu definuje propojení sítí – v konfiguraci se mu předkládá definice sítí, které má spojovat, a vnější IP routerů. Tedy vše je v konfiguraci a kromě speciálních případů se nemusí po konfiguraci tunelu nic měnit, IPSec má dostatek informací, aby vše zajistil sám. Jak jste si možná všimli, používám i v tomto příkladu síťovou konfiguraci firmy použitou už přivysvětlování GRE v minulém dílu.

Dále je pěkné, že se nerozlišuje místní a vzdálený konec tunelu. V definici se pouze určí „levá“ a „pravá“ strana tunelu. IPSec automaticky pozná, na které „straně“ se nachází počítač, na němž je spuštěn. Tak může být konfigurace tunelu na obou koncích stejná, což snižuje chybovost při konfiguraci.

Nyní řekneme IPSecu, jaké budeme používat klíčování. IPSec umí buď manuální, kde se klíč jednou nastaví a šifruje se jím veškerá komunikace, nebo automatické, kdy se klíč použije pouze pro navázání spojení a následně se vygenerují a používají náhodné klíče, které se v pravidelných intervalech obměňují. Automatické klíčování ztěžuje rozšifrování komunikace při úniku klíče a doporučuji jej používat. Nastavíme jej direktivami:

authby=rsasig
leftrsasigkey=0sDJ9jdDFJ390FJjf3m...
rightrsasigkey=0sMof9dfj2/fwedf...

Klíče získáme tak, že na levém počítači zadáme příkaz:

ipsec showhostkey --left

a na pravém:

ipsec showhostkey --right

a výstupy těchto příkazů zkopírujeme do konfigurace. Pozor při kopírování, abychom zkopírovali celé klíče (stejně tak při přenášení konfigurace na druhý stroj systémem copy&paste je toto častý problém). Pokud nemáme host key (většinou se vytváří už při instalaci balíku), vytvoříme si ho příkazy:

ipsec newhostkey --output /etc/ipsec.secrets --hostname muj.pocitac.cz
chmod 600 /etc/ipsec.secrets

Následující direktiva určuje, co se s tunelem bude dít při startu IPSecu:

auto=start

Pokud uvedeme auto=add, IPSec si po (re)startu nahraje do paměti definici tunelu. Pokud uvedeme auto=start, pokusí se navíc tunel nastartovat. Tak to bude nastaveno u většiny odladěných tunelů. Nyní můžeme nastartovat IPSec pomocí skriptu v /etc/init.d a doufat, že vše bude fungovat. Já však spíše radím postupné oživování:

Nejprve se ujistíme, že nebude problém s firewally. IPSec potřebuje pro své fungování, aby na oba počítače docházely UDP packety na port 500 a dále packety s IP protokoly číslo 50 a 51.

Pak podle příkladu výše vytvoříme konfiguraci v /etc/ipsec.conf a rozkopírujeme ji na oba stroje. Nic nerestartujeme. Zadáme příkaz:

ipsec auto --add centrala-pobocka1

na obou počítačích. Rozebereme si příkaz:

  • ipsec – Příkaz pro práci s IPSecem.
  • auto – Budeme pracovat s tunelem s automatickým klíčováním
  • –add centrala-pobocka1 – Chceme přidat (nahrát) do paměti tunel tohoto jména

Potom můžeme zadat příkaz ipsec auto –status, který nám vypíše tunely nahrané v paměti a jejich stavy.

Nyní nadešel čas tunel spustit. To se provede příkazem ipsec auto –up centrala-pobocka1. Příkaz stačí zadat na jednom počítači, na druhém se tunel nastartuje sám, musí ale být nahrán v paměti. Projde-li všechno v pořádku, uvidíme výstup podobný tomuto:

gw:/etc# ipsec auto --up centrala-pobocka1
104 "centrala-pobocka1" #3: STATE_MAIN_I1: initiate
106 "centrala-pobocka1" #3: STATE_MAIN_I2: sent MI2, expecting MR2
108 "centrala-pobocka1" #3: STATE_MAIN_I3: sent MI3, expecting MR3
004 "centrala-pobocka1" #4: STATE_MAIN_I4: ISAKMP SA established
112 "centrala-pobocka1" #4: STATE_QUICK_I1: initiate
004 "centrala-pobocka1" #4: STATE_QUICK_I2: sent QI2, IPsec SA established

Funkčnost tunelu můžeme zkontrolovat opět pomocí ipsec auto –status. Funkční tunel má v (trochu nepřehledném) statutu napsáno IPsec SA established a ISAKMP SA established.

Pokud se spojení nenavazuje, uvidíte následující:

gw:/etc# ipsec auto --up centrala-pobocka1
104 "centrala-pobocka1" #2: STATE_MAIN_I1: initiate
010 "centrala-pobocka1" #2: STATE_MAIN_I1: retransmission; will wait 20s for response
010 "centrala-pobocka1" #2: STATE_MAIN_I1: retransmission; will wait 40s for response
010 "centrala-pobocka1" #2: STATE_MAIN_I1: retransmission; will wait 40s for response
...

Je možné, že neprocházejí packety na UDP port 500 v jednom směru. Zkuste předchozí příkaz zastavit a dát ipsec auto –up centrala-pobocka1 na druhém počítači. Je rovněž možné, že jste při přenosu konfigurace udělali chybu. Pokud ano, tento příkaz ji vypíše. Chybu v konfiguraci je nutné opravit. Ale nestačí pouze změnit soubor. Je nutné pomocí:

    ipsec auto --delete centrala-pobocka1
    ipsec auto --add centrala-pobocka1

znovu nahrát konfiguraci do paměti IPSecu. Nyní můžeme zkusit celý proces znovu.

Pokud tunel naběhne, měl by projít PING mezi počítači z obou sítí (opět, stejně jako u GRE, pozor na firewally). Záměrně říkám počítači obou sítí, protože PING mezi konci tunelu neprojde, proto je potřeba trochu upravit routing. O tom ale až příště.

Školení: SQL pro začátečníky

Akademie Root
  • k čemu nám slouží databáze
  • organizace dat v tabulkách
  • základní příkazy pro obsluhu databáze
  • využití příkladů v praktických ukázkách

Detailní informace o kurzu...

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

Přehled názorů

pekny clanok
dany 17. 7. 2003 02:21
wifi maskarada a ipsec
CIJOML 17. 7. 2003 06:35
└ 
Re: wifi maskarada a ipsec
Michal Kara 17. 7. 2003 07:31
 
├ 
Re: wifi maskarada a ipsec
Michal Kara 17. 7. 2003 09:42
 
│
└ 
Re: wifi maskarada a ipsec
Michal Ludvig 17. 7. 2003 10:39
 
└ 
Re: wifi maskarada a ipsec
Peter Ronai 17. 7. 2003 11:27
 
 
└ 
Re: ESP alebo zastaralejsie AH?
dasno 17. 7. 2003 18:14
Kompatibilita IPsec u různých platforem
Martin Kočtář 17. 7. 2003 09:16
├ 
Re: Kompatibilita IPsec u různých platforem
Jerry (bez trojky) 17. 7. 2003 09:35
├ 
Re: Kompatibilita IPsec u různých platforem
Peter Ronai 17. 7. 2003 11:48
└ 
Re: Kompatibilita IPsec u různých platforem
Martin Kočtář 17. 7. 2003 16:11
 
└ 
Re: Kompatibilita IPsec u různých platforem
Jerry (bez trojky) 18. 7. 2003 00:25
spatna maska
Pavouk 17. 7. 2003 10:46
└ 
Re: spatna maska
Michal Kara 17. 7. 2003 11:22
Ipsec & RoadWarriors
Body 17. 7. 2003 11:12
├ 
Re: Ipsec & RoadWarriors
Michal Kara 17. 7. 2003 11:26
└ 
Re: Ipsec & RoadWarriors
Peter Ronai 17. 7. 2003 11:44
 
└ 
Re: Ipsec & RoadWarriors
Michal Kašpar 17. 7. 2003 15:11
Right, Left v konfiguraci
Petr22 17. 7. 2003 12:53
├ 
Re: Right, Left v konfiguraci
Michal Kara 17. 7. 2003 12:58
└ 
Re: Right, Left v konfiguraci
Michal Kubeček 19. 7. 2003 20:30
A co pobocka1-pobocka2?
Milan Vancura 17. 7. 2003 13:07
└ 
Re: A co pobocka1-pobocka2?
Michal Kara 17. 7. 2003 13:18
Super Clanok
dusan 17. 7. 2003 13:42
bez titulku
Dildo 17. 7. 2003 15:49
a co dnesni standardy: OPENVPN a VTUN ?
Zdeněk Štěpánek 17. 7. 2003 18:52
├ 
Re: a co dnesni standardy: OPENVPN a VTUN ?
fissie 17. 7. 2003 21:51
│
└ 
Re: a co dnesni standardy: OPENVPN a VTUN ?
Zdeněk Štěpánek 18. 7. 2003 22:29
│
 
└ 
Re: a co dnesni standardy: OPENVPN a VTUN ?
Michal Kubeček 19. 7. 2003 20:40
│
 
 
└ 
Re: a co dnesni standardy: OPENVPN a VTUN ?
Zdeněk Štěpánek 20. 7. 2003 18:07
│
 
 
 
└ 
Re: a co dnesni standardy: OPENVPN a VTUN ?
Michal Kubeček 20. 7. 2003 18:47
└ 
Re: a co dnesni standardy: OPENVPN a VTUN ?
Michal Kara 18. 7. 2003 08:11
IPSec a Mandrake 9.1
Jarda 20. 7. 2003 11:28
├ 
Re: IPSec a Mandrake 9.1
Danny 22. 7. 2003 18:10
├ 
Re: IPSec a Mandrake 9.1
entexsoft 25. 7. 2003 11:51
└ 
Re: IPSec a Mandrake 9.1
Lubomír Klubus 28. 7. 2003 11:49
ipsec dynamicke IP a pripojenim pres dial up?
Franta 22. 7. 2003 10:33
└ 
Re: ipsec dynamicke IP a pripojenim pres dial up?
Michal Kubeček 22. 7. 2003 15:23
Zebedee
NB 22. 7. 2003 17:48
Kompatabilita Cisco a Linux
Michal Vlček 1. 10. 2003 12:37
       
Zasílat nově přidané příspěvky e-mailem

Zasílání upozornění na nové příspěvky je dostupné jen registrovaným uživatelům. Proto budete před aktivací zasílání názorů přesměrováni na přihlašovací stránku, ze které se můžete případně také zaregistrovat.