iptables.up.rules 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. # Well known ports 0:1023
  2. # Registered ports 1024:49151
  3. # Goldielocks zone 32768:65535
  4. # Dynamic/Private 49152:65535
  5. #
  6. # WAN 86.83.121.29
  7. # vps 185.66.250.42
  8. # tor-exit 185.87.185.45
  9. *filter
  10. :INPUT ACCEPT [0:0]
  11. :FORWARD ACCEPT [0:0]
  12. :OUTPUT ACCEPT [0:0]
  13. :clutter - [0:0]
  14. # Local loopback
  15. -A INPUT ! -i lo -d 127.0.0.0/8 -m limit --limit 5/min -j LOG --log-prefix "iptables dropped 127.0.0.0/8, from non localhost: " --log-level 7
  16. -A INPUT ! -i lo -d 127.0.0.0/8 -j DROP
  17. -A INPUT -i lo -j ACCEPT
  18. -A OUTPUT -o lo -j ACCEPT
  19. # Active connections
  20. -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
  21. -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
  22. # Ping
  23. -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
  24. # FTP
  25. #-A OUTPUT -p tcp -m tcp --sport ? --dport 21 -j ACCEPT
  26. #-A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 49152:65535 -j ACCEPT
  27. # SSH
  28. #-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name SSH --mask 255.255.255.255 --rsource
  29. #-A INPUT -p tcp -m tcp --dport 22 -m limit --limit 5/min -m recent --rcheck --seconds 40 --hitcount 4 --rttl --name SSH --mask 255.255.255.255 --rsource -j LOG --log-prefix "iptalbes dropped SSH flood: "
  30. #-A INPUT -p tcp -m tcp --dport 22 -m recent --update --seconds 40 --hitcount 4 --rttl --name SSH --mask 255.255.255.255 --rsource -j DROP
  31. #-A INPUT -p tcp -m tcp --sport 1024:65535 --dport 22 -j ACCEPT
  32. -A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 22 -j ACCEPT
  33. # Telnet
  34. -A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 23 -j ACCEPT
  35. # SMTP(s)
  36. -A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 25 -j ACCEPT
  37. -A OUTPUT -p tcp -m tcp --sport 49152:65535 --dport 465 -j ACCEPT
  38. -A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 587 -j ACCEPT
  39. # WHOIS
  40. -A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 43 -j ACCEPT
  41. # DNS
  42. -A OUTPUT -p udp -m udp --sport 1024:65535 --dport 53 -j ACCEPT
  43. -A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 53 -j ACCEPT
  44. # DNS for VM
  45. -A INPUT -p udp -m udp --sport 1024:65535 --dport 53 -j ACCEPT
  46. -A INPUT -p tcp -m tcp --sport 32768:65535 --dport 53 -j ACCEPT
  47. # DHCP client
  48. -A INPUT -d 255.255.255.255 -p udp -m udp --sport 67 --dport 68 -j ACCEPT
  49. -A OUTPUT -p udp -m udp --sport 68 --dport 67 -j ACCEPT
  50. # DHCP for VM
  51. -A INPUT -s 0.0.0.0 -d 255.255.255.255 -p udp -m udp --sport 68 --dport 67 -j ACCEPT
  52. -A OUTPUT -p udp -m udp --sport 67 --dport 68 -j ACCEPT
  53. # HTTP & HTTPS
  54. #-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m recent --set --name HTTP --rsource
  55. #-A INPUT -p tcp -m tcp --dport 80 -m recent --rcheck --seconds 30 --hitcount 20 --rttl --name HTTP --rsource -j LOG --log-prefix "iptables dropped HTTP flood: " --log-level 4
  56. #-A INPUT -p tcp -m tcp --dport 80 -m recent --update --seconds 30 --hitcount 20 --rttl --name HTTP --rsource -j DROP
  57. #-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -m comment --comment "Tor dir port"
  58. -A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 80 -j ACCEPT
  59. #-A INPUT -p tcp -m tcp --dport 443 -m state --state NEW -m recent --set --name HTTPS --rsource
  60. #-A INPUT -p tcp -m tcp --dport 443 -m recent --rcheck --seconds 30 --hitcount 20 --rttl --name HTTPS --rsource -j LOG --log-prefix "iptables dropped HTTPS flood: " --log-level 4
  61. #-A INPUT -p tcp -m tcp --dport 443 -m recent --update --seconds 30 --hitcount 20 --rttl --name HTTPS --rsource -j DROP
  62. #-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -m comment --comment "Tor OR port"
  63. -A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 443 -j ACCEPT
  64. # HTTP & HTTPS for VM
  65. -A FORWARD -p tcp -m tcp --sport 32768:65535 --dport 80 -j ACCEPT
  66. -A FORWARD -p tcp -m tcp --sport 80 --dport 32768:65535 -j ACCEPT
  67. -A FORWARD -p tcp -m tcp --sport 32768:65535 --dport 443 -j ACCEPT
  68. -A FORWARD -p tcp -m tcp --sport 443 --dport 32768:65535 -j ACCEPT
  69. # NTP
  70. #-A OUTPUT -p udp -m udp --sport 123 --dport 123 -j ACCEPT
  71. -A OUTPUT -p udp -m udp --sport 32768:65535 --dport 123 -j ACCEPT
  72. # Samba
  73. #-A OUTPUT -p tcp -m tcp --sport 49152:65535 --dport 139 -j ACCEPT
  74. # IMAPs
  75. -A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 143 -j ACCEPT
  76. -A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 993 -j ACCEPT
  77. # PIP
  78. #-A OUTPUT -d 185.31.17.223 -p tcp -m tcp --sport 32768:65535 --dport 443 -j ACCEPT -m comment --comment "pip"
  79. # Socks5
  80. #-A OUTPUT -p tcp -m tcp --sport 57448:65535 --dport 1080 -j ACCEPT
  81. # OpenVPN
  82. #-A OUTPUT -p udp -m udp --sport 32768:65535 --dport 1194 -j ACCEPT -m comment --comment "OpenVPN"
  83. # XMPP
  84. #-A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 5223 -j ACCEPT -m comment --comment "xmpps"
  85. #-A OUTPUT -p udp -m udp --sport 32768:65535 --dport 1900 -j ACCEPT -m comment --comment "xmpp?"
  86. # IRC
  87. -A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 6667 -j ACCEPT
  88. -A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 6697 -j ACCEPT -m comment --comment "ircs"
  89. # Privoxy
  90. #-A OUTPUT -p tcp -m tcp --sport ? --dport 8118 -j ACCEPT -m comment --comment "Privoxy"
  91. # Bitcoin
  92. #-A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 8333 -j ACCEPT -m comment --comment "Bitcoin"
  93. # MagnaVersum Gogs git SSH
  94. #-A OUTPUT -d 138.201.205.221 -p tcp -m tcp --sport 32768:65535 --dport 10022 -j ACCEPT -m comment --comment "MagnaVersum Gogs git SSH"
  95. # OpenPGP HTTP Key servers
  96. -A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 11371 -j ACCEPT -m comment --comment "OpenPGP HTTP key servers"
  97. # Torrents
  98. #-A OUTPUT -p udp -m udp --sport 51413 -j ACCEPT -m comment --comment "Torrents"
  99. #-A OUTPUT -p tcp -m tcp --dport 51413 -j ACCEPT -m comment --comment "Torrents"
  100. #-A OUTPUT -p tcp -m tcp --sport 51413 --dport 1024:65535 -j ACCEPT -m comment --comment "Torrents"
  101. #-A INPUT -p udp -m udp --dport 51413 -j ACCEPT -m comment --comment "Torrents"
  102. #-A INPUT -p tcp -m tcp --dport 51413 -j ACCEPT -m comment --comment "Torrents"
  103. # Traceroute
  104. -A OUTPUT -p udp -m udp --sport 32768:65535 --dport 6881:33534 -j ACCEPT -m comment --comment "Traceroute"
  105. # KDE Connect
  106. -A INPUT -p tcp -m tcp --sport 1716 --dport 59442 -j ACCEPT -m comment --comment "KDE Conect"
  107. -A INPUT -d 255.255.255.255 -p udp -m udp --sport 32768:65535 --dport 1716 -j ACCEPT -m comment --comment "KDE Connect"
  108. -A INPUT -d 224.0.0.1 -j ACCEPT -m comment --comment "Multicast: All hosts, used by KDE Connect"
  109. -A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 1716 -j ACCEPT -m comment --comment "KDE Connect"
  110. #-A INPUT -p udp -m udp --sport 57621 --dport 57621 -j ACCEPT
  111. #-A INPUT -d 224.0.0.251 -p udp -m udp --sport 5353 --dport 5353 -j ACCEPT -m comment --comment "KDE Connect"
  112. #-A OUTPUT -p udp -m udp --sport 1716 --dport 1716
  113. -A OUTPUT -p tcp -m tcp --sport 32768:65535 --dport 1739 -j ACCEPT -m comment --comment "KDE Connect"
  114. # Attacks, crawls, scans, etc to clutter chain
  115. -A INPUT -p icmp -j clutter
  116. -A INPUT -s 0.0.0.0 -d 255.255.255.255 -j clutter -m comment --comment "Broadcast messages"
  117. -A INPUT -d 224.0.0.1 -p igmp -j clutter -m comment --comment "Multicast: All hosts"
  118. -A OUTPUT -d 224.0.0.22 -p igmp -j clutter -m comment --comment "Multicast"
  119. -A INPUT -p udp -m udp --dport 19 -j clutter -m comment --comment "Character generator, looping to echo = DDoS"
  120. -A INPUT -p tcp -m tcp --dport 23 -j clutter
  121. -A INPUT -p udp -m udp --dport 53 -j clutter
  122. -A INPUT -p udp -m udp --dport 111 -j clutter -m comment --comment "Probe/fingerprint Nix OS"
  123. -A INPUT -p udp -m udp --sport 137 --dport 137 -j clutter -m comment --comment "NETBIOS Name Service"
  124. -A INPUT -p udp -m udp --sport 138 --dport 138 -j clutter -m comment --comment "NETBIOS Datagram Service"
  125. -A INPUT -p tcp -m tcp --dport 445 -j clutter -m comment --comment "MS-DS active directory"
  126. -A INPUT -p tcp -m tcp --dport 2323 -j clutter -m comment --comment "3d-nfsd"
  127. -A INPUT -p udp -m udp --dport 5060 -j clutter
  128. -A OUTPUT -d 224.0.0.251 -p udp -m udp --sport 5353 --dport 5353 -j clutter -m comment --comment "Multicast: mDNS"
  129. -A INPUT -p tcp -m tcp --dport 3389 -j clutter -m comment --comment "MS terminal server RDP"
  130. -A INPUT -p udp -m udp --sport 57621 --dport 57621 -j clutter -m comment --comment "Spotify client P2P"
  131. #-A INPUT -d 255.255.255.255 -p tcp -m tcp --sport 67 --dport 68 -j clutter -m comment --comment "DHCP"
  132. #-A INPUT -m iprange --dst-range 185.66.250.254-185.66.250.255 -j clutter
  133. #-A INPUT -m mac --mac-source d4:ca:6d:74:87:0d -j clutter
  134. #-A INPUT -p udp -m udp --dport 3076 -j clutter -m comment --comment "orbix-config"
  135. # Log & drop
  136. -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables dropped: " --log-level 7
  137. -A INPUT -j DROP
  138. -A FORWARD -m limit --limit 5/min -j LOG --log-prefix "iptables forward dropped: " --log-level 7
  139. -A FORWARD -j DROP
  140. -A OUTPUT -m limit --limit 5/min -j LOG --log-prefix "iptables rejected: " --log-level 7
  141. -A OUTPUT -j REJECT --reject-with icmp-port-unreachable
  142. -A clutter -m limit --limit 5/min -j LOG --log-prefix "iptables clutter dropped: " --log-level 7
  143. -A clutter -j DROP
  144. COMMIT