Ingin menghubungi Betariko? Silahkan klik link berikut! Hubungi Betariko

Table of Content

Pengaturan Firewall di Linux Server

Pengaturan firewall di Linux umumnya menggunakan iptables atau firewalld (di distribusi modern seperti CentOS/RHEL) atau ufw (di Ubuntu). Untuk penggunaan tingkat expert, biasanya fokus pada keamanan, pengaturan granular, dan pengendalian lalu lintas dengan aturan yang ketat. Berikut adalah panduan umum:


1. Menggunakan iptables untuk Firewall

Dasar Perintah iptables

Melihat aturan firewall aktif:

iptables -L -v -n

-L: Menampilkan aturan yang aktif.

-v: Menampilkan detail (seperti byte/packet).

-n: Menampilkan IP tanpa memetakan ke nama host.

Flush (hapus semua aturan):

iptables -F

Mengatur kebijakan default:

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT ACCEPT

INPUT: Lalu lintas masuk.

FORWARD: Lalu lintas melewati server.

OUTPUT: Lalu lintas keluar.

Aturan iptables Umum

a. Mengizinkan SSH

iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

Mengizinkan koneksi SSH pada port 22.

b. Mengizinkan HTTP/HTTPS

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Mengizinkan akses web server untuk HTTP (port 80) dan HTTPS (port 443).

c. Mengizinkan Ping

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

d. Membatasi Koneksi dari IP Tertentu

iptables -A INPUT -s 192.168.1.100 -j DROP

Memblokir IP spesifik (192.168.1.100).

e. Membatasi Rate Koneksi

iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/minute --limit-burst 5 -j ACCEPT

Membatasi koneksi SSH menjadi maksimal 3 koneksi per menit.

f. NAT (Masquerading untuk Router)

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Mengaktifkan NAT pada antarmuka eth0.

2. Menggunakan Firewalld

Firewalld adalah firewall berbasis zona yang lebih modern dan digunakan di distribusi seperti CentOS/RHEL.

Dasar Perintah Firewalld

Melihat status:

firewall-cmd --state

Melihat aturan aktif:

firewall-cmd --list-all

Membuka port:

firewall-cmd --add-port=80/tcp --permanent

firewall-cmd --add-port=443/tcp --permanent

Reload aturan:

firewall-cmd --reload

3. Menggunakan UFW (Uncomplicated Firewall)

UFW biasanya digunakan di Ubuntu dan mempermudah pengaturan firewall.

Dasar Perintah UFW

Melihat status:

ufw status

Mengizinkan layanan atau port:

ufw allow 22/tcp

ufw allow 80/tcp

ufw allow 443/tcp

Menolak koneksi:

ufw deny 22/tcp

Aktifkan UFW:

ufw enable

4. Contoh Konfigurasi Tingkat Lanjut

Firewall untuk Server Web dengan Load Balancer

Iptables:

iptables -A INPUT -p tcp --dport 80 -s 192.168.1.0/24 -j ACCEPT

iptables -A INPUT -p tcp --dport 443 -s 192.168.1.0/24 -j ACCEPT

iptables -A INPUT -p tcp --dport 80 -j DROP

Mengizinkan akses HTTP/HTTPS hanya dari jaringan lokal.

Firewalld:

firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="80" protocol="tcp" accept' --permanent

firewall-cmd --reload

5. Debugging Firewall

Melihat log iptables: Tambahkan aturan logging:

iptables -A INPUT -j LOG --log-prefix "IPTABLES DROPPED: " --log-level 4

Log dapat dilihat di /var/log/messages atau /var/log/syslog.

Memantau koneksi aktif:

netstat -anp | grep <port>

Memeriksa aturan NAT:

iptables -t nat -L -v -n

6. Kesimpulan

Gunakan iptables untuk kontrol granular dan custom firewall rules.

Gunakan firewalld jika bekerja dengan zona jaringan yang lebih kompleks.

Gunakan ufw untuk konfigurasi firewall yang lebih sederhana dan cepat.

Dengan pengaturan ini, server Linux Anda bisa lebih aman dan efisien! 🚀