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/
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