Client IPsec - StrongSwan (OpenSource) http://www.strongswan.org/
Dla Przykładu:
Adres zewnętrzny naszej sieci: 123.456.789.101
Adres sieci po naszej(klienta) stronie Tunelu: 10.0.0.0/24
Adres IP Serwera IPsec: 222.111.121.212
Adres sieci po stronie serwera IPsec: 20.0.0.0/24
Faza 1-sza - algorytm szyfrowania AES 256-bitowy
Faza 1-sza - algorytm skrótu SHA
Faza 1-sza - Diffie-Hellman Group 5
Faza 1-sza - czas życia SA 24 godziny
Faza 1-sza - klucz PSK: AlaMaKotaAKotMaAle
Faza 2-ga - algorytm szyfrowania AES 256-bitowy
Faza 2-ga - algorytm skrótu SHA
Faza 2-ga - PFS Tak (D/H Group 2)
Faza 2-ga - czas życia 8 godzin/500MB
Kompilacja StrongSwan - Można z paczki http://slackbuilds.org/repository/13.37 ... trongswan/
Albo z ręki:
Kod: Zaznacz cały
wget http://download.strongswan.org/strongswan-4.6.3.tar.gz
tar zxf strongswan-4.6.3.tar.gz
cd strongswan
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--enable-cisco-quirks \
--enable-shared \
--disable-static
make && make install
Plik /etc/ipsec.conf (To są tabulatory - WAŻNE !)
Kod: Zaznacz cały
config setup
plutodebug=all
nat_traversal=yes
charonstart=yes
plutostart=yes
cachecrls=no
crlcheckinterval=0
strictcrlpolicy=no
conn %default
compress=no
authby=secret
keyexchange=ikev1
mobike=no
conn net-to-net
left=123.456.789.101 (Jesli to serwer za NAT'em Wpisujesz ip lokalne!)
leftsubnet=10.0.0.0/24
leftfirewall=yes
lefthostaccess=yes
right=222.111.121.212
rightsubnet=20.0.0.0/24
auto=start
keyingtries=%forever
ike=aes256-sha1!
ikelifetime=8h
esp=aes256-sha1!
keylife=24h
type=tunnel
pfs=yes
pfsgroup=modp1024
Kod: Zaznacz cały
: PSK "AlaMaKotaAKotMaAle"
Kod: Zaznacz cały
ipsec start
Kod: Zaznacz cały
ipsec up net-to-net
Kod: Zaznacz cały
ifconfig eth0:0 10.0.0.1
Kod: Zaznacz cały
ping 20.0.0.1
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Jeśli klient jest za NAT'em, należy otworzyć porty na BRAMIE i przekierować je na klienta w sieci
Dla przykładu:
Adres zewnętrzny naszej sieci: 123.456.789.101
Adres serwera wewnątrz naszej sieci który będzie się łączyć tunelem: 192.168.0.2
Interfejs WAN: eth1
Interfejs lokalny: eth0
Lecimy:
Kod: Zaznacz cały
iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT
iptables -A INPUT -p tcp --dport 500 -j ACCEPT
iptables -A INPUT -p tcp --dport 4500 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p udp --dport 500 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p udp --dport 4500 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 500 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 4500 -j ACCEPT
iptables -t nat -A PREROUTING -d 123.456.789.101 -p udp --dport 500 -j DNAT --to 192.168.0.2
iptables -t nat -A PREROUTING -d 123.456.789.101 -p udp --dport 4500 -j DNAT --to 192.168.0.2
iptables -t nat -A PREROUTING -d 123.456.789.101 -p tcp --dport 500 -j DNAT --to 192.168.0.2
iptables -t nat -A PREROUTING -d 123.456.789.101 -p tcp --dport 4500 -j DNAT --to 192.168.0.2
No i koniec...
Pomocne komendy:
Kod: Zaznacz cały
ipsec status # Status połączenia
ipsec statusall # Status połączenia obszerniej
iptables -L # Sprawdzasz tablice iptables po połączeniu
ipsec listalgs # Lista dostępnych DH-Group kodowań itd