Я пытаюсь перенаправить трафик с устройства (которое я назову «целевым»), подключенного к моему серверу Ubuntu (которое я назову «хостом»), на серверы в удаленном офисе.
Хост использует Racoon IPSec VPN, подключенный через сетевую карту, называемую efix
. Это создает псевдоним IF, называемый efix:0
имеющий IP-адрес 192.168.190.132
. Он может подключаться к серверам.
Связь между хостом и целью - это канал Ethernet с использованием IP-адресов. 10.0.0.1
на IF eusb
для хозяина и 10.0.0.2
на IF eth0
для цели.
Я установил следующие маршруты и записи iptables:
На цели:
10.0.0.0 * 255.255.255.0 U 0 0 0 eth0
default 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
На хосте:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to 192.168.190.132
iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT
iptables -A FORWARD -d 10.0.0.0/24 -j ACCEPT
Используя Wireshark для мониторинга HTTP GET, я вижу SYN
пакеты от цели проходят весь путь до сервера, но сервер SYNACK
пакеты останавливаются на хосте и не пересылаются на цель. Я что-то упустил? Разве SNAT не должен отслеживать соединения?
Вероятно, ваша проблема заключается в том, что ваше правило пересылки полагается на то, что SNAT уже сработал для возвращаемых пакетов. Когда вы говорите iptables -A FORWARD -d 10.0.0.0/24, это означает, что трафик уже был изменен через NAT, что происходит после пересылка. Когда приходит начальный пакет, он имеет IP-адрес с NAT (192.168.190.32) в качестве пункта назначения.
Возможно, вам нужны такие правила:
iptables -A forward -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A -i efix -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to-source 192.168.190.132
Первое правило разрешает трафик, связанный с существующими соединениями, например обратный трафик от SNAT-соединений от «хоста». Второй принимает трафик от «хоста» (если я понимаю вашу схему, «хост» передает трафик на ваш межсетевой экран NAT через его интерфейс «etho0», верно?). Вы также можете ограничить это правило с помощью «-d 192.168.190.0/24», в зависимости от ваших конкретных потребностей.
Последнее правило - это то, что вы уже опубликовали, которое говорит о том, что трафик должен быть SNAT.