
Mengaktifkan firewall di server Ubuntu menggunakan bantuan shorewall. Shorewall adalah command line frontend untuk iptables. Dengan menggunakan shorewall Anda bisa mengelola rules firewall dengan lebih mudah.
Sebelumnya saya sudah pernah memperkenalkan ufw di Ubuntu. Sekarang saya ingin memperkenalkan aplikasi lain untuk mengelola firewall di Ubuntu, yaitu shorewall.
Berbeda dengan ufw yang mengelola firewall langsung menggunakan command line, di shorewall Anda akan menggunakan berkas konfigurasi untuk mengelola firewall.
Peringatan
Sebelum kita berkenalan dengan shorewall, perlu saya sampaikan disini, jika Anda ingin mencoba-coba mengkonfigurasi firewall, pastikan mesin yang Anda gunakan tidak berada di posisi yang jauh (susah Anda jangkau secara fisik). Kesalahan dalam mengkonfigurasi firewall bisa menyebabkan sistem Anda terkunci, dan tidak bisa diremote login dari jauh.
Instalasi Shorewall
Instal shorewall dari repositori ubuntu.
sudo apt-get install shorewall
Sekarang Anda masuk ke folder /etc/shorewall, tempat dimana konfigurasi shorewall akan disimpan.
Konfigurasi default ada di /usr/share/doc/shorewall-common/default-config. Untuk contoh lainnya tersedia di /usr/share/doc/shorewall-common/examples.
Karena tutorial kali ini adalah menginstal firewall di server yang memiliki satu interface maka kita akan menggunakan konfigurasi dari folder examples/one-interface/.
sudo cp /usr/share/doc/shorewall-common/examples/one-interface/* /etc/shorewall/
Mengkonfigurasi Shorewall
/etc/shorewall/interfaces
Periksa nama interface yang aktif.
ifconfig -a
Hasilnya kira-kira seperti di bawah ini:
eth0 Link encap:Ethernet HWaddr 00:0c:29:43:d8:28
inet addr:192.168.175.128 Bcast:192.168.175.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe43:d828/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1557 errors:0 dropped:0 overruns:0 frame:0
TX packets:1012 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:416891 (407.1 KB) TX bytes:134693 (131.5 KB)
Interrupt:17 Base address:0x2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)Maka konfigurasi di berkas /etc/shorewall/interfaces adalah sebagai berikut:
############################################################################### #ZONE INTERFACE BROADCAST OPTIONS net eth0 detect dhcp,tcpflags,logmartians,nosmurfs #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Opsi dhcp perlu ditambahkan jika memenuhi kriteria sebagai berikut:
- IP server di set dari dhcp server
- interface digunakan oleh dhcp server yang dijalankan di firewall
- interface menggunakan IP statik, tapi berada di LAN yang sebagian besar menggunakan IP dari dhcp server
Penjelasan untuk opsi lainnya, bisa Anda lihat di dokumentasi shorewall-interfaces.
/etc/shorewall/zones
Untuk zones, kita akan menggunakan konfigurasi seperti di bawah ini (default dari contoh).
############################################################################### #ZONE TYPE OPTIONS IN OUT # OPTIONS OPTIONS fw firewall net ipv4 #LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE
Dimana fw adalah server firewall yang kita konfigurasi sekarang, dan net adalah zona lain diluar firewall.
/etc/shorewall/policy
Untuk mempermudah pengelolaan firewall, kita harus tentukan aturan global (policy). Yang sekarang akan kita tentukan adalah defaultnya memblok semua koneksi dari network ke server, dan membolehkan semua akses dari server ke network.
############################################################################### #SOURCE DEST POLICY LOG LEVEL LIMIT:BURST $FW net ACCEPT net $FW DROP info net all DROP info # The FOLLOWING POLICY MUST BE LAST all all REJECT info #LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE
/etc/shorewall/rules
Lihat contoh berikut
############################################################################################################# #ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK # PORT PORT(S) DEST LIMIT GROUP # Perbolehkan akses ping dari network # Ping/ACCEPT net $FW # Perbolehkan akses ke port SMTP di server # SMTP/ACCEPT net $FW # Perbolehkan akses ke port SSH di server # hanya dari LAN 192.168.175.0/24 # SSH/ACCEPT net:192.168.175.0 $FW # Perbolehkan akses ke port SNMP di server # hanya dari server cacti, ip 192.168.175.2 # ACCEPT net:192.168.175.2 $FW tcp 161 ACCEPT net:192.168.175.2 $FW udp 161 # dari komputer admin punya akses penuh ke server # ip komputer admin 192.168.175.13 # ACCEPT net:192.168.175.13 $FW #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Anda bisa menggunakan macro seperti SSH/ACCEPT atau PING/ACCEPT untuk membuat sebuah rules. Atau Anda bisa membuat rules sendiri dengan menentukan konfigurasi sendiri, seperti yang saya contohkan untuk akses SNMP hanya dari server cacti.
Untuk daftar macro yang bisa Anda gunakan, Anda bisa lihat di /usr/share/shorewall/.
Untuk informasi lengkap seputar cara membuat rules di shorewall, silakan kunjungi manual shorewall-rules.
Mengaktifkan Shorewall
Sunting berkas /etc/default/shorewall. Cari baris berikut:
startup=0
Ganti menjadi
startup=1
Setelah itu aktifkan shorewall.
sudo /etc/init.d/shorewall start
Dan setiap Anda melakukan perubahan di berkas /etc/shorewall/rules, Anda harus melakukan restart shorewall.
sudo shorewall restart

3 Komentar
Kalo saya ada pertanyaan email ke mana?
Untuk sementara ini, saya tidak melayani pertanyaan via email.
Jika ada pertanyaan via email, bisa coba kirim ke milist seperti tanya-jawab@linux.or.id. Disana ada banyak anggota yang bisa membantu, kalau lagi sempat saya juga biasa ikut berdiskusi disana.
[...] Referensi : http://ngadimin.com/2009/07/18/standalone-firewall-di-ubuntu-dengan-shorewall/ [...]