Bienvenido! Aquí usted puede subir sus pastes (códigos) para posteriormente compartirlos, inclusive puede protegerlos con password. Siéntase libre de explorar :)

Subido por Anonymous el April Tue 21st 1:56 PM - Nunca expira (Paste modificado por anti-ddos_iptabl)
Descargar | Nuevo Paste

  1. # Iptables
  2.  
  3. IPT="/sbin/iptables"
  4. ETH="eth0"
  5.  
  6. #Todo el tráfico syn
  7. $IPT -P INPUT DROP
  8. $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  9. $IPT -A INPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
  10. $IPT -A INPUT -m state --state INVALID -j DROP
  11. $IPT -P OUTPUT DROP
  12. $IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  13. $IPT -A OUTPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
  14. $IPT -A OUTPUT -m state --state INVALID -j DROP
  15. $IPT -P FORWARD DROP
  16. $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
  17. $IPT -A FORWARD -p tcp ! --syn -j REJECT --reject-with tcp-reset
  18. $IPT -A FORWARD -m state --state INVALID -j DROP
  19. $IPT -A INPUT -i lo -j ACCEPT
  20. $IPT -A OUTPUT -o lo -j ACCEPT
  21. $IPT -A FORWARD -i lo -o lo -j ACCEPT
  22.  
  23. #Cuando sube la carga
  24. $IPT -A INPUT -p tcp --syn -j REJECT --reject-with icmp-port-unreachable
  25.  
  26. #La que mejor va
  27. $IPT -N syn-flood
  28. $IPT -A syn-flood -m limit --limit 100/second --limit-burst 150 -j RETURN
  29. $IPT -A syn-flood -j LOG --log-prefix "SYN flood: "
  30. $IPT -A syn-flood -j DROP
  31.  
  32. #Igual que el de arriba pero muy raw
  33. $IPT -N syn-flood
  34. $IPT -A INPUT -i eth0:2 -p tcp --syn -j syn-flood
  35. $IPT -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
  36. $IPT -A syn-flood -j DROP
  37. $IPT -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 1/sec -j ACCEPT
  38. $IPT -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j ACCEPT
  39.  
  40. #Descartar paquetes mal formados
  41. $IPT -N PKT_FAKE
  42. $IPT -A PKT_FAKE -m state --state INVALID -j DROP
  43. $IPT -A PKT_FAKE -p tcp --dport 80 --tcp-flags ALL ACK,RST,SYN,FIN -j DROP
  44. $IPT -A PKT_FAKE -p tcp --dport 80 --tcp-flags SYN,FIN SYN,FIN -j DROP
  45. $IPT -A PKT_FAKE -p tcp --dport 80 --tcp-flags SYN,RST SYN,RST -j DROP
  46. $IPT -A PKT_FAKE -p tcp --dport 80 ! --syn -m state --state NEW -j DROP
  47. $IPT -A PKT_FAKE -f -j DROP
  48. $IPT -A PKT_FAKE -j RETURN
  49.  
  50. #Syn-flood
  51. $IPT -N syn-flood
  52. $IPT -A INPUT -i eth+ -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j syn-flood
  53. $IPT -A FORWARD -i eth+ -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j syn-flood
  54. $IPT -A syn-flood -m limit --limit 4/s --limit-burst 16 -j RETURN
  55. $IPT -A syn-flood -m limit --limit 75/s --limit-burst 100 -j RETURN -A syn-flood -j LOG --log-prefix "SYN FLOOD " --log-tcp-sequence --log-tcp-options --log-ip-options -m limit --limit 1/second
  56. $IPT -A syn-flood -j DROP
  57.  
  58. #Requiere módulo "recent"
  59. modprobe ipt_recent
  60. $IPT -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
  61. $IPT -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 10 -j DROP
  62.  
  63. # explicación:
  64. # Se añade cada ip que se conecte a la tabla de recent
  65. # Por por cada ip en la tabla de recent si hace mas de x hits en x segundos, se dropea.
  66. $IPT -I INPUT -p tcp --syn -m recent --set
  67. $IPT -I INPUT -p tcp --syn -m recent --update --seconds 10 --hitcount 30 -j DROP
  68.  
  69. #UDP Flood
  70. $IPT -A OUTPUT -p udp -m state --state NEW -j ACCEPT
  71. $IPT -A OUTPUT -p udp -m limit --limit 100/s -j ACCEPT
  72. $IPT -A OUTPUT -p udp -j DROP
  73.  
  74. #Evitando Layer7 DoS limitando a 80 la máxima cantidad de conexiones
  75. $IPT -A INPUT -p tcp --dport 80 -m hashlimit --hashlimit-upto 50/min --hashlimit-burst 80 --hashlimit-mode srcip --hashlimit-name http -j ACCEPT
  76. $IPT -A INPUT -p tcp --dport 80 -j DROP
  77.  
  78. #Permitir el ping, pero a 1 paquete por segundo, para evitar un ataque ICMP Flood
  79. $IPT -A INPUT -p icmp -m state --state NEW --icmp-type echo-request -m limit --limit 1/s --limit-burst 1 -j ACCEPT
  80. $IPT -A INPUT -p icmp -j DROP
  81.  
  82. #Evitando que escaneen la máquina
  83. $IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE –j DROP
  84. $IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags SYN,FIN SYN,FIN –j DROP
  85. $IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags SYN,RST SYN,RST –j DROP
  86. $IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags FIN,RST FIN,RST –j DROP
  87. $IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags ACK,FIN FIN –j DROP
  88. $IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags ACK,URG URG –j DROP
Lenguaje:
Para seńalar algunas líneas en particular, al inicio de cada línea pon: @@





© 2017 - Powered by PASTE 1.0. Traducido al ESP y modificado por DesdeLinux.net