Her açılışta iptable kurallarını geri yüklemem gerekir mi?


18

Her yeniden başlattığımda girmek için çok looong aldı iptables kurallarını kaybederim. Ben biliyorum onları kurtarmak ve çizme bunları geri ancak sonsuza onları kurtarmak için zaten var mı? Gerçekten her seferinde önyüklemede onları geri yüklemem gerekiyor mu? Ciddi anlamda?

Sorun ben onları yüklemek için bir while döngü kullandığım IP BÜYÜK bir listesi var . Bu 10 dakika kadar sürebilir.

Bu benim ev FTP sunucum. 1GB RAM ve çok az işlem gücüne sahip küçük bir vm. Çok fazla IP var çünkü Asya kıtasından oldukça vazgeçtim. FTP sunucumu her gün kaba kuvvetle vurmalarına ihtiyacım yok. Ben de gov engellerim. monitörler, izleyiciler ve spam göndericiler.

Bu, listeye yüklemek için kullandığım while döngüsü.

grep INPUT block.list | while read LISTA; do sudo iptables -A $LISTA; done

Sorunuz biraz belirsiz, 'onları sonsuza kadar kurtar' dediğinizde, bir dosyada olduğu anlamına geldiğini sanıyordum, ancak geri kalanını okuduktan sonra, aslında manüel olarak yeniden yüklemek istemediğiniz gibi geliyor her seferinde önyükleme yapar. Ayrıca, yeniden yüklenmesi gereken kuralların sayısının aynı olacağını düşünüyorum, bu yüzden yine de biraz zaman alacaktır, ancak pankaj'ın cevabını takiben elle yapmak zorunda kalmayacaksınız.
Jeff Welling

Yanıtlar:


20

İlk olarak, aşağıdakilerin içeriğini içeren bir dosya oluşturun iptables-save:

sudo iptables-save > /etc/iptables_rules

Dosyayı nereye koyduğunuz önemli değil, tek yapmanız gereken bir sonraki satırın aynı dosyaya başvurduğundan emin olmak. Ardından, /etc/rc.localbu satırı açın ve ekleyin:

/sbin/iptables-restore < /etc/iptables_rules

Şu andan itibaren, bilgisayarınız her açıldığında veya iptables'ı yeniden başlattığınızda belirttiğiniz dosyadan kurallar yüklenir.


1
Ben olsun -bash: /etc/iptables_rules: Permission deniedilk komuta. Hangi sudo ve hepsini kullanarak garip.
capdragon

5
Hatayı aşmak için kullanmak sudo sh -c '/sbin/iptables-save > /etc/iptables.save'zorunda kaldım Permission denied. Referans
capdragon

u / etc / içinde dosya oluşturmak zorunlu değildir herhangi bir dizinde dosya oluşturabilirsiniz
pankaj sharma 5

9
Bunun /etc/rc.localiçin kullanmanızı tavsiye etmem . Sistem başlatma işleminizin geri kalanından daha sonra yürütülür ve sisteminizi güvenlik duvarı olmayan bir durumda bırakır. Bu tek satırlık komut dosyasını /etc/network/if-up.d/firewall(yeni dosya) yerleştirmenizi öneririm . Bu, ağ arabirimlerinizi her etkinleştirdiğinizde yürütülmesini sağlar.
gertvdijk

2
İzin hatası normal / bekleniyor. sudo sadece ">" öncesindeki komut için geçerlidir, dosya yönlendirmesi kabuğunuz tarafından ayrı ayrı yapılır.
ImaginaryRobots

17
apt-get install iptables-persistent

Yükleme sırasında, mevcut iptables yapılandırmanızı kaydetmelidir. Aksi takdirde bunları bu dosyalara kaydedebilirsiniz (v4 veya v6'ya bağlı olarak) ve iptables-persistent bunları önyükleme sırasında yükler :)

iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

Bu kabul edilen cevap olmalı.
user1133275

1

Çok fazla kuralınız varsa ipset'i iptables ile birlikte kullanmayı da düşünmelisiniz. Ipset, dizinlenmiş bir veritabanı tablosu kullanır ve bir adresi ararken kabul veya reddetme konusunda karar vermek için iptables'dan çok daha hızlıdır.

http://ipset.netfilter.org/index.html

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.