Anda di halaman 1dari 6

FIREWALL dengan Iptables

Pendahuluan
Firewall merupakan bagian perangkat keamanan jaringan dan merupakan suatu cara atau mekanisme
yang diterapkan baik terhadap perangkat keras (hardware), perangkat lunak (software), maupun sistem
itu sendiri dengan tujuan untuk melindungi, baik dengan menyaring, membatasi, atau bahkan menolak
suatu atau semua hubungan atau kegiatan suatu segmen pada jaringan pribai dengan jaringan luar
yang bukan merupakan ruang lingkupnya. Segmen tersebut dapat berupa sebuah workstation, server,
router, atau local area network (LAN). Firewall secara umum diperuntukkan guna melayani :
mesin/komputer
setiap individu yang terhubung langsung ke jaringan luar atau Internet dan menginginkan semua
yang terdapat pada komputernya terlindungi.
Jaringan
jaringan komputer dengan berbagai jenis topologi.
Karakteristik Firewall
seluruh hubungan atau kegiatan dari dalam atau keluar, harus melewati firewall. Hal ini dapat
dilakukan dengan membatasi, juga secara fisik, semua akses terhadap jaringan lokal, kecuali
melewati firewall. Banyak sekali bentuk topologi jaringan yang memungkinkan.
Hanya kegiatan yang terdaftar atau dikenal yang dapat melakukan hubungan. Hal ini dapat
dilakukan dengan mengatur kebijakan pada konfigurasi keamanan lokal. Banyak sekali jenis firewall
yang dapat dipilih, sekaligus dengan berbagai jenis kebijakan yang ditawarkan.
Firewall itu sendiri haruslah kebal atau relatif kuat terhadap serangan. Hal ini berarti penggunaan
sistem harus dapat dipercaya dan dengan sistem operasi yang relatif aman.
Teknik yang digunakan oleh firewall
service control (kendali layanan)
direction control (kendali arah)
user control (kendali pengguna)
behaviour control (kendali perlakuan)

Gambar 12.1. Implentasi jaringan komputer dengan firewall


Sesi Firewall dengan IPTables. 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.

Iptables
Salah satu aplikasi firewall yang banyak digunakan adalah iptables. Dengan berbagai fasilitas yang
didukung antara lain dapat menghentikan penggunaan aplikasi tertentu seperti Yahoo Messenger,
Kazza, hingga aplikasi multimedia. Dengan melakukan filterisasi berdasarkan nomor port, alamat IP,
tipe service, hingga translation, membuat keberadaannya sungguh fleksibel untuk mengamankan suatu
jaringan. Beberapa konsep dasar yang perlu diketahui oleh pengguna mengenai aliran data adalah
sebagai berikut:
PREROUTING
aliran paket yang masuk ke jaringan lokal (destination NAT).
POSTROUTING
aliran paket yang keluar dari jaringan (source NAT).
Untuk melihat arah dari aliran paket, adalah lebih baik dengan mengarahkan konsep pemikiran ke
bagian ISP sebagai jalur komunikasi ke Internet. Kemudian dianjurkan untuk setingan iptables
menggunakan opsi MASQUERADE, sehingga ada perubahan alamat interface kartu jaringan pada
server tidak perlu melakukan penyetingan ulang (fleksibel).
Berikut ini adalah contoh beberapa instruksi:
iptables -N TOLAK
iptables -A TOLAK -s 192.168.1.90 -d 0/0 -j DROP
iptables -A FORWARD -i eth1 -o eth0 -j TOLAK

Untuk melihat hasil konfigurasi yang telah dilakukan dengan menggunakan perintah iptables -v -L yang
akan memberikan tampilan seperti berikut ini :
Chain INPUT (policy ACCEPT 9 packets, 1352 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 TOLAK all -- eth1 eth0 anywhere anywhere
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain TOLAK (1 references)
pkts bytes target prot opt in out source destination
0 0 DROP all -- any any 192.168.1.90 anywhere

Network Address Translation (NAT)


NAT merupakan aplikasi perangkat lunak atau perangkat keras (biasanya router) yang dirancang untuk
dapat melakukan konversi alamat IP dari bentuk alamat privat ke alamat publik. Ini memungkinkan
banyak pengguna berbagi sebuah alamat IP publik. NAT dapat pula diartikan sebagai metode untuk
mengkoneksikan banyak komputer ke Internet atau jaringan IP lainnya dengan menggunakan satu
alamat IP. Para pengguna perseorangan maupun kalangan bisnis kecil-menengah adalah salah satu
contoh pihak yang merasakan secara langsung kapabilitas NAT yang memberikan efisiensi dan biaya
murah. Selain itu, implementasi NAT juga didasari pula pada beberapa faktor berikut :
Keterbatasan spasi alamat IP (IPv4) yang ada saat ini.
Kebutuhan keamanan. NAT mampu mencegah akses dari luar tanpa membutuhkan suatu
konfigurasi yang khusus dan rumit.
Mudah dan fleksibel dalam perawatan.

Sesi Firewall dengan IPTables. 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.

implementasi pada single box:


iptables -t nat -A PREROUTING -i eth1 -d 0/0 -p tcp --dport 80 -j
REDIRECT --to-port 3128

implementasi proxy transparan pada double box:


iptables -t nat -A PREROUTING -i eth1 -s ! 192.168.1.23 -d 0/0 -p
tcp --dport 80 -j DNAT --to 192.168.1.23:3128
iptables -t nat -A POSTROUTING -o eth0 -d 192.168.1.23 -j
MASQUERADE

hapus data table:


iptables -t nat -D PREROUTING 1

Implementasi Firewall pada studi kasus jaringan sederhana


Berikut ini adalah contoh implementasi firewall pada jaringan sederhana. Untuk aplikasi yang digunakan
adalah Iptables, setelah sebelumnya memastikan bahwa aplikasi terinstall. Untuk sistem Debian,
aplikasi ini otomatis telah terinstall, sehingga dapat langsung mengimplementasikan role yang ada.
Untuk tutorial ini, menggunakan konsol untuk antarmuka antara penguna dengan sistem.
Langkah-langkah kerjanya adalah sebagai berikut:
1. Tentukan skenario untuk layanan yang diperbolehkan di jaringan:
Blok semua akses ICMP, dan semua penolakan tersebut tercatat pada berkas log.
Blok semua permintaan akses ke FTP.
Blok semua permintaan akses ke DNS.
Blok akses ke Telnet.
Blok akses ke SMTP dan POP3.
2. Masukkan rules ke tabel INPUT sesuai dengan skenario yang telah ditetapkan sebelumnya:
iptables
iptables
iptables
iptables
iptables
iptables
iptables
iptables
iptables
iptables
iptables
iptables
iptables

A
A
A
A
A
A
A
A
A
N
A
A
A

INPUT s 0/0 d 0/0 p icmp j DROP


INPUT s 0/0 d 0/0 p icmp j LOG
INPUT s 0/0 d 0/0 p tcp -dport 20 j DROP
INPUT s 0/0 d 0/0 p tcp -dport 21 j DROP
INPUT s 0/0 d 0/0 p tcp -dport 53 j DROP
INPUT s 0/0 d 0/0 p udp -dport 53 j DROP
INPUT s 0/0 d 0/0 p tcp -dport 21 j DROP
INPUT s 0/0 d 0/0 p tcp -dport 25 j DROP
INPUT s 0/0 d 0/0 p tcp -dport 110 j DROP
icmptraffic
icmptraffic s 0/0 d 0/0 p icmp j DROP
icmptraffic s 0/0 d 0/0 p icmp j LOG
INPUT s 0/0 d 0/0 p icmp j icmp

3. Lakukan pengecekan terhadap rules yang telah dimasukkan, dengan menampilkan isi dari tabel
INPUT:
iptables L

4. Simpan konfigurasi firewall yang telah dilakukan ke berkas cadangan:


iptables-save > iptables.txt

5. Lakukan flush semua rules yang telah dibuat:


iptables F
Sesi Firewall dengan IPTables. 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.

6. Lakukan kembali pengecekan terhadap rules, dengan menampilkan isi dari tabel INPUT:
iptables L

7. Memanggil kembali rules yang telah disimpan ke berkas cadangan:


iptables-restore iptables.txt

8. Memastikan bahwa tabel INPUT dan CHAIN yang dibangun berisi rules yang dipanggil sebelumnya
dari berkas cadangan:
iptables L

9. Menggunakan opsi P untuk menutup semua akses, dan kemudian secara spesifik membuka portport yang telah ditentukan dan sesuai kebutuhan dari server, seperti pada contoh berikut adalah
membuka akses ke SSH (port 22):
iptables P INPUT DROP
iptables A INPUTp tcp --dport 22 j ACCEPT

10. Merekam semua akses ke sistem, akan tetapi dengan menjalankan perintah berikut ini akan
merekam banyak aktifitas dari lalu-lintas data, yang tentu saja akan berpengaruh terhadap kinerja
dari sistem. Pastikan gunakan opsi-opsi yang sesuai dengan kebutuhan dan sumber daya sistem:
iptables
iptables
iptables
iptables

A
A
A
A

INPUTp
INPUTp
INPUTp
INPUTp

tcp
udp
udp
tcp

--dport
--dport
--dport
--dport

1023:
1023:
1023:
1023:

j
j
j
j

ACCEPT
ACCEPT
LOG
LOG

11. Merekam semua akses yang berusaha melakukan proses scanning ke port yang digunakan oleh
Microsoft:
iptables
A
INPUTp
135,137,138,139 j LOG
iptables
A
INPUTp
137,138,139 j LOG

tcp

--multiport

--destination-port

udp

--multiport

--destination-port

Port Redirect
Port Redirect adalah kondisi dimana suatu paket yang menuju ke satu port seperti misalnya akses
HTTP (melalui port 80) diterima oleh antarmuka jaringan, untuk selanjutnya dikirim ke port lain.
Implementasinya biasa diterapkan pada jaringan yang memiliki server proxy. Contoh perintah di bawah
ini adalah suatu host yang menerapkan peraturan dimana akses ke port 80 dan 443 (HTTP dan
HTTPS) akan otomatis diarahkan ke server proxy terlebih dahulu (port 8080). Caranya adalah
menerapkan opsi REDIRECT target dari tabel NAT.
iptables t nat -A PREROUTING -i eth1 -s 0/0 -d 0/0 p tcp 80 j
REDIRECT /
--to-ports 8080
iptables t nat -A PREROUTING -i eth1 -s 0/0 -d 0/0 p tcp 443 j
REDIRECT /
--to-ports 8080

Sesi Firewall dengan IPTables. 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.

Penghitungan penggunaan bandwidth jaringan


Pada banyak perusahaan, penghitungan penggunaan traffic jaringan atau Internet sudah banyak
dilakukan untuk mencapai efisiensi dalam bandwidth maupun investasi peralatan yang sesuai dengan
kebutuhan. Informasi tersebut harus berasal dari kondisi sebenarnya, berupa data riil dan statistik
pendukung, dengan kata lain diperoleh secara langsung melalui implementasi aplikasi monitoring, atau
dapat pula berupa perangkat keras yang secara spesifik berfungsi sebagai suatu firewall di mesin Linux
dapat menginformasikan secara detail mengenai paket atau aliran data yang diproses, baik itu yang
dilewatkan maupun yang ditolak. Proses penghitungan paket tersebut umumnya dikenal sebagai packet
accounting. Sebagai contoh:
mengidentifikasikan paket ICMP dan ICMP-REPLY yang diforward melalui firewall:
iptables -A FORWARD -m icmp -p icmp f -j LOG
iptables -A FORWARD -m icmp -p icmp --sport echo-reply -j LOG

mendapat informasi elemen yang lebih spesifik dari ICMP:


iptables -A FORWARD -m icmp -p icmp --sport echo-request -j LOG

Mengidentifikasi paket HTTP yang diforward oleh firewall:


iptables -A FORWARD -p tcp --sport 80,443 -j LOG

Mendeteksi paket HTTP yang dilewatkan antar dua jaringan:


iptables -A FORWARD -s 192.168.1.0/24 -d 10.100.100.0/24 -p tcp -sport 80,443 -j LOGwww

Contoh lain dari konfigurasi rules dari iptables yang dapat dilakukan adalah sebagai berikut:
# Generated by iptables-save v1.3.5 on Thu Aug 23 15:41:10 2007
*filter
:INPUT DROP [3:366]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [326:39645]
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -s 192.168.1.0/255.255.255.0 -p tcp -m tcp --dport 25 -m state -state NEW -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 25 -m state -state NEW -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p udp -m udp --dport 445 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 445 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 139 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p udp -m udp --dport 139 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p udp -m udp --dport 138 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 138 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 137 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p udp -m udp --dport 137 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p udp -m udp --dport 4004 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 4004 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 4003 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p udp -m udp --dport 4003 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p udp -m udp --dport 4002 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 4002 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 111 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p udp -m udp --dport 111 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p udp -m udp --dport 21 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -s 127.0.0.1 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -s 127.0.0.1 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 53 -j ACCEPT
Sesi Firewall dengan IPTables. 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.

-A INPUT -s 192.168.0.0/255.255.255.0 -p udp -m udp --dport 53 -j ACCEPT


-A INPUT -p udp -m udp --dport 53 -j REJECT --reject-with icmp-portunreachable
-A INPUT -p tcp -m tcp --dport 53 -j REJECT --reject-with icmp-portunreachable
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 137 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 111 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p udp -m udp --dport 111 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p udp -m udp --dport 22 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.0.254 -p tcp -m tcp --sport 53 -j ACCEPT
-A INPUT -s 192.168.0.254 -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p icmp -j ACCEPT
COMMIT
# Completed on Thu Aug 23 15:41:10 2007

Sesi Firewall dengan IPTables. 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.

Anda mungkin juga menyukai