Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
iptables-essentials — Iptables Essentials: सामान्य फ़ायरवॉल नियम और कमांड्स। | Kitploit
उपकरण/GitHubGitHub/trimstray/iptables-essentials
कॉन्फ़िगरेशन ऑडिटिंगनेटवर्क सुरक्षालर्निंग और शिक्षाचयनित संसाधन
GitHubtrimstray/iptables-essentials

iptables-essentials

Iptables Essentials: सामान्य फ़ायरवॉल नियम और कमांड्स।

रिपॉजिटरी देखें
1.6k2891 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Iptables आवश्यकताएँ: सामान्य फ़ायरवॉल नियम और कमांड


Pull Requests MIT License


☑️ करने के लिए कार्य

  • उपयोगी Iptables कॉन्फ़िगरेशन उदाहरण जोड़ें
  • उपयोगी कर्नेल सेटिंग्स (sysctl) कॉन्फ़िगरेशन जोड़ें
  • उपयोगी बाहरी संसाधनों के लिंक जोड़ें
  • उन्नत कॉन्फ़िगरेशन उदाहरण, कमांड, नियम जोड़ें

विषयसूची

  • Iptables कॉन्फ़िगर करने में सहायक उपकरण
  • मैनुअल/हाउ-टू/ट्यूटोरियल
  • उपयोगी कर्नेल सेटिंग्स (sysctl) कॉन्फ़िगरेशन
    • rp_filter
    • log_martians
    • send_redirects
    • accept_source_route
    • accept_redirects
    • tcp_syncookies
    • icmp_echo_ignore_broadcasts
    • ip_forward
  • यह कैसे काम करता है?
  • Iptables नियम
    • नियम सहेजना
      • डेबियन आधारित
      • रेडहैट आधारित
    • सभी सक्रिय iptables नियमों को वर्बोज़ के साथ सूचीबद्ध करें
    • सभी सक्रिय iptables नियमों को संख्यात्मक पंक्तियों और वर्बोज़ के साथ सूचीबद्ध करें
    • सभी सक्रिय iptables नियम प्रिंट करें
    • INPUT श्रृंखला के लिए नियमों को तालिका के रूप में सूचीबद्ध करें
    • INPUT श्रृंखला में सभी नियम विनिर्देश प्रिंट करें
    • पैकेट गणना और कुल आकार दिखाएं
    • INPUT या OUTPUT श्रृंखला नियमों को संख्यात्मक पंक्तियों और वर्बोज़ के साथ प्रदर्शित करें
    • श्रृंखला और संख्या द्वारा नियम हटाएं
    • विनिर्देश द्वारा नियम हटाएं
    • सभी नियम साफ़ करें, सभी श्रृंखलाएँ हटाएं, और सभी स्वीकार करें
    • सभी श्रृंखलाएँ साफ़ करें
    • एकल श्रृंखला साफ़ करें
    • फ़ायरवॉल नियम सम्मिलित करें
    • लूपबैक कनेक्शन की अनुमति दें
    • स्थापित और संबंधित इनकमिंग कनेक्शन की अनुमति दें
    • स्थापित आउटगोइंग कनेक्शन की अनुमति दें
    • आंतरिक से बाहरी
    • अमान्य पैकेट गिराएं
    • IP पता ब्लॉक करें
    • IP पता ब्लॉक करें और अस्वीकार करें
    • नेटवर्क इंटरफ़ेस से कनेक्शन ब्लॉक करें
    • सभी इनकमिंग SSH की अनुमति दें
    • विशिष्ट IP पते या सबनेट से इनकमिंग SSH की अनुमति दें
    • आउटगोइंग SSH की अनुमति दें
  • उन्नत कॉन्फ़िगरेशन उदाहरण
    • NFQUEUE लक्ष्य का उपयोग करके Python में पैकेट हैंडलिंग
      • विशिष्ट स्रोत से सभी पैकेट को (filter:INPUT) पर ACCEPT करें और बाकी सब DROP करें
      • SSH एक्सेस को सुरक्षित करने के लिए अपना स्वयं का पोर्ट नॉकिंग स्क्रिप्ट लिखें

Iptables कॉन्फ़िगर करने में सहायक उपकरण

  :small_orange_diamond: Shorewall - GNU/Linux के लिए उन्नत गेटवे/फ़ायरवॉल कॉन्फ़िगरेशन उपकरण।
  :small_orange_diamond: Firewalld - गतिशील रूप से प्रबंधित फ़ायरवॉल प्रदान करता है।
  :small_orange_diamond: UFW - Ubuntu के लिए डिफ़ॉल्ट फ़ायरवॉल कॉन्फ़िगरेशन उपकरण।
  :small_orange_diamond: FireHOL - सभी Linux फ़ायरवॉल और ट्रैफ़िक शेपिंग आवश्यकताओं के लिए सरल और शक्तिशाली कॉन्फ़िगरेशन प्रदान करता है।

मैनुअल/हाउ-टू/ट्यूटोरियल

  :small_orange_diamond: सर्वोत्तम अभ्यास: iptables - Major Hayden द्वारा
  :small_orange_diamond: Iptables, Linux फ़ायरवॉल के लिए गहन गाइड
  :small_orange_diamond: netfilter/iptables की उन्नत सुविधाएँ
  :small_orange_diamond: iptables का उपयोग करके Linux फ़ायरवॉल
  :small_orange_diamond: iptables डीबग करना और सामान्य फ़ायरवॉल समस्याएँ?
  :small_orange_diamond: Netfilter हैकिंग HOWTO
  :small_orange_diamond: iptables के साथ प्रति-IP दर सीमित करना

उपयोगी कर्नेल सेटिंग्स (sysctl) कॉन्फ़िगरेशन

rp_filter

रूटिंग ट्राइएंगुलेशन अक्षम करें। उसी इंटरफ़ेस पर प्रश्नों का उत्तर दें, दूसरे पर नहीं। IP स्पूफ़िंग से भी बचाता है।```bash cat << EOF >> /etc/sysctl.d/40-custom.conf net/ipv4/conf/all/rp_filter = 1 EOF

root@kitploit:~
- [rp_filter और LPIC-3 लिनक्स सुरक्षा](https://www.theurbanpenguin.com/rp_filter-and-lpic-3-linux-security/)
- [लिनक्स कर्नेल rp_filter सेटिंग्स (रिवर्स पथ फ़िल्टरिंग)](https://www.slashroot.in/linux-kernel-rpfilter-settings-reverse-path-filtering)
- [रिवर्स पथ फ़िल्टरिंग](http://tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.kernel.rpf.html)

##### log_martians

  > _गलत आईपी पतों वाले पैकेटों की लॉगिंग सक्षम करें।_```bash
cat << EOF >> /etc/sysctl.d/40-custom.conf
net/ipv4/conf/all/log_martians = 1
EOF
  • लॉगिंग ऑफ मार्टियन्स पैकेट की उपयोगिता क्या है?
send_redirects

सभी इंटरफ़ेस पर सभी IPv4 ICMP पुनर्निर्देशित पैकेट भेजने को अक्षम करता है।```bash cat << EOF >> /etc/sysctl.d/40-custom.conf net/ipv4/conf/all/send_redirects = 0 EOF

root@kitploit:~
- [स्रोत रूटिंग अक्षम करें](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/security_guide/sect-security_guide-server_security-disable-source-routing)
- [ICMP रीडायरेक्ट क्या हैं और क्या उन्हें ब्लॉक किया जाना चाहिए?](https://askubuntu.com/questions/118273/what-are-icmp-redirects-and-should-they-be-blocked)

##### accept_source_route

  > _स्रोत रूटेड पैकेट (स्ट्रिक्ट सोर्स रूट (SSR) या लूज़ सोर्स रूटिंग (LSR) विकल्प सेट वाले पैकेट) अक्षम करें।_```bash
cat << EOF >> /etc/sysctl.d/40-custom.conf
net/ipv4/conf/all/accept_source_route = 0
EOF
  • स्रोत रूटिंग अक्षम करें
  • सिस्टम को डिफ़ॉल्ट रूप से IPv4 स्रोत-रूटेड पैकेट स्वीकार नहीं करने चाहिए।
accept_redirects

ICMP रीडायरेक्ट की स्वीकृति अक्षम करें।```bash cat << EOF >> /etc/sysctl.d/40-custom.conf net/ipv4/conf/all/accept_redirects = 0 EOF

root@kitploit:~
- [ICMP रीडायरेक्ट क्या हैं और क्या उन्हें ब्लॉक किया जाना चाहिए?](https://askubuntu.com/questions/118273/what-are-icmp-redirects-and-should-they-be-blocked)
- [Red Hat Enterprise Linux ऑपरेटिंग सिस्टम को इंटरनेट प्रोटोकॉल संस्करण 4 (IPv4) इंटरनेट कंट्रोल मैसेज प्रोटोकॉल (ICMP) रीडायरेक्ट संदेशों को अनदेखा करना चाहिए।](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2018-11-28/finding/V-73175)

##### tcp_syncookies

  > _SYN-फ्लड सुरक्षा चालू करें (सेवा अस्वीकृति (DOS) हमलों से सुरक्षा)।_```bash
cat << EOF >> /etc/sysctl.d/40-custom.conf
net/ipv4/tcp_syncookies = 1
EOF
  • SYN बाढ़ के विरुद्ध अपने TCP/IP स्टैक को सुरक्षित करना
  • Linux: TCP SYN कुकी सुरक्षा चालू करें
  • Linux में tcp_syncookies के लिए बेहतर विकल्प
icmp_echo_ignore_broadcasts

पिंग प्रसारणों का उत्तर देना अक्षम करें।```bash cat << EOF >> /etc/sysctl.d/40-custom.conf net/ipv4/icmp_echo_ignore_broadcasts = 1 EOF

root@kitploit:~
- [ICMP प्रसारण किस लिए अच्छा है?](https://superuser.com/questions/306065/what-is-icmp-broadcast-good-for)
- [सिस्टम को प्रसारण पते पर भेजे गए ICMPv4 का जवाब नहीं देना चाहिए।](https://www.stigviewer.com/stig/red_hat_enterprise_linux_6/2018-11-28/finding/V-38535)

##### ip_forward

  > _IP रूटिंग सक्षम करें। आवश्यक है यदि आपका फ़ायरवॉल किसी नेटवर्क की सुरक्षा कर रहा है, NAT सहित।_```bash
cat << EOF >> /etc/sysctl.d/40-custom.conf
net/ipv4/ip_forward = 1
EOF
  • राउटर का परिचय
  • लिनक्स में आईपी फ़ॉरवर्डिंग कैसे सक्षम करें
  • कर्नेल आईपी फ़ॉरवर्डिंग क्या है?

यह कैसे काम करता है?

Master

Iptables नियम

नियम सहेजना

डेबियन आधारित```bash

netfilter-persistent save

root@kitploit:~
###### RedHat आधारित```bash
service iptables save

सभी सक्रिय iptables नियमों को verbose के साथ सूचीबद्ध करें```bash

iptables -n -L -v

root@kitploit:~
#### सभी सक्रिय iptables नियमों को numeric lines और verbose के साथ सूचीबद्ध करें```bash
iptables -n -L -v --line-numbers

सभी सक्रिय iptables नियमों को प्रिंट करें```bash

iptables -S

root@kitploit:~
#### INPUT चेन के लिए तालिकाओं के रूप में नियम सूचीबद्ध करें```bash
iptables -L INPUT

INPUT चेन में सभी नियम विनिर्देशों को प्रिंट करें```bash

iptables -S INPUT

root@kitploit:~
#### पैकेट गणना और कुल आकार दिखाएँ```bash
iptables -L INPUT -v

INPUT या OUTPUT chain rules को संख्यात्मक पंक्तियों और verbose के साथ प्रदर्शित करने के लिए```bash

iptables -L INPUT -n -v iptables -L OUTPUT -n -v --line-numbers

root@kitploit:~
#### Chain और Number द्वारा नियम हटाएँ```bash
iptables -D INPUT 10

विशिष्टता द्वारा नियम हटाएं```bash

iptables -D INPUT -m conntrack --ctstate INVALID -j DROP

root@kitploit:~
#### सभी नियमों को फ्लश करें, सभी श्रृंखलाएं हटाएं, और सभी को स्वीकार करें```bash
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X

सभी चेन्स को फ्लश करें```bash

iptables -F

root@kitploit:~
#### एकल श्रृंखला को फ्लश करें```bash
iptables -F INPUT

फ़ायरवॉल नियम सम्मिलित करें```bash

iptables -I INPUT 2 -s 202.54.1.2 -j DROP

root@kitploit:~
#### लूपबैक कनेक्शन की अनुमति दें```bash
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

स्थापित और संबंधित आने वाले कनेक्शनों को अनुमति दें```bash

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

root@kitploit:~
#### स्थापित बाहरी कनेक्शनों की अनुमति दें```bash
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT

आंतरिक से बाह्य```bash

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

root@kitploit:~
#### अमान्य पैकेट छोड़ें```bash
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

एक IP Address को ब्लॉक करें```bash

iptables -A INPUT -s 192.168.252.10 -j DROP

root@kitploit:~
#### ब्लॉक और IP पता और अस्वीकार करें```bash
iptables -A INPUT -s 192.168.252.10 -j REJECT

नेटवर्क इंटरफ़ेस से कनेक्शन को ब्लॉक करें```bash

iptables -A INPUT -i eth0 -s 192.168.252.10 -j DROP

root@kitploit:~
#### सभी आने वाले SSH की अनुमति दें```bash
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

एक विशिष्ट IP पते या सबनेट से आने वाले SSH को अनुमति दें```bash

iptables -A INPUT -p tcp -s 192.168.240.0/24 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

root@kitploit:~
#### आउटगोइंग SSH की अनुमति दें```bash
iptables -A OUTPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

विशिष्ट आईपी पते या सबनेट से आने वाले Rsync की अनुमति दें```bash

iptables -A INPUT -p tcp -s 192.168.240.0/24 --dport 873 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 873 -m conntrack --ctstate ESTABLISHED -j ACCEPT

root@kitploit:~
#### सभी आने वाले HTTP की अनुमति दें```bash
iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT

सभी आने वाले HTTPS को अनुमति दें```bash

iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT

root@kitploit:~
#### सभी आने वाले HTTP और HTTPS को अनुमति दें```bash
iptables -A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate ESTABLISHED -j ACCEPT

विशिष्ट IP पते या सबनेट से MySQL को अनुमति दें```bash

iptables -A INPUT -p tcp -s 192.168.240.0/24 --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT

root@kitploit:~
#### MySQL को विशिष्ट नेटवर्क इंटरफ़ेस तक अनुमति दें```bash
iptables -A INPUT -i eth1 -p tcp --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT

PostgreSQL विशिष्ट IP पते या सबनेट से```bash

iptables -A INPUT -p tcp -s 192.168.240.0/24 --dport 5432 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 5432 -m conntrack --ctstate ESTABLISHED -j ACCEPT

root@kitploit:~
#### PostgreSQL को विशिष्ट नेटवर्क इंटरफ़ेस की अनुमति दें```bash
iptables -A INPUT -i eth1 -p tcp --dport 5432 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 5432 -m conntrack --ctstate ESTABLISHED -j ACCEPT

आउटगोइंग SMTP मेल को अवरुद्ध करें```bash

iptables -A OUTPUT -p tcp --dport 25 -j REJECT

root@kitploit:~
#### सभी आने वाले SMTP की अनुमति दें```bash
iptables -A INPUT -p tcp --dport 25 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 25 -m conntrack --ctstate ESTABLISHED -j ACCEPT

सभी आने वाले IMAP की अनुमति दें```bash

iptables -A INPUT -p tcp --dport 143 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 143 -m conntrack --ctstate ESTABLISHED -j ACCEPT

root@kitploit:~
#### सभी आने वाले IMAPS की अनुमति दें```bash
iptables -A INPUT -p tcp --dport 993 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 993 -m conntrack --ctstate ESTABLISHED -j ACCEPT

सभी आने वाले POP3 को अनुमति दें```bash

iptables -A INPUT -p tcp --dport 110 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 110 -m conntrack --ctstate ESTABLISHED -j ACCEPT

root@kitploit:~
#### सभी आने वाले POP3S को अनुमति दें```bash
iptables -A INPUT -p tcp --dport 995 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 995 -m conntrack --ctstate ESTABLISHED -j ACCEPT

सार्वजनिक इंटरफ़ेस पर निजी नेटवर्क पता छोड़ें```bash

iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j DROP iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

root@kitploit:~
#### फेसबुक नेटवर्क्स के लिए सभी आउटगोइंग ट्रैफ़िक को ब्लॉक करें

फेसबुक AS प्राप्त करें:```bash
whois -h v4.whois.cymru.com " -v $(host facebook.com | grep "has address" | cut -d " " -f4)" | tail -n1 | awk '{print $1}'

Drop:```bash for i in $(whois -h whois.radb.net -- '-i origin AS32934' | grep "^route:" | cut -d ":" -f2 | sed -e 's/^[ \t]*//' | sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 | cut -d ":" -f2 | sed 's/$/;/') ; do

iptables -A OUTPUT -s "$i" -j REJECT

done

root@kitploit:~
#### पैकेट लॉग और ड्रॉप करें```bash
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG --log-prefix "IP_SPOOF A: "
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

डिफ़ॉल्ट रूप से सब कुछ /var/log/messages फ़ाइल में लॉग किया जाता है:```bash tail -f /var/log/messages grep --color 'IP SPOOF' /var/log/messages

root@kitploit:~
#### सीमित संख्या में लॉग प्रविष्टियों के साथ पैकेट को लॉग और ड्रॉप करें```bash
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -m limit --limit 5/m --limit-burst 7 -j LOG --log-prefix "IP_SPOOF A: "
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

Mac पते से ट्रैफ़िक ड्रॉप करें या स्वीकार करें```bash

iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source 00:0F:EA:91:04:07 -j ACCEPT

root@kitploit:~
#### ICMP पिंग अनुरोध को ब्लॉक या अनुमति दें```bash
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP

multiport के साथ कई पोर्ट निर्दिष्ट करना```bash

iptables -A INPUT -i eth0 -p tcp -m state --state NEW -m multiport --dports ssh,smtp,http,https -j ACCEPT

root@kitploit:~
#### `random*` या `nth*` के साथ लोड बैलेंसिंग```bash
_ips=("172.31.250.10" "172.31.250.11" "172.31.250.12" "172.31.250.13")

for ip in "${_ips[@]}" ; do
  iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 4 --packet 0 \
    -j DNAT --to-destination ${ip}:80
done

या```bash _ips=("172.31.250.10" "172.31.250.11" "172.31.250.12" "172.31.250.13")

for ip in "${_ips[@]}" ; do iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m random --average 25
-j DNAT --to-destination ${ip}:80 done

root@kitploit:~
#### `limit` और `iplimit*` के साथ कनेक्शनों की संख्या को प्रतिबंधित करना```bash
iptables -A FORWARD -m state --state NEW -p tcp -m multiport --dport http,https -o eth0 -i eth1 \
    -m limit --limit 20/hour --limit-burst 5 -j ACCEPT

या```bash iptables -A INPUT -p tcp -m state --state NEW --dport http -m iplimit --iplimit-above 5 -j DROP

root@kitploit:~
#### हाल ही के कनेक्शनों की सूची बनाए रखना ताकि उनसे मिलान किया जा सके```bash
iptables -A FORWARD -m recent --name portscan --rcheck --seconds 100 -j DROP
iptables -A FORWARD -p tcp -i eth0 --dport 443 -m recent --name portscan --set -j DROP

पैकेट के डेटा पेलोड में एक string* के विरुद्ध मिलान करना```bash

iptables -A FORWARD -m string --string '.com' -j DROP iptables -A FORWARD -m string --string '.exe' -j DROP

root@kitploit:~
#### समय-आधारित नियम `time*` के साथ```bash
iptables -A FORWARD -p tcp -m multiport --dport http,https -o eth0 -i eth1 \
    -m time --timestart 21:30 --timestop 22:30 --days Mon,Tue,Wed,Thu,Fri -j ACCEPT

पैकेट मिलान TTL मानों पर आधारित```bash

iptables -A INPUT -s 1.2.3.4 -m ttl --ttl-lt 40 -j REJECT

root@kitploit:~
#### पोर्ट स्कैनिंग से सुरक्षा```bash
iptables -N port-scanning
iptables -A port-scanning -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s --limit-burst 2 -j RETURN
iptables -A port-scanning -j DROP

SSH ब्रूट-फोर्स सुरक्षा```bash

iptables -A INPUT -p tcp --dport ssh -m conntrack --ctstate NEW -m recent --set iptables -A INPUT -p tcp --dport ssh -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 10 -j DROP

root@kitploit:~
#### Syn-flood सुरक्षा```bash
iptables -N syn_flood

iptables -A INPUT -p tcp --syn -j syn_flood
iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN
iptables -A syn_flood -j DROP

iptables -A INPUT -p icmp -m limit --limit  1/s --limit-burst 1 -j ACCEPT

iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 1 -j LOG --log-prefix PING-DROP:
iptables -A INPUT -p icmp -j DROP

iptables -A OUTPUT -p icmp -j ACCEPT
SYNPROXY के साथ SYN Floods को कम करना```bash

iptables -t raw -A PREROUTING -p tcp -m tcp --syn -j CT --notrack iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate INVALID,UNTRACKED -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1460 iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

root@kitploit:~
#### उन नए पैकेट्स को ब्लॉक करें जो SYN नहीं हैं```bash
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

या```bash iptables -t mangle -A PREROUTING -p tcp ! --syn -m conntrack --ctstate NEW -j DROP

root@kitploit:~
#### बलपूर्वक खंड पैकेट जाँच```bash
iptables -A INPUT -f -j DROP

XMAS packets```bash

iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

root@kitploit:~
#### सभी NULL पैकेट्स को छोड़ें```bash
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

असामान्य MSS मानों को अवरुद्ध करें```bash

iptables -t mangle -A PREROUTING -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP

root@kitploit:~
#### नकली TCP Flags वाले पैकेट को ब्लॉक करें```bash
iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,ACK FIN -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,URG URG -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,FIN FIN -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,PSH PSH -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL ALL -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL NONE -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP

प्राइवेट सबनेट से पैकेट ब्लॉक करें (स्पूफिंग)```bash

_subnets=("224.0.0.0/3" "169.254.0.0/16" "172.16.0.0/12" "192.0.2.0/24" "192.168.0.0/16" "10.0.0.0/8" "0.0.0.0/8" "240.0.0.0/5")

for _sub in "${_subnets[@]}" ; do iptables -t mangle -A PREROUTING -s "$_sub" -j DROP done iptables -t mangle -A PREROUTING -s 127.0.0.0/8 ! -i lo -j DROP

root@kitploit:~
## उन्नत कॉन्फ़िगरेशन उदाहरण

### NFQUEUE लक्ष्य का उपयोग करके Python में पैकेट हैंडलिंग

  > _यह लक्ष्य nfnetlink_queue हैंडलर का उपयोग करके पैकेट को userspace में भेजता है। पैकेट को उसके 16-बिट क्यू नंबर द्वारा पहचानी गई क्यू में रखा जाता है। Userspace चाहे तो पैकेट का निरीक्षण और संशोधन कर सकता है। फिर userspace को पैकेट को ड्रॉप करना होगा या कर्नेल में पुनः इंजेक्ट करना होगा।_

#### विशिष्ट स्रोत से सभी पैकेटों को (filter:INPUT) पर ACCEPT करें और बाकी सबको DROP करें

  > _यह नियम सभी filter:INPUT पैकेटों को NFQUEUE लक्ष्य के साथ क्यू 1 पर अग्रेषित करता है।_```bash
iptables -A INPUT -j NFQUEUE --queue-num 1

नेटफिल्टर क्यू 1 से बाइंड होने और पैकेट हैंडल करने के लिए स्क्रिप्ट।```python #!/usr/bin/python3

from netfilterqueue import NetfilterQueue from scapy.all import *

def packetanalyzer(pkt): ip=IP(pkt.get_payload()) if(ip.src=="192.168.122.1"): print(f"New packet from {ip.src}") pkt.accept() else: pkt.drop()

nfqueue=NetfilterQueue() nfqueue.bind(1, packetanalyzer) nfqueue.run()

root@kitploit:~
#### अपने ssh एक्सेस को सुरक्षित करने के लिए खुद का पोर्ट नॉकिंग स्क्रिप्ट लिखें

  > _सभी ssh अनुरोधों को DROP करें और NFQUEUE लक्ष्य के साथ उपयोगकर्ता-स्पेस में गुप्त पोर्ट अनुरोध भेजें।_```bash
iptables -t filter -I INPUT -p tcp --dport 22 -j DROP
iptables -t raw -I PREROUTING -p tcp --sport 65534 --dport 65535 -j NFQUEUE --queue-num 1

यह स्क्रिप्ट netfilter queue 1 से पैकेट कैप्चर करती है और पोर्ट नॉकिंग के लिए SOURCEPORT और SECRETPORT की जाँच करती है, और स्रोत को EXPIRETIME के लिए ssh से कनेक्ट करने की अनुमति देती है, डिफ़ॉल्ट 30 मिनट है।```python #!/usr/bin/python3

from os import system from netfilterqueue import NetfilterQueue from scapy.layers.inet import IP from time import time

SOURCEPORT=65534 SECRETPORT=65535 EXPIRETIME=30 ALLOWED={}

def portknocking(pkt): packet=IP(pkt.get_payload()) currtime=time() for item in list(ALLOWED): if(currtime-ALLOWED[item] >= EXPIRETIME*60): del ALLOWED[item] if(packet.sport==SOURCEPORT and packet.dport==SECRETPORT and packet.src not in ALLOWED): print(f"Port {packet.dport} knocked by {packet.src}:{packet.sport}") system(f"iptables -I INPUT -p tcp --dport 22 -s {packet.src} -j ACCEPT") system(f"echo 'iptables -D INPUT -p tcp --dport 22 -s {packet.src} -j ACCEPT' | at now + {EXPIRETIME} minutes") ALLOWED[packet.src]=time() pkt.drop()

nfqueue=NetfilterQueue() nfqueue.bind(1, portknocking)

try: nfqueue.run() except KeyboardInterrupt: print("\nExit with Keyboard Interrupt")

root@kitploit:~
> _अपने कंप्यूटर से पोर्ट को नॉक करने और SSH कनेक्शन की अनुमति देने के लिए बस इस कमांड को निष्पादित करें:_```bash
nc -p 65534 SERVER 65535
टूल डाउनलोड करें
विशिष्ट IP पते या सबनेट से इनकमिंग Rsync की अनुमति दें
  • सभी इनकमिंग HTTP की अनुमति दें
  • सभी इनकमिंग HTTPS की अनुमति दें
  • सभी इनकमिंग HTTP और HTTPS की अनुमति दें
  • विशिष्ट IP पते या सबनेट से MySQL की अनुमति दें
  • विशिष्ट नेटवर्क इंटरफ़ेस के लिए MySQL की अनुमति दें
  • विशिष्ट IP पते या सबनेट से PostgreSQL
  • विशिष्ट नेटवर्क इंटरफ़ेस के लिए PostgreSQL की अनुमति दें
  • आउटगोइंग SMTP मेल ब्लॉक करें
  • सभी इनकमिंग SMTP की अनुमति दें
  • सभी इनकमिंग IMAP की अनुमति दें
  • सभी इनकमिंग IMAPS की अनुमति दें
  • सभी इनकमिंग POP3 की अनुमति दें
  • सभी इनकमिंग POP3S की अनुमति दें
  • सार्वजनिक इंटरफ़ेस पर निजी नेटवर्क पता गिराएं
  • Facebook नेटवर्क के लिए सभी आउटगोइंग गिराएं
  • पैकेट लॉग और गिराएं
  • सीमित संख्या में लॉग प्रविष्टियों के साथ पैकेट लॉग और गिराएं
  • Mac पते से ट्रैफ़िक गिराएं या स्वीकार करें
  • ICMP पिंग अनुरोध ब्लॉक या अनुमति दें
  • multiport के साथ एकाधिक पोर्ट निर्दिष्ट करना
  • random* या nth* के साथ लोड बैलेंसिंग
  • limit और iplimit* के साथ कनेक्शन की संख्या प्रतिबंधित करना
  • मिलान के लिए हाल के कनेक्शनों की सूची बनाए रखना
  • पैकेट के डेटा पेलोड में string* के विरुद्ध मिलान
  • time* के साथ समय-आधारित नियम
  • TTL मानों के आधार पर पैकेट मिलान
  • पोर्ट स्कैनिंग से सुरक्षा
  • SSH ब्रूट-फ़ोर्स सुरक्षा
  • Syn-फ्लड सुरक्षा
    • SYNPROXY के साथ SYN फ्लड को कम करना
  • नए पैकेट जो SYN नहीं हैं उन्हें ब्लॉक करें
  • फ़्रैगमेंट पैकेट जाँच बलपूर्वक करें
  • XMAS पैकेट
  • सभी NULL पैकेट गिराएं
  • असामान्य MSS मान ब्लॉक करें
  • गलत TCP फ़्लैग वाले पैकेट ब्लॉक करें
  • निजी सबनेट से पैकेट ब्लॉक करें (स्पूफ़िंग)