Menyetel IPTables di Linux adalah salah satu langkah penting untuk meningkatkan keamanan server. Berikut adalah panduan langkah demi langkah untuk mengonfigurasi IPTables:
1. Cek Status IPTables
Sebelum mulai, cek apakah IPTables sudah terinstal dan berjalan.
sudo iptables -L -v -n
Keterangan:
-L: Menampilkan semua aturan.
-v: Mode verbose, menunjukkan detail.
-n: Tidak mencoba memecahkan nama host/IP.
2. Membersihkan Aturan Lama
Pastikan memulai dari kondisi bersih.
sudo iptables -F # Hapus semua aturan di tabel filter
sudo iptables -X # Hapus semua chain yang didefinisikan user
sudo iptables -Z # Reset semua hitungan paket
3. Menentukan Kebijakan Default
Atur kebijakan default untuk chain utama (INPUT, FORWARD, dan OUTPUT).
sudo iptables -P INPUT DROP # Menolak semua koneksi masuk
sudo iptables -P FORWARD DROP # Menolak semua koneksi forwarding
sudo iptables -P OUTPUT ACCEPT # Mengizinkan semua koneksi keluar
Catatan: Gunakan kebijakan ketat (DROP) sebagai default untuk keamanan.
4. Mengizinkan Koneksi Dasar
Izinkan koneksi penting seperti loopback, koneksi yang sudah ada, dan ping.
sudo iptables -A INPUT -i lo -j ACCEPT # Izinkan loopback
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # Izinkan koneksi yang ada
sudo iptables -A INPUT -p icmp -j ACCEPT # Izinkan ping
5. Membuka Port Tertentu
Untuk mengizinkan layanan tertentu, tambahkan aturan membuka port.
Contoh:
HTTP (Port 80):
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
HTTPS (Port 443):
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
SSH (Port 22):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Custom Port: Ganti --dport <nomor-port> sesuai kebutuhan Anda.
6. Membatasi Akses SSH
Untuk keamanan, Anda bisa membatasi akses SSH hanya dari IP tertentu.
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
Ganti 192.168.1.100 dengan IP yang diizinkan.
7. Menyimpan Aturan
Setelah selesai, simpan konfigurasi agar tetap ada setelah reboot.
sudo apt install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload
CentOS/RHEL:
sudo service iptables save
sudo systemctl restart iptables
8. Mengecek Aturan Aktif
Lihat kembali aturan yang sudah diterapkan.
sudo iptables -L -v -n --line-numbers
9. Menghapus Aturan Tertentu
Jika ada aturan yang salah, Anda bisa menghapusnya berdasarkan nomor baris.
sudo iptables -D INPUT <nomor-baris>
Ganti <nomor-baris> dengan nomor yang diperoleh dari perintah sebelumnya.
10. Mengaktifkan Log Firewall (Opsional)
Untuk mencatat koneksi yang ditolak, tambahkan aturan logging.
sudo iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
Log akan disimpan di /var/log/syslog atau /var/log/messages.
Contoh Konfigurasi Sederhana
Berikut adalah konfigurasi sederhana untuk server web:
sudo iptables -F
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # HTTPS
sudo iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: "
Dengan pengaturan di atas, server Anda akan lebih aman dari serangan tidak terduga. Jangan lupa untuk terus belajar dan eksperimen dengan skenario nyata! 😊