Membuat Firewall Sederhana Menggunakan IpTables di Linux

Kali ini Saya akan mencoba menulis tentang membuat Firewall sederhana dengan cara mengkonfigurasi tabel-tabel yang disediakan oleh Linux (sejak kernel 2.4 dan setelahnya) yaitu Iptables, yang mana Iptables adalah suatu aplikasi yang membantu user dalam mengatur policy-policy untuk menciptakan suatu pengamanan dalam jaringan komputer, lalu ... apa itu Firewall ? Firewall adalah sebuah perlindungan untuk membatasi informasi yang diperbolehkan masuk ataupun keluar dari jaringan lokal host.

Sebuah firewall pada umumnya dipasang sebagai pagar untuk koneksi jaringan internal dengan internet. Kira-kira begini gambarannya...


Jika Saya ibaratkan, Panah pada gambar diatas adalah paket-paket yang masuk dari internet ke jaringan local (catatan: paket-paket data bisa berasal dari internet ke jaringan local atau sebaliknya), Panah Hijau menggambarkan bahwa paket-paket data tersebut di “izinkan” (ACCEPT) oleh firewall untuk masuk ke jaringan local, sedangkan Panah Merah adalah paket-paket yang “tidak diizinkan” (DROP / REJECT) untuk masuk kejaringan local (atau komputer kita), kira-kira begitu-lah konsep dasar dari firewall.

Saya pernah membaca artikel dari internet tentang membuat firewall pada Linux, kodenya sangat sederhana. langsung aja yah :)

1. Buat file .sh dengan nama terserah Anda, untuk saat ini Saya beri nama “firewall-sederhana.sh” kemudian simpan di direktori /etc (atau terserah Anda mau taruh dimana), edit menggunakan editor yang ada, kali ini Saya pakai editor “nano”. Oh ia, sebagai gambaran Saya menggunakan Kali Linux..

$ sudo nano /etc/firewall-sederhana.sh

lalu masukan kode dibawah ini:

#!/bin/sh
PATH='/sbin'

# Flush the tables
iptables -F

# Allow established connections (the responses to our outgoing traffic)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow local programs that use loopback (Unix sockets)
iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT

# Default policy to drop 'everything', but accept our output to internet
iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT

Kemudian simpan (ctrl+x, y, lalu enter).

2. Ubah mode file firewall-sederhana.sh agar bisa di eksekusi, buka terminal kemudian masukan perintah dibawah ini,

$ sudo chmod +x /etc/firewall-sederhana.sh

3. Agar file ini (firewall-sederhana.sh) bisa dijalankan setelah booting, edit file "rc.local".

$ sudo nano /etc/rc.local

lalu sisipkan kode dibawah ini diatas "exit 0".

if [ -e '/etc/firewall-sederhana.sh' ]
then
/bin/sh '/etc/firewall-sederhana.sh'
fi

Kemudian simpan (ctrl+x, y, lalu enter). Untuk melihat apakah sudah benar Kita memasang firewall tersebut, maka reboot Linux, lalu cek dengan perintah,

$ sudo iptables -L

Pada kode IpTables diatas, policy di ACCEPT pada OUTPUT yang berarti "semua port" terbuka untuk koneksi keluar (ke-internet) dan ini tidak baik, untuk itu Kita bisa menyeleksi port-port mana saja yang bisa melakukan koneksi keluar, pada tulisan ini Saya akan membuat agar komputer hanya bisa melakukan browsing ke internet saja, kodenya sebagai berikut:

#!/bin/bash
# Judul : Script Firewall Sederhana Untuk Browsing (dengan IpTables)

PATH='/sbin'

# Turn off IP Forwarding (Ubah 0 menjadi 1 jika ingin IP Forwarding menjadi Turn On)
echo 0 > /proc/sys/net/ipv4/ip_forward

# Perintah dibawah ini untuk mengosongkan aturan pada sebuah chain.
iptables -F

# Mengizinkan koneksi yang telah terbentuk/terjalin/tersusun.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Mengizinkan Loopback local program (Unix sockets) .
iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT

# Mengizinkan port 80 (tcp:80 = worldwideweb HTTP, udp:80 = hypertext transfer protocol) .
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p udp --dport 80 -j ACCEPT

# Mengizinkan port 443 (HTTPS) .
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p udp --dport 443 -j ACCEPT

# Mengizinkan port 53 (Domain Name Server).
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

# Tutup semua port yang ada .
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

Kemudian simpan kode diatas, ubah mode file dengan chmod +x, edit file "rc.local”, seperti yang telah dijabarkan diatas..

Jika ingin menambahkan port lainnya maka edit kode diatas, daftar port bisa dilihat di file /etc/services

$ cat /etc/services
semoga bermanfaat … ^_^

Sumber : http://pembega.blogspot.com/

WARNING, Apabila Anda Ingin Menyebarkan Atau Mengambil Sebagian Atau Seluruh Artikel Dari Blog Ini Harap Menyertakan Sumbernya :D . Hatur nuhun sedulur kabeh...

0 komentar:

Terima Kasih sudah berkunjung dan berkomentar, semoga menjadikan sebagai bahan pengembangan dalam penulisan selanjutnya