Untitled

 avatar
unknown
plain_text
4 months ago
2.5 kB
4
Indexable
#!/usr/sbin/nft -f

flush ruleset

table inet filter {

        # Ik ga een chain aanmaken voor inkomende ipv4 verkeer. Dit is overzichtelijker en ik kan deze later gebruiken om op te halen in regels.
        chain inbound_ipv4 {
                # Accepteer ping (icmp-echo-requests) voor diagnoses en limiteer deze tot 5 pings per seconde.
                icmp type echo-request limit rate 5/second accept
        }

        # Nu een chain aanmaken voor inkomende ipv6 verkeer.
        chain inbound_ipv6 {
                # Neighbour discovery toelaten anders verbreekt de connectie.
                icmpv6 type { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert } accept

                # Accepteer ping (icmpv6-echo-requests) voor diagnoses en limiteer deze tot 5 per seconde.
                icmpv6 type echo-request limit rate 5/second accept
        }

        # Deze chain zal al het inkomend verkeer regelen en gebruik maken van bovenstaande chains.
        chain input {
                #Standaard al het verkeer droppen tenzij deze aan een van de volgende regels/criteria voldoet.
                type filter hook input priority 0; policy drop;

                # Connection tracking (zal alleen gekend verkeer toelaten).
                # Ik ga hier een vmap voor gebruiken voor een mooier overzicht.
                ct state vmap { established : accept, related : accept, invalid : drop }

                # Toestaan van verkeer op de loopback interface.
                iif lo accept

                # Dit zal op de laag 3 protocol springen naar de juiste chain. Bv als de protocol ipv4 is zal deze de chain inbound_ipv4 gebruiken.
               meta protocol vmap { ip : jump inbound_ipv4, ip6 : jump inbound_ipv6 }

                # SSH toestaan op poort TCP/2022 en HTTP(S) TCP/80 en TCP/443 toelaten. Dit is nodig voor updates en andere services.
                tcp dport { 2022, 80, 443 } accept

                # Om de tijd te synchroniseren word UDP poort 123 gebruikt dus deze zullen we ook accepteren
                udp dport 123 accept

        }

        # Ik gebruik deze server niet als een router of dynamic tunneling en zal hier dus alles droppen.
        chain forward {
                type filter hook forward priority 0; policy drop;
        }

        # Geen reden voor want het default zal alles accepteren en dat is voor nu ok.
        chain output {
                type filter hook output priority filter;
        }
}


Editor is loading...
Leave a Comment