Belirli bir iptables kural kümesini nasıl kalıcı hale getirebilirim?


42

Birkaç iptables kuralını kalıcı hale getirmek için "en iyi uygulama" veya standart var mı? Yani: sistem yeniden başlatıldığında otomatik olarak uygulanır?

Ubuntu Server 10.04 LTS (Lucid Lynx) içeren bir VPS kullanıyorum.

Teşekkür ederim.

BÜYÜK EDIT: HERHANGİ bir kuralın sürdürülmesini istemiyorum ( iptables-persistentpaket gibi). Sadece kendi özel setimin yeniden yüklenmesini istiyorum ... Sonunda iptables çalıştırılarak başka kurallar eklenirse, bunlar atılmalıdır ...

Yanıtlar:


51

En basit yöntem, halihazırda tanımlanmış iptables kurallarını bir dosyaya kaydetmek ve (yeniden) yüklemek için iptables-save ve iptables-restore komutlarını kullanmaktır .

Mesela sen kaçarsın

sudo iptables-save | sudo tee /etc/iptables.conf

Mevcut iptables kurallarınızı kaydetmek /etc/iptables.confve aşağıdaki satırları eklemek için /etc/rc.local:

# Load iptables rules from this file
iptables-restore < /etc/iptables.conf

2
+1 Cevabınız asıl soruma mükemmel. Ayrıca gerçekte ne istediğimi fark etmemi sağladı, bu yüzden "IPtables kurallarını nasıl kalıcı yapabilirim?" Sorusunu değiştirmek zorunda kaldım. "Belirli bir iptables kural kümesini nasıl kalıcı hale getirebilirim?"
J. Bruni

Lütfen, lütfen sorunuzu yaptığınız değişikliği yansıtmak için cevabınıza küçük bir düzenleme yapın ... Kabul etmekten memnuniyet duyarım! Bir iptables-savekez kullanmam ve her zaman yeniden yüklemem gerek (iptables-restore /etc/rc.local sesleri iyi).
J. Bruni

1
Eğer alıyorsanız permission deniedsize kullanmaya çalıştığınızda >sonra bu yığın taşması cevap faydalı olacaktır.
David Tuite

2
Yerine sudo sh -c "iptables-save > /etc/iptables.conf"kullanınsudo iptables-save > /etc/iptables.conf
Rajat Gupta

31

Şimdi 12.04'ü kullanıyor olabileceğiniz ve işler daha iyi olduğu için Hızlı Güncelleme.

iptables-persistentPaket şimdi bu sorunu çözer. Yüklemek,

sudo apt-get install iptables-persistent

Paket yüklendiğinde tanımlanan kurallar her bir önyüklemede kaydedilir ve kullanılır. Yüklenen yeni kurallar yeniden başlatıldığında atılır.

Yapılandırma dosyası bunları değiştirmek gerektiğini (bir kez yaparsanız iptables-persistentyüklenir) 'dir /etc/iptables/rules.v4veya /etc/iptables/rules.v6IPv4 ve IPv6 iptables için sırasıyla.


Düzenleme /etc/iptables/rules.v4yaparsanız, [resmi olarak] nasıl uygulatırsınız? Şu anda yapıyorumsudo iptables-restore < /etc/iptables/rules.v4
Bruno Bronosky,

24

Bundan daha iyisi iptable'ın kurallarını kaydettikten sonra /etc/rc.localbir satır eklemek /etc/network/interfaces, bunun gibi

post-up iptables-restore < /etc/iptables.up.rules

veya dosyayı içine koymak için aynı şey /etc/network/if-down.d/veya /etc/network/if-post-down.d/veya /etc/network/if-pre-up.d/veya /etc/network/if-up.d/.


1
@Kreker: açıklığa kavuşturmak lütfen, yaklaşımınız daha iyi bir geri scriptinizi daha ne kadar rc.local? diğer yaklaşım bazı durumlarda işe yaramıyor mu?
Rajat Gupta

2
Ağ yapılandırmasına eklemek, "servis ağı yeniden başlat" komutunu çalıştırdıktan sonra yeniden yüklenmesine neden olur. Sistem başlangıcı ile sınırlı değil.
K. Darien Freeheart

4
Bir arayüz aşağı inerken neden bir post-up iptables-restore olur?
alphadogg
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.