Вот простая установка с изюминкой:
В локальной сети работает сервер Samba на 192.168.1.88. Клиенты VPN подключаются непосредственно к серверу, не могут видеть друг друга и не маршрутизируются в локальную сеть.
Я хочу перенаправить или переслать:
Это набор правил NAT, с помощью которого я пытался выполнить задачи перенаправления / пересылки:
iptables -t nat -I PREROUTING -i tun0 -d 172.16.0.1 -p tcp --dport 139 -j DNAT --to-destination 192.168.1.88:139
iptables -I FORWARD -o tun0 -d 192.168.1.88 -p tcp --dport 139 -j ACCEPT
Адреса в сети:
Чего не хватает в правилах для отправки трафика VPN по правильному маршруту?
Заранее спасибо!
У вас также должен быть NAT на другом пути:
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Кроме того, сервер Samba получит запрос от клиента в сети 172.16.0.0 (я предполагаю, что это / 24), поэтому ему необходимо знать маршрут к нему, чтобы ответить на запрос. Итак, если вы бежите ip route show
на сервере Samba вы должны увидеть строку, указывающую что-то вроде:
172.16.0.0/24 via 192.168.1.99
или, если нет специального правила для 172.16.0.0:
default via 192.168.1.99
Если вы этого не сделаете, вам также необходимо добавить маршрут с помощью
ip route add 172.16.0.0/24 via 192.168.1.99
Другое дело, что вам нужно будет разрешить пересылку IP на VPN-сервере, чтобы Samba ответила:
sysctl -w net.ipv4.ip_forward=1
или
echo 1 > /proc/sys/net/ipv4/ip_forward
Но будьте осторожны, потому что в этот момент у вас будут маршруты в обоих направлениях. Заявление:
Клиенты VPN подключаются непосредственно к серверу, не могут видеть друг друга и не маршрутизируются в локальную сеть.
будет зависеть от маршрутов, которые вы отправляете клиентам VPN.
Если у вас нет каких-либо правил iptables, которые могут его фильтровать, он должен работать.
Надеюсь, это поможет.