OpenVPN и проброс портов

Доброго времени суток! Необходимо решение следующей задачи:
Имеется:
сеть #1 - 192.168.21.0/29
сеть #2 - 192.168.20.0/16 (!)
сервер (debian 7)
ETH0 192.168.20.55/16
ETH1 192.168.21.132/29
TUN0 10.8.0.1 (Openvpn сервер)
Клиент #1
ETH0 192.168.20.33/16
TUN0 10.8.0.2 (OpenVPN клиент)

Клиент Openvpn'ом подключается на сервер к по адресу 192.168.20.55. Необходимо сделать так, чтобы соединения к 10.8.0.1 (TUN0 на сервере) по порту 564 переадресовывались на 192.168.21.130/29 (ETH1 на сервере) на тот же порт.
Основные рецепты по iptables не работают.
  • Вопрос задан
  • 20881 просмотр
Решения вопроса 2
TrueBers
@TrueBers
Гуглю за еду
Всё должно работать.
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -A INPUT -i tun0 -p tcp --dport 564 -j ACCEPT
# iptables -t nat -A PREROUTING -p tcp -i tun0 --dport 564 -j DNAT --to-destination 192.168.21.130:564
Ответ написан
karabanov
@karabanov
Системный администратор
Вы говорили про IP 192.168.21.130/29, а у вас 192.168.21.132/29
Вы говорили про порт 564 а у вас 2014 (но это правило фигня)

Аааа. Да. Забыл. Так iptables выведет только таблицу filter, а нам надо b nat и filter. Тем не менее у вас в этом правиле используется порт 2014 (хоть это ни на что и не влияет так как политика по умолчанию policy ACCEPT).

Должно выглядеть так:

zend@book:~$ sudo iptables -L --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:564

...


А чтоб посмотреть в таблицу nat надо использовать команду iptables -t nat -L --line-numbers и вывод её должен выглядеть так:

zend@book:~$ sudo iptables -t nat -L --line-numbers
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    DNAT       tcp  --  anywhere             anywhere             tcp dpt:564 to:192.168.21.130:564

...


Если у вас не так сделайте следующее:
sudo iptables -X
sudo iptables -F
sudo iptables -t nat -X
sudo iptables -t nat -F
sudo iptables -A INPUT -i tun0 -p tcp --dport 564 -j ACCEPT
sudo iptables -t nat -A PREROUTING -p tcp -i tun0 --dport 564 -j DNAT --to-destination 192.168.21.130:564


И IP исправьте на 192.168.21.130/29
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы