Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.34 KB | None | 0 0
  1. #!/bin/bash
  2. IPT="/sbin/iptables"
  3.  
  4. echo "Starting IPv4 Wall..."
  5. $IPT -F
  6. $IPT -X
  7. $IPT -t nat -F
  8. $IPT -t nat -X
  9. $IPT -t mangle -F
  10. $IPT -t mangle -X
  11. modprobe ip_conntrack
  12. modprobe ip_conntrack_ftp
  13. modprobe nf_conntrack_ftp
  14.  
  15. BADIPS=$(egrep -v -E "^#|^$" /root/scripts/blocked.fw)
  16. PUB_IF="eth0"
  17. SSH_PORT="22"
  18.  
  19. #unlimited
  20. $IPT -A INPUT -i lo -j ACCEPT
  21. $IPT -A OUTPUT -o lo -j ACCEPT
  22.  
  23. # DROP all inc
  24. $IPT -P INPUT DROP
  25. $IPT -P OUTPUT DROP
  26. $IPT -P FORWARD DROP
  27.  
  28. # block all bad ip
  29. for ip in $BADIPS
  30. do
  31.     $IPT -A INPUT -s $ip -j DROP
  32.     $IPT -A OUTPUT -d $ip -j DROP
  33. done
  34.  
  35. # sync
  36. $IPT -A INPUT -i ${PUB_IF} -p tcp ! --syn -m state --state NEW  -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Drop Syn"
  37.  
  38. $IPT -A INPUT -i ${PUB_IF} -p tcp ! --syn -m state --state NEW -j DROP
  39.  
  40. # Fragments
  41. $IPT -A INPUT -i ${PUB_IF} -f  -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Fragments Packets"
  42. $IPT -A INPUT -i ${PUB_IF} -f -j DROP
  43.  
  44. # bad stuff
  45. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
  46. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL ALL -j DROP
  47.  
  48. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL NONE -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "NULL Packets"
  49. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL NONE -j DROP # NULL packets
  50.  
  51. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
  52.  
  53. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags SYN,FIN SYN,FIN -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "XMAS Packets"
  54. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP #XMAS
  55.  
  56. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags FIN,ACK FIN -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Fin Packets Scan"
  57. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags FIN,ACK FIN -j DROP # FIN packet scans
  58.  
  59. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
  60.  
  61. # full outgoing connection
  62. $IPT -A INPUT -i ${PUB_IF} -m state --state ESTABLISHED,RELATED -j ACCEPT
  63. $IPT -A OUTPUT -o ${PUB_IF} -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  64.  
  65. # ssh
  66. $IPT -A INPUT -i ${PUB_IF} -p tcp --dport ${ssh_port} -j ACCEPT
  67. $IPT -A OUTPUT -i ${PUB_IF} -p tcp --sport ${ssh_port} -j ACCEPT
  68. $IPT -I INPUT -i ${PUB_IF} -p tcp --dport ${ssh_port} -m state --state NEW -m recent  --set
  69. $IPT -I INPUT -i ${PUB_IF} -p tcp --dport ${ssh_port} -m state --state NEW -m recent  --update --seconds 60 --hitcount 5 -j DROP
  70.  
  71. # http
  72. $IPT -A INPUT -i ${PUB_IF} -p tcp --destination-port 80 -j ACCEPT
  73. $IPT -A OUTPUT -i ${PUB_IF} -p tcp --sport 80 -j ACCEPT
  74.  
  75. #dns
  76. $IPT -A OUTPUT -i ${PUB_IF} -p udp –dport 53 -j ACCEPT
  77.  
  78. # ping pong stuff
  79. $IPT -A INPUT -i ${PUB_IF} -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  80. $IPT -A OUTPUT -i ${PUB_IF} -p icmp --icmp-type 0 -m state --state ESTABLISHED,RELATED -j ACCEPT
  81.  
  82. #NTP
  83. $IPT -A OUTPUT -i ${PUB_IF} -p udp –dport 123 -j ACCEPT
  84. $IPT -A INPUT -i ${PUB_IF} -p udp –dport 123 -j ACCEPT
  85.  
  86. # smb/windows
  87. $IPT -A INPUT -p tcp -i ${PUB_IF} --dport 137:139 -j REJECT
  88. $IPT -A INPUT -p udp -i ${PUB_IF} --dport 137:139 -j REJECT
  89.  
  90. # Log
  91. $IPT -A INPUT -j LOG
  92. $IPT -A FORWARD -j LOG
  93. $IPT -A INPUT -j DROP
  94.  
  95. # Start ipv6 firewall
  96. #echo "Starting IPv6 Wall..."
  97. #/root/scripts/start6.fw
  98.  
  99. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement