В настоящее время я создаю сеть на основе Ubuntu Server.
Он реализован как виртуальная машина в VirtualBox и выглядит следующим образом:
- Ubuntu Server - 3 сетевых интерфейса. 1-й -
enp0s3
, подключение к интернету. 2-й -enp0s9
,room_two
- внутренняя сеть VBox. - Рабочая станция 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, так как последний является довольно новым.