Guest User

Untitled

a guest
Jun 25th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.54 KB | None | 0 0
  1. #!/bin/sh
  2. IPT="/sbin/iptables"
  3.  
  4. # Flush old rules
  5. $IPT --flush
  6. $IPT --delete-chain
  7.  
  8. # Allow incoming and outgoing for loopback and allow outgoing
  9. $IPT -A INPUT -i lo -j ACCEPT
  10. $IPT -A OUTPUT -o lo -j ACCEPT
  11. $IPT -A OUTPUT -j ACCEPT
  12.  
  13. # Allow related and established connections
  14. $IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  15.  
  16. # FTP
  17. modprobe ip_conntrack_ftp
  18. $IPT -A INPUT -p tcp -m tcp --dport 50000:50030 -j ACCEPT
  19. $IPT -A INPUT -p tcp -m tcp --dport 20:21 -j ACCEPT
  20.  
  21. # Allow ping
  22. iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
  23.  
  24. # HTTP
  25. $IPT -A INPUT -p tcp --dport 80 -j ACCEPT
  26. $IPT -A INPUT -p tcp --dport 443 -j ACCEPT
  27.  
  28. # Allow TeamSpeak 3
  29. $IPT -A INPUT -p udp --dport 9987 -j ACCEPT
  30. $IPT -A INPUT -p tcp --dport 10011 -j ACCEPT
  31. $IPT -A INPUT -p tcp --dport 30033 -j ACCEPT
  32.  
  33. # Allow gameservers
  34. $IPT -A INPUT -p udp --dport 27000:27100 -j ACCEPT
  35.  
  36. # Allow SSH
  37. $IPT -A INPUT -p tcp --dport ssh --jump ACCEPT
  38.  
  39. # Allow RCON from specified addresses & GameME
  40. #$IPT -A INPUT -s 81.19.212.43 -p tcp --dport 27000:27100 --jump ACCEPT
  41. #$IPT -A INPUT -s 85.214.223.208 -p tcp --dport 27000:27100 --jump ACCEPT
  42. #$IPT -A INPUT -s 85.214.223.208 -p udp --dport 27000:27100 --jump ACCEPT
  43. #$IPT -A INPUT -s 85.214.245.206 -p tcp --dport 27000:27100 --jump ACCEPT
  44. #$IPT -A INPUT -s 85.214.245.206 -p udp --dport 27000:27100 --jump ACCEPT
  45. #$IPT -A INPUT -s 85.214.61.160 -p udp --dport 27000:27100 --jump ACCEPT
  46. #$IPT -A INPUT -s 94.76.240.18 -p tcp --dport 27000:27100 --jump ACCEPT
  47. #$IPT -A INPUT -s 94.76.240.26 -p tcp --dport 27000:27100 --jump ACCEPT
  48.  
  49. # Allow certain IPs
  50. $IPT -A INPUT -s 81.19.212.43 --jump ACCEPT
  51. $IPT -A INPUT -s 85.214.223.208 --jump ACCEPT
  52. $IPT -A INPUT -s 85.214.245.206 --jump ACCEPT
  53. $IPT -A INPUT -s 85.214.61.160 --jump ACCEPT
  54. $IPT -A INPUT -s 94.76.240.18 --jump ACCEPT
  55. $IPT -A INPUT -s 94.76.240.26 --jump ACCEPT
  56.  
  57.  
  58. # Drop invalid packets immediately
  59. $IPT -A INPUT -m state --state INVALID -j DROP
  60. $IPT -A FORWARD -m state --state INVALID -j DROP
  61. $IPT -A OUTPUT -m state --state INVALID -j DROP
  62.  
  63. # Reject packets from RFC1918 class networks (i.e., spoofed)
  64. $IPT -A INPUT -s 10.0.0.0/8 -j DROP
  65. $IPT -A INPUT -s 169.254.0.0/16 -j DROP
  66. $IPT -A INPUT -s 172.16.0.0/12 -j DROP
  67. $IPT -A INPUT -s 127.0.0.0/8 -j DROP
  68. $IPT -A INPUT -s 224.0.0.0/4 -j DROP
  69. $IPT -A INPUT -d 224.0.0.0/4 -j DROP
  70. $IPT -A INPUT -s 240.0.0.0/5 -j DROP
  71. $IPT -A INPUT -d 240.0.0.0/5 -j DROP
  72. $IPT -A INPUT -s 0.0.0.0/8 -j DROP
  73. $IPT -A INPUT -d 0.0.0.0/8 -j DROP
  74. $IPT -A INPUT -d 239.255.255.0/24 -j DROP
  75. $IPT -A INPUT -d 255.255.255.255 -j DROP
  76.  
  77. # Drop bogus TCP packets
  78. $IPT -A INPUT -p tcp -m tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
  79. $IPT -A INPUT -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
  80.  
  81. # Block bad packets going to the gameservers
  82. $IPT -A INPUT ! --fragment -p udp -d 81.19.212.43 --dport 27000:27100 -m u32 --u32 "0 >> 22 & 0x3C @ 8 = 0x33424521 && 0 >> 22 & 0x3C @ 12 = 0x6f647936" -j DROP
  83.  
  84. # Filter out packets with length 28
  85. $IPT -A INPUT -p udp -d 81.19.212.43 --dport 27015:27200 -m length --length 28 -j DROP
  86.  
  87. # Stop smurf attacks
  88. iptables -A INPUT -p icmp -m icmp --icmp-type address-mask-request -j DROP
  89. iptables -A INPUT -p icmp -m icmp --icmp-type timestamp-request -j DROP
  90. iptables -A INPUT -p icmp -m icmp -m limit --limit 1/second -j ACCEPT
  91.  
  92. # Drop excessive RST packets to avoid smurf attacks
  93. iptables -A INPUT -p tcp -m tcp --tcp-flags RST RST -m limit --limit 2/second --limit-burst 2 -j ACCEPT
  94.  
  95. # Kill everything else that does not match these rules
  96. $IPT -P INPUT DROP
  97. $IPT -P FORWARD DROP
Add Comment
Please, Sign In to add comment