OpenVPN z předchozího cvičení nepoužívá IPsec (je použito SSL/TLS). Nejprve je zapotřebí naistalovat podporu IPsec pomocí příkazu apt-get install ipsec-tools
.
Upravíme soubor /etc/ipsec-tools.conf
(popřípadě vytvoříme nový konfigurační soubor).
#!/sbin/setkey -f
flush;
spdflush;
# ESP SAs using 192 bit long keys (168 + 24 parity)
add 192.168.1.10 192.168.1.12 esp 0x201 -E 3des-cbc 0x012345678901234567890123456789012345678901234567;
add 192.168.1.10 192.168.1.12 esp 0x301 -E 3des-cbc 0x987654321098765432109876543210987654321098765432;
# Security policies
spdadd 192.168.1.10 192.168.1.12 any -P out ipsec
esp/transport//require;
spdadd 192.168.1.12 192.168.1.10 any -P in ipsec
esp/transport//require;
Poslední hodnoty na řádcích představují klíče. Ty je možné vygenerovat například příkazem klic=`dd if=/dev/random count=48 bs=1| xxd -ps`
. Klíče jsou vyměňovány automaticky pomocí Diffiho-Hellmanova schématu pro výměnu klíče.
Kromé módu ESP je možné využít mód AH.
Stejný konfigurační soubor vytvoříme na druhém počítači (jiné klíče), jen prohodíme řádky in
a out
. Následně restartujeme službu na obouch strojích příkazem /etc/init.d/setkey restart
. Komunikaci otestujeme příkazem ping 192.168.1.12
a vypsáním SAD a SPD (setkey -D
). Kromě transportního režimu můžeme nastavit i režim tunelovací.
Nejprve je zapotřebí naistalovat balíček apt-get install racoon
. Do souboru /etc/racoon/psk.txt
přidáme záznam (IP adresa druhého stroje).
192.168.1.12 abcdef
Upravíme soubor /etc/racoon/racoon.conf
path pre_shared_key "/etc/racoon/psk.txt";
remote 192.168.1.12 {
exchange_mode main,aggresive;
proposal {
encryption_algorithm 3des;
hash_algorithm md5;
authentication_method pre_shared_key;
dh_group modp1024;
}
}
sainfo anonymous {
pfs_group modp768;
lifetime time 1 hour;
encryption_algorithm 3des, aes;
authentication_algorithm hmac_md5, hmac_sha1;
compression_algorithm deflate;
}
V konfiguračním souboru /etc/ipsec-tools.conf
je třeba zakomentovat řádky add ...
z manuální konfigurace. Soubor psk.txt
a racoon.conf
vytvoříme i na druhém PC (korektně nahradíme IP adresy). Provedeme restart služeb na všech PC /etc/init.d/racoon restart
. Stejně jako u manuálního režimu, je možné použít i tunelový režim.
# Create policies for racoon
spdadd 10.0.0.1 10.0.0.2 any -P out ipsec
esp/tunnel/192.168.1.10-192.168.1.12/require;
spdadd 10.0.0.2 10.0.0.1 any -P in ipsec
esp/tunnel/192.168.1.12-192.168.1.10/require;
Přidělíme IP adresu tunelové síti.
ip addr add 10.0.0.1 dev eth1
ip route add to 10.0.0.2 via 10.0.0.1 src 10.0.0.1
Vytvoření IPsec VPN za použítí Openswan.
Vytvořte IPsec spojení mezimezi sheep1
a wolf
.
© Martin Trnečka