Я настраиваю следующую сеть, есть три системы, и предполагается, что VPN занимает промежуточное положение между брандмауэром и Kali. Предположим, что все системы используют Ubuntu 16.04 (в конечном итоге я установлю инструменты Kali на Ubuntu):
Iptables для VPN-сервера:
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i tap0 -j ACCEPT
iptables -A INPUT -i enp0s3 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o tap0 -j MASQUERADE # Enmascarmiento IP
iptables -A FORWARD -i tap0 -o enp0s3 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i enp0s3 -o tap0 -j ACCEPT
Iptables для двух других систем имеют политику ПРИНЯТЬ ВСЕ.
Для VPN-сервера включена пересылка. У меня уже есть настройки в / proc / sys / net / ipv4 / ip_forward.
Также в системе есть модуль для использования masquerada (lsmod):
ipt_MASQUERADE 16384 1
nf_nat_masquerade_ipv4 16384 1 ipt_MASQUERADE
nf_nat 24576 2 nf_nat_ipv4,nf_nat_masquerade_ipv4
nf_conntrack 106496 5 nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ipv4
x_tables 36864 5 ip_tables,ipt_MASQUERADE,xt_conntrack,iptable_filter,iptable_mangle
Нашел ошибку:
12.5.0.0 * 255.255.255.0 U 0 0 0 tap0
Проблема заключалась в том, что я устанавливал шлюз по умолчанию для этого маршрута в системе Kali. Мне пришлось указать вывод всего трафика через 10.8.0.1, что, на мой взгляд, является избыточным, поскольку это был единственно возможный путь.
Вы не разрешаете перенаправлять или принимать новые соединения на вашем VPN-сервере. + Изменить
iptables -A FORWARD -i tap0 -o enp0s3 -m state --state RELATED,ESTABLISHED -j ACCEPT
к
iptables -A FORWARD -i tap0 -o enp0s3 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
и попробуйте, если он работает. Если это так, удалите оператор NEW для общего правила и создайте новое правило только для пересылки и принятия тех протоколов / портов, которые вам нужно пересылать, e. грамм.:
iptables -A FORWARD -i tap0 -o enp0s3 -p tcp --dport 22 -m state --state NEW -j ACCEPT
Также вам необходимо использовать NAT назначения, если вы хотите перенаправить внешний запрос во внутреннюю локальную сеть:
Пример: перенаправить SSH на порт 10022 на внутренний порт 22 компьютера:
iptables -t nat -A PREROUTING -p tcp --dport 10022 -j DNAT --to-destination 192.168.1.100:22
iptables -t nat -A POSTROUTING -p tcp --dport 10022 -j MASQUERADE
Кроме того, вы установили правило пересылки навсегда в /etc/sysctl.conf? Если ты просто сделаешь echo 1 > /proc/sys/net/ipv4/ip_forward
он активен только до следующей перезагрузки.
РЕДАКТИРОВАТЬ: Я только что узнал, что я слепой. Конечно, ваш брандмауэр не отвечает на ваш ARP-запрос, он находится в другой сети. ARP-запросы не пересылаются по определению. Если ваш ноутбук хочет связываться с брандмауэром, он общается не напрямую, а через шлюз (ваш VPN). В этой таблице маршрутизации VPN присутствует как шлюз для связи с межсетевым экраном, поэтому он вообще не должен отправлять ARP-запрос на межсетевой экран. ARP - это не IP, он не пересылается.
Вы должны проверить, работает ли NAT с SSH, попробуйте то, что я опубликовал ранее, и подключитесь к вашему маршрутизатору через порт 10022, вы должны быть перенаправлены на ваш брандмауэр.