it:server:firewall-routovani

Toto je starší verze dokumentu!


Nastavení firewallu a routování

Popis nastavení pro router, kdy se budou z vnitřní sítě routovat packety do internetu.

Povolení forwardování ipv4 a v tuto chvíli vypnut ipv6

net.ipv4.ip_forward=1
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Reload systemd:

sysctl -p
ufw logging on
ufw logging medium
 
ufw allow 53 comment "open DNS port"
ufw allow 67,68/udp comment "open DHCP ports"
ufw allow 5555/tcp comment "open SoftEther"
ufw allow 500/udp comment "SoftEther"
ufw allow 4500/udp comment "SoftEther"
ufw allow 443/tcp comment "open SoftEther over HTTPS"
ufw limit 22/tcp comment "limited connection to ssh. Allows 6 connection per 30 sec"

Pokud na serveru spustím služby jako nextcloudpi, http server nebo monit, je potřeba to ve firewallu povolit.

ufw allow in on br0 from 192.168.0.1/24 to 192.168.0.1/32 port 80 proto tcp comment "Open port 80 from internal network"
ufw allow in on br0 from 192.168.0.1/24 to 192.168.0.1/32 port 443 proto tcp comment "Open port 443 from internal network"
ufw allow in on br0 from 192.168.0.1/24 to 192.168.0.1/32 port 4443 proto tcp comment "Open port 4443 from internal network"
ufw allow in on br0 from 192.168.0.1/24 to 192.168.0.1/32 port 2812 proto tcp comment "Open MONIT port 2812 from internal network"

Pro povolení sdílení Windows (Samba) je potřeba na firewallu povolit na interní síti následující porty:

ufw allow in on br0 from 192.168.0.1/24 to 192.168.0.1/32 port 137 proto udp comment "Samba port 137/udp"
ufw allow in on br0 from 192.168.0.1/24 to 192.168.0.1/32 port 138 proto udp comment "Samba port 138/udp"
ufw allow in on br0 from 192.168.0.1/24 to 192.168.0.1/32 port 139 proto tcp comment "Samba port 139/tcp"
ufw allow in on br0 from 192.168.0.1/24 to 192.168.0.1/32 port 445 proto tcp comment "Samba port 445/tcp"

Zajisti, aby v souboru bylo následující nastavení:

DEFAULT_INPUT_POLICY="DROP"
DEFAULT_OUTPUT_POLICY="ACCEPT"
DEFAULT_FORWARD_POLICY="ACCEPT"
IPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_netbios_ns"

Zajisti, aby v souboru bylo následující nastavení:

net/ipv4/ip_forward=1

Na začátek souboru přidat:

*nat
:POSTROUTING ACCEPT [0:0]
 
# Forward traffic through eth0 - Change to match you out-interface
-A POSTROUTING -s 192.168.0.0/24 -o wan -j MASQUERADE
COMMIT

Na jiném serveru mám OpenVPN službu a pro tu bylo nutné v tomto souboru před všechna pravidla zase přidat následující kód:

# START OPENVPN RULES                                                                                                                                                                                              
# NAT table rules                                                                                                                                                                                                  
*nat                                                                                                                                                                                                               
:POSTROUTING ACCEPT [0:0]                                                                                                                                                                                          
# Allow traffic from OpenVPN client to eth0                                                                                                                                                                        
-A POSTROUTING -s 10.9.0.0/8 -o ens3 -j MASQUERADE                                                                                                                                                                 
COMMIT                                                                                                                                                                                                             
# END OPENVPN RULES 

Dále jsem mezi filtry přidal filtr :port-scan, výsledek pak vypadá takto:

# Don't delete these required lines, otherwise there will be errors
*filter
:ufw-before-input - [0:0]
:ufw-before-output - [0:0]
:ufw-before-forward - [0:0]
:ufw-not-local - [0:0]
:port-scan - [0:0]
# End required lines

A za pravidla

# allow all on loopback
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-output -o lo -j ACCEPT

jsem přidával další pravidla.

# Blacklisting IP
#-I INPUT -m set --match-set blacklist src -j DROP                                                                                                                                                                 
#-I INPUT -m set --match-set blacklist src -j LOG --log-prefix "IP Blacklisted: "                                                                                                                                  
-A ufw-before-input -m set --match-set blacklist src -j LOG --log-prefix "[IP BLACKLISTED] "                                                                                                                       
-A ufw-before-input -m set --match-set blacklist src -j DROP                 

Nakonec zapnout firewall a pokud je všechno ok, tak snížit úroveň logování:

ufw enable
ufw logging medium
  • it/server/firewall-routovani.1668810342.txt.gz
  • Poslední úprava: 2022/11/18 22:25
  • autor: Petr Nosek