Masalah: iptables diatur ulang ke pengaturan default setelah server reboot.
Saya mencoba menetapkan aturan seperti ini:
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
setelah itu saya lakukan:
service iptables save
dan itu menulis kembali sesuatu seperti ini
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
dan setelah ini saya hanya berlari (ini dilakukan sekali):
chkconfig iptables on
(Saya telah membaca bahwa ini harus dilakukan untuk mengembalikan pengaturan setelah reboot)
Setelah itu saya reboot dan jalankan perintah ini:
systemctl list-unit-files | grep iptables
dan saya melihat bahwa iptables.service diaktifkan, namun aturan (untuk membuka port 3000) tidak berfungsi lagi.
Bagaimana cara bertahan pengaturan ini?
Jawaban:
CentOS 7 menggunakan FirewallD sekarang!
Contoh:
memuat kembali aturan:
sumber
--zone=trusted
) dengan firewalld-cmd tetapi tidak bekerja (berfungsi dengan baik--zone=public
) Melakukannya dengan iptablessudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8180 ; sudo /sbin/iptables -t nat -I OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8180
berfungsi (tetapi masing-masingfirewalld --reload
kehilangan membatalkan ini)Nonaktifkan firewalld dengan perintah berikut:
Kemudian instal iptables-service dengan perintah berikut:
Kemudian aktifkan iptables sebagai layanan:
Sekarang Anda dapat menyimpan aturan iptable Anda dengan mengikuti perintah:
sumber
Pada CentOS 7 Minimal Anda mungkin perlu menginstal
iptables-services
paket (terima kasih kepada @RichieACC untuk sarannya ):Dan kemudian aktifkan layanan menggunakan
systemd
:Dan jalankan skrip init untuk menyimpan aturan firewall Anda:
sumber
Mungkin skrip seperti ini akan membantu siapa pun?
Berhati-hatilah bahwa Anda akan kehilangan apa pun yang saat ini dikonfigurasikan karena menghapus firewalld dan menghapus semua aturan saat ini dalam tabel INPUT :
Saya kira Anda menginginkan hal yang sama jika sistem Anda dapat dijangkau (sekarang atau kapan pun nanti) oleh lalu lintas IPv6:
sumber
Anda dapat memodifikasi secara langsung file / etc / sysconfig / iptables. Muat ulang layanan iptables untuk memuat ulang aturan dari file itu. Namun, seperti yang telah diberitahukan kepada Anda, firewalld adalah sistem firewall default baru untuk Centos, dan ini adalah kesempatan bagus untuk mempelajari cara menggunakannya, bukan begitu?
sumber
/etc/sysconfig/iptables
juga tidak ada untukku. Namun,/etc/sysconfig/iptables-config
memang ada. Tetapi tidak memiliki aturan firewall di dalamnya sepertiiptables
file sebelumnya.