डुप्लिकेट iptable नियम


18

मेरे पास यह iptable नियम हैं:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N fail2ban-ssh
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -j DROP
-A fail2ban-ssh -s xx.xxx.xx.xx/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-ssh -j RETURN
-A fail2ban-ssh -j RETURN

रेखाएं

-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh

तथा

-A fail2ban-ssh -j RETURN

दो बार नकल या लिखा हुआ लगता है। मैं डुप्लिकेट कैसे निकाल सकता हूं?


अपने पसंदीदा संपादक में फ़ाइल खोलें, प्रश्न में लाइन पर जाएं, सभी कुंजी गायब होने तक हटाएं कुंजी को दबाए रखें। क्या मुझे कुछ स्पष्ट याद आ रहा है कि यह क्यों मुश्किल है?
लादादादा

जवाबों:


17

लाइन नंबर के साथ सूची और नंबर से हटाएं।

iptables --line-numbers --list

इसके बाद लाइन नंबर का उपयोग करके एक नियम हटाएं। फिर दोहराएं (नियमों को पालन करने के लिए लाइन नंबर बदलते हैं जब किसी को हटा दिया जाता है तो दूसरे को हटाने से पहले फिर से सूची दें)।

iptables -D INPUT 6

2
इस दोस्त के लिए धन्यवाद! कुछ ही मिनटों में इसे स्वीकार करेंगे।
लिएंड्रो गार्सिया

क्या यह रिबूट के बाद लगातार बना रहेगा?
मूल निवासी कोडर

10
iptables-save | uniq | iptables-restore

आप सभी की जरूरत है।


2
AFAICT, यह केवल आसन्न डुप्लिकेट को हटा देगा। यह आसन्न डुप्लिकेट को निकालने में विफल हो जाएगा।
सम्पाबलोकुपर

4

यदि आप केवल ऐसी डबल लाइनों को हटाना चाहते हैं जो सीधे एक एन के बाद हैं , तो आप इसे निर्यात कर सकते हैं, एकजुट कर सकते हैं और इसके साथ पुन: आयात कर सकते हैं

mkdir ~/tmp
iptables-save > ~/tmp/iptables.conf
uniq /tmp/iptables.conf > ~/tmp/iptables_new.conf
iptables-restore < ~/tmp/iptables_new.conf

यदि आप अन्य पंक्तियों को हटाना चाहते हैं, तो इससे पहले कि आप इसे पुनः साझा करें, इससे पहले ~ / tmp / iptables.conf पर एक संपादक का उपयोग करें।

के साथ अपने नए नियमों की जाँच करें

iptables-save

यदि आसन्न डुप्लिकेट को अलग करना है जो आप चाहते हैं, तो रिकी नेफ का जवाब अधिक सुरक्षित है, क्योंकि यह उन अन्य उपयोगकर्ताओं के लिए नियमों को उजागर करने से बचता है जिनके पास पहुंच है /tmp
संपाब्लोक

1
thx, आप सही हैं, आपको इसका उपयोग नहीं करना चाहिए / tmp कारण यह विश्व-पठनीय है। मैंने इसे बदल दिया~/tmp
rubo77

2

Fail2ban के लिए एक टिप्पणी: fail2ban अपने iptables नियमों को स्वयं जोड़ता है। इसलिए आपको इन नियमों को जैसे कि iptables- सेव के साथ स्टोर नहीं करना चाहिए। फिर एक रिबूट के बाद नियमों को दोगुना किया जाएगा (आपका सहेजा गया नियम + अनुत्तीर्ण2 द्वारा जोड़ा गया नियम)।



0

मैं ऐसी एक छोटी सी बैश स्क्रिप्ट का उपयोग कर रहा हूं जो क्रोन के माध्यम से चलती है।

     #!/bin/bash 
         readarray -t tabl_lines <<< "$(iptables -nL INPUT --line-number | grep "fail2ban-ssh")"
            i=''
            for tline in "${tabl_lines[@]}"
            do 
            #skip the first result
            if [ -n "$i" ]; then
            sudo iptables -D INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
            # if necessary, you can erase and other rules, 
            # because they usually repeat the same number of times
            # sudo iptables -D INPUT -p tcp -m multiport --dports 21 -j fail2ban-vsftpd
save_iptables=yes
            else 
            i=start_remove
            fi
            done
if [ "$save_iptables" == "yes" ]; then
/sbin/service iptables save
fi
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.