2

В настоящее время я создаю сеть на основе Ubuntu Server.

Он реализован как виртуальная машина в VirtualBox и выглядит следующим образом:

  1. Ubuntu Server - 3 сетевых интерфейса. 1-й - enp0s3 , подключение к интернету. 2-й - enp0s9 , room_two - внутренняя сеть VBox.
  2. Рабочая станция ArchLinux - 1 сетевой интерфейс, enp0s3 , подключенный к room_two .

Чего я хочу добиться: маршрутизация сервера из enp0s3 во внутреннюю сеть room_two .

Что я уже сделал:

# /etc/netplan/50-cloud-init.yaml

network:
ethernets:
    enp0s3:
        addresses: []
        dhcp4: true
    enp0s8:
        addresses: [192.168.1.1/16]
        dhcp4: false
version: 2

Настройка Shorewall для двух интерфейсных роутеров.

/etc/shorewall/zones

#ZONE   TYPE    OPTIONS                 IN                      OUT
#                                       OPTIONS                 OPTIONS
fw      firewall
net     ipv4
loc     ipv4

/etc/shorewall/rules

#ACTION         SOURCE          DEST            PROTO   DEST    SOURCE          ORIGINAL        RATE            USER/   MARK    CONNLIMIT       TIME            HEADERS         SWITCH          HELPER
#                                                       PORT    PORT(S)         DEST            LIMIT           GROUP
?SECTION ALL
?SECTION ESTABLISHED
?SECTION RELATED
?SECTION INVALID
?SECTION UNTRACKED
?SECTION NEW

#       Don't allow connection pickup from the net
#
Invalid(DROP)   net             all             tcp
#
#       Accept DNS connections from the firewall to the network
#
DNS(ACCEPT)     $FW             net
DNS(ACCEPT)     loc             $FW
#
#       Accept SSH connections from the local network for administration
#
SSH(ACCEPT)     loc             $FW
SSH(ACCEPT)     net             $FW
#
#       Allow Ping from the local network
#
Ping(ACCEPT)    loc             $FW
Ping(ACCEPT)    $FW             loc

#
# Drop Ping from the "bad" net zone.. and prevent your log from being flooded..
#

Ping(DROP)      net             $FW

ACCEPT          $FW             loc             icmp
ACCEPT          $FW             net             icmp
#

/etc/shorewall/policy

#SOURCE DEST            POLICY          LOGLEVEL        RATE    CONNLIMIT

$FW     net             ACCEPT
loc     net             ACCEPT
net     all             DROP            $LOG_LEVEL
# THE FOLOWING POLICY MUST BE LAST
all     all             REJECT          $LOG_LEVEL

/etc/shorewall/interfaces

#ZONE   INTERFACE       OPTIONS
net     NET_IF          dhcp,tcpflags,nosmurfs,routefilter,logmartians,sourceroute=0,physical=enp0s3
loc     LOC_IF          dhcp,tcpflags,nosmurfs,routefilter,logmartians,physical=enp0s8

/etc/shorewall/snat

# Rules generated from masq file /home/teastep/shorewall/trunk/Shorewall/Samples/two-interfaces/masq by Shorewall 5.0.13-RC1 - Sat Oct 15 11:41:40 PDT 2016
#
MASQUERADE              10.0.0.0/8,\
                        169.254.0.0/16,\
                        172.16.0.0/12,\
                        192.168.0.0/16          NET_IF

Мой Ubuntu Server работает нормально, DNS-запросы кэшируются, и я могу получить доступ к Интернету. На моем клиенте ArchLinux я получаю IP-адрес от DHCP-сервера, и когда я "пингую google.com", я получаю правильный IP-адрес, но получаю 100% потерю пакетов. Где мне искать информацию и какого рода? Что я мог сделать не так? Существует не так много ресурсов о настройке Shorewall + Netplan, так как последний является довольно новым.

1 ответ1

0

Я нашел решение, в /etc/sysctl.conf: net.ipv4.ip_forward=1

Теперь все работает без нареканий!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .