Mudah dan Murah Membangun
Jaringan Internet dengan Linux Router Project Leaf Bearing
FIREWALL DENGAN IP TABLES
Keamanan Jaringan (Network Security)
dan Audit Keamanan (Security Audit )
dan Audit Keamanan (Security Audit )
A.1.1 Network Security
Network terutama Internet
semakin
hari semakin berkembang. Dengan perkembangan Internet ini maka ancaman terhadap penggunanya juga semakin besar terjadi. Ancaman yang banyak terjadi dan sangat mengganggu keamanan jaringan dan pengguna jaringan adalah:




Apakah sebab-sebab umum sehingga
serangan terhadap network kita tidak bisa kita tangani/bendung? Berikut
ini adalah sebab- sebabnya:





Bagaimanakah cara membuat jaringan
kita semakin andal?
Lindungi jaringan Anda secara fisik.





A.1.2 Security Audit
Bagaimanakah cara memastikan bahwa jaringan Anda aman? Satu- satunya
jalan yang
terbaik adalah Anda sebagai System Administrator harus melakukan audit terhadap keamanan jaringan.



Pastikan tidak
ada
port mencurigakan yang terpakai.




Selain cara-cara
tersebut di atas, beberapa software untuk security audit dan intrusion detection system sangat membantu tugas Anda sebagai system administrator. Contoh software tersebut adalah:




Ethereal adalah software untuk melakukan penyadapan
terhadap data yang lewat. Dengan memakai ethereal, Anda bisa memonitor aktivitas
dari suatu workstation
atau IP. Keamanan
dari suatu jaringan bergantung dari
dua kunci: rajin dan tekun.
A.2 Pengenalan Firewall
Firewall adalah suatu
peralatan
keamanan
yang
menjadi satu keharusan bagi setiap komputer
yang terhubung ke Internet dan juga menjadi
suatu
jenis aplikasi
yang menyediakan sistem keamanan pada jaringan pribadi (private networks).
Perlu diingatkan di sini bahwa tanggapan global bahwa dengan adanya suatu firewall antara private
networks dengan Internet akan menyelesaikan masalah
keamanan data adalah
tidak benar sama sekali. Walaupun firewall
akan meningkatkan
keamanan, tetapi firewall yang dipasang dengan cara yang tidak benar berisiko sama seperti tanpa firewall. Pada dasarnya firewall akan menambah perlindungan terhadap
sistem private network yang
terhubung dengan Internet,
tetapi hal ini tidak akan menangkal cracker
yang benar-benar ingin masuk dan merusak sistem.
A.2.1 Apakah Firewall
Itu?
Firewall bertugas di pintu gerbang
masuk jaringan dan setiap packet yang melaluinya
perlu mematuhi policy firewall
tersebut.
Terdapat tiga
jenis
firewall yang menjadi
kegunaan umum di Internet saat ini, yaitu :
1. Packet Filtering
Router
Pada dasarnya, setiap
data yang kita kirimkan dalam jaringan
atau Internet adalah packet. Dalam packet
data ini ada yang dinamakan header dan ada yang dinamakan
body.
Kebanyakkan aplikasi firewall seperti pf (OpenBSD), ipfw/2 (FreeBSD dan NetBSD), dan iptables (Linux)
mempunyai aturan khas di dalamnya yang disebut filtering
instructions.
Pada Linux, iptables melihat header dari packet data ini untuk kemudian dianalisa apakah
akan di-deny (membiarkan packet tersebut seolah-olah tidak pernah diterima), di-accept (menerima packet tersebut
untuk diproses lebih
lanjut), atau di- reject (menolak dan memberitahu pengirim
bahwa packet data tidak bisa diterima). Aturan-aturan ini biasanya dikenal dengan akronim "rule
chain".
Kriteria-kriteria packet matching bergantung pada
kebiasaan yang digunakan, Anda
boleh
memperkenalkan aturan yang bertindak
berdasarkan alamat IP
sumber
paket,
alamat
IP
destinasi paket,
nomor port sumber, nomor
port
destinasi (untuk protokol
yang
membenarkan mekanisme protokol seperti TCP),
hingga ke
jenis
paket (ICMP, UDP atau TCP).
2. Proxy server
Fungsinya
dijalankan dengan daemon authentication (proses- proses yang berjalan di background dan berinteraksi secara terus-menerus dengan sistem) dan
akan
meneruskan paket- paket data ke multi-homed host atau host-host lain.
Kebanyakan
situs menggunakan kombinasi kedua jenis firewall ini. Dalam hal ini,
hanya sebuah atau beberapa
host yang
dikenali dengan nama bastion host(s) yang dibenarkan
untuk meneruskan
paket-paket melalui
packet filtering
router ke
dalam
private network.
A.2.2 Beberapa Skenario Penggunaan
Firewall:

Dalam skenario
ini, jaringan internal menggunakan
IP internal seperti network 192.168.0.0/24
dan lain-lain. Untuk mengakses Internet, firewall menyediakan program perantara/proxy
yang bertugas melanjutkan
permintaan akses WWW/HTTP dan FTP. Biasanya digunakan program proxy
seperti Squid, Internet Junkbuster, dan lain-lain.
Pada sistem ini, jika client
yang ada pada jaringan internal
ingin mengakses Internet,
misalnya ke detik.com, maka client
akan mengirimkan request
ke port
proxy dari firewall (biasanya
3128/8080). Kemudian proxy di firewall melanjutkan request tersebut ke
detik.com. Setelah
request dijawab, data ditransfer ke
proxy/firewall untuk kemudian
diberikan ke
client di jaringan internal.

Skenario ini hampir sama seperti di atas, namun client tidak perlu diset
untuk memakai
proxy server
karena akses ke Internet akan secara
diam-diam/tanpa sepengetahuan
client
telah dialihkan
ke program proxy.
Setiap trafik
HTTP/FTP yang melewati firewall akan di- redirect/alihkan ke port proxy (seperti 8080/3128).
Selanjutnya
seperti di atas, trafic ditangani proxy server dan setelah diterima balasannya akan dikirim
balik ke client.

Skenario ini sama seperti transparent proxy, namun ini bukan pengalihan traffic
ke proxy server. Ini adalah proses penggantian label trafic dari
dalam dengan
label
firewall sehingga client di jaringan lokal merasa bahwa mereka langsung tersambung ke
Internet, padahal yang terjadi
adalah saat traffic
melewati firewall, label
traffic diganti dengan
label
firewall dan saat balasan datang, label firewall dibalikkan lagi.

Kadangkala
kita menginginkan beberapa komputer di jaringan internal kita bisa melayani
akses dari Internet dibandingkan jika firewall
yang menjalankan
service
tersebut.
Dalam
hal ini, firewall bisa mengalihkan permintaan service terhadap firewall kepada komputer pada jaringan internal. Hal ini
biasanya
disebut sebagai redirection.

Dalam hal
ini
beberapa
komputer dalam jaringan kita mempunyai IP
global sehingga traffic mereka bisa diterima
diseluruh jaringan.
Melalui cara ini firewall hanya akan meneruskan traffic
data yang diperbolehkan kepada komputer
dalam jaringan internal
tersebut.
A.2.3 Kegunaan Firewall
Mengapa kita memakai firewall? Berikut ini adalah alasannya:



A.2.4 Topologi Firewall
Ada banyak pilihan topologi
firewall yang boleh digunakan
dalam implementasinya. Akan
tetapi
untuk tujuan memudahkan
pemahaman, penulis memilih
dua
topologi yang biasa digunakan dalam sebuah rangkaian kecil dan sederhana besar.
Perlu diingat, secara ringkas firewall memisahkan dua buah jaringan komputer, yaitu jaringan pribadi
(private network) dan jaringan luar (Internet).

Gambar 4.1 Topologi firewall sederhana
Ini adalah topologi
firewall paling dasar dalam sebuah jaringan. Topologi jenis ini digunakan apabila hanya satu jaringan
private saja yang digunakan.

Gambar 4.2 Topologi firewall dengan DMZ

Topologi jenis ini
mempunyai jaringan DMZ (Demilitary Zone) yang diletakkan di belakang firewall. Jaringan
DMZ ini boleh diakses oleh jaringan luar untuk servis yang tetap terikat kepada
policies
firewall. Di DMZ dapat diletakkan layanan-layanan web dan FTP yang memperbolehkan
pengguna luar untuk mengakses servis tersebut.
Dengan cara ini akses dari luar
hanya akan diarahkan
pada satu
segmen DMZ saja dan jaringan dalam tidak boleh diakses dari luar.
A.3 IPTables
Dalam iptables ada tiga
label utama, yaitu:



Gambar 4.3 Algoritma keputusan routing
A.3.1 Operasi pada Iptables
Berikut ini adalah operasi dalam Iptables:
Tabel operasi pada Iptables
Operasi
|
Opsi
|
Membuat chain baru
|
-N
|
Menghapus chain kosong
|
-X
|
Merubah aturan dari suatu chain
|
-P
|
Melihat daftar rules
|
-L
|
Menghapus seluruh rules
|
-F
|
Menolkan hitungan paket dan byte dalam suatu chain
|
-Z
|
Menambahkan rule
baru pada suatu chain
|
-A
|
Memasukkan rule baru pada posisi tertentu dalam suatu chain
|
-I
|
Mengganti rule
pada suatu chain
pada posisi tertentu
|
-R
|
Menghapus rule pada chain tertentu dan pada posisi tertentu atau yang sesuai
dengan spesifikasi
|
-D
|
A.3.2 Parameter Iptables
Parameter
digunakan untuk membuat aturan lebih spesifik (biasanya digunakan pada penambahan, penghapusan, penyisipan, atau operasi penggantian).
Tabel parameter pada Iptables
Parameter
|
Opsi
|
Menunjukkan nama protokol
yang digunakan, bisa tcp, udp, icmp, atau all
|
-p
|
Menunjukkan source addres
|
-s
|
Menunjukkan destinasi address
|
-d
|
-j
|
|
Menunjukkan input dari interface
|
-i
|
Menunjukkan output dari interface
|
-o
|
Table Filter chain Forward
Nama Subnet
|
192.168.1.0
|
192.168.2.0
|
192.168.1.0
|
ACCEPT
|
|
192.168.2.0
|
ACCEPT
|
Perintah Iptables adalah sebagai
berikut :
# iptables -P INPUT DROP

# iptables -P FORWARD DROP
Perintah di atas dibuat agar seluruh kebijakan pertama
policy untuk
pertama kali adalah DROP.
Perintah untuk melewatkan
paket dari network A ke network B
melalui router adalah sebagai berikut :
# echo 1>/proc/sys/net/ipv4/ip_forward

# iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
Arti perintah di atas berturut-turut adalah sebagai berikut:
Memastikan baris forwarding diaktifkan



Pilihan:

#iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

ESTABLISHED - j ACCEPT

#iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

192.168.2.5 -m state --state ESTABLISHED -j ACCEPT

# iptables -A INPUT -p tcp -s 192.168.1.5 --dport 22 - j

# iptables -A OUTPUT -o eth1 -m state --state
ESTABLISHED -j ACCEPT
A.3.4 Kegunaan IPTables
Dengan iptables
kita bisa memperketat keamanan jaringan atau server-server kita:



Hal-hal apakah yang perlu difilter dan tidak perlu atau tidak boleh difilter? Hal yang tidak boleh difilter adalah:



Packet apakah yang harus difilter?




Skenario:
Misalnya kita ingin
melihat port berapa saja yang sedang dibuka oleh
klien, jalankan perintah
(dari komputer client):

atau

maka akan terlihat hasil seperti berikut:
2004-09-13 21:10 EDT

(The 1631 ports scanned but not shown below are in state:
|
199/tcp
|
open
|
smux
|
443/tcp
|
open
|
https
|
631/tcp
|
open
|
ipp
|
701/tcp
|
open
|
unknown
|
921/tcp
|
open
|
unknown
|
2049/tcp
|
open
|
nfs
|
10000/tcp
|
open
|
snet-sensor-mgmt
|

2.387 seconds
Apabila di router diatur agar
klien/host
192.168.1.5 tidak dapat melakukan koneksi ke mana pun
dengan perintah berikut:

maka hasil perintah:

akan terlihat sebagai berikut:
2004-09-13 21:09 EDT

ping probes, try -P0
Nmap run completed
-- 1 IP address (0 hosts up) scanned in
12.066 seconds
Jika host 192.168.1.5
diatur agar tidak dapat mengakses service
HTTP dari Internet, gunakan sintaks sebagai berikut:

DROP
Cara mengeceknya:
1. Coba akses web
dari host 192.168.1.5. Seharusnya akses tidak akan bisa dilakukan.
2. Gunakan perintah nmap dari
local host tersebut.

Hasilnya adalah sebagai berikut:
Starting nmap 3.30 ( http://www.insecure.org/nmap/ ) at
2004-09-13 21:10 EDT

(The 1631 ports scanned but not shown below are in
state: closed)
Port State
Service
21/tcp
|
open
|
ftp
|
22/tcp
|
open
|
ssh
|
25/tcp
|
open
|
smtp
|
80/tcp
|
open
|
http
|
111/tcp
|
open
|
sunrpc
|
139/tcp
|
open
|
netbios-ssn
|
199/tcp
|
open
|
smux
|
443/tcp
|
open
|
https
|
631/tcp
|
open
|
ipp
|
701/tcp
|
open
|
unknown
|
921/tcp
|
open
|
unknown
|
2049/tcp
|
open
|
nfs
|
10000/tcp
|
open
|
snet-sensor-mgmt
|

Terlihat bahwa pada localhost 192.168.1.5 tersebut service port
80 terbuka, tetapi
ternyata
setelah
difilter koneksinya oleh router maka local host tersebut tidak dapat mengakses layanan HTTP.
A.4 Network Address Translation (NAT)
Network Address
Translation adalah suatu
mekanisme penghematan IP Adress yang valid. Mekanisme
ini dapat diterapkan dalam IPtables
dengan DNAT
dan SNAT.
A.4.1 Mekanisme NAT
Sebuah paket
TCP terdiri dari header dan data.
Header memiliki sejumlah
field di dalamnya. Beberapa field yang penting adalah MAC (Media Access Control) address asal
dan tujuan, IP address asal dan tujuan,
serta nomor port
asal dan tujuan.
Saat mesin A menghubungi mesin B, header paket berisi IP A dan IP B sebagai IP address tujuan. Header
ini juga berisi nomor port asal (biasanya dipilih oleh mesin pengirim
dan sekumpulan nomor pert) dan nomor port
tujuan yang spesifik, misalnya port 80 (untuk web).
Kemudian B menerima paket pada port
80 dan memilih nomor port balasan untuk digunakan
sebagai nomor port asal menggantikan port 80 tadi. Mesin B lalu membalik IP
address asal dan tujuan dan
nomor port asal dan tujuan dalam header
paket sehingga sekarang
IP B adalah IP address asal dan IP A adalah IP address tujuan. Berikut ini contoh-contoh penerapan
NAT menggunakan Iptables.
DNAT
Destination
NAT berfungsi untuk mentranslasikan suatu alamat sebelum proses routing. Biasanya
ini digunakan agar penerima pesan tidak mengetahui alamat asli pengirim pesan.
SNAT
Source NAT berfungsi untuk mentranslasikan suatu alamat setelah proses routing.
Masqurade
Fungsi Masqurade
sebenarnya
hampir
sama
seperti
SNAT, tapi dikhususkan untuk koneksi dengan dial/protocol PPP.
LOG
Log berfungsi untuk melihat seluruh proses yang ada di jaringan komputer. Cara menggunakannya:




0 comments:
Post a Comment