Mengelola aturan iptables di Linux

17

Saya punya banyak aturan untuk pengaturan iptables (routing, ssh bans, dll). Saya juga mengambil daftar IP yang akan dicekal dari sini http://blacklist.linuxadmin.org dan sekarang semakin rumit.

Saya /etc/sysconfig/iptablessangat panjang. Apakah ada cara untuk mengelola aturan dengan memasukkan aturan dari file eksternal?

Sebagai contoh:

#include "pre_routing_rules"
#include "ssh_bans"

Ini akan mencakup aturan yang ditambahkan dalam file "pre_routing_rules" dan "ssh_bans" Dengan cara ini saya dapat dengan mudah mengelola aturan saya tanpa mencari-cari cat /etc/sysconfig/iptables.

peterh - Pasang kembali Monica
sumber

Jawaban:

11

Coba ipset iptables . ipset dikonfigurasi secara terpisah, dan ini juga lebih cepat jika Anda memiliki alamat ip yang cukup untuk dikelola.

Aturan iptables dapat merujuk ke ipset seperti ini:

iptables -SUARA MAJU -m set --set blocklist src, dst -j DROP

Alexey Naidyonov
sumber
Masalah terbesar saya adalah dengan alamat IP sehingga saya bisa menggunakan ini.
Saya menggunakan fitur ini. IP blacklist / white list saya adalah yang terbesar, sehingga bisa masuk dalam ipset. Saya pikir hal-hal pre-routing dapat tetap berada di daftar konfigurasi utama
Utas forum ini memiliki beberapa contoh skrip menggunakan ipset: forums.gentoo.org/viewtopic-t-863121.html
mivk
3

Salah satu solusi sederhana adalah dengan menggunakan beberapa skrip bash untuk setiap bagian seperti:

iptables-routing.sh
iptables-ssh-bans.sh
iptables-blacklist.sh

Dan jalankan file ini dari skrip master.

Andrei Savu
sumber
Yah ya itulah yang saya lakukan. Tetapi jika saya harus melihat daftar aturan iptables (mis. Cat / etc / sysconfig / iptables), itu akan menunjukkan kepada saya semua aturan yang ditambahkan melalui iptables-routing.sh iptables-blacklist.sh
2

iptables tidak membaca file secara langsung, yang dilakukan oleh program yang disebut iptables-restore. Ini biasanya dipanggil dari salah satu skrip init Anda.

Anda bisa menambahkan file input tambahan ke saluran iptables-restore Anda. Anda harus menemukan di mana baris ini ada di sistem Anda tetapi di kotak Debain saya, ada di /etc/init.d/nat

Baris saat ini berbunyi seperti ini:

/sbin/iptables-restore < /etc/network/iptables

Mungkin bisa diubah menjadi seperti ini:

cat /etc/network/iptables \
    /etc/network/pre_routing_tables \
    /etc/network/ssh_bans | /sbin/iptables-restore
Adam Pierce
sumber
2

Saya cenderung menggunakan salah satu dari banyak skrip / alat firewall iptables di atas, seperti Firestarter atau Shorewall, mereka datang dengan banyak file, dipisahkan oleh tujuan, menambahkan aturan yang menarik untuk melindungi terhadap jenis paket palsu tertentu dan mereka biasanya bekerja baik.

Vinko Vrsalovic
sumber
Apakah ini dapat digunakan melalui baris perintah? Server saya adalah yang jauh dan saya benar-benar tidak suka melakukan X daripada SSH
Shorewall adalah sekumpulan file teks datar yang menghasilkan aturan iptables. Ini sangat dapat digunakan dari baris perintah dan memiliki alat dokumentasi dan diagnostik yang hebat.
Paul Gear
0

Saya tidak yakin distro mana yang Anda jalankan, karena milik saya tidak memiliki file yang Anda rujuk - tetapi biasanya file yang berisi aturan iptables hanyalah skrip shell - jadi Anda harus dapat melakukan apa yang Anda inginkan dengan memiliki garis seperti :

. / etc / sysconfig / pre_routing_rules

atau seperti itu di bagian atas file iptables yang Anda rujuk.

GodEater
sumber
Saya menjalankan Fedora dan CentOS