2014-06-08 10 views
6

BASH (veya başka bir komut dosyası dili) kullanarak IPTables'e IP bloklarıyla dolu bir metin dosyasını toplu olarak nasıl ekleyebilirim? Ya da bu adres aralığını engellemenin başka bir yolu var mı?IPhables'a IP blokları dolu bir dosya eklemek için bash'ı nasıl kullanırım?

DÜZENLEME: Başka bir deyişle, dosya üzerinden yinelemek ve ilgili girdileri oluşturmak için bir şeyler programlamanın bir yolu var mı?

+0

Eğer güvenlik duvarı yönetmek için Webmin kullanarak ayarlanmış mı? Değilse, yapmaya çalıştığınız şeyi yapmak için birkaç seçenek vardır. Asıl sorun hakkında daha fazla şey bilmemek (örn. Başlangıçta http istekleri geçersizdir), doğru bir cevap vermek zordur. Örneğin, spam isteklerini engellemek için OSSEC'e bakmak isteyebilirsiniz. – Ketola

+0

https://kirkkosinski.com/2013/11/mass-blocking-evil-ip-addresses-iptables-ip-sets/ Bunu deneyin. Yardımcı olabilir –

+0

IPtables engelleme listesine (reddetme zincirleri zinciri) girişler eklemek için Webmin kullanıyorum. Tüm bu verileri el ile girebilirdim ama bana göre daha kolay bir yol olmalı. –

cevap

11

Sadece iptables config komut dosyanızda bir döngü oluşturabilir misiniz? senin ip_list.txt dosya sadece istekleri ve bant genişliği kullanımının

1.1.1.1 
2.2.2.2 
3.3.3.3 
etc 
+0

Gerçekten "/ etc/sysconfig/iptables-config" ifadesinden bahsediyoruz mu? ? Onu alıp, hiçbir şeyi kırmadan yapabilirim. –

+1

Hayır, genellikle IPTables kurallarınızı manipüle ederken, her şey bir bash komut dosyasında yapılandırılır ve ardından kuralları uygulamak için komut dosyasını yürütürsünüz. Bu, kurallarınızda size yardımcı olması için herhangi bir tipik bash komut dosyası voodoo yapmanızı sağlar. Bir örnek için bu sayfadaki 3. bölüme bakın: http://wiki.centos.org/HowTos/Network/IPTables – Safado

+1

Daha çok "sed" ler /.*/ iptables -A INPUT -s & -j DROP/'| Kedinin Yararsız Kullanımından ve kote edilmeyen değişkenden kaçınmak için. – tripleee

0

Aşırı numarası gibi görünecektir

#!/bin/bash 
for x in $(cat ip_list.txt) 
do 
    iptables -A INPUT -s $x -j DROP 
done 

gibi bir şey de arama sitenizi taramaya çalışırken motorları ve gelen botlara neden olabilir zaman facebook gibi sitelerde veya bir kişi sitenize sosyal medyadan bağlandığı için küçük resimler oluşturuyor.

Botları durdurmak için sitenizdeki robots.txt dosyasını kullanmalısınız. Dosya hakkında daha fazla bilgi edinin ve robotstxt.org numaralı telefondan yapılandırabilirsiniz. Ben de stackoverflow hakkında bu konuda birkaç mesaj olduğunu düşünüyorum.

+0

Sorunum olmadığım botlar. Sunucu, Google’ın birazını ele alabilir. Kötüye kullanılan türler için bilinen güvenli limanlara ait aralıklardan her biri 20-30 aktif bağlantıya sahip aralıklar hakkında konuşuyorum. Her sitenin düzeyinde robots.txt için iyi davranan komut dosyaları ve badBehaviour için değil. Hosting firmalarının bazı IP aralıkları, CPU'mdan çok fazla bağlantıya sahip olandan daha fazla pay alıyor. Tüm Amerika ve Çin'i engellemenin kısa bir süreliğine, sadece sunucumun işini yapamayan, barındırma ortaklarına ait olan çok büyük IP listelerini engellemekteydim. –

2

Sen ip listesini ayrıştırmak ve IP adresi zaten engellenir ya da hiç olmadığını kontrol edebilirsiniz:

#!/bin/bash 

for i in $(cat iptables.log) 
do 
    /sbin/iptables -L -n -v | grep -q "${i}" 
    RETVAL=$? 
    if [ $RETVAL -ne 0 ]; then 
    /sbin/iptables -A INPUT -s "${i}" -j DROP 
    fi 
done 
İlgili konular