1
0

nftables.test.rules.save 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #!/usr/sbin/nft -f
  2. # Well known ports 0:1023
  3. # Registered ports 1024:49151
  4. # Goldielocks zone 32768:65535
  5. # Dynamic/Private 49152:65535
  6. #
  7. # WAN 86.83.121.29
  8. # vps 185.66.250.42
  9. # tor-exit 185.87.185.45
  10. # To preent double enries when loading rules when rule smight already be present.
  11. flush ruleset
  12. # IPv6 specific
  13. add table ip6 filter
  14. add chain ip6 filter INPUT { type filter hook input priority 0; policy accept; }
  15. add chain ip6 filter FORWARD { type filter hook forward priority 0; policy accept; }
  16. add chain ip6 filter OUTPUT { type filter hook output priority 0; policy accept; }
  17. #add chain ip6 filter clutter
  18. # IPv4 & IPv6 combined
  19. add table inet filter
  20. add chain inet filter INPUT { type filter hook input priority 0; policy accept; }
  21. add chain inet filter FORWARD { type filter hook forward priority 0; policy accept; }
  22. add chain inet filter OUTPUT { type filter hook output priority 0; policy accept; }
  23. add chain inet filter clutter
  24. # Accept neighbour discovery otherwise IPv6 connectivity breaks
  25. add rule inet filter INPUT ip6 nexthdr icmpv6 icmpv6 type { nd-redirect, nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert } accept # nd-redirect might not be required
  26. # accept dynamic IPv6 configuration and neighbor discovery
  27. add rule ip6 filter INPUT icmpv6 type nd-neighbor-solicit accept
  28. add rule ip6 filter INPUT icmpv6 type nd-router-advert accept
  29. # Local loopback
  30. add rule inet filter INPUT iifname != "lo" ip daddr 127.0.0.0/8 limit rate 5/minute burst 5 packets counter log prefix "iptables dropped 127.0.0.0/8," level debug
  31. add rule inet filter INPUT iifname != "lo" ip daddr 127.0.0.0/8 counter drop
  32. add rule inet filter INPUT iifname "lo" counter accept
  33. add rule inet filter OUTPUT oifname "lo" counter accept
  34. # Active connections
  35. add rule inet filter INPUT ct state related,established counter accept
  36. add rule inet filter OUTPUT ct state related,established counter accept
  37. # ICMP ping
  38. add rule inet filter OUTPUT icmp type echo-request counter accept
  39. # SSH
  40. add rule inet filter INPUT tcp sport 1024-65535 tcp dport 22 counter accept
  41. add rule inet filter OUTPUT tcp sport 32768-65535 tcp dport 22 counter accept
  42. # WHOIS
  43. add rule inet filter OUTPUT tcp sport 32768-65535 tcp dport 43 counter accept
  44. # DNS
  45. add rule inet filter OUTPUT udp sport 1024-65535 udp dport 53 counter accept
  46. add rule inet filter OUTPUT tcp sport 32768-65535 tcp dport 53 counter accept
  47. add rule inet filter INPUT udp sport 1024-65535 udp dport 53 counter accept
  48. add rule inet filter INPUT tcp sport 32768-65535 tcp dport 53 counter accept
  49. # DHCP client
  50. add rule inet filter INPUT ip daddr 255.255.255.255 udp sport 67 udp dport 68 counter accept
  51. add rule inet filter OUTPUT udp sport 68 udp dport 67 counter accept
  52. # HTTP(s)
  53. add rule inet filter INPUT tcp dport 80 counter accept
  54. add rule inet filter OUTPUT tcp sport 32768-65535 tcp dport 80 counter accept
  55. add rule inet filter INPUT tcp dport 443 counter accept
  56. add rule inet filter OUTPUT tcp sport 32768-65535 tcp dport 443 counter accept
  57. # NTP
  58. add rule inet filter OUTPUT udp sport 32768-65535 udp dport 123 counter accept
  59. # Privoxy
  60. add rule inet filter INPUT tcp sport 32768-65535 tcp dport 8118 counter accept comment "Privoxy"
  61. # OpenPGP HTTP Key servers
  62. add rule inet filter OUTPUT tcp sport 32768-65535 tcp dport 11371 counter accept comment "OpenPGP HTTP key servers"
  63. # Traceroute
  64. add rule inet filter OUTPUT udp sport 32768-65535 udp dport 6881-33534 counter accept comment "Traceroute"
  65. # Attacks, crawls, scans, etc to clutter chain
  66. add rule inet filter INPUT ip protocol icmp counter jump clutter
  67. add rule inet filter INPUT ip daddr 255.255.255.255 counter jump clutter comment "Broadcast messages"
  68. add rule inet filter INPUT udp dport 19 counter jump clutter comment "Character generator, looping to echo = DDoS"
  69. add rule inet filter INPUT tcp dport 23 counter jump clutter
  70. add rule inet filter INPUT udp dport 53 counter jump clutter
  71. add rule inet filter INPUT udp dport 111 counter jump clutter comment "Probe/fingerprint Nix OS"
  72. add rule inet filter INPUT tcp dport 445 counter jump clutter comment "MS-DS active directory"
  73. add rule inet filter INPUT tcp dport 2323 counter jump clutter comment "3d-nfsd"
  74. add rule inet filter INPUT udp dport 5060 counter jump clutter
  75. add rule inet filter INPUT tcp dport 3389 counter jump clutter comment "MS terminal server RDP"
  76. # Log & drop
  77. add rule inet filter INPUT limit rate 5/minute burst 5 packets counter log prefix "iptables dropped: " level debug
  78. add rule inet filter INPUT counter drop
  79. add rule inet filter FORWARD limit rate 5/minute burst 5 packets counter log prefix "iptables forward dropped: " level debug
  80. add rule inet filter FORWARD counter drop
  81. add rule inet filter OUTPUT limit rate 5/minute burst 5 packets counter log prefix "iptables rejected: " level debug
  82. add rule inet filter OUTPUT counter reject
  83. add rule inet filter clutter limit rate 5/minute burst 5 packets counter log prefix "iptables clutter dropped: " level debug
  84. add rule inet filter clutter counter drop