SOAL
PENDAHULUAN
1.
Apakah yang dimaksud dengan IPTABLES?
2.
Bagaimana aturan penulisan dalam
IPTABLES?
3.
IPTABLES mempunyai berapa table?
Sebutkan dan jelaskan!
4.
Pada table Filter, terdapat 3 jenis
chain, sebutkan dan jelaskan perbedannya!
5.
Sebutkan dan jelaskan 3 jenis NAT!
6.
Apa yang membedakan mangle dengan table
yang lain? Jelaskan!
7.
Apa tujuan dari penggunaan Chain
Prerouting dengan Chain Postrouting? Jelaskan!
8.
Dalam penulisan IPTABLES, pada bagian
Target terdapat special property.
Sebutkan dan jelaskan apa saja special property tersebut! (minimal 4)
9.
Beberapa special property dari bagian
Target adalah DROP dan REJECT, jelaskan dan sebutkan perbedaannya!
10.
Jelaskan contoh IPTABLES berikut ini:
iptables –A
FORWARD –s 0/0 –i eth0 –d 192.168.1.58 –o eth1 –p TCP –sport 1024:65535 –m
multiport –dports 80,443 –j ACCEPT
|
SOAL
SHIFT
1. Semua subnet tidak dapat mengakses TCP
Port 21, 443, 66 pada DMZ kecuali subnet Kebun Bibit, sedangkan port TCP yang
diijinkan mengakses DMZ adalah port 80. 8080, 22.
2. Mengijinkan semua akses UDP ke DMZ.
3. Subnet DMZ tidak dapat di PING dari
luar selain subnet AJK dan jarinan internal.
4. Koneksi kepada DMZ melalui ssh dibatasi
sebanyak 5 koneksi.
5. Buatlah sebuah perintah IPTables untuk
mengatasi syn flood.
6. Buatlah sebuah perintah IPTables untuk
mengatas force ssh attack.
7. Buatlah perintah IPTables untuk memblok
paket scanning. Contoh: xmas,fin,scan.
8. Subnet Taman Bungkul hanya bsia diakses
oleh subnet Kebun Bibit. Sedangkan subnet Plasa Surabaya hanya bisa diakses
ketika jam kerja (08:00 - 16:00). Kemudian, subnet Sutos tidak bisa melakukan
koneksi ke Yahoo Messenger dan Facebook, serta tidak bisa melakukan streaming
video pada hari dan jam kerja (Senin - Jumat, 07.00 - 17.00).
9. Selain DMZ gunakan NAT untuk mengakses
jaringan luar (tidak boleh menggunakan masquerade).
10. Catat semua log yang didrop oleh Firewall.
JAWABAN SOAL PENDAHULUAN
1.
IPTABLES adalah sebuah program yang
digunakan untuk packet filtering atau
firewall yang berbasis sistem operasi linux. Dalam
melakukan filtering, IPTABLES
menyimpan aturan-aturannya dalam sebuah tabel dan setiap paket akan diproses
berdasarkan tujuannya. Ada tiga metode pemrosesan paket pada IPTABLES
-
INPUT
berarti tujuan dari paket ini adalah mesin lokal. Pencocokkan paket dengan
peraturan-peraturan yang berlaku dilakukan sebelum paket masuk.
-
FORWARD
berarti tujuan dari paket ini bukan mesin lokal sehingga paket ini harus
diteruskan kepada tujuannya.
-
OUTPUT
berarti tujuan dari paket ini adalah mesin lokal. Penyaringan dengan
peraturan-peraturan yang dideskripsikan pada IPTABLES dilakukan setelah paket
masuk.
Kemudian ada beberapa
tindakan yang dapat dilakukan terhadap paket, apakah itu ACCEPT atau paket
memenuhi peraturan ACCEPT yang dideskripsikan atau REJECT (paket ditolak)
karena memenuhi salah satu peraturan REJECT yang sudah dideskripsikan dan
tindakan-tindakan lainyna.
2.
Struktur penulisan IPTABLES:
iptables -t [table] command [chain]
parameter target
|
Contoh :
iptables -t filter -A INPUT -s 192.168.1.1 -j DROP
Sumber:
Iptables linux manual
3.
Dalam IPTABLES terdapat tiga tabel independen:
a.
filter
Tabel ini adalah tabel
default, mengandung INPUT, FORWARD dan OUTPUT.
b.
nat
Tabel ini digunakan
ketika ditemukannya sebuah paket yang membuka koneksi. Memiliki tiga built-in:
PREROUTING, OUTPUT, dan POSTROUTING
c.
mangle
Digunakan untuk
melakukan pemrosesan terhadap paket.
Sumber:
4.
IPTABLES menggunakan 5 jenis chain sebagai berikut:
a.
INPUT
Packet
yang masuk untuk pemrosesan mesin lokal
b.
OUTPUT
Packet
yang keluar dari pemrosesan mesin lokal
c.
FORWARD
Packet
yang diterima akan diteruskan tanpa ada proses terlebih dahulu di mesin lokal
d.
PREROUTING
Pemrosesan
packet sebelum masuk route. Biasanya digunakan untuk keperluan NAT
e.
POSTROUTING
Pemrosesan
paket setelah masuk route. Biasanya digunakan untuk keperluan NAT
Sumber:
http://bodhon.wordpress.com/2007/04/10/iptables/
5.
Network Address Translation (NAT) adalah proses pengubahan
informasi IP address pada header IPv4 ketika memasuki sebuah alat routing. NAT
bermanfaat dalam jaringan privat karena semua traffic dari luar jaringan privat
akan dikenali sebagai sebuah IP unik.
Ada tiga macam jenis dasar Network Address Translation (NAT):
1.
Static NAT
Sejumlah IP address yang
tidak dikenali akan diterjemahkan menjadi sejumlah IP address yang sudah
ditentukan sehingga setiap client dapat dipetakan terhadap IP addressnya
masing-masing.
Dengan cara seperti ini,
dapat terjadi pemborosan IP address yang harus dialokasikan karena setiap IP
yang tidak dikenali harus dipetakan terhadap satu IP yang sudah dialokasikan.
Secara keamanan, Static NAT cukup berbahaya karena setiap IP tidak dikenali
akan dipetakan secara permanen kepada address tertentu sehingga sangat mudah
penyerang dari luar jaringan privat untuk menyerang jaringan tersebut jika
mengetahui salah satu IP address yang digunakan hasil dari NAT sebuah IP diluar
jaringan tersebut.
2.
Dynamic NAT
Dynamic NAT sangat bermanfaat
jika jumlah IP yang dialokasikan untuk NAT terbatas, kurang dari banyaknya
address luar jaringan yang harus diterjemahkan. Secara keamanan, tentu cara ini
lebih baik karena setiap IP asing yang masuk akan dipetakan kepada IP yang
dialokasikan secara dinamis atau berubah-ubah, sehingga penyerang tidak dapat
memastikan IP mana yang digunakan untuk menerjemahkan suatu IP asing tertentu.
Kelemahannya adalah ketika IP yang dialokasikan untuk NAT sudah dipakai semua
sehingga IP asing berikutnya tidak dapat diterjemahkan atau terhubung dengan
jaringan privat.
3.
Masquerading NAT
Masquerading NAT menerapkan
konsep many-to-one dimana setiap IP address yang masuk ke jaringan privat akan
diterjemahkan menjadi sebuah IP yang sudah ditentukan. Untuk membedakan antara
traffic dari satu IP asing dengan IP asing lainnya, router akan membedakan
portnya. Selain itu, cara ini memiliki keamanan terbaik karena NAT hanya
diberlakukan ketika koneksi. Setelah koneksi berakhir maka NAT terhadap IP
asing tersebut dihapus.
Sumber:
6.
Tabel mangle digunakan spesifik untuk target-target berikut:
o TOS: digunakan untuk mengubah Type of Service pada sebuah paket yang
bermanfaat dalam menerapkan kebijakan-kebijakan pada jaringan berhubungan
bagaimana paket akan dirouting
o TTL: digunakan untuk mengubah Time To Live (TTL) dari paket
o MARK: digunakan untuk menspesifikasikan sebuah penanda khusus pada
paket
Selain itu, tabel mangle
memiliki semua chain gabungan dari tabel filter dan nat.
7.
JAWABAN
Chain PREROUTING dan POSTROUTING dimaksudkan sebagai kondisi sebelum
dan sesudah paket tersebut masuk ke dalam route. Adapaun tujuan masing – masing
dari penggunaan chain PREROUTING dan POSTROUTING adalah sebagai berikut:
·
PREROUTING: paket akan
diproses sebelum masuk route
·
POSTROUTING: paket
akan diproses setelah masuk route
Sumber:
8.
Target atau jump adalah perlakuan yang diberikan terhadap
paket-paket yang memenuhi aturan . Properti – properti dari bagian target
sebagai berikut.
·
ACCEPT
Setiap paket akan diterima
oleh firewall dan akan diteruskan ke tujuan dari paket tersebut.
·
DROP
Mengabaikan paket yang
diterima tanpa memberikan pemberitahuan kepada pengirim paket.
·
REJECT
Menolak setiap paket
yang diterima tapi IPTABLES akan mengirimkan pemberitahuan kepada pengirimnya.
Pemberitahuan ini dapat dispesifikasikan, misalnya port-unreachable, icmp-net-unreachable,
icmp-host-unreachable, icmp-proto-unreachable, icmp-net-prohibited, dll.
·
LOG Target
Ada beberapa option
yang bisa digunakan bersamaan dengan target ini. Yang pertama adalah yang digunakan
untuk menentukan tingkat log. Tingkatan log yang bisa digunakan adalah debug,
info, notice, warning, err, crit, alert dan emerg.Yang kedua adalah -j LOG
–log-prefix yang digunakan untuk memberikan string yang tertulis pada awalan
log, sehingga memudahkan pembacaan log tersebut.
9.
REJECT
IPTABLES akan menolak paket tersebut dan memberitahukan
kepada pengirim bahwa konfigurasi dari filtering menolak paket data tersebut
lalu menghentikan pemrosesan aturan dalam chain yang sedang berlangsung.
DROP
IPTABLES akan mengabaikan paket ini secara
anonim, tanpa ada pemberitahuan kepada pengirim lalu menghentikan pemrosesan
aturan dalam chain yang sedang berlangsung.
Sumber:
·
Dwiyono, Aswin. Pengenalan
Firewall Dan Iptables Pada Jaringan Komputer. Universitas Sriwijaya. 2008.
10.
iptables –A
FORWARD –s 0/0 –i eth0 –d 192.168.1.58 –o eth1 –p TCP –sport 1024:65535 –m
multiport –dports 80,443 –j ACCEPT
|
·
Perintah –A FORWARD
berarti menambahkan aturan ini untuk chain FORWARD
·
-s 0/0 berarti aturan
ini berlaku untuk semua paket yang diterima
·
-i eth0 berarti aturan
ini terpenuhi jika paket didapat dari interface eth0
·
-d 192.168.1.58
berarti aturan ini ditujukan kepada paket yang bertujuan ke 192.168.1.58
·
-o eth1 berarti aturan
ini ditujukan untuk paket yang diteruskan ke eth1
·
-p TCP berarti
protocol yang digunakan adalah TCP
·
-sport 1024:65535
berarti aturan ini ditujukan untuk paket yang menggunakan port 1024
·
-m multiport berarti
aturan untuk port paket yang masuk kategori ini lebih dari 1 port
·
-dports 80,443 berarti
port tujuannya adalah 80 atau 443
·
-j ACCEPT berarti
menspesifikasikan jump untuk aturan ini yaitu ACCEPT atau menerima paket ini
JAWABAN SOAL SHIFT
Semua konfigurasi FORWARD IPTABLES dipasang pada router first-hop dari
DMZ yaitu tugu_pahlawan. IP DMZ server adalah 192.168.8.2 dan 192.168.9.2. Pada
jawaban hanya akan digambarkan menggunakan salah satu IP.
1.
iptables -A FORWARD -p tcp -s 192.168.3.0/24
-d 192.168.9.2/29 -m multiport --dport 21,443,66 -j ACCEPT
iptables -A FORWARD -p tcp -d 192.168.9.2/29 -m
multiport --dport 80,8080,22 -j ACCEPT
iptables -A FORWARD -p tcp -d 192.168.9.2/29
-m multiport --dport 21,443,66 -j REJECT
2.
Iptables –A FORWARD –p udp –d 192.168.9.2/29
–j ACCEPT
3.
iptables -A FORWARD -p icmp -s 10.151.36.0/24
–d 192.168.9.2/29 --icmp-type echo-request –j ACCEPT
iptables -A FORWARD -p icmp -s 192.168.0.0/0 –d
192.168.9.2/29 --icmp-type echo-request –j ACCEPT
iptables –A FORWARD –p icmp –d 192.168.9.2/29
--icmp-type echo request –j REJECT
4.
Iptables –A FORWARD –p tcp –d 192.168.9.2/29
–dport 22 –m state –state NEW –m recent –set
Iptables –A FORWARD –p tcp –d 192.168.9.2/29
–dport 22 –m state –state NEW –m recent –update –seconds 1 hitcount 5 –j REJECT
5.
Iptables –A FORWARD –p tcp –d 192.168.9.2/29
–syn –dport 80 –m connlimit –conlimit-above 3 –j REJECT
6.
Iptables –I INPUT –p tcp –m tcp –dport 22 –m
state –state NEW –m recent –set –name DEFAULT –rsource
Iptables –I INPUT –p tcp –m tcp –dport 22 –m
state –state NEW –m recent –update –seconds 180 –hitcount 4 –name DEFAULT –rsource
–j DROP
7.
Iptables –A INPUT –p tcp ! –syn –m state
–state NEW –j DROP
Iptables –A INPUT –f –j DROP
Iptables –A INPUT –p tcp --tcp-flags ALL ALL
–j DROP
Iptables –A INPUT –p tcp –tcp-flags ALL NONE
–j DROP
8.
9.
IPTABLES –t NAT –A PREROUTING –p tcp –d
10.151.74.78 DNAT –to-destination 192.168.9.1
10.
Iptables –A FORWARD –j LOG –log-level-debug
Iptables –A FORWARD –j LOG –log-tcp-options