Firewall dengan Shorewall

Dalam contoh berikut kita menginstall firewall pada sebuah server yang terkonek internet dan di sharing ke banyak komputer, dimana pihak local bisa mengakses internet secara bebas namun jika ada sesuatu dari internet akan di tolak secara mentah-mentah.


Sebelum kita mensetting shorewall lebih baiknya saya kasih mukadimah mengenai shorewall sebelumnya. Shorewall adalah sebuah tool firewall yang menggunakan IPTABLES sebagai pengeksekusi firewallnya. Dimana IPTABLES adalah tool firewall yang ada di Linux dan sudah di include kan ke kernel, jadi kalau kita nginstall Linux otomatis kita telah menginstall IPTABLES. Dengan IPTABLES saja sebenernya sudah cukup untuk membangun sebuah firewall, namun bila kita membangun firewall dari IPTABLES tanpa tool itu sama saja dengan menyiksa diri sendiri.
Dengan tool shorewall ini saya merasa dimanjakan dengan kemudahannya dalam membangun firewall. Kita cuma perlu menentukan aturan defaultnya lalu aturan khususnya juga pada masqueradingnya.
Shorewall juga dapat digunakan untuk loadbalancing, dan sangat mudah sekali dalam penggunaanya (baru baca, belum pernah nyoba saya).
OK. Langsing, eh salah langsung maksudku, kita menuju ke acara inti yaitu instalasi dan setting shorewall. Dalam contoh ini saya menggunakan Ubuntu Server 8.04.2. Pertama kita install dulu paket shorewallnya
apin@proxy-labjar:~$ sudo apt-get install shorewall
setelah selesai maka shorewall telah terinstall pada komputer kita. Untuk settingan shorewall terdapat pada folder /etc/shorewall, namun secara didalam folder tersebut hanya terdapat satu file yaitu shorewall.conf, namun yang kita butuhkan bukan itu saja. Langsung copy file policy, rules, zones, interfaces, masq yang berada pada folder /usr/share/doc/shorewall-common/default-config/ ke /etc/shorewall.
Dalam tutorial yang saya tulis ini dimana eth0 terhubung ke internet dan eth1 ke local.
Yang pertama perlu kita edit adalah file interfaces, file ini mendefinisikan interface yang digunakan untuk selanjutnya di pakai pada shorewall.
apin@proxy-labjar:~$ sudo nano /etc/shorewall/interfaces
#ZONE INTERFACE BROADCAST OPTIONS
int eth0 detect
loc eth1 detect
#LAST LINE — ADD YOUR ENTRIES BEFORE THIS ONE — DO NOT REMOVE
Setelah mengedit file tersebut lalu save. int dan loc digunakan untuk menamai zona yang nanti digunakan untuk setting selanjutnya. detect digunakan untuk otomatis detek alamat broadcast pada tiap-tiap interface.
Yang kedua kita edit file zones :
apin@proxy-labjar:~$ sudo nano /etc/shorewall/zones
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
int ipv4
loc ipv4
#LAST LINE – ADD YOUR ENTRIES ABOVE THIS ONE – DO NOT REMOVE
Pada file zone ini digunakan untuk mendefinisikan zona sesuai dengan tipenya. int dan loc bertipe ipv4. fw bertipe firewall, tipe firewall maksudnya adalah firewall itu sendiri (server dari firewall).
Selanjutnya pada file masq :
apin@proxy-labjar:~$ sudo nano /etc/shorewall/masq
#INTERFACE SOURCE ADDRESS PROTO PORT(S) IPSEC MARK
eth0 eth1
#LAST LINE — ADD YOUR ENTRIES ABOVE THIS LINE — DO NOT REMOVE
File ini digunakan untuk memasquerade local agar terhubung ke internet dengan nat. Dimana bila ada permintaan dari eth1 (local) akan dimasquerade (nat) ke eth0 (int).
Setelah itu setting lagi pada file policy :
apin@proxy-labjar:~$ sudo nano /etc/shorewall/policy
#SOURCE DEST POLICY LOG LIMIT:BURST
# LEVEL
$FW int ACCEPT
loc int ACCEPT
loc $FW DROP
int all DROP
all all REJECT info
#LAST LINE — DO NOT REMOVE
File ini berisi policy (aturan secara umum). Dari konfigurasi diatas berarti $FW (firewall) menuju internet akan di ACCEPT. loc ke int akan di accept. Namun dari int ke all (loc & $FW) akan ditolak (DROP).
Setelah itu kita edit lagi file rules :
apin@proxy-labjar:~$ sudo nano /etc/shorewall/rules
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK
# PORT PORT(S) DEST LIMIT GROUP
ACCEPT loc $FW tcp 80
ACCEPT int $FW tcp 80
#LAST LINE — ADD YOUR ENTRIES BEFORE THIS ONE — DO NOT REMOVE
File rules ini berisi tentang aturan secara khusus yang kita inginkan. Dari konfigurasi diatas berarti jika ada loc menuju $FW (server) port 80 protokol tcp akan diterima, dalam hal ini server terdapat server http. Begitu juga yang dari internet juga akan diterima.
Selanjutnya kita edit shorewall.conf. Ubah STARTUP_ENABLED=No menjadi STARTUP_ENABLED=Yes.
Setelah yakin semua konfigurasi telah selesai lalu kita start shorewall.
apin@proxy-labjar:~$ sudo /etc/init.d/shorewall start
Starting “Shorewall firewall”: done.

0 comments:

Post a Comment

Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]
close
iklan 120 x 600 kanan
close