Маршрутизация и 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 ВХОД -i tun+ -j ПРИНЯТЬ $ iptables -A ВПЕРЕД -i tun+ -j ПРИНЯТЬ

# Разрешить udp 1194 # iptables -A INPUT -p udp --dport 1194 -j ПРИНЯТЬ

# Разрешить трафику, инициированному из VPN, доступ к локальной сети iptables -I ВПЕРЕД -i tun0 -o eth2 \ -s 10.8.0.0/24 -d 192.168.0.0/24 \ -m conntrack --ctstate НОВОЕ -j ПРИНЯТЬ

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

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

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

1 ответ

Если мое предположение верно, вы пытаетесь использовать 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 на маршрутизаторе.

Другие вопросы по тегам