iptables.sh 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #!/bin/sh
  2. #move to script directory so all relative paths work
  3. cd "$(dirname "$0")"
  4. #add the includes
  5. . ./config.sh
  6. . ./colors.sh
  7. . ./environment.sh
  8. #send a message
  9. verbose "Configuring IPTables"
  10. #defaults to nftables by default this enables iptables
  11. if [ ."$os_codename" = ."buster" ]; then
  12. update-alternatives --set iptables /usr/sbin/iptables-legacy
  13. update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
  14. fi
  15. if [ ."$os_codename" = ."bullseye" ]; then
  16. apt-get install -y iptables
  17. update-alternatives --set iptables /usr/sbin/iptables-legacy
  18. update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
  19. fi
  20. if [ ."$os_codename" = ."bookworm" ]; then
  21. apt-get install -y iptables
  22. update-alternatives --set iptables /usr/sbin/iptables-legacy
  23. update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
  24. fi
  25. #remove ufw
  26. ufw reset
  27. ufw disable
  28. apt-get remove -y ufw
  29. #apt-get purge ufw
  30. iptables --delete-chain ufw-after-forward
  31. iptables --delete-chain ufw-after-input
  32. iptables --delete-chain ufw-after-logging-forward
  33. iptables --delete-chain ufw-after-logging-input
  34. iptables --delete-chain ufw-after-logging-output
  35. iptables --delete-chain ufw-after-output
  36. iptables --delete-chain ufw-before-forward
  37. iptables --delete-chain ufw-before-input
  38. iptables --delete-chain ufw-before-logging-forward
  39. iptables --delete-chain ufw-before-logging-input
  40. iptables --delete-chain ufw-before-logging-output
  41. iptables --delete-chain ufw-before-output
  42. iptables --delete-chain ufw-reject-forward
  43. iptables --delete-chain ufw-reject-input
  44. iptables --delete-chain ufw-reject-output
  45. iptables --delete-chain ufw-track-forward
  46. iptables --delete-chain ufw-track-input
  47. iptables --delete-chain ufw-track-output
  48. #flush iptables
  49. iptables -P INPUT ACCEPT
  50. iptables -P FORWARD ACCEPT
  51. iptables -P OUTPUT ACCEPT
  52. iptables -F
  53. #run iptables commands
  54. iptables -A INPUT -i lo -j ACCEPT
  55. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  56. iptables -A INPUT -j DROP -p udp --dport 5060:5091 -m string --string "friendly-scanner" --algo bm --icase
  57. iptables -A INPUT -j DROP -p tcp --dport 5060:5091 -m string --string "friendly-scanner" --algo bm --icase
  58. iptables -A INPUT -j DROP -p udp --dport 5060:5091 -m string --string "sipcli/" --algo bm --icase
  59. iptables -A INPUT -j DROP -p tcp --dport 5060:5091 -m string --string "sipcli/" --algo bm --icase
  60. iptables -A INPUT -j DROP -p udp --dport 5060:5091 -m string --string "VaxSIPUserAgent/" --algo bm --icase
  61. iptables -A INPUT -j DROP -p tcp --dport 5060:5091 -m string --string "VaxSIPUserAgent/" --algo bm --icase
  62. iptables -A INPUT -j DROP -p udp --dport 5060:5091 -m string --string "pplsip" --algo bm --icase
  63. iptables -A INPUT -j DROP -p tcp --dport 5060:5091 -m string --string "pplsip" --algo bm --icase
  64. iptables -A INPUT -j DROP -p udp --dport 5060:5091 -m string --string "system " --algo bm --icase
  65. iptables -A INPUT -j DROP -p tcp --dport 5060:5091 -m string --string "system " --algo bm --icase
  66. iptables -A INPUT -j DROP -p udp --dport 5060:5091 -m string --string "exec." --algo bm --icase
  67. iptables -A INPUT -j DROP -p tcp --dport 5060:5091 -m string --string "exec." --algo bm --icase
  68. iptables -A INPUT -j DROP -p udp --dport 5060:5091 -m string --string "multipart/mixed;boundary" --algo bm --icase
  69. iptables -A INPUT -j DROP -p tcp --dport 5060:5091 -m string --string "multipart/mixed;boundary" --algo bm --icase
  70. iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  71. iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  72. iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  73. iptables -A INPUT -p tcp --dport 7443 -j ACCEPT
  74. iptables -A INPUT -p tcp --dport 5060:5091 -j ACCEPT
  75. iptables -A INPUT -p udp --dport 5060:5091 -j ACCEPT
  76. iptables -A INPUT -p udp --dport 16384:32768 -j ACCEPT
  77. iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
  78. iptables -A INPUT -p udp --dport 1194 -j ACCEPT
  79. iptables -t mangle -A OUTPUT -p udp -m udp --sport 16384:32768 -j DSCP --set-dscp 46
  80. iptables -t mangle -A OUTPUT -p udp -m udp --sport 5060:5091 -j DSCP --set-dscp 26
  81. iptables -t mangle -A OUTPUT -p tcp -m tcp --sport 5060:5091 -j DSCP --set-dscp 26
  82. iptables -P INPUT DROP
  83. iptables -P FORWARD DROP
  84. iptables -P OUTPUT ACCEPT
  85. #save iptables to make it persistent
  86. #mkdir /etc/iptables
  87. #iptables-save > /etc/iptables/rules.v4
  88. #answer the questions for iptables persistent and save the iptable rules
  89. echo iptables-persistent iptables-persistent/autosave_v4 boolean true | debconf-set-selections
  90. echo iptables-persistent iptables-persistent/autosave_v6 boolean true | debconf-set-selections
  91. apt-get install -y iptables-persistent