Tomáš Peter
Dalibor Michalec
Pojem IPsec(IP Security Protocol) definuje přidání bezpečnostního mechanismu do standardní IP vrstvy. Bezpečnostní mechanismy, které definuje IPsec jsou dva:
Jak již bylo řečeno výše toto rozšíření je definováno na IP ůrovni. Je tedy nezávislé na protokolech vyšších vrstev. Aplikace nemusí podporovat žádné speciální komunikační metody, aby mohla komunikovat přes IPsec. Mohou se vytvářet šifrované tunely (VPN) nebo se může jenom šifrovat komunikace mezi dvěma počítači.
Rodina protokolů IPSec se skládá z těchto protokolů:
AH v tunnel módu v IPv4
ESP v tunnel módu v IPv4
FreeS/WAN implementuje protokoly ESP a AH na úrovni jádra částí nazvanou KLIPS a protokol IKE, nastavení směrování a další podpůrné služby prostřednictvím démonu Pluto.
apt-get update
apt-get install kernel-patch-freeswan
apt-get install kernel-source-2.4.18
cd /usr/src/
tar xvfj kernel-source-2.4.18.tar.bz2
make-kpkg:
apt-get install kernel-package
cd /usr/src/kernel-source-2.4.18
PATCH_THE_KERNEL=YES make-kpkg --config=menuconfig
--revision=ipsec1 kernel_image
dpkg -i /usr/src/kernel-image-2.4.18-ipsec1.deb
apt-get install freeswan
/etc/ipsec.secrets
.
/etc/network/options:
ip_forward=no
spoofprotect=no
syncookies=no
iptables
.
iptables -A INPUT -p UDP -i ipsec0 --dport 500 -j ACCEPT
iptables -A INPUT -p 50 -j ACCEPT
iptables -A OUTPUT -p 50 -j ACCEPT
iptables -A INPUT -p 51 -j ACCEPT
iptables -A OUTPUT -p 51 -j ACCEPT
Spojení mezi dvěma počítači se vytvoří přidáním sekce conn název_spojení
do souboru
/etc/ipsec.conf
, ve které se pomocí parametrů a jejich hodnot nastaví vlastnosti spojení.
Spojení mezi počítači s adresami 158.196.135.21 a 158.196.135.22 se vytvoří následovně:
conn MicPet
left=158.196.135.21
right=158.196.135.22
auth=ah
auto=route
leftrsasigkey=0sAQN1+...
rightrsasigkey=0sAQNgT...
Parametry left
a right
definují IP adresy levé a pravé strany spojení.
Parametr auth
říká, jestli se má použít protokol AH.
Parametr auto
ovlivňuje, co se s tímto spojením bude dít při bootování systému. V tomto případě
se spojení aktivuje.
Parametry leftrsasigkey
a rightrsasigkey
jsou veřejné klíče levé a pravé strany spojení.
Závěr
Výsledkem našeho snažení je bezpečná komunikace mezi dvěma stroji (konkrétně 158.196.135.22 a 158.196.135.21)
přes rozhraní „ipsec0“. Používá se protokol ESP, autentifikaci zajišťuje hlavička AH. Na obou stranách
(levé i pravé) je soubor /etc/ipsec.conf
,
který obsahuje konfiguraci spojení conn
. Ta je shodná pro obě strany, obsahuje mj. ip identifikace
a veřejné klíče. Klíče jsme „nakopírovali“ manuálně ze souborů /etc/ipsec.secret
.
Potom jsme vyzkoušeli připojit ještě jeden počítač „.17“ (158.196.135.21 a 158.196.135.17).
Postup byl stejný, ale na „.21“ jsou nyní v ipsec.conf
nakonfigurována dvě spojení conn
.
(Pozn. Kdybychom chtěli tímto způsobem propojit n strojů každý s každým, znamenalo by to n(n-1)/2
konfigurací na každém z nich)
Kryptovaný přenos dat jsme otestovali zachycením paketů programem Ethereal na „cizím“ stroji,
zatímco jsme přenášeli pomocí protokolu ftp textový soubor. Byly zachyceny pouze ESP pakety, které
v sobě samozřejmě obsahují i datovou část ftp paketů, ovšem v zašifrované podobě.
ipsec0
(zachycen ftp přenos),
AH - autentifikace, ESP - šifrovaná data