Я пытаюсь установить VPN-соединение со сторонним VPN-сайтом, а затем перенаправить трафик с моих внутренних компьютеров (на данный момент ssh и ping) на VPN-сайт с помощью IPTables.
Стороннее <-> (tun0 / eth0) Linux VPN Box (eth1) <-> Windows7TestBox
Я работаю на CentOS 6.3 Linux и имею два сетевых подключения: eth0-> public eth1-> private. Я использую vpnc-0.5.3-4, который в настоящее время подключается к моему месту назначения.
Когда я подключаюсь, я могу пропинговать IP-адреса назначения, но это все, что я могу.
ping -I tun0 10.1.33.26 # success
ping -I eth0 10.1.33.26 # fail
ping -I eth1 10.1.33.26 # fail
У меня есть тестовый блок Windows 7 для частной сети, настроенный так, чтобы в качестве шлюза использовалась сеть eth1 (частная) моего VPN-сервера, и я могу нормально пинговать его. Мне нужны IPTables для отправки трафика Windows 7 через VPN-туннель.
В течение нескольких дней я пробовал множество различных конфигураций IPTables с этого и других сайтов, остальные примеры либо слишком просты, либо слишком сложны. Единственное, что делает этот сервер, - это подключается к VPN и перенаправляет весь трафик.
Так что здесь мы можем все «промыть» и начать с нуля. Это чистый лист.
#!/bin/bash
ipt="/sbin/iptables"
# Zero out all counters
$ipt -Z
$ipt -t nat -Z
$ipt -t mangle -Z
# Flush all active rules, delete all chains
$ipt -F
$ipt -X
$ipt -t nat -F
$ipt -t nat -X
$ipt -t mangle -F
$ipt -t mangle -X
$ipt -P INPUT ACCEPT
$ipt -P FORWARD ACCEPT
$ipt -P OUTPUT ACCEPT
$ipt -t nat -A POSTROUTING -o tun0 -j MASQUERADE
$ipt -A FORWARD -i eth1 -o eth0 -j ACCEPT
$ipt -A FORWARD -i eth0 -o eth1 -j ACCEPT
$ipt -A FORWARD -i eth0 -o tun0 -j ACCEPT
$ipt -A FORWARD -i tun0 -o eth0 -j ACCEPT
Опять же, я сделал много вариантов вышеупомянутых и многих других правил из других сообщений, но не смог продвинуться вперед. Вроде такая простая задача, и все же ....