Yinelenen iptable kuralları


18

Bu iptable kuralları var:

-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

Çizgiler

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

ve

-A fail2ban-ssh -j RETURN

iki kez kopyalanmış veya yazılmış gibi görünüyor. Kopyayı nasıl kaldırabilirim?


Favori düzenleyicinizde dosyayı açın, söz konusu satıra gidin, tüm karakterler kaybolana kadar silme tuşunu basılı tutun. Bunun neden zor olduğu hakkında bariz bir şey mi kaçırıyorum?
Ladadadada

Yanıtlar:


17

Satır numaralarını listeleyin ve numaraya göre silin.

iptables --line-numbers --list

Ardından bir kuralı satır numarasını kullanarak silin. Sonra tekrarlayın (biri silindiğinde satır numaraları aşağıdaki kurallar için değişir, bu yüzden diğerini silmeden önce yeniden listeleyin).

iptables -D INPUT 6

2
Bu arkadaş için teşekkürler! Bunu birkaç dakika içinde kabul edecek.
Leandro Garcia

Bu yeniden başlatmadan sonra da devam edecek mi?
Yerel Kodlayıcı

10
iptables-save | uniq | iptables-restore

Gerçekten ihtiyacınız olan bu.


2
AFAICT, bu yalnızca bitişik kopyaları kaldıracaktır. Bitişik olmayan kopyaları kaldıramaz.
sampablokuper

4

Yalnızca doğrudan bir tane olan çift satırları silmek isterseniz, dışa aktarabilir, birleştirebilir ve yeniden içe aktarabilirsiniz.

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

Diğer satırları silmek istiyorsanız, ~ / tmp / iptables.conf dosyasında aynı şekilde yeniden içe aktarmadan önce bir düzenleyici kullanın.

İle yeni kurallarınızı kontrol edin

iptables-save

Bitişik kopyaları sıyırmak istediğiniz şeyse, Ricky Neff'un cevabı daha güvenlidir, çünkü güvenlik duvarına kuralları erişimi olan diğer kullanıcılara göstermekten kaçınır /tmp.
sampablokuper

1
thx, haklısın, / tmp kullanmamalısın çünkü dünya tarafından okunabilir. Değiştirdim~/tmp
rubo77

2

Fail2ban: fail2ban için bir yorum iptables kurallarının kendisini ekliyor gibi görünüyor. Bu yüzden bu kuralları örneğin iptables-save ile saklamamalısınız. Daha sonra yeniden başlattıktan sonra kurallar iki katına çıkar (kaydedilen kuralınız + fail2ban tarafından eklenen kural).


2

COMMIT hariç tüm yinelenen satırları sil

/sbin/iptables-save | awk '!COMMIT||!x[$0]++' | /sbin/iptables-restore

0

Ben cron ile çalışan böyle küçük bir bash komut dosyası kullanıyorum.

     #!/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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.