Маршрутизация трафика в ubuntu из локальной сети через tun-интерфейс

Я пытаюсь направить некоторый трафик по ip из моей локальной сети через экземпляр сервера Ubuntu под управлением openconnect на удаленный сервер.

     Client             Router      Ubuntu Server (ens160)  tun0   remote resource
| 192.168.1.x | -> | 192.168.1.1 | -> | 192.168.1.38 | -> | VPN | -> | 1.1.1.1 |

мои маршруты выглядят так:

Destination    Gateway     Genmask         Flags Metric Ref    Use  Iface
0.0.0.0        0.0.0.0     0.0.0.0         U     0      0      0    tun0
1.3.4.0        0.0.0.0     255.255.255.0   U     0      0      0    tun0   (vpn dhcp range)
1.4.5.6        192.168.1.1 255.255.255.255 UGH   0      0      0    ens160 (ip from remote)
192.168.1.0    0.0.0.0     255.255.255.0   U     0      0      0    ens160
192.168.122.0  0.0.0.0     255.255.255.0   U     0      0      0    virbr0

мне удалось направить трафик, направленный на 1.1.1.1, на мой сервер Ubuntu по адресу 192.168.1.38. Маршрут трассировки от клиента проверяет это.

Tracing route to [1.1.1.1] over a maximum of 30 hops:
  1    <1 ms    <1 ms    <1 ms  192.168.1.1
  2    <1 ms    <1 ms    <1 ms  192.168.1.38
  3     *        *        *     Request timed out.

таким образом, трафик останавливается на сервере Ubuntu на ens160 интерфейс (я полагаю). Вот где я нахожусь растеряться. Я искал решения, но я немного смущен множеством вариантов, которые у меня есть. Первоначально я просто хотел добавить статический маршрут говоря src lan through tun0, но шлюз 0.0.0.0? Я тогда вижу, что третий маршрут-ip, принадлежащий удаленному VPN-местоположению. Поэтому я предполагаю, что это маршрут через мою глобальную сеть для VPN.

я включил переадресацию ip. И попытался добавить правило masquarade и nat с iptables. Но я уверена, что все испортила. как-то.

iptables -t nat -A POSTROUTING --out-interface tun0 -j MASQUERADE  
iptables -A FORWARD --in-interface ens160 -j ACCEPT

Я ценю любую помощь.

11
задан chriskvik
05.12.2022 22:43 Количество просмотров материала 2811
Распечатать страницу

1 ответ

Похоже, вам нужно включить переадресацию в ядре. Run:

# sysctl -w net.ipv4.ip_forward=1
or
# echo 1 > /proc/sys/net/ipv4/ip_forward

увидеть, если он работает.

добавить net.ipv4.ip_forward=1 до /etc/sysctl.d/80-forward.conf (или что-то в этом роде), чтобы выжить после перезагрузки.

Edit

может быть, вы забыли разрешить движение назад в прямой цепи. Попробуйте это:

# iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

так движение может вернуться.

1
отвечен Rio6 2022-12-07 06:31

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх