IPTables di Linux Server

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! 😊