Setting Firewall
Dalam operasi linux sebuah firewall bisa disetting dengan keinginan sendiri melalui command line atau shell. Di linux sendiri ada aplikasi iptables yang membantu kita dalam melakukan filter layaknya aplikasi firewall di windows.
- Dalam tabel filter terdapat 3 buah build-in chains dimana kita bisa meletakkan aturan-aturan untuk firewall kita.
Berikut 3 buah “rantai” seperti tersebut :
1. INPUT (untuk paket yang ditujukan ke firewall kita)
2. FORWARD (untuk paket yang di route lewat firewall kita, misalnya sebagai server yang menghubungkan jaringan local ke jaringan internet.
3. OUTPUT (untuk paket yang berasal dari firewall)
Target And Jumps
Setiap rule yang ada di firewall akan mencoba mengidentifikasi setiap paket yang ada di “rantai”, jika sesuai maka akan dianggap sebagai target, kemudian akan diarahkan ke proses selanjutnya, atau istilahnya di jump over ke proses selanjutnya. Atau kata sederhananya apa yang akan dilakukan jika terdapat paket yang cocok dengan rule??
Berikut adalah beberapa Jumps yang populer :
1. ACCEPT (proses di iptables selesai, dan paket dilanjutkan ke tempat seharusnya, misalnya applikasi tujuan)
2. DROP (proses di iptables selesai, dan paket diblock)
3. REJECT (proses di iptables selesai, dan paket diblock lalu mengirimkan pesan ke host pengirim bahwa paket diblock)
Selanjutnya adalah COMMANDS yang bisa kita digunakan :
- iptables [-t table] -[AD] chain rule-specification [options]
- iptables [-t table] -I chain [rulenum] rule-specification [options]
- iptables [-t table] -R chain rulenum rule-specification [options]
- iptables [-t table] -D chain rulenum [options]
- iptables [-t table] -[LFZ] [chain] [options]
- iptables [-t table] -N chain
- iptables [-t table] -X [chain]
- iptables [-t table] -P chain target [options]
- iptables [-t table] -E old-chain-name new-chain-name
- -t = menentukan nama tabel (filter, nat, mangle, raw). jika tidak ditulis, maka defaultnya adalah “filter”.
- ket : chain ==> misalnya INPUT, OUTPUT, atau FORWARD
- rulenum ==> nomor urut aturan dalam chain
- target==> seperti yang dijelaskan pada bagian target and jumps di atas
- nah, ini commandsnya :
1. -A ==> menambahkan rule di baris terakhir chain yang ditentukan.
- (iptables -A INPUT -j DROP : semua paket yang masuk ke chain INPUT akan di DROP)
2. -D ==> menghapus rule yang ada di chain tertentu, ada dua jenis penghapusan, yaitu dengan nomor urut rule (rulenum) atau dengan pencocokan rule-specification.
- (iptables -D INPUT 1, atau iptables -D INPUT -s 10.14.210.100 -j DROP : yg pertama adalah menghapus rule pertama di chain input, yang kedua adalah menghapus rule yang cocok dengan spesifikasi tersebut di chain INPUT)
3. -I ==> menambahkan rule di baris dan chain yang ditentukan.
- (iptables -I INPUT 1 –dport 80 -j ACCEPT : menambahkan rule di urutan pertama pada chain INPUT)
4. -R ==> mereplace rule yang ada di chain berdasarkan rulenum.
- (iptables -R INPUT 1 -s 192.168.0.1 -j DROP : menimpa rule nomor satu di chain INPUT dengan rule baru tersebut)
5. -L ==> menampilkan daftar rule seluruhnya atau di chain tertentu jika jenis chain ditentukan.
- (iptables -L INPUT : menampilkan semua rule yang ada di chain INPUT)
6. -F ==> menghapus semua rule atau semua rule di chain tertentu jika jenis chain ditentukan.
- (iptables -F : menghapus semua rule yang ada di semua chain)
7. -Z ==> untuk meng-nol-kan semua counter yang di chain tertentu, misalkan coba -v, setelah itu gunakan -Z, lalu lihat beda -v setelah di -Z.
- (iptables -Z INPUT)
8. -N ==> membuat sebuah chain baru.
- (iptables -N ALLOW : membuat sebuah chain bernama ALLOW)
9. -X ==> menghapus chain tertentu.
- (iptables -X ALLOW : menghapus chain bernama ALLOW)
10. -P ==> untuk menentukan default target dari chain tertentu.
- (iptables -P INPUT ACCEPT : jika paket tidak ada yang cocok dengan semua rule yang ada, maka akan dipaksa mengikuti rule default ini)
11. -E ==> mengubah nama chain.
- (iptaables -E ALLOW ALLOWAH : mengubah nama chain dari ALLOW jadi ALLOWAH)
Note : Nomor rule dimulai dari satu (mesti dari awal ya!!!).
Selanjutnya adalah daftar parameter pembentuk rule-specification :
- -s ==> source
(iptables -A INPUT -s 192.168.1.1)
- -d ==> destination
(iptables -A INPUT -d 192.168.1.1)
- -p ==> protocol
(iptables -A INPUT -s 192.168.1.1 -p tcp)
- -i ==> in-interface
(iptables -A INPUT -i eth0)
- -o ==> out-interface
- (iptables -A FORWARD -o eth0)
- –sport ==> source port
- (iptables -A INPUT -s 192.168.1.1 -p tcp –sport 22)
- –dport ==> destination port
- (iptables -A INPUT -p tcp –dport 22)
- –sys ==> untuk identifikasi new connection request
- (iptables -A INPUT -i ppp0 -p tcp –syn –dport ! 80 -j DROP)
Note: Gunakan tanda ! untuk negasi/ pernyataan tidak/ selain OK.
- Gunakan tanda : untuk menyatakan sampai, misal port 10 sampai 20, maka ditulis 10:20.
Contoh-Contoh Script IPTables :
- iptables -A INPUT -p icmp –icmp-type 8 -j DROP
- (DROP semua paket icmp-request yang masuk ke server kita, dengan kata lain komputer kita ga bisa di ping)
- => –icmp-type 0 for reply 8 for request.
- iptables -A OUTPUT -p udp -o eth0 –dport 53 –sport 1024:65535 -j ACCEPT
- (ACCEPT paket yang dengan protokol UDP, out-interface eth0, destination port 53, source port 1024-65535)
- iptables -A INPUT -p icmp –icmp-type 8 -s 0/0 -d $SERVER_IP -m state –state NEW, ESTABLISHED, RELATED -j ACCEPT
- ($SERVER_IP adalah variable, bisa digantikan dengan IP server. -m state –state adalah untuk mengetest keadaan paket, ada 4 yang bisa digunakan, yaitu NEW, ESTABLISHED, RELATED, dan INVALID. NEW : paket memulai koneksi baru. ESTABLISHED : paket adalah bagian dari koneksi yang terjadi antara dua host, misalnya ICMP reply message, yang merupakan balasan dari ICMP request. RELATED : koneksi yang termasuk RELATED adalah jika ia berhubungan dengan koneksi ESTABLISHED yang telah ada. INVALID : paket tidak teridentifikasi atau tidak memiliki state, ini mungkin terjadi karena system running out memory atau karena ICMP error messages yang tidak merespon ke known connections.
Tidak ada komentar:
Posting Komentar