DDoS और अन्य हमले बनाम iptables (iptables में एंटी-डीडीओ सुरक्षा)

हमले से बचें DDoS साथ iptables इसे करने के कई तरीके हैं, पैकेट के आकार से, कनेक्शन की सीमा से, आदि। यहां हम देखेंगे कि कैसे, एक आसान, सहज और अच्छी तरह से समझाया गया तरीका हम उद्देश्य को प्राप्त करेंगे, साथ ही साथ हमारे सर्वर पर अन्य कष्टप्रद हमलों को रोकेंगे।

# 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

यह क्या SYN पैकेट की संख्या की गणना करता है (टीसीपी कनेक्शन शुरू) अंतिम 10 सेकंड में प्रत्येक आईपी पते के लिए। यदि यह 30 तक पहुँच जाता है तो यह उस पैकेट को हटा देता है जिससे कनेक्शन स्थापित नहीं होगा (टीसीपी कई बार पीछे हट जाएगी, जब वह सीमा से नीचे चला जाएगा).

#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

यहाँ हमारे पेस्ट में स्क्रिप्ट है: पेस्ट करें।DesdeLinux.net (Script anterior)

संदर्भ:


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   KZKG ^ गारा कहा

    और यही कारण है कि मैंने DDoS के हमलों से पहले एक ट्यूटोरियल रखा है put
    कारण या समस्या (पिछले ट्यूटोरियल) को स्पष्ट करने के लिए, और आपको समाधान (यह ट्यूटोरियल) reason भी दें

    1.    डायजेपैन कहा

      एकदम सही है.

  2.   कोरत्सुकी कहा

    बच्चों की कैंडी ...

  3.   ह्यूगो कहा

    ब्यूएन आर्टिकुलो।

    मेरे दो सेंट:

    यूडीपी पैकेट के मामले में, कोई SYN ध्वज नहीं है क्योंकि यह राज्य नियंत्रण के बिना एक प्रोटोकॉल है। हालाँकि, विरोधाभासी रूप से, नए और स्थापित राज्यों का अस्तित्व है क्योंकि iptables आंतरिक रूप से इस उद्देश्य के लिए तालिकाओं को रखता है।

    दूसरी ओर, मेरी राय में, दो कारणों से REJECT के बजाय एक DROP गंतव्य का उपयोग करना बेहतर है: सबसे पहले, एक अस्वीकार के साथ एक संभावित हमलावर को जानकारी दे रहा है, और कंप्यूटर भी भेजने के लिए अपनी कनेक्टिविटी के हिस्से का उपयोग कर रहा है हमला करने वाली टीम को सूचना।

    एक और बात यह है कि आईसीएमपी प्रोटोकॉल के मामले में (और सामान्य तौर पर) यह अनुरोधों और प्रतिक्रियाओं दोनों को विनियमित करने के लिए सुविधाजनक है, क्योंकि हम शायद खुद को पिंग करने में कुछ बिंदु पर रुचि रखते हैं, और इस कार्यक्षमता को सक्षम करके, कोई बोटनेट का उपयोग कर सकता है और बिना अंत के इन समझौता किए गए पीसी में से कई को पिंग करने के लिए स्रोत पते को गलत साबित करें, और यदि कोई सीमाएं लागू नहीं हुईं, तो प्रतिक्रियाएं हमारे सर्वर पर चली जाएंगी।

    मैं आमतौर पर आईसीएमपी प्रकार 0,3,8,11 और 12 को प्रति सेकंड की इनपुट सीमा और अधिकतम दो या चार के फटने की अनुमति देता हूं, और बाकी सब डीआरओपी के लिए छोड़ दिया जाता है।

    दरअसल, टीसीपी प्रोटोकॉल को छोड़कर जिन्हें बेहतर तरीके से विनियमित किया जा सकता है, अन्य सभी को हाल के प्रकार के मैच के माध्यम से एंटी-डीडीओएस माप के साथ संरक्षित किया जाना चाहिए। इस बारे में, एक जिज्ञासा के रूप में, इस मॉड्यूल के लेखक ने पहले अपडेट और फिर सेट को जगह देना पसंद किया।

    Iptables वास्तव में बहुत लचीला और शक्तिशाली है, अब तक केवल एक चीज जिसे मैंने करने का प्रस्ताव किया है और मैंने अभी तक इसे हासिल नहीं किया है (हालांकि मैं इसे प्राप्त करने के करीब हूं), पोर्ट्सकैन से बचने के लिए psd मॉड्यूल को सक्षम करना है, लेकिन सब कुछ के साथ भी मुझे उपकरण के बारे में पता चला है, मुझे लगता है कि मैंने अभी तक सतह को खरोंच नहीं किया है। 😉

    वैसे भी, इस दुनिया में आपको हमेशा अध्ययन करना होगा।

  4.   कोरत्सुकी कहा

    हमारी शब्दावली के लिए फ़ाइल पर अच्छे अंक ह्यूगो: डी, ​​हमेशा की तरह, सीखना ...

    1.    ह्यूगो कहा

      वैसे, मुझे पहले से ही मेरे लिए काम करने के लिए psd मॉड्यूल मिला है। समस्या यह थी कि यह शुरू में एक कर्नेल कार्यक्षमता पर निर्भर करता था जिसे पैच-ओ-मैटिक के साथ हटा दिया गया था, इसलिए इसे डिफ़ॉल्ट रूप से नेटफिल्टर में अंतर्निहित मॉड्यूल से हटा दिया गया था। तो अब डेबियन में psd एक्सटेंशन का उपयोग करने के लिए, पहले आपको यह करना होगा:


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

      यह फिर निर्देशों के अनुसार, आमतौर पर इस्तेमाल किया जा सकता है:

      man xtables-addons

      1.    दूर कहा

        ह्यूगो, आप इस पोस्ट की स्क्रिप्ट को बेहतर बनाने के लिए अपने सुझावों के साथ iptables.sh को प्रकाशित क्यों नहीं करते (जो अच्छा है) psd सहित

        धन्यवाद

  5.   नेल्सन कहा

    उत्कृष्ट लेख, उत्कृष्ट iptables और @hugo से उत्कृष्ट विवरण। मैं अधिक से अधिक आश्वस्त हो रहा हूं कि मुझे अभी भी बहुत कुछ सीखना बाकी है।

  6.   कोरत्सुकी कहा

    यह आप अकेले नहीं हैं, कम से कम मुझे ... मुझे एक लाख याद आ रहा है ... at

  7.   मिगुएल एंजेल कहा

    सभी को नमस्कार, और योगदान के लिए धन्यवाद, लेकिन सच्चाई यह है कि हम हताश हैं, हम नहीं जानते कि अब क्या करना है, और हम आपके लिए इस iptables के लिए आते हैं जो हम जानते हैं कि आप सिस्टम के विशेषज्ञ हैं।
    मैं काउंटर स्ट्राइक स्रोत के स्पेन में एक समुदाय का नेता हूं और हम उन कुछ लोगों में से एक हैं जो अभी भी मुश्किल से खड़े हैं, हम मशीन से लगातार हमले और समय के अंतराल पर अन्य हमले कर रहे हैं, निरंतर थोड़ा कम करता है लेकिन सर्वर को नुकसान पहुंचाता है थोड़ा लेकिन जो समय का है वह अधिक नुकसान करता है। हमारी मशीन 6.2 सेंटो पर चढ़ी हुई है
    और हमारे पास सर्वरों को नियंत्रित करने के लिए tcadmin है। आप हमें एक ऐसा विन्यास बना सकते हैं जो इस प्रकार के हमले को थोड़ा भी रोक सके, यह है कि हम पहले से ही हताश हैं,
    और हम नहीं जानते कि किसकी ओर मुड़ना है, हम जानते हैं कि दो बोटनेट हैं, एक घर का बना और दूसरा समय और बल के लिए भुगतान किया जाता है। हम लगभग एक साल से इस प्रकार के क्रूर हमलों को सहन कर रहे हैं, अगर आप हमारी मदद कर सकते हैं तो हम सदा आभारी रहेंगे क्योंकि यह अब अस्थिर है, मुझे हॉबी जैसे सर्वरों को कॉन्फ़िगर करना पसंद है, और मैं एक बच्चा नहीं हूं - मैं आपको आश्वासन देता हूं लेकिन यह मेरे लिए बहुत कुछ है। यदि आप चाहते हैं कि मेरा ts3 बात करे या कुछ भी हो तो मुझे अच्छा लगेगा यदि आप हमारी मदद कर सकें तो हम यहाँ परिणाम और सब कुछ जो बहुत से लोगों की भलाई के लिए हल किया गया है, उसे पोस्ट करेंगे, यह वर्ष का सबसे अधिक दौरा किया जाने वाला ब्लॉग होगा जो मैं आपको विश्वास दिलाता हूँ क्योंकि यह अविश्वसनीय है कि यह कैसे इन हमलों ddos ​​annoys। चूंकि हमने इसे अपने दम पर कॉन्फ़िगर करने की कोशिश की और मशीन तक पहुंच को अवरुद्ध कर दिया, इसलिए हमें इसे बायोस से प्रारूपित करना पड़ा, इसलिए कल्पना करें कि हम कैसे हैं।
    मैं सौहार्दपूर्ण अभिवादन भेजता हूं। और लापता ब्लॉग के लिए मेरी बधाई, बहुत से लोग एक को ढूंढते हैं जो इस एक के साथ अपडेट किया गया था। -मिगुएल एंजेल-

    1.    KZKG ^ गारा कहा

      नमस्ते आप कैसे हैं 🙂
      Escríbeme a mi email, te ayudamos con mucho gusto 😀 -» kzkggaara[@]desdelinux[।]जाल

  8.   आर्थरशेल्बी कहा

    नमस्कार दोस्तों, अब तक जब मैं काम कर रहा हूं, तो इस स्क्रिप्ट को लें, बहुत अच्छे तरीके से ... बस एक संदेह: क्या «हालिया» मॉड्यूल प्रदर्शन को कम नहीं करता है?

    अभिवादन - धन्यवाद / आपको कौन पसंद है?

  9.   जोस तापिया कहा

    उत्कृष्ट योगदान मेरे दोस्त, मैं आपको एक ट्यूटोरियल वीडियो के संदर्भ में डालूंगा, जिसे हम बढ़ रहे हैं, कोस्टा रिका से आलिंगन

  10.   क्रिस्टियन मारफिल रेनोसो कहा

    नमस्कार,

    कई बंदरगाहों पर स्क्रिप्ट का उपयोग नहीं कर सकते?
    मेरे पास गेम सर्वर है और मुझे वेब और गेम सर्वर पोर्ट दोनों पर हमले होते हैं।

    एक ग्रीटिंग.