mielcu3 napisał/a:Hej, a jesteś w stanie podzielić się eksportem z shorewalla? Ciekaw jestem jak masz to ustawione.
Mam cztery interfejsy sieciowe i trzy karty sieciowe (wcześniej opisane): WAN (eno1), Lan (enp2s0), wifi 5Ghz (wlan1), wifi 2.4Mhz (wlan0).
WAN mam ustawiony w netplan jako statyczny adres IP. Od mojego ISP otrzymuję adres 192.168.15.244, który na zewnątrz jest widoczny jako publiczny adres 46.xxx.xxx.xxx. Na WAN mam zainstalowany pihole + unbound działający jako rekursywny serwer DNS.
el@akacja:~$ sudo cat /etc/netplan/01-netcfg.yaml
network:
renderer: networkd
ethernets:
eno1:
dhcp4: no
addresses: [192.168.15.244/24]
routes:
- to: default
via: 192.168.15.1
nameservers:
addresses: [192.168.15.244]
enp2s0:
addresses: [10.10.10.1/24]
dhcp4: no
wlan0:
addresses: [10.10.11.1/24]
dhcp4: no
wlan1:
addresses: [10.10.12.1/24]
dhcp4: no
version: 2
Dla reszty interfejsów (LAN i oba wifi) mam zdefiniowany serwer DHCP (używam KEA DHCP server):
el@akacja:~$ cat /etc/kea/kea-dhcp4.conf
{
"Dhcp4": {
"interfaces-config": {
"interfaces": [ "enp2s0/10.10.10.1", "wlan0/10.10.11.1", "wlan1/10.10.12.1" ],
"dhcp-socket-type": "raw"
},
"subnet4": [
{
"id": 1,
"subnet": "10.10.10.0/24",
"pools": [ { "pool": "10.10.10.10 - 10.10.10.99" } ],
"option-data": [
{
"name": "routers",
"data": "10.10.10.1"
},
{
"name": "domain-name-servers",
"data": "10.10.10.1"
}
]
},
{
"id": 2,
"subnet": "10.10.11.0/24",
"pools": [ { "pool": "10.10.11.10 - 10.10.11.99" } ],
"option-data": [
{
"name": "routers",
"data": "10.10.11.1"
},
{
"name": "domain-name-servers",
"data": "10.10.11.1"
}
]
},
{
"id": 3,
"subnet": "10.10.12.0/24",
"pools": [ { "pool": "10.10.12.10 - 10.10.12.99" } ],
"option-data": [
{
"name": "routers",
"data": "10.10.12.1"
},
{
"name": "domain-name-servers",
"data": "10.10.12.1"
}
]
}
]
}
Reszta konfiguracji sieci to shorewall. Podstawowy opis jak to zrobić dla dwóch interfejsów na stronie projektu:
https://shorewall.org/two-interface.htm
U mnie dla czterech interfejsów wklejam zawartość plików konfiguracyjnych:
/etc/shorewall/interfaces
###############################################################################
#ZONE INTERFACE BROADCAST OPTIONS
net eno1 detect tcpflags,logmartians,nosmurfs
loc enp2s0 detect dhcp
loc wlan1 detect dhcp,maclist
loc wlan0 detect dhcp,maclist
/etc/shorewall/zones
###############################################################################
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
net ipv4
loc ipv4
/etc/shorewall/policy
###############################################################################
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
loc net ACCEPT
loc $FW ACCEPT
$FW net ACCEPT
$FW loc ACCEPT
net all DROP info
# THE FOLLOWING POLICY MUST BE LAST
all all REJECT info
/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
#
# Accept SSH connections from the local network for administration
#
#SSH(ACCEPT) loc $FW
SSH(DNAT-) loc 10.10.10.1 - 2225 - 46.xxx.xxx.xxx
#
# Allow Ping from the local network
#
Ping(ACCEPT) loc $FW
#
# 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
#
#
ACCEPT net $FW tcp 6535
ACCEPT net $FW tcp 2225
/etc/shorewall/snat
###########################################################################################################################################
#ACTION SOURCE DEST PROTO PORT IPSEC MARK USER SWITCH ORIGDEST PROBABILITY
SNAT(192.168.15.244) 10.10.10.0/24,\
10.10.11.0/24,\
10.10.12.0/24 eno1