Ingin menghubungi Betariko? Silahkan klik link berikut! Hubungi Betariko

Table of Content

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