[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

nftables: van Strech naar Buster, firewall van iptables naar nftables



Hallo!

In de hoop dat de verzamelde kennis hier me een beetje op weg wil
helpen:

De overstap naar Debian 10 vraagt een nieuwe aanpak van de
firewall. De default iptables is vervangen door nftables.  De firewall
die ik heb ondersteund nftables niet. Op dit moment doet de firewall het
wel voor IPv4 maar niet voor IPv6.

Ik kan iptables terugzetten. Of proberen snel naar nftables over te gaan.

Deze wiki bestudeerd: https://wiki.debian.org/nftables en diverse
voorbeelde bekeken. De huidige (...) iptables regels vertaalt (daar is
een script voor).



Ik heb nu een eerste set, maar die zit vol vragen.

Bijvoorbeeld de { en spaties: is het {80, 443} of moet het zijn { 80,
443 }, of is het identiek?

Ik zie voor poort 80 en 443 dit: ct state new,established. Waarom kom ik
dat tegen als advies voor die poorten, en niet voor bijvoorbeeld poort
25 (en anderen)?


Schrijfwijze, poort nummer of naam? Met een voorbeeld:

Is:

# HTTP (ports 80 & 443)
#		tcp dport { http, https } accept
		
beter dan 

# WWW server: count and accept traffic in 80/tcp and 443/tcp in new and establised state
# nft add rule inet filter input tcp dport {80, 443} ct state new,established counter accept comment "WWW"
 
Is het slim of overbodig om bij alle regels /comment/ te gebruiken?
(Zoals hierboven comment "www". Ik neem aan dat ik dat later in de logs
zie). Maar ik kijk niet echt vaak naar de logs.


Tot slot, wie weet hoe openvpn en nftables te combineren? 



Hieronder mijn huidige klad nftables regels. Echt klad, en onbruikbaar.


# WARNING this is untested and not at all ready to be used
#
# verder te bekijken
# https://ral-arturo.org/2017/04/07/openvpn-debian-stretch.html

# De eerste 9 regels zijn gekopieerd uit een voorbeeld. Essentieel?
table inet filter {
        chain input {
                 type filter hook input priority 0;

                 # accept any localhost traffic
                 iif lo accept

                 # accept traffic originated from us
                 ct state established,related accept

# de volgde regels kom ik her en der tegen, zie ook PING en PING alternatief hieronder
                 # accept neighbour discovery otherwise connectivity breaks
                 ip6 nexthdr icmpv6 icmpv6 type { nd-neighbor-solicit, echo-request, nd-router-advert, nd-neighbor-advert } accept

		 # SSH server
		 nft add rule ip filter input tcp dport 22 ct state new counter accept comment "SSH"

# is het {80, 443} of moet het zijn { 80, 443 }, of is het identiek?

 		 # WWW server: count and accept traffic in 80/tcp and 443/tcp in new and establised state
		 nft add rule inet filter input tcp dport {80, 443} ct state new,established counter accept comment "WWW"
 
# vraag, wat doet/betekent die new,stablished hierboven en is dat wellicht ook nodig voor hieronder?

# alternatieve schrijfwijze https://wiki.archlinux.org/index.php/Nftables
#
# SSH (port 22)
#		tcp dport ssh accept
#
#		# HTTP (ports 80 & 443)
#		tcp dport { http, https } accept
		

		 # MAIL server, accept traffic for 
		 # SMTP SMTPS 25/tcp, 465/tcp and 587
		 # POP3 POP3S 110/tcp, 995/tcp
		 # IMAP IMAPS 143/tcp, 993/tcp
		 nft add rule inet filter input tcp dport {25, 110, 143, 465, 587, 993, 995} counter accept comment "MAIL"

		 # PING
		 nft add rule inet filter input icmp type echo-request accept comment "PING"
		 
# alternatief voor PING https://wiki.archlinux.org/index.php/Nftables
  	      	# accept ICMP & IGMP
		ip6 nexthdr icmpv6 icmpv6 type { destination-unreachable, packet-too-big, time-exceeded, parameter-problem, mld-listener-query, mld-listener-report, mld-listener-reduction, nd-router-solicit, nd-router-advert, nd-neighbor-solicit, nd-neighbor-advert, ind-neighbor-solicit, ind-neighbor-advert, mld2-listener-report } accept
		ip protocol icmp icmp type { destination-unreachable, router-solicitation, router-advertisement, time-exceeded, parameter-problem } accept
		ip protocol igmp accept


# OpenVPN
# add rule ip filter udp dport 1194 counter accept comment "OpenVPN"

# FIXME wat moet ik hiermee
# add chain ip filter ovpn-fw
# add chain ip filter ovpn-net
# add chain ip filter ovpn-ovpn
# add chain ip filter ovpn_frwd

# en dan nog Fail2ban 
# add chain ip filter f2b-blocklist
# add chain ip filter f2b-sshd
# add chain ip filter f2b-exim4


                 # count and drop any other traffic
                 counter drop
		 

        }
}


Reply to: