Назад | Перейти на главную страницу

Маршрутизация и OpenVPN не работают на шлюзе по умолчанию

Мне сложно установить правильный iptable для маршрутизации трафика OpenVPN на мой внутренний клиент OpenVPN.

Моя сеть похожа на эту

                      +-------------------------+
           (public IP)|                         |   
{INTERNET}============{ eth1     Router         |
                      |                         |
                      |         eth2            |
                      +------------+------------+
                                   | (192.168.0.254)
                                   |
                                   |              +-----------------------+
                                   |              |                       |
                                   |              |        OpenVPN        |  eth0: 192.168.0.1/24
                                   +--------------{eth0    server         |  tun0: 10.8.0.1/24
                                   |              |                       |
                                   |              |           {tun0}      |
                                   |              +-----------------------+
                                   |
                          +--------+-----------+
                          |                    |
                          |  Other LAN clients |
                          |                    |
                          |   192.168.0.0/24   |
                          |   (internal net)   |
                          +--------------------+

По сути, я хочу принимать порт и пересылать VPN-трафик с маршрутизатора на внутренний ящик OpenVPN. Затем я хочу, чтобы коробка OpenVPN принимала трафик с порта eth и отправляла его в tun.

Вот что я пробовал:

iptable на маршрутизаторе:

$ iptables -A INPUT -i tun + -j ACCEPT $ iptables -A FORWARD -i tun + -j ACCEPT

# Разрешить udp 1194 # iptables -A INPUT -p udp --dport 1194 -j ACCEPT

# Разрешить трафику, инициированному из VPN, доступ к iptables LAN -I FORWARD -i tun0 -o eth2 \ -s 10.8.0.0/24 -d 192.168.0.0/24 \ -m conntrack --ctstate NEW -j ACCEPT

Разрешить установленному трафику проходить туда и обратно

iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \
     -j ACCEPT

Маскарадирование всего трафика от VPN-клиентов - выполняется в таблице nat

iptables -t nat -I POSTROUTING -o eth0 \
      -s 10.8.0.0/24 -j MASQUERADE

iptable на OpenVPN

Может ли кто-нибудь указать, как я могу решить эту проблему?

Если мое предположение верно, вы пытаетесь использовать 10./8 диапазон от вашего VPN вне вашей общедоступной сети. Это не сработает, поскольку вы можете направлять трафик только через свой общедоступный IP-адрес извне, и только 192.168./16 диапазон внутри вашей сети.

Один ключевой элемент: ваш VPN-сервер - это обычное приложение внутри вашей сети, доступный через сетевой интерфейс 192.168.0.1/24. Клиенты, которые хотят подключиться к вашей VPN извне, должны сделать это через общедоступный IP-адрес и через порт, который перенаправляется с вашего маршрутизатора на ваше приложение VPN.

Ваш роутер не знает о tun интерфейс ни о 10./8 Диапазон адресов VPN. Оба обрабатываются в поле OpenVPN. Зашифрованный трафик инкапсулируется внутри IP-пакетов с использованием 192.168./16 частная сеть, получающая NAT на маршрутизаторе.