У меня следующая установка
На Сервере включена переадресация NAT:
/sbin/iptables -t nat -A POSTROUTING -d 10.10.10.0/24 -o tun0 -j MASQUERADE
# cat /proc/sys/net/ipv4/ip_forward
1
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Я могу выполнить трассировку от клиента к серверу
# traceroute 10.10.10.10
traceroute to 10.10.10.10 (10.10.10.10), 30 hops max, 60 byte packets
1 (192.168.21.1) 0.283 ms 0.211 ms 0.165 ms ## Router
2 (192.168.21.11) 0.262 ms 0.249 ms 0.213 ms ## Server
3 (172.17.4.1) 40.356 ms 83.965 ms 83.915 ms ## OpenVPN Subnet
4 (10.10.10.10) 83.778 ms 83.626 ms 83.488 ms
Но мне почему-то не удается подключиться с клиента к серверу. Вот что сообщает tcpdump, когда я пытаюсь подключиться к серверу через SSH:
# tcpdump -i tun0
tcpdump: WARNING: arptype 65534 not supported by libpcap - falling back to cooked socket
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
08:05:16.734848 IP 172.17.4.6.58710 > 10.10.10.10.ssh: S 2851123862:2851123862(0) win 5840 <mss 1460,sackOK,timestamp 597224955 0,nop,wscale 6>
08:05:16.776264 IP 10.10.10.10.ssh > 172.17.4.6.58710: S 658436853:658436853(0) ack 2851123863 win 5792 <mss 1366,sackOK,timestamp 296951268 597224955,nop,wscale 5>
08:05:20.986415 IP 10.10.10.10.ssh > 172.17.4.6.58710: S 658436853:658436853(0) ack 2851123863 win 5792 <mss 1366,sackOK,timestamp 296952321 597224955,nop,wscale 5>
08:05:26.985854 IP 10.10.10.10.ssh > 172.17.4.6.58710: S 658436853:658436853(0) ack 2851123863 win 5792 <mss 1366,sackOK,timestamp 296953821 597224955,nop,wscale 5>
Кажется, что пакеты с сервера не направляются обратно клиенту.
Ну, это не проблема iptables. Проблема заключалась в том, что я использую m0n0wall в качестве маршрутизатора и настраиваю маршруты через m0n0wall. Поскольку m0n0wall проталкивает эти маршруты через брандмауэр, необходимо включить правило «Обход правил брандмауэра для трафика на одном интерфейсе», чтобы m0n0wall не останавливал пакеты.
Проблема была очень похожа на: http://forum.m0n0.ch/index.php?topic=381.0