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

DNAT в Shorewall не работает для VPN

У меня есть брандмауэр (10.8.0.1), подключенный к внутреннему серверу (10.8.0.2) через VPN. В брандмауэре интерфейс VPN называется tun0. Итак, в моей конфигурации Shorewall у меня есть это:

$ cat interfaces
#ZONE   INTERFACE   OPTIONS
-       lo          ignore
vpn     tun+        optional
net     eth+        dhcp,physical=+,routeback,optional

$ cat zones
#ZONE   TYPE        OPTIONS     IN          OUT
#                               OPTIONS     OPTIONS
fw      firewall
vpn     ipv4
net     ip

$ cat policy
#SOURCE DEST    POLICY      LOG LIMIT:      CONNLIMIT:
#               LEVEL       BURST           MASK
$FW     net     ACCEPT
$FW     vpn     ACCEPT
vpn     all     ACCEPT
net     all     DROP        info

Теперь я хочу перенаправить весь трафик из общедоступной сети, поступающий на TCP-порт 2222 брандмауэра, на внутренний порт 22 сервера. Поэтому я добавил следующие две строки:

$ cat rules
ACCEPT          net         $FW                 tcp     2222
DNAT            net         vpn:10.8.0.2:22     tcp     2222

В моем shorewall.conf файл у меня есть эта строка:

IP_FORWARDING=On

Однако, похоже, это не работает.
Что мне здесь не хватает?

#
# Shorewall version 4 - Masq file
#

#INTERFACE:DEST         SOURCE              ADDRESS         PROTO   PORT(S) IPSEC   MARK    USER/   SWITCH
#                                           GROUP
tun+:10.8.0.0/16        0.0.0.0/0           10.8.0.1