Advertisement
Guest User

iptables

a guest
Feb 22nd, 2020
1,680
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. ### Create chains ###
  2. iptables -N syn_flood
  3. iptables -N LOGGING
  4. iptables -N port-scanning
  5.  
  6. ### Drop invalid packets ###
  7. /sbin/iptables -t mangle -A PREROUTING -m conntrack --ctstate INVALID -j DROP
  8.  
  9. ### Drop TCP packets that are new and are not SYN ###
  10. /sbin/iptables -t mangle -A PREROUTING -p tcp ! --syn -m conntrack --ctstate NEW -j DROP
  11.  
  12. ### Drop SYN packets with suspicious MSS value ###
  13. /sbin/iptables -t mangle -A PREROUTING -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP
  14.  
  15. ### Drop fragments in all chains ###
  16. iptables -t mangle -A PREROUTING -f -j DROP
  17.  
  18. ### Limit connections per source IP ###
  19. iptables -A INPUT -p tcp -m connlimit --connlimit-above 111 -j REJECT --reject-with tcp-reset
  20.  
  21. ### Limit RST packets ###
  22. iptables -A INPUT -p tcp --tcp-flags RST RST -m limit --limit 2/s --limit-burst 2 -j ACCEPT
  23. iptables -A INPUT -p tcp --tcp-flags RST RST -j DROP
  24.  
  25. ### Limit new TCP connections per second per source IP ###
  26. iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m limit --limit 60/s --limit-burst 20 -j ACCEPT
  27. iptables -A INPUT -p tcp -m conntrack --ctstate NEW -j DROP
  28.  
  29. ### SSH brute-force protection ###
  30. iptables -A INPUT -p tcp --dport ssh -m conntrack --ctstate NEW -m recent --set
  31. iptables -A INPUT -p tcp --dport ssh -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 10 -j LOGGING
  32.  
  33. ### Protection against port scanning ###
  34. iptables -A port-scanning -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s --limit-burst 2 -j LOGGING
  35. iptables -A port-scanning -j DROP
  36.  
  37. ### Protection against SYN flood ###
  38. iptables -A INPUT -p tcp --syn -j syn_flood
  39. iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j LOGGING
  40. iptables -A syn_flood -j DROP
  41.  
  42. ### Logging section ###
  43. iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
  44. iptables -A LOGGING -j DROP;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement