Debian 'yok sayıyor' /etc/network/if-pre-up.d/iptables


12

Iptables kurallarımın başlangıçta otomatik olarak yüklenmesini istiyorum. Debian'daki wiki'ye göre, bu /etc/network/if-pre-up.d/ içinde iptables adında bir komut dosyası yerleştirerek yapılabilir.

cat /etc/network/if-pre-up.d/iptables 
#!/bin/sh
/sbin/iptables-restore < /etc/firewall/iptables.rules
/sbin/ip6tables-restore < /etc/firewall/ip6tables.rules

Bu komut dosyası çalışır: Kök olarak çalıştırırsam güvenlik duvarı kurallarım uygulanır. Ancak yeniden başlatma sırasında güvenlik duvarı kuralı yoktur. Neyi yanlış yapıyorum?

İstek üzerine: / etc / network / interfaces (Bu dosyaya dokunmadım)

user@DebianVPS:~$ cat /etc/network/interfaces 
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

Arayüzlerinizi nasıl konfigüre edersiniz? / Etc / network / interfaces dosyası ekleyebilir misiniz?
bayındırh

Not edin /etc/network/if-pre-up.d/Ubuntu 18.04 de artık çalışmıyor, bkz serverfault.com/questions/914493/...
BurninLeo

Yanıtlar:


6

iptables-persistentBu görev için paketi kullanın .

Daki kurallar tanımlayın /etc/iptables/rules.4ve /etc/iptables/rules.6ve kullanma (hizmeti etkinleştirmek unutmayın update-rc.d, chkconfigyoksa favori aracı.


Paketin yüklenmesinde, debconf geçerli kuralları kaydetmek isteyip istemediğinizi sorar. Yani, önceden tanımlanmış kurallarınız varsa, paketi kurabilirsiniz. Onları daha sonra değiştirmek isterseniz, sadece dpkg-reconfigure iptables-persistent.
Braiam

10

Bu sorun, komut dosyanızın izin bitleriyle ilgili olabilir. Bu komutun çıktısı nedir? Dosyanızı içeriyor mu?

run-parts --test /etc/network/if-pre-up.d

run-parts --test /etc/network/if-pre-up.d /etc/network/if-pre-up.d/iptables veriyor, bu da bana doğru çıktı gibi geliyor mu?
Cheiron

1
tamam, bu yüzden muhtemelen komut dosyanızın ne zaman çalıştırıldığını kontrol etmelisiniz. Böyle bir ilk satır ekleyin (date; set; echo) >> /tmp/iptables-cmd.log, böylece ne zaman çağrıldığını göreceksiniz. Ayrıca oradan geçen herhangi bir argümanı kontrol etmek için her zaman çevreyi yazdırıyorum. Iptables'ınızı, her arabirim eklendiğinde çalıştırmak yerine, yalnızca son eth * arabirimi tamamlandıktan sonra çalıştırmaya karar verebilirsiniz.
eppesuig

3
Artık yayınladığınıza göre interfacesifupdown değil, ağ yöneticisi kullandığınızı görüyorum. Bu yüzden betiğiniz çağrılmaz. Lütfen bu belgeyi kontrol edin: ubuntuforums.org/showthread.php?t=1084308
eppesuig

Eh, bu pek çok şeyi açıklıyor. Sanırım şimdi sadece her iki şekilde de işe yarıyor.
Cheiron

3
run-parts komut dosyalarının adı hakkında biraz seçici ve dosya adında bir nokta olması benim durumumda başlangıçta komut dosyasının yok sayılmasına neden oluyordu.
alexm

0

Neden kolay bir şekilde yapmıyorsunuz?

1 - iptables kurallarınızı oluşturun

2 - çalıştırmak "sudo apt-get install iptables-persistent" size kuralları kaydedip önyüklemeden sonra geri yüklemek isteyip istemediğinizi soracaktır.

3- Bittiniz


1
Kabul edilen cevabın
kopyası
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.