Рейтинг:1

iptables - разрешить доступ только к одному порту в другой подсети

флаг in

У меня есть запущенный и работающий сервер OpenVPN, который в настоящее время позволяет направлять весь трафик между сетью VPN (10.8.0.0/24) и локальной сетью (192.168.2.0/24). Мои iptables выглядят следующим образом:

iptables -t фильтр -F
iptables -t физ -F
iptables -A ВПЕРЕД -m состояние --state СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
iptables -A ВПЕРЕД -i tun0 -j ПРИНЯТЬ
iptables -A ВПЕРЕД -i eth0 -j ПРИНЯТЬ
iptables -A ВПЕРЕД -j ОТКЛОНИТЬ
iptables -t nat -A POSTROUTING -s '10.8.0.0/24' -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 192.168.2.26
iptables -t nat -A POSTROUTING -s '192.168.2.0/24' -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o tun0 -j SNAT --to-source 10.8.0.1

192.168.2.26 и 10.8.0.1 — это интерфейсы на VPN-сервере.

Теперь я пытаюсь немного сузить его и разрешить только конкретную цель для конкретных пользователей. Один пример:

Я хочу, чтобы пользователь с IP-адресом 10.8.0.10 имел доступ только к 192.168.2.100 через порт 8080 и ни к чему другому в подсети LAN. После тонны гугления я попробовал несколько диких комбинаций SNAT и DNAT, но не нашел решения.

Как я могу реализовать описанный выше сценарий?

Рейтинг:1
флаг in

Итак, я нашел решение своей проблемы, если кому-то понадобится и наткнется на это:

Я отказался от iptables и выбрал ufw.

/etc/sysctl.conf:

сеть.ipv4.ip_forward=1

/etc/по умолчанию/ufw:

DEFAULT_FORWARD_POLICY="УДАЛИТЬ"

/etc/ufw/before.rules:

# НАЧАТЬ ПРАВИЛА OPENVPN
# Правила таблицы NAT
*натуральный
:ОТПРАВКА ПРИНЯТИЯ [0:0]
# Разрешить трафик между OpenVPN и локальной сетью
-A POSTOUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
-A POSTOUTING -s 192.168.2.0 -o tun0 -j MASQUERADE
СОВЕРШИТЬ
# ЗАВЕРШИТЬ ПРАВИЛА OPENVPN

Таким образом, все настроено для маршрутизации и пересылки, пока ничего не пересылается из-за политики «отбрасывания» по умолчанию.

Чтобы перенаправить один IP-адрес на порт другого IP-адреса другой подсети, как описано в вопросе, мне просто нужно было запустить следующий набор правил:

sudo ufw route разрешить вход на tun0 на eth0 на 192.168.2.100 proto tcp порт 8080 с 10.8.0.10

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.