DDoS và các cuộc tấn công khác so với iptables (Bảo mật chống DDoS trong iptables)

Tránh một cuộc tấn công DDoS với iptables Nó có nhiều cách để thực hiện, theo kích thước gói, theo giới hạn kết nối, v.v. Ở đây, chúng tôi sẽ xem cách chúng tôi sẽ đạt được mục tiêu một cách dễ dàng, trực quan và được giải thích rõ ràng như thế nào, cũng như ngăn chặn các cuộc tấn công gây phiền nhiễu khác trên máy chủ của chúng tôi.

# Iptables

IPT="/sbin/iptables"
ETH="eth0"

#Todo el tráfico syn
$IPT -P INPUT DROP
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -P OUTPUT DROP
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
$IPT -A OUTPUT -m state --state INVALID -j DROP
$IPT -P FORWARD DROP
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p tcp ! --syn -j REJECT --reject-with tcp-reset
$IPT -A FORWARD -m state --state INVALID -j DROP
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A FORWARD -i lo -o lo -j ACCEPT

#Cuando sube la carga
$IPT -A INPUT -p tcp --syn -j REJECT --reject-with icmp-port-unreachable

#La que mejor va
$IPT -N syn-flood
$IPT -A syn-flood -m limit --limit 100/second --limit-burst 150 -j RETURN
$IPT -A syn-flood -j LOG --log-prefix "SYN flood: "
$IPT -A syn-flood -j DROP

#Igual que el de arriba pero muy raw
$IPT -N syn-flood
$IPT -A INPUT -i eth0:2 -p tcp --syn -j syn-flood
$IPT -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
$IPT -A syn-flood -j DROP
$IPT -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 1/sec -j ACCEPT
$IPT -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j ACCEPT

#Descartar paquetes mal formados
$IPT -N PKT_FAKE
$IPT -A PKT_FAKE -m state --state INVALID -j DROP
$IPT -A PKT_FAKE -p tcp --dport 80 --tcp-flags ALL ACK,RST,SYN,FIN -j DROP
$IPT -A PKT_FAKE -p tcp --dport 80 --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPT -A PKT_FAKE -p tcp --dport 80 --tcp-flags SYN,RST SYN,RST -j DROP
$IPT -A PKT_FAKE -p tcp --dport 80 ! --syn -m state --state NEW -j DROP
$IPT -A PKT_FAKE -f -j DROP
$IPT -A PKT_FAKE -j RETURN

#Syn-flood
$IPT -N syn-flood
$IPT -A INPUT -i eth+ -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j syn-flood
$IPT -A FORWARD -i eth+ -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j syn-flood
$IPT -A syn-flood -m limit --limit 4/s --limit-burst 16 -j RETURN
$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
$IPT -A syn-flood -j DROP

#Requiere módulo "recent"
modprobe ipt_recent
$IPT -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
$IPT -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 10 -j DROP

# explicación:
# Se añade cada ip que se conecte a la tabla de recent
# Por por cada ip en la tabla de recent si hace mas de x hits en x segundos, se dropea.
$IPT -I INPUT -p tcp --syn -m recent --set
$IPT -I INPUT -p tcp --syn -m recent --update --seconds 10 --hitcount 30 -j DROP

#UDP Flood
$IPT -A OUTPUT -p udp -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -p udp -m limit --limit 100/s -j ACCEPT
$IPT -A OUTPUT -p udp -j DROP

Những gì nó làm là đếm số gói SYN (Bắt đầu kết nối TCP) cho mỗi địa chỉ IP trong 10 giây qua. Nếu đạt đến 30, nó sẽ loại bỏ gói tin đó vì vậy kết nối sẽ không được thiết lập (TCP sẽ thử lại nhiều lần, khi nó giảm xuống dưới giới hạn, nó có thể được đặt).

#Evitando Layer7 DoS limitando a 80 la máxima cantidad de conexiones
$IPT -A INPUT -p tcp --dport 80 -m hashlimit --hashlimit-upto 50/min --hashlimit-burst 80 --hashlimit-mode srcip --hashlimit-name http -j ACCEPT
$IPT -A INPUT -p tcp --dport 80 -j DROP

#Permitir el ping, pero a 1 paquete por segundo, para evitar un ataque ICMP Flood
$IPT -A INPUT -p icmp -m state --state NEW --icmp-type echo-request -m limit --limit 1/s --limit-burst 1 -j ACCEPT
$IPT -A INPUT -p icmp -j DROP

#Evitando que escaneen la máquina
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE –j DROP
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags SYN,FIN SYN,FIN –j DROP
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags SYN,RST SYN,RST –j DROP
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags FIN,RST FIN,RST –j DROP
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags ACK,FIN FIN –j DROP
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags ACK,URG URG –j DROP

Đây là tập lệnh trong Dán của chúng tôi: Dán.DesdeLinux.net (Tập lệnh trước)

Tài liệu tham khảo:


14 bình luận, để lại của bạn

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   KZKG ^ Gaara dijo

    Và đây là lý do tại sao tôi đưa ra một hướng dẫn trước khi tấn công DDoS 😉
    Để đặt / giải thích lý do hoặc vấn đề (hướng dẫn trước), và cũng cung cấp cho bạn giải pháp (hướng dẫn này) 🙂

    1.    diazepam dijo

      hoàn hảo.

  2.   koratsuki dijo

    Kẹo trẻ em ...

  3.   Hugo dijo

    Tốt bài viết.

    Theo quan điểm của tôi:

    Trong trường hợp gói UDP, không có cờ SYN vì nó là một giao thức không có kiểm soát trạng thái. Tuy nhiên, nghịch lý là trạng thái MỚI và LẬP TỨC lại tồn tại vì iptables bên trong chứa các bảng cho mục đích này.

    Mặt khác, theo ý kiến ​​của tôi, tốt hơn nên sử dụng đích DROP thay vì TỪ CHỐI, vì hai lý do: thứ nhất, với một từ chối, một người đang cung cấp thông tin cho kẻ tấn công có thể xảy ra và máy tính cũng đang sử dụng một phần kết nối của nó để gửi thông báo cho đội tấn công.

    Một điều khác là trong trường hợp của giao thức ICMP (và nói chung), việc điều chỉnh cả yêu cầu và phản hồi sẽ rất thuận tiện, bởi vì chúng tôi có thể quan tâm đến việc tự ping tại một số điểm và bằng cách bật chức năng này, ai đó có thể sử dụng botnet và làm giả địa chỉ nguồn liên tục ping nhiều PC bị xâm nhập này và các phản hồi sẽ được gửi đến máy chủ của chúng tôi, làm sập nó nếu không có giới hạn nào được áp dụng.

    Tôi thường cho phép các loại ICMP 0,3,8,11 và 12 với giới hạn đầu vào là một mỗi giây và một loạt tối đa hai hoặc bốn, và mọi thứ khác được để DROP.

    Trên thực tế, ngoại trừ giao thức TCP có thể được điều chỉnh tốt hơn, tất cả các giao thức khác nên được bảo vệ bằng biện pháp chống DDoS bằng một loại trùng hợp gần đây. Về điều này, như một sự tò mò, tác giả của mô-đun này thích đặt bản cập nhật đầu tiên và sau đó là bộ.

    Iptables thực sự rất linh hoạt và mạnh mẽ, cho đến nay điều duy nhất mà tôi đề xuất làm và tôi chưa đạt được (mặc dù tôi đã gần đạt được nó), là kích hoạt mô-đun psd để tránh các lần quét cổng, nhưng ngay cả với mọi thứ Tôi đã tìm hiểu về công cụ này, tôi nghĩ rằng tôi thậm chí còn chưa làm xước bề mặt. 😉

    Dù sao thì trên đời này bạn luôn phải học.

  4.   koratsuki dijo

    Điểm tốt Hugo, có trong hồ sơ cho bảng thuật ngữ của chúng tôi: D, như mọi khi, học ...

    1.    Hugo dijo

      Nhân tiện, tôi đã có mô-đun psd để làm việc cho tôi. Vấn đề là ban đầu nó phụ thuộc vào một chức năng hạt nhân đã không còn được dùng nữa cùng với patch-o-matic, vì vậy nó đã bị xóa khỏi các mô-đun tích hợp trong netfilter theo mặc định. Vì vậy, bây giờ trong Debian để sử dụng phần mở rộng psd, trước tiên bạn phải thực hiện điều này:


      aptitude -RvW install iptables-dev xtables-addons-{common,source} module-assistant
      module-assistant auto-install xtables-addons-source

      Sau đó có thể sử dụng bình thường theo hướng dẫn:

      man xtables-addons

      1.    xa dijo

        Hugo, tại sao bạn không xuất bản một iptables.sh với các đề xuất của bạn để cải thiện kịch bản của bài đăng này (thật tốt) bao gồm cả psd

        Cảm ơn

  5.   nelson dijo

    Bài viết xuất sắc, iptables xuất sắc và lời giải thích tuyệt vời từ @hugo. Tôi ngày càng tin rằng mình còn nhiều điều phải học.

  6.   koratsuki dijo

    Không phải chỉ có một mình bạn, ít nhất là tôi ... Tôi đang thiếu một triệu ... 😀

  7.   Thiên thần Miguel dijo

    Xin chào tất cả mọi người và cảm ơn vì sự đóng góp, nhưng sự thật là chúng tôi đang rất tuyệt vọng, chúng tôi không biết phải làm gì bây giờ, và chúng tôi đến với bạn vì điều này của iptables mà chúng tôi biết rằng bạn là chuyên gia về hệ thống.
    Tôi là lãnh đạo của một cộng đồng ở Tây Ban Nha về nguồn phản công và chúng tôi là một trong số ít những người vẫn hầu như không đứng vững, chúng tôi nhận được các cuộc tấn công liên tục từ máy và các cuộc tấn công khác trong khoảng thời gian, liên tục loại bỏ một chút nhưng gây tắc nghẽn máy chủ một chút nhưng một trong những thời gian làm thiệt hại nhiều hơn. Máy của chúng tôi được gắn trên 6.2 centos
    và chúng tôi có tcadmin để kiểm soát các máy chủ. Bạn có thể tạo cho chúng tôi một cấu hình có thể ngăn chặn kiểu tấn công này dù chỉ một chút, đó là chúng tôi đã tuyệt vọng,
    và chúng tôi không biết phải tìm đến ai, chúng tôi biết rằng có hai mạng botnet, một mạng tự chế và một mạng khác phải trả giá bằng thời gian và sức lực. Do đó, chúng tôi đã phải chịu đựng các cuộc tấn công tàn bạo kiểu này trong gần một năm, nếu bạn có thể giúp chúng tôi, chúng tôi sẽ vô cùng biết ơn vì hiện tại nó không bền vững, tôi thích định cấu hình máy chủ như hoobie và tôi không phải là một đứa trẻ mà tôi đảm bảo điều này là rất nhiều đối với tôi. Nếu bạn muốn ts3 của tôi nói chuyện hoặc bất cứ điều gì tôi rất thích nếu bạn có thể giúp chúng tôi, vì vậy chúng tôi sẽ đăng ở đây kết quả và mọi thứ đã được giải quyết vì lợi ích của nhiều người, đó sẽ là blog được truy cập nhiều nhất trong năm mà tôi đảm bảo với bạn bởi vì nó là không thể tin được làm thế nào nó làm phiền các cuộc tấn công ddos. Vì chúng tôi đã cố gắng tự định cấu hình nó và bị chặn quyền truy cập vào máy, chúng tôi phải định dạng nó từ bios, vì vậy hãy tưởng tượng xem chúng tôi như thế nào.
    Tôi gửi lời chào thân ái. Và lời chúc mừng của tôi cho blog bị thiếu, nhiều người có một blog đã được cập nhật với blog này. -Thiên thân Miguel-

    1.    KZKG ^ Gaara dijo

      Xin chào, bạn có khỏe không
      Hãy viết thư vào email của tôi, chúng tôi sẽ sẵn lòng giúp đỡ bạn 😀 -» kzkggaara[@]desdelinux[.]mạng lưới

  8.   ArthurShelby dijo

    Xin chào các bạn, cho đến bây giờ tôi đang làm việc, nhân tiện lấy tập lệnh này, rất hay ... chỉ có một nghi ngờ: Mô-đun «gần đây» không giảm hiệu suất?

    Lời chào - Cảm ơn bạn / Ai giống bạn?

  9.   Jose tapia dijo

    Đóng góp tuyệt vời, bạn của tôi, tôi sẽ đưa bạn vào tài liệu tham khảo của video hướng dẫn mà chúng tôi đang lắp ráp, một cái ôm từ Costa Rica

  10.   Cristian Ivory Reinoso dijo

    Xin chào,

    Không thể sử dụng tập lệnh trên nhiều cổng?
    Tôi có một máy chủ trò chơi và tôi nhận được các cuộc tấn công vào cả web và cổng máy chủ trò chơi.

    Một lời chào.