Доброго времени суток.
Поднял на своей машине два виртуальных хоста (Ubuntu 10.04.2 server).
Настроил между ними ipsec типа net-net, хотя могу и ошибаться, вот на всякий конфик
version 2.0
# ipsec.conf - strongSwan IPsec configuration file
# basic configuration
config setup
interfaces="ipsec0=eth0"
uniqueids=yes
plutodebug=none
klipsdebug=none
charonstart=yes
plutostart=yes
# Add connections here.
conn %default
keyingtries=0
leftrsasigkey=%cert
rightrsasigkey=%cert
ikelifetime=7200s
keylife=900s
rekeymargin=15s
left=10.1.0.1
leftcert=srv01.pem
ike=3des-sha1-modp1024
esp=3des-sha1
pfs=yes
# Sample VPN connections
conn tun
left=10.1.0.1
leftsubnet=10.1.0.0/16
leftcert=srv01.pem
right=10.2.0.1
rightsubnet=10.2.0.0/16
rightid="C=RU, ST=Russia, L=Moscow, O=Home, CN=srv02, E=supergubka@mail.ru"
auto=start
На второйсервере естественно все наоборот, запускаю проверяю, все шифруется туда обратно пакеты гоняются. ssh srv01<--->srv02 Тоже все гуд.
Далее настраиваю элементарные правила iptables
#!/bin/bash
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -p all -i lo -j ACCEPT
-A OUTPUT -p all -o lo -j ACCEPT
# ISAKMP and ESP
-A INPUT -p udp -i eth0 -d 10.1.0.1 -s 10.2.0.1 --sport 500 --dport 500 -j ACCEPT
-A OUTPUT -p udp -o eth0 -s 10.1.0.1 -d 10.2.0.1 --sport 500 --dport 500 -j ACCEPT
-A INPUT -p esp -i eth0 -d 10.1.0.1 -s 10.2.0.1 -j ACCEPT
-A OUTPUT -p esp -o eth0 -s 10.1.0.1 -d 10.2.0.1 -j ACCEPT
# SSH <->
-A INPUT -p tcp -m state -i eth0 -d 10.1.0.1 -s 10.2.0.1 --dport 1024:65535 --sport 22 --state ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m state -o eth0 -s 10.1.0.1 -d 10.2.0.1 --sport 1024:65535 --dport 22 --state NEW,ESTABLISHED -j ACCEPT
# ICMP
-A INPUT -p icmp -i eth0 -j ACCEPT
-A OUTPUT -p icmp -o eth0 -j ACCEPT
# Drop b&m cast
-A INPUT -p udp -i eth0 --dport 67:68 -j DROP
-A INPUT -p udp -i eth0 --dport 137:139 -j DROP
-A OUTPUT -p udp -o eth0 --dport 137:139 -j DROP
-A INPUT -p 2 -i eth0 -s 0.0.0.0 -d 224.0.0.1 -j DROP
# LOG & DROP RULES
-A INPUT -j LOG
-A OUTPUT -j LOG
-A FORWARD -j LOG
-A INPUT -j DROP
-A OUTPUT -j DROP
-A FORWARD -j DROP
COMMIT
SSH перестает работать. ТСPDUMP на сервере к которому обращаюсь кажет что поступают пакеты SYN но ACK почемуто не отдается.
Не имею опыта настройки iptables, буду рад любой помощи.
Решение:
# SSH <->
-A INPUT -p tcp -m state -i eth0 -d 10.1.0.1 -s 10.2.0.1 --dport 1024:65535 --sport 22 --state ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m state -o eth0 -s 10.1.0.1 -d 10.2.0.1 --sport 1024:65535 --dport 22 --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state -i eth0 -d 10.1.0.1 -s 10.2.0.1 --sport 1024:65535 --dport 22 --state ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m state -o eth0 -s 10.1.0.1 -d 10.2.0.1 --dport 1024:65535 --sport 22 --state NEW,ESTABLISHED -j ACCEPT
И всего то

как оказалось банальная невнимательность...совсем забыл, что второму серверу надо тоже открывать доступ...ну и еще один плюс в пользу отказа от копипасты
