Cara Kerja Iptables Firewall
Pengantar
Menyiapkan firewall yang baik merupakan langkah penting untuk mengamankan semua sistem operasi modern. Sebagian besar distribusi Linux dikirimkan dengan beberapa alat firewall yang berbeda yang dapat kita gunakan untuk mengkonfigurasi firewall kita. Dalam panduan ini, kita akan membahas firewall iptables.
Iptables adalah firewall standar yang disertakan dalam sebagian besar distribusi Linux secara default (varian modern yang disebut nftables. akan mulai menggantikannya). Ini sebenarnya merupakan ujung depan kait netfilter tingkat kernel yang dapat memanipulasi tumpukan jaringan Linux. Ini bekerja dengan mencocokkan setiap paket yang melintasi antarmuka jaringan dengan serangkaian peraturan untuk memutuskan apa yang harus dilakukan.
Bagaimana Iptables Bekerja
Sebelum kita mulai membahas perintah sebenarnya yang diperlukan untuk mengendalikan iptables dan membangun sebuah kebijakan firewall, mari kita membahas beberapa terminologi dan membahas bagaimana iptables bekerja.
Firewall iptables beroperasi dengan membandingkan lalu lintas jaringan dengan serangkaian aturan. Aturan menentukan karakteristik bahwa paket harus sesuai dengan aturan, dan tindakan yang harus diambil untuk mencocokkan paket.
Ada banyak pilihan untuk membuat paket yang sesuai dengan aturan tertentu. Anda bisa mencocokkan jenis protokol paket, alamat sumber atau tujuan atau port, antarmuka yang sedang digunakan, hubungannya dengan paket sebelumnya, dll.
Bila pola yang ditentukan cocok, tindakan yang berlangsung disebut target. Target bisa menjadi keputusan kebijakan akhir untuk paket, seperti menerima, atau menjatuhkan. Hal ini juga dapat memindahkan paket ke rantai yang berbeda untuk diproses, atau cukup log pertemuan. Ada banyak pilihan.
Aturan-aturan ini diatur dalam kelompok-kelompok yang disebut rantai. Rantai adalah seperangkat aturan yang dicentang paket secara berurutan. Bila paket tersebut sesuai dengan salah satu aturan, ia menjalankan tindakan yang terkait dan tidak diperiksa terhadap peraturan yang tersisa dalam rantai.
Seorang pengguna bisa menciptakan rantai sesuai kebutuhan. Ada tiga rantai yang didefinisikan secara default. Mereka:
INPUT: Rantai ini menangani semua paket yang ditujukan ke server Anda.OUTPUT: Rangkaian ini berisi aturan untuk lalu lintas yang dibuat oleh server Anda.FORWARD: Rantai ini digunakan untuk menangani lalu lintas yang ditujukan untuk server lain yang tidak dibuat di server Anda. Rantai ini pada dasarnya adalah cara untuk mengkonfigurasi server Anda untuk mengarahkan permintaan ke mesin lain.Setiap rantai dapat berisi aturan nol atau lebih, dan memiliki kebijakan default. Kebijakan menentukan apa yang terjadi ketika sebuah paket turun melalui semua aturan dalam rantai dan tidak sesuai aturan. Anda bisa menjatuhkan paket atau menerima paket jika tidak ada aturan yang cocok.
Melalui modul yang bisa dimuat melalui aturan, iptables juga bisa melacak koneksi. Ini berarti Anda dapat membuat aturan yang menentukan apa yang terjadi pada paket berdasarkan hubungannya dengan paket sebelumnya. Kami menyebut kemampuan “pelacakan negara”, “pelacakan sambungan”, atau konfigurasi “mesin negara”.
Untuk panduan ini, kami terutama akan membahas konfigurasi rantai INPUT, karena berisi kumpulan peraturan yang akan membantu kami menolak lalu lintas yang tidak diinginkan yang diarahkan ke server kami.
IPv4 Versus IPv6
Firewall netfilter yang disertakan dalam kernel Linux menjaga lalu lintas IPv4 dan IPv6 benar-benar terpisah. Demikian juga, alat yang digunakan untuk memanipulasi tabel yang berisi aturan firewall juga berbeda. Jika Anda mengaktifkan IPv6 di server Anda, Anda harus mengkonfigurasi kedua tabel untuk mengatasi lalu lintas yang menjadi sasaran server Anda.
Perintah iptables biasa digunakan untuk memanipulasi tabel yang berisi aturan yang mengatur lalu lintas IPv4. Untuk lalu lintas IPv6, perintah pendamping yang disebut iptables digunakan. Ini adalah poin penting untuk menginternalisasi, karena ini berarti bahwa setiap aturan yang Anda tetapkan dengan iptables tidak akan mempengaruhi paket menggunakan versi 6 dari protokol.
Sintaks antara perintah kembar ini sama, jadi membuat ruleset untuk masing-masing tabel ini tidak terlalu berlebihan. Ingatlah untuk memodifikasi kedua tabel setiap kali Anda membuat perubahan. Perintah iptables akan membuat aturan yang berlaku untuk lalu lintas IPv4, dan perintah ip6tables akan membuat aturan yang berlaku untuk lalu lintas IPv6.
Anda harus yakin untuk menggunakan alamat IPv6 server Anda yang sesuai untuk membuat aturan ip6tables.
Hal Yang Perlu Diingat
Sekarang kita tahu bagaimana iptables mengarahkan paket yang datang melalui antarmuka (mengarahkan paket ke rantai yang sesuai, memeriksanya terhadap setiap peraturan sampai satu pertandingan, mengeluarkan kebijakan default rantai jika tidak ada yang cocok), kita dapat mulai melihat Beberapa perangkap yang harus diperhatikan saat kita membuat peraturan.
Pertama, kita perlu memastikan bahwa kita memiliki peraturan untuk menjaga agar koneksi saat ini tetap aktif jika kita menerapkan kebijakan penurunan default. Hal ini sangat penting jika Anda terhubung ke server Anda melalui SSH. Jika Anda secara tidak sengaja menerapkan peraturan atau kebijakan yang menjatuhkan koneksi Anda saat ini, Anda selalu dapat masuk ke VPS DigitalOcean Anda dengan menggunakan konsol web, yang menyediakan akses out-of-band.
Hal lain yang perlu diingat adalah urutan aturan dalam setiap rantai materi. Paket tidak boleh memenuhi peraturan yang lebih umum yang cocok jika dimaksudkan untuk mencocokkan aturan yang lebih spesifik.
Karena itu, aturan di dekat bagian atas rantai harus memiliki tingkat spesifisitas yang lebih tinggi daripada aturan di bagian bawah. Anda harus mencocokkan kasus tertentu terlebih dahulu, dan kemudian memberikan aturan yang lebih umum untuk mencocokkan pola yang lebih luas. Jika sebuah paket jatuh ke seluruh rantai (tidak sesuai aturan), aturan akan menjadi aturan paling umum, yaitu kebijakan default.
Untuk alasan ini, kebijakan default rantai sangat menentukan jenis peraturan yang akan disertakan dalam rantai. Rantai dengan kebijakan default ACCEPT akan berisi aturan yang secara eksplisit menjatuhkan paket. Rantai yang default untuk DROP akan berisi pengecualian untuk paket yang harus diterima secara khusus.
Kesiimpulan
Pada titik ini, cara termudah untuk belajar tentang bagaimana iptables bekerja adalah menggunakannya untuk mengimplementasikan firewall Anda sendiri.