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

Ubuntu VPS, на котором запущен VPN-сервер, не пересылает пакеты

Я задал связанный вопрос здесь - Не удается выполнить обратный маршрут по туннелю IPsec с VPS - но я ответил на это и немного двинулся дальше.

Конечная цель того, чего я пытаюсь достичь, такова:

У нас есть несколько маршрутизаторов 4G, которые, как это принято в Великобритании, находятся за парой уровней NAT операторского уровня и, следовательно, не являются общедоступными. Нам необходимо иметь возможность разговаривать с этими маршрутизаторами с сервера на AWS. Моя идея для достижения этой цели заключалась в том, чтобы настроить VPS со статическим IP-адресом и установить VPN от маршрутизатора 4G к VPS. Затем мы можем связаться с маршрутизатором 4G через общедоступный IP-адрес на VPS, который будет настроен на пересылку трафика обратно по туннелю VPN.

Где я нахожусь:

Я установил VPS в Digital Ocean и настроил libreSwan IPSec VPN, используя этот скрипт - https://github.com/philplckthun/setup-simple-ipsec-l2tp-vpn - и успешно установил VPN от маршрутизатора до VPS. Я могу пинговать с VPS на маршрутизатор и на другие устройства, подключенные к маршрутизатору (это была моя первоначальная проблема). Маршрутизатор настроен на использование VPN-туннеля в качестве маршрута по умолчанию, и когда я пингую VPS с маршрутизатора, я вижу пакеты, поступающие с локального адреса маршрутизатора (как и для устройств, подключенных к маршрутизатору), но теперь у меня есть проблема, где, если Я проверяю интернет-адрес (например, 8.8.8.8) с маршрутизатора, я вижу, что пакеты попадают на VPS, но они не пересылаются в Интернет (что доказано проверкой связи с другой машиной в Интернете и просмотром TCPdump). Я настроил пересылку в /etc/sysctl.conf (net.ipv4.ip_forward = 1) и включил MASQUERADE в iptables (-A POSTROUTING -o eth0 -j MASQUERADE). Я также пробовал несколько других правил iptables, которые нашел в Интернете, но ничего не помогло.

Диаграмма сети:

laptop (used for testing) --- 4G router --- Internet/VPN tunnel --- DO VPS
192.168.0.159                192.168.0.1                           public IP

Если я пингую 8.8.8.8 с ноутбука, TCPdump на VPS видит вот что:

14:24:58.713759 IP 192.168.0.159 > google-public-dns-a.google.com: ICMP echo request, id 1, seq 714, length 40

но ноутбук не получает ответа, и, как я уже сказал, я подтвердил, что пакеты больше не идут.

Таблица маршрутизации VPS:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         178.62.64.1     0.0.0.0         UG        0 0          0 eth0
178.62.64.0     *               255.255.192.0   U         0 0          0 eth0

Что я делаю не так (кроме того, что встаю и иду на работу)?

Спасибо.

Чтобы ответить на мой собственный вопрос; в ipsec.conf на сервере у нас было left=<server's subnet>. Изменив это на left=0.0.0.0/0 получил пересылку, работающую как ожидалось.