Firewall adalah sebuah sistem perangkat lunak atau perangkat keras untuk keamanan jaringan dengan cara menyaring lalu lintas yang masuk atau keluar pada jaringan komputer. Pada sistem operasi berbasis Linux tersedia IPTables sebagai perangkat lunak firewall untuk menyaring paket dan NAT, umumnya telah tersedia secara default.
Dalam konfigurasi IPTables terdiri dari beberapa table, kemudian table berisi beberapa chain. Chain ada yang tersedia default dan bisa ditambah oleh sysadmin. Chain dapat berisi beberapa rule untuk paket.
Jadi struktur IPTables adalah IPTables -> Tables -> Chains -> Rules.
A. TABLES dan CHAINS
IPTables memiliki 4 built-in tables.
1. Filter Table
Filter adalah default table untuk IPTables. Jika sysadmin tidak mendefinisikan table sendiri, digunakanlah filter table. Filter table memiliki built-in chains:
- INPUT chain: Untuk menyaring paket yang menuju ke server.
- OUTPUT chain: Untuk menyaring paket yang keluar dari server.
- FORWARD chain: Untuk menyaring paket yang menuju ke NIC lain dalam sever atau host lain.
2. NAT Table
Chain pada NAT table:
- PREROUTING chain: Mengubah paket sebelum routing. Paket ditranslasi setelah paket masuk ke sistem sebelum routing. Ini untuk membantu menerjemahkan alamat IP tujuan (destination IP address) dari paket ke sesuatu yang cocok dengan perutean di server. Ini digunakan untuk DNAT (Destination NAT).
- POSTROUTING chain: Mengubah paket setelah routing. Paket ditranslasi ketika paket tersebut meninggalkan sistem. Ini untuk membantu menerjemahkan alamat IP sumber (source IP address) ke sesuatu yang cocok dengan perutean pada destinasi. Ini digunakan untuk SNAT (Source NAT).
- OUTPUT chain: NAT untuk paket yang dibuat secara lokal di server.
3. Mangle Table
Mangle table adalah unuk pengubahan paket khusus. Ini mengubah bit QOS di header TCP. Chain pada Mangle table:
- PREROUTING chain
- OUTPUT chain
- FORWARD chain
- INPUT chain
- POSTROUTING chain
4. Raw Table
Raw table adalah untuk pengecualian konfigurasi. Chain pada Raw table:
- PREROUTING chain
- OUTPUT chain
B. IPTABLES RULES
Berikut ini poin-poin penting yang harus diingat dalam IPTables rules.
- Rule mengandung kriteria dan target.
- Jika kriteria tersebut cocok, menuju ke rule yang ditentukan dalam target atau mengeksekusi nilai-nilai khusus yang disebutkan dalam target.
- Jika kriteria tidak cocok, pindah ke rule berikutnya.
Target Values
Berikut ini value yang dapat dipasangkan pada target.
- ACCEPT: Firewall akan menerima paket.
- DROP: Firewall akan menghancurkan paket.
- QUEUE: Firewall akan meneruskan paket ke userspace.
- RETURN: Firewall akan berhenti mengeksekusi rule berikutnya dalam chain saat ini khusus untuk paket ini. Kontrol akan dikembalikan ke calling chain.
C. INSTALL & CONFIG IPTABLES
Install iptables pada Linux Ubuntu Server 16.04
Menampilkan Rules
Menampilkan rules dari Filter table
Menampilkan rules dari Mangle table
Menampilkan rules dari NAT table
Menampilkan rules dari Raw table
Mengubah Default Policy Filter Table
Melihat status policy iptables
Mengubah policy chain
Mengecek ulang policy
PERINGATAN: Hati-hati dalam mengubah policy INPUT menjadi DROP, dapat mengakibatkan server tidak bisa diremote SSH.
Menambah Rule
Pada contoh di bawah ini, IPTables mengijinkan paket ke server untuk protokol ICMP, SSH, HTTP, HTTPS, dan FTP.
Menambah rule
Menghapus satu rule, misalnya port 21 (FTP)
Menghapus semua rule
Melihat semua rule
Simpan konfigurasi IPTables
Rule IPTables tersimpan di /etc/iptables/rules.v4.
Berikut ini rule yang saya copy dari digitalocean.com yang dapat digunakan untuk menyaring paket menuju server. Saya menambahkan rule untuk ICMP, FTP, HTTP, dan HTTPS agar diterima.
Edit file rules.v4
Paste rules di bawah ini
Simpan file, keluar dari nano.
Agar file konfigurasi terload jalankan perintah
Pastikan rule IPTables masih tetap ada setelah server direstart.
Selamat mencoba 🙂
Tidak ada komentar:
Posting Komentar