alat manajemen iptables untuk lingkungan skala besar


15

Lingkungan tempat saya beroperasi adalah operasi hosting web skala besar (beberapa ratus server di bawah manajemen, pengalamatan hampir semua publik, dll - jadi apa pun yang berbicara tentang mengelola tautan ADSL tidak akan berfungsi dengan baik), dan kami sedang mencari sesuatu yang akan nyaman mengelola kedua aturan inti (sekitar 12.000 entri di iptables pada hitungan saat ini) ditambah aturan berbasis host yang kami kelola untuk pelanggan. Aturan router inti kami berubah beberapa kali sehari, dan aturan berbasis host akan berubah mungkin 50 kali sebulan (di semua server, jadi mungkin satu perubahan per lima server per bulan).

Kami saat ini menggunakan filtergen (yang umumnya adalah bola, dan bola super pada skala operasi kami), dan saya telah menggunakan shorewall di masa lalu di pekerjaan lain (yang lebih disukai daripada filtergen, tapi saya pikir harus ada menjadi sesuatu di luar sana yang lebih baik dari itu).

"Musts" yang kami buat untuk sistem penggantian adalah:

  • Harus menghasilkan sebuah aturan cukup cepat (menjalankan filtergen pada aturan kami membutuhkan waktu 15-20 menit; ini hanya gila) - ini terkait dengan poin berikutnya:
  • Harus menghasilkan file gaya iptables-restore dan memuatnya dalam satu pukulan, bukan memanggil iptables untuk setiap sisipan aturan
  • Tidak boleh mencatat firewall untuk jangka waktu yang lama sementara aturan tersebut dimuat ulang (sekali lagi, ini merupakan konsekuensi dari poin di atas)
  • Harus mendukung IPv6 (kami tidak menggunakan hal baru yang tidak kompatibel dengan IPv6)
  • Harus bebas DFSG
  • Harus menggunakan file konfigurasi teks biasa (saat kami menjalankan semuanya melalui kontrol revisi, dan menggunakan alat manipulasi teks Unix standar adalah SOP kami)
  • Harus mendukung RedHat dan Debian (dikemas lebih disukai, tetapi setidaknya tidak boleh secara terbuka memusuhi standar salah satu distro)
  • Harus mendukung kemampuan untuk menjalankan perintah iptables sembarang untuk mendukung fitur yang bukan bagian dari "bahasa asli" sistem

Apa pun yang tidak memenuhi semua kriteria ini tidak akan dipertimbangkan. Berikut ini adalah "senang kami":

  • Haruskah mendukung file konfigurasi "fragmen" (yaitu, Anda dapat menjatuhkan setumpuk file dalam direktori dan mengatakan ke firewall "sertakan semua yang ada di direktori ini di dalam ruleset"; kami menggunakan manajemen konfigurasi secara luas dan ingin menggunakan fitur ini untuk berikan aturan spesifik layanan secara otomatis)
  • Harus mendukung tabel mentah
  • Seharusnya memungkinkan Anda menentukan ICMP tertentu dalam paket yang masuk dan aturan TOLAK
  • Harus dengan anggun mendukung nama host yang menyelesaikan lebih dari satu alamat IP (kami telah ketahuan dengan ini beberapa kali dengan filtergen; ini adalah masalah yang agak royal di pantat)
  • Semakin banyak fitur opsional / aneh iptables yang didukung alat ini (baik secara native atau melalui plugin yang ada atau mudah ditulis) semakin baik. Kami menggunakan fitur aneh dari iptables sekarang dan kemudian, dan semakin banyak dari mereka yang "hanya bekerja", semakin baik untuk semua orang.

Saya akan gigit - apa istilah "bola" dan "bola super" dalam posting Anda? Saya kira Anda tidak berbicara tentang bola karet melenting, tapi saya tidak dapat menyimpulkan jika konteksnya berarti "baik" atau "buruk".
Evan Anderson

bola == buruk. Bola super == sangat buruk.
womble

Dengan banyak aturan itu, pastikan Anda memiliki aturan ACCEPT di bagian atas yang menerima koneksi yang telah dibuat dan terkait. PC tidak memiliki TCAM dan banyak aturan yang memengaruhi kinerja. Banyak.
Thomas

@ Thomas: Ya, ada sejumlah optimasi yang masuk ke dalam peraturan. Memiliki "pengetahuan" tentang pengoptimalan dalam alat firewall apa pun yang dipilih akan menjadi bonus, tentu saja.
womble

Jawaban:


4

Jika Anda mungkin ingin beralih dari pendekatan yang didorong oleh aturan ke cara "jelaskan keadaan akhir yang diperlukan" dalam melakukan sesuatu, lihat fwbuilder.

Pro:

  • beberapa firewall didukung - inti Anda + aturan berbasis host - dari 1 set objek
  • SQL-esque "katakan padaku apa yang Anda inginkan" daripada "katakan padaku bagaimana melakukannya" pendekatan (NB Saya tidak mengatakan ada SQL di sana! Hanya saja itu deskriptif Vs prosedural :-)
  • Ini adalah GUI, agak seperti antarmuka vendor perangkat keras f / w komersial, jadi mungkin untuk mendorong beberapa tugas ke tumpukan karyawan / keterampilan
  • mendukung sebagian besar penggunaan "aneh 'yang pernah saya coba
  • dapat menghasilkan aturan untuk berbagai implementasi f / w - BSD / cicso / iptables / etc
  • memisahkan front-end dari rule-compiler, yang membuat saya berharap bahwa kecepatan menjadi perhatian penulis. NB Saya tidak ada yang mendekati skala yang Anda singgung
  • Format file bukan biner
  • apakah IPv6
  • Membuat konfigurasi stylee iptables-save untuk atom dan pemuatan cepat

Cons:

  • Itu adalah GUI
  • Memindahkan aturan yang ada tidak akan bebas dari rasa sakit
  • Sementara GPL dan Debian, klien Windows + OSX adalah 30 hari eval, karena belum ada yang mengkompilasi versi Gratis untuk OS tersebut; karenanya lengan komersial para dev memiliki monopoli atas binari-binari itu
  • Format file secara teknis XML; NB jangan biarkan ini membuat Anda kecewa: lihat alat yang mereka sediakan (Anda dapat menggunakan biner gui untuk memanipulasinya melalui CLI misalnya), alat XML CLI yang sudah ada, dan ingat bahwa - pada Anda skala - beberapa kemiripan struktur + data meta bukan hal yang buruk! Perbedaannya cukup baik di seluruh edit, IIRC.

Tautan: http://www.fwbuilder.org


Hrm ... Saya akan memeriksanya. Keberadaan GUI (belum lagi XML) membuat saya berkedut agak keras, tetapi Anda memunculkan beberapa ide menarik (seperangkat aturan untuk seluruh infrastruktur). Masalah OS X tidak akan menjadi masalah.
womble

Saya setuju, GUI memang membuat saya WTF pada awalnya, tapi saya senang dengan apa yang saya lihat dari sisi CLI juga. Seberapa dinamis pengaturan Anda? Apakah 10 perubahan sehari atau 10 perubahan setahun? Itu mungkin menjadi faktor yang berguna untuk detail di sini. Juga, fungsi yang bagus dari format file XML adalah bahwa, dengan menggunakan alat-alat yang sadar-XML, Anda dapat memiliki seluruh konfigurasi dalam satu file, menggunakan objek definisi tunggal, tetapi menghasilkan changelog khusus node untuk mendokumentasikan konfigurasi dan perubahan server masing-masing server. . Hanya pikiran ...
Jonathan Matthews

@ Jonathan: Anda benar, dinamika dari aturan itu penting untuk diketahui. Saya telah mengedit pertanyaan; itu beberapa kali sehari, sebagian besar hari kerja untuk aturan inti.
womble

3

tulis milikmu sendiri. serius - pada skala ini masuk akal.

gunakan ipset dan / atau banyak tabel / subtitle iptable. jika memungkinkan, muat ulang hanya beberapa subtitle / beberapa set ipset - ini akan mempercepat konfigurasi ulang.

mungkin Anda sudah melakukannya, tapi tetap saja layak disebut - gunakan tabel bersarang untuk mengurangi beban pada router dan jumlah rata-rata pencarian yang diperlukan untuk paket yang menyiapkan koneksi baru. jelas -SUARA KE DEPAN -m negara - negara DIDIRIKAN, TERKAIT adalah aturan paling atas Anda.


"Write our own" tidak salah, tapi itulah yang membuat kami filtergen di tempat pertama - itu ditulis oleh mantan karyawan sekarang. Kami lebih suka untuk tidak membuat alat manajemen firewall yang lain jika memungkinkan.
womble

IPSET cepat kilat untuk set aturan besar. "simpan beberapa alamat IP atau nomor port dan cocokkan dengan koleksi dengan iptables dalam satu gerakan; perbarui secara dinamis aturan iptables terhadap alamat IP atau port tanpa penalti kinerja; ungkapkan alamat IP yang kompleks dan aturan berbasis port dengan satu aturan iptables tunggal dan manfaatkan kecepatan set IP "Saya Menggunakannya dengan shorewall. Saya tidak tahu bagaimana kinerja shorewall pada skala Anda.
artifex

2

bola suci (menjaga temanya tetap hidup!) manusia ... 12.000 aturan inti?

Saya berasumsi Anda telah mempertimbangkan semua opsi mudah seperti hanya menjatuhkan set ke CVS? Wayang atau CFengine?

Jujur, dari tinjauan luas yang Anda berikan, saya sangat menyarankan untuk mengevaluasi kembali desain jaringan Anda. Saya mungkin agak terlalu sederhana, tapi saya tidak bisa memahami desain yang akan membutuhkan aturan 12k iptables. Ini benar-benar terdengar seperti sesuatu yang akan mendapat manfaat lebih dari solusi jenis SLB daripada cara yang lebih baik untuk mengelola aturan firewall.

Di samping catatan, bagaimana cara menambahkan komentar versus menambahkan "jawaban"?


Anda perlu jumlah minimum reputasi untuk berkomentar. Ketika Anda melakukan tautan akan muncul.
jay_dubya

Mungkin ada sejumlah redundansi dalam aturan iptables kami, tapi itu sebagian besar fungsi filtergen mungkin tidak seefisien mungkin. Kami memiliki / 19 ruang IP, dan VLAN per-pelanggan, dan "kebijakan default" yang cukup ketat (mengharuskan pengecualian per-IP untuk membuka port seperti yang disyaratkan oleh pelanggan). Kita tentu tidak akan bisa menyingkirkan lebih dari beberapa aturan itu. Oh, dan ya, kami sudah menggunakan Wayang, dan kami tidak akan mulai menulis peraturan dengan tangan pada skala operasi kami.
womble

baik, Anda tentu saja mempertahankan ruang IP yang lebih besar daripada saya sendiri, tetapi saya masih merasa sulit untuk membenarkan begitu banyak aturan. Pernahkah Anda berpikir untuk memecah ini menjadi struktur pohon di mana Anda dapat memanfaatkan pengaturan aturan jatuh-melalui chokepoints? yaitu, semua server web saja di subnet X, semua server web + smtp di subnet Y? Anda sebenarnya tidak perlu men-subnetnya, hanya secara logis mengelompokkannya di belakang firewall berjenjang ... maaf jika saya hanya menambahkan suara pada saat ini ... Saya mungkin tidak cukup canggih untuk yang satu ini. Saya suka aturan firewall saya pendek dan brutal =)
Greeblesnort

Kita tidak benar-benar berada dalam posisi untuk "mengatur" hal-hal seperti itu; kami sebagian besar penyedia hosting server khusus, sehingga apa yang pelanggan memutuskan untuk lakukan dengan mesin mereka dari hari ke hari mungkin berubah, mengharuskan lebih banyak menari di sekitar daripada jika kami hanya melakukan infrastruktur khusus untuk layanan internal.
womble

0

12000 aturan? Apakah anda tidak waras? Apakah Anda tidak mengalami masalah kinerja dengan jumlah pemfilteran ini terjadi? Saya tidak mengerti mengapa Anda membutuhkan 12.000 aturan? Bagaimana Anda memverifikasi bahwa aturan yang Anda tetapkan sebenarnya menegakkan kebijakan?

Apa kebijakannya?

Bagaimana Anda menguji kebijakan Anda?

12.000 aturan mungkin melanggar setiap aturan keamanan dalam buku ini.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.