Помогите пожалуйста. Есть 2 локальных сети, у каждой есть свой шлюз в интернет:
шлюз сети1:
eth1 - 1.1.1.1 - интернет,
eth0 - 192.168.0.1 - локальная сеть,
шлюз сети2:
eth1 - 2.2.2.2 - интернет,
eth0 - 192.168.1.1 - локальная сеть.
На каждом из шлюзов стоит базово-настроенный firestarter, занимающийся только раздачей интернета в локальную сеть и пробросом (открытием) некоторых портов. Нужно объединить эти сети посредством openvpn, так чтобы при обращении из сети 1 к локальному адресу из сети 2 (и наоборот) данные ходили правильно.
На шлюз сети 1 установлен openvpn server с таким конфигом /etc/openvpn/server.conf:
port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
server 10.10.10.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.0.0 255.255.255.0"
route 192.168.1.0 255.255.255.0
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
client-config-dir /etc/openvpn/ccd
В папке /etc/openvpn/ccd создан файл client1 с таким содержимым:
iroute 192.168.1.0 255.255.255.0
push "192.168.0.0 255.255.255.0"
На шлюз сети 2 установлен openvpn client с таким конфигом /etc/openvpn/client.conf:
remote 1.1.1.1 1194
client
dev tun
proto udp
nobind
user nobody
group nogroup
persist-key
persist-tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client1.crt
key /etc/openvpn/client1.key
comp-lzo
verb 4
mute 20
Ключи и сертификаты сгенерированы и подложены по нужным папкам.
Туннель поднимается, шлюзы видят друг друга, с клиентского шлюза даже пингуются компьютеры из сети 1, но компьютеры сети1 не видят компьютеров из сети 2 и наоборот.
Загвоздка, я так понимаю в отсутствии правил nat в обоих firestarter-ах для правильной обработки пакетов, предназначенных для "неродных" сетей (для сети1 - пакеты 192.168.1.0, для сети2 - пакеты 192.168.0.0).
Гугление привело к
http://forums.openvpn.net/topic7762.html#p10387, откуда были подчерпнуты строки:
iptables -A INPUT -p udp --dport 1194 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.10.10.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
но безрезультатно(( Хелп!