I. Pendahuluan
Firewall
adalah sebuah bagian dari sistem komputer atau jaringan yang didesain untuk
memblok atau mengijinkan sebuah jaringan lain untuk mengakses jaringan kita.
Firewall bisa berbentuk hardware atau software atau pun kombinasi dari
keduanya. Firewall digunakan untuk melindungi jaringan kita dari
jaringan-jaringan yang berpotensi menimbulkan bahaya ke dalam sistem kita.
Seluruh pesan yang masuk atau meninggalkan jaringan kita melalui firewall akan
dicek setiap pesan dan memblok setiap pesan yang tidak memenuhi kriteria yang
telah kita tetapkan di dalam firewall. Gambar dibawah merupakan ilustrasi
tentang bagaimana firewall bekerja.

Firewall
merupakan perangkat jaringan yang berada di dalam kategori perangkat Layer 3 (Network
layer) dan Layer 4 (Transport layer) dari protocol 7 OSI layer.
Seperti diketahui, layer 3 adalah layer yang mengurus masalah pengalamatan IP,
dan layer 4 adalah menangani permasalahan port-port komunikasi (TCP/UDP). Pada
kebanyakan firewall, filtering belum bisa dilakukan pada level data link layer
atau layer 2 pada 7 OSI layer. Jadi dengan demikian, sistem pengalamatan MAC
dan frame-frame data belum bisa difilter. Maka dari itu, kebanyakan firewall
pada umumnya melakukan filtering dan pembatasan berdasarkan pada alamat IP dan
nomor port komunikasi yang ingin dituju atau diterimanya.Firewall yang
sederhana biasanya tidak memiliki kemampuan melakukan filtering terhadap paket
berdasarkan isi dari paket tersebut. Sebagai contoh, firewall tidak memiliki
kemampuan melakukan filtering terhadap e-mail bervirus yang kita download atau
terhadap halaman web yang tidak pantas untuk dibuka. Yang bisa dilakukan
firewall adalah melakukan blokir terhadap alamat IP dari mail server yang
mengirimkan virus atau alamat halaman web yang dilarang untuk dibuka. Dengan
kata lain, firewall merupakan sistem pertahanan yang paling depan untuk
jaringan Anda.
II. Iptables
Di artikel
ini akan dijelaskan tentang iptables, sebuah aplikasi firewall terbaik yang
biasa digunakan oleh para administrator linux. Iptables merupakan aplikasi yang
dibuat oleh proyek the netfilter.org. Sebelum membuat iptables yang berjalan
mulai dari linux kernel 2.4.x sampai sekarang, proyek tersebut sudah membuat
aplikasi ipchains untuk kernel 2.2.x dan aplikasi ipfwadm untuk kernel 2.0.x.
Saat ini, banyak distro-distro besar sudah memaketkan firewall di dalam distro
mereka sehingga memudahkan kita untuk menginstal iptables ke dalam sistem kita.
Pada tutorial kali ini kita akan menggunakan distro Centos 5.4. Tutorial
iptables pada artikel ini hanya menjelaskan tentang dasar-dasar iptables saja
dan aplikasi iptables pada jaringan lokal saja.
III. Perintah-Perintah Iptables
Untuk
melihat apakah di dalam sistem kita sudah terinstal paket-paket iptables,
ketikkan perintah berikut:
# rpm -qa | grep iptables
Jika memang
belum terinstal, ketikkan perintah berikut:
# yum -y install iptables*
Agar
iptables dapat berjalan otomatis setelah restart, gunakan perintah:
# chkconfig iptables on
Untuk
melihat status iptables, gunakan perintah:
# service iptables status
Untuk
menyalakan iptables, gunakan perintah:
# /etc/init.d/iptables start
Untuk
mematikan iptables, gunakan perintah:
# /etc/init.d/iptables stop
Untuk
merestart iptables, gunakan perintah:
# /etc/init.d/iptables restart
Sebelum
melangkah lebih lanjut, pastikan firewall di sistem kita di enable yaitu dengan
cara ketik setup lalu pilih Firewall configuration. Setelah itu,
pada bagian Security Level beri tanda bintang pada item Enabled
lalu pilih tombol OK.
IV. Sintaks Iptables
Secara umum,
sintaks iptables dapat dituliskan seperti berikut:
# iptables [-t table] command [match] [target/jump]
Penjelasan
dari sintaks di atas dapat dijelaskan di bawah ini:
1. Table
IPTables
memiliki beberapa buah tabel yaitu NAT, MANGLE, dan FILTER. Penjelasannya
adalah:
a. Table Mangle: tabel yang bertanggung jawab untuk melakukan
penghalusan (mangle) paket seperti merubah quality of service (QOS), TTL, dan
MARK di header TCP. Biasanya tabel ini jarang digunakan di lingkungan SOHO.b. Table
Filter: yaitu tabel yang bertanggung jawab untuk pemfilteran paket. Tabel
ini mempunyai 3 rantai (chain) yaitu:
1. Rantai Forward yaitu rantai yang memfilter paket-paket yang akan ke
server yang dilindungi oleh firewall. Rantai ini digunakan ketika paket-paket
datang dari IP Publik dan bukan dari IP lokal.
2. Rantai Input: yaitu rantai yang memfilter paket-paket yang ditujukan
ke firewall.
3. Rantai Output: yaitu rantai yang memfilter paket-paket yang berasal
dari firewall.
c. Tabel
NAT: yaitu rantai yang bertanggung jawab untuk melakukan Network Address
Translation (NAT). NAT yaitu mengganti field asal atau alamat tujuan dari
sebuah paket. Pada tabel ini terdapat 2 rantai, yaitu:
1. Rantai Pre-Routing: Merubah paket-paket NAT dimana alamat tujuan dari
paket-paket tersebut terjadi perubahan. Biasanya dikenal dengan destination NAT
atau DNAT.
2. Rantai Post-Routing: Merubah paket-paket NAT dimana alamat sumber
dari paket-paket tersebut terjadi perubahan. Biasanya dikenal dengan source NAT
atau SNAT.
Alur kerja
IPTables dapat dilihat pada gambar di bawah ini:
Jalannya
sebuah paket melalui gambar diatas bisa dicontohkan sebagai berikut:
1. Perjalanan Paket yang diforward ke host yang lain
a. Paket berada pada jaringan fisik (Network) dan masuk ke interface jaringan
b. Paket masuk ke rantai PREROUTING pada tabel MANGLE dan tabel NAT
c. Paket mengalami Routing apakah akan diproses oleh host lokal atau diteruskan
ke host lain
d. Paket masuk ke rantai FORWARD pada tabel MANGLE dan tabel FILTER
e. Paket masuk ke rantai POSTROUTING pada tabel MANGLE dan tabel NAT
f. Paket keluar menuju ke interface jaringan
g. Paket kembali pada jaringan fisik (Network)2. Perjalanan paket yang
ditujukan bagi host lokal
a. Paket berada pada jaringan fisik (Network) dan masuk ke interface jaringan
b. Paket masuk ke rantai PREROUTING pada tabel MANGLE dan tabel NAT
c. Paket mengalami Routing
d. Paket masuk ke rantai INPUT pada tabel MANGLE dan tabel FILTER untuk
mengalami proses penyaringan
e. Paket akan masuk ke proses lokal (Local Process)
3.
Perjalanan paket yang berasal dari host lokal
a. Aplikasi lokal menghasilkan paket data yang akan dikirimkan melalui jaringan
b. Paket masuk ke rantai OUTPUT pada tabel MANGLE, lalu ke tabel NAT, kemudian
ke tabel FILTER
c. Paket mengalami Routing
d. Paket masuk ke rantai POSTROUTING pada tabel MANGLE dan tabel NAT
e. Paket keluar menuju ke interface jaringan
f. Paket kembali pada jaringan fisik (Network)
2. command
command pada
baris perintah iptables yang akan memberitahu apa yang harus dilakukan terhadap
lanjutan sintaks perintah. Berikut adalah beberapa command pada iptables:
command
|
Deskripsi
|
-A
(–append)
|
Menambah
aturan pada akhir rantai sehingga akan dieksekusi terakhir
|
-D
(–delete)
|
Menghapus
sebuah aturan pada rantai yang dilakukan dengan cara menyebutkan secara
lengkap perintah yang ingin dihapus atau dengan menyebutkan nomor baris
dimana perintah akan dihapus
|
-I
(–insert)
|
Memasukkan
aturan pada sebuah baris rantai. Berbeda dengan perintah append, perintah
insert akan menempati baris yang dimaksud dan aturan awal yang menempati
baris tersebut akan digeser ke bawah
|
-L (–list)
|
Menampilkan
semua aturan pada sebuah tabel. Perintah ini akan dikombinasikan dengan opsi
-v (verbose), -n (numeric), -x (exact), dan –line-number
|
-F
(–flush)
|
Mengosongkan
aturan pada sebuah chain
|
-N (–new-chain)
|
Membuat
rantai baru
|
-X
(–delete-chain)
|
Menghapus
rantai yang disebutkan
|
-E
(–rename-chain)
|
Merubah
suatu nama rantai
|
-P
(–policy)
|
Membuat
kebijakan default pada sebuah rantai
|
-p
(–protocol)
|
Mengecek
tipe protokol tertentu. Tanda inverse(!) berarti kecuali. Misalnya protocol !
tcp berarti kecuali tcp
|
-s
(–source)
|
Mencocokkan
paket berdasarkan alamat IP asal. Bisa berbentuk alamat tunggal
(mis:192.168.0.1) atau alamat network (mis:192.168.0.0/255.255.255.0 atau
192.168.0.0/24)
|
-d (–destination)
|
Mencocokkan
paket berdasarkan alamat tujuan
|
-i
(–in-interface)
|
Mencocokkan
paket berdasarkan interface dimana paket datang dan berlaku pada rantai
INPUT, FORWARD, dan PREROUTING
|
-o
(–out-interface)
|
Mencocokkan
paket berdasarkan interface dimana paket keluar dan berlaku pada rantai
OUTPUT, FORWARD, dan POSTROUTING
|
–sport
(–source-port)
|
Mencocokkan
paket berdasarkan port asal(bisa dilihat di /etc/services). Perintah ini bisa
digunakan untuk range port tertentu. Misal range antara port 22 sampai 80
bisa ditulis –sport 22-80. Jika –sport :80 berarti paket dengan port 0-80.
Jika –sport 1024: berarti paket dengan port asal 1024-65535
|
–dport
(–destination-port)
|
Mencocokkan
paket berdasarkan port tujuan. Penggunaannya sama dengan –sport
|
–syn
|
Memeriksa
apakah flag SYN di set dan ACK dan FIN tidak di set. Perintah ini sama dengan
kita menggunakan match –tcp-flags SYN,ACK,FIN SYN. Paket dengan perintah
tersebut digunakan untuk melakukan request koneksi TCP yang baru terhadap
server
|
-m mac
-mac-source
|
Melakukan
pencocokan paket berdasarkan MAC source address
|
-m
multiport –source-port
|
Mendefinisikan
port atau port range lebih dari satu
|
-j (–jump)
|
Perlakuan
yang diberikan terhadap paket-paket yang memenuhi kriteria. Setelah perintah
ini ada beberapa opsi yaitu:
ACCEPT: akan mengijinkan paket
DROP: akan menolak paket
REJECT: akan menolak paket. Berbeda dengan DROP, REJECT akan
memberitahukan error kesalahan kepada user pengirim sedangkan DROP tidak
memberitahukan error kesalahan. Opsi untuk REJECT adalah
icmp-net-unreachable, icmp-host-unreachable, icmp-port-unreachable,
icmp-proto-unreachable, icmp-net-prohibited, dan icmp-host-prohibited. Namun
untuk menggunakan opsi-opsi tersebut harus diawali dengan –reject-with
RETURN: akan membuat paket berhenti melintasi aturan-aturan pada
rantai dimana paket tersebut menemui target RETURN
MIRROR: fungsi utamanya adalah membalik source address dan destination
address. Misalnya PC A menjalankan target RETURN kemudian komputer B
melakukan koneksi http ke komputer A, maka yang muncul adalah pada browser
adalah website komputer B itu sendiri
LOG: digunakan untuk menentukan tingkat log. Tingkatan log yang bisa
digunakan adalah debug, info, notice,warning, err, crit, alert dan emerg.
perintah -j LOG –log-prefix digunakan untuk memberikan string yang tertulis
pada awalan log, sehingga memudahkan pembacaan log tersebut.
SNAT Target: Berguna untuk melakukan perubahan alamat asal dari paket
(Source Network Address Translation). Target ini berlaku untuk tabel NAT pada
rantai POSTROUTING, dan hanya disinilah rantai POSTROUTING. Jika paket
pertama dari sebuah koneksi mengalami SNAT, maka paket-paket berikutnya dalam
koneksi tersebut juga akan mengalami hal yang sama
DNAT Target: Digunakan untuk melakukan translasi field alamat tujuan
(Destination Network Address Translation) pada header dari paket-paket yang
memenuhi kriteria match. DNAT hanya bekerja untuk tabel NAT pada rantai
PREROUTING dan OUTPUT atau rantai buatan yang dipanggil oleh kedua rantai
tersebut
MASQUARADE Target: Target ini bekerja dengan cara yang hampir sama
seperti target SNAT, tetapi target ini tidak memerlukan option –to-source.
Target ini memang ini didesain untuk bekerja pada komputer dengan koneksi
yang tidak tetap seperti dial-up atau DHCP yang akan memberi pada kita nomor
IP yang berubah-ubah. Target ini hanya bekerja untuk tabel NAT pada rantai
POSTROUTING
REDIRECT Target: Digunakan untuk mengalihkan jurusan (redirect) paket
ke mesin itu sendiri. Target ini umumnya digunakan untuk mengarahkan paket
yang menuju suatu port tertentu untuk memasuki suatu aplikasi proxy, lebih
jauh lagi hal ini sangat berguna untuk membangun sebuah sistem jaringan yang
menggunakan transparent proxy. Contohnya kita ingin mengalihkan semua koneksi
yang menuju port http untuk memasuki aplikasi http proxy misalnya squid.
Target ini hanya bekerja untuk tabel NAT pada rantai PREROUTING dan OUTPUT
atau pada rantai buatan yang dipanggil dari kedua rantai tersebut.
|
Memang
banyak sekali dan bisa menjadi sangat sangat kompleks teknik konfigurasi
iptables. Pada kesempatan ini kita hanya mencoba melakukan konfigurasi firewall
/ iptables yang sederhana saja.
V. Connection Tracking
iptables
mengandung sebuah modul yang mengijinkan para administrator untuk memeriksa dan
membatasi service-service yang tersedia pada sebuah jaringan internal
menggunakan sebuah metode yang disebut connection tracking. Fitur ini merupakan
fitur baru di dalam firewall yang ditambahkan sejak kernel 2.4.x. Kemampuan
dari connection tracking adalah untuk menyimpan dan menjaga informasi koneksi
seperti koneksi baru atau koneksi yang sudah ada yang disertai dengan jenis
protokol, alamat IP asal dan alamat IP tujuan. Dengan menggunakan fitur ini,
para administrator dapat menolak atau mengijinkan berbagai macam koneksi.
Connection tracking mempunyai beberapa keadaan:
- NEW
–> Sebuah klien mereques koneksi melalui firewall. Maksudnya server1
menghubungi server2 dengan mengirimkan paket SYN (Synchronize)
- RELATED –> Sebuah koneksi yang mereques sebuah reques baru tetapi
masih merupakan bagian dari koneksi yang sudah ada. Maksudnya server2 menerima
paket SYN dari server 1 dan kemudian merespon dengan sebuah paket SYN-ACK (Synchronize-Acknowledgment)
- ESTABLISHED –> Sebuah koneksi yang merupakan bagian dari koneksi
yang sudah ada. Maksudnya server 1 menerima paket SYN-ACK dan kemudian merespon
dengan paket ACK (Acknowledgment).
- INVALID –> Sebuah keadaan dimana tidak ada keadaan seperti 3
keadaan di atasUntuk lebih jelasnya perhatikan contoh dibawah ini:
Misalnya kita ingin menggunakan service ftp pada IP=132.456.78.9, maka pada
saat kita mengetikkan
# ftp 132.456.78.9
perintah
tersebut akan membuka koneksi baru (NEW)
Lalu pada saat kita ingin mengambil sebuah file dari IP tersebut, misalnya
paket yang bernama file.tar.gz, maka pada saat kita mengetikkan:
ftp> get file.tar.gz
itu berarti
kita telah membuat keadaan koneksi ESTABLISHED.
Jika kita menggunakan sebuah koneksi ftp pasif, dimana port koneksi clien
adalah 20 tetapi port transfer menggunakan port 1024 atau yang lebih besar,
maka pada saat kita mengetikkan
ftp> pass
Passive mode on
kita harus
menggunakan keadaan koneksi RELATED pada firewall jika kita mengijinkan akses
ftp secara pasif.
Fungsi lain
dari connection tracking yaitu ketika kita sudah mendefinisikan sebuah rule di
chain tertentu, maka trafik network yang terkait dengan rule tersebut tidak perlu
disebutkan lagi. Misalnya kita ingin menolak ssh dari sebuah IP, maka kita
cukup mendefinisikan rule tersebut di chain INPUT saja, yang di outputnya tidak
perlu lagi. Caranya adalah:
# iptables -I INPUT -m state --state
RELATED,ESTABLISHED -j ACCEPT
# iptables -I OUTPUT -m state --state
RELATED,ESTABLISHED -j ACCEPT
# iptables -I FORWARD -m state --state
RELATED,ESTABLISHED -j ACCEPT
Di bawah ini
adalah contoh iptables untuk mengijinkan service ssh dengan IP 132.456.78.9
masuk dan keluar serta hanya mengijinkan koneksi baru dan establlished untuk
service ssh tersebut.
# iptables -A INPUT -p tcp -s 0/0 --sport 513:65535 -d
64.67.33.76 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -p tcp -s 132.456.78.9--sport 22
-d 0/0 --dport 513:65535 -m state --state ESTABLISHED -j ACCEPT
VI. Contoh-Contoh
Ada dua
pendekatan di dalam Iptables yaitu pendekatan positif dan pendekatan negatif.
Pendekatan positif yaitu dimana seluruh port ditutup sedangkan pendekatan
negatif yaitu dimana seluruh port dibuka. Untuk melihat apakah sistem iptables
kita menggunakan pendekatan positif atau negatif (namun, pada umumnya linux
secara default menggunakan pendekatan negatif) ketikkan iptables -L dan lihat
kata setelah kata POLICY. Jika ada kata ACCEPT maka berarti pendekatan yang
digunakan adalah negatif. Di tutorial ini kita akan menggunakan pendekatan
negatif. Berikut adalah contoh-contohnya:
1. Memblok paket yang datang dari
sebuah IP
# iptables -I INPUT -s 192.168.0.149 -j REJECT
Peritah di
atas digunakan untuk memblok paket dari IP 192.168.0.149. Ada 2 opsi yang
digunakan sebenarnya yaitu DROP dan REJECT. Perbedaan dari keduanya adalah
kalau REJECT, perintah ini akan memblok paket namun akan memberitahukan bahwa
paket tersebut ditolak. Sedangkan kalau DROP, perintah ini akan memblok paket
namun tidak diberitahu apakah paket tersebut ditolak atau tidak.
2. Menghapus
iptables
# iptables -D
INPUT 3
Menghapus
iptables pada tabel input di baris ke 3
# iptables -F
Menghapus
seluruh iptables
# iptables -F FORWARD
Menghapus
seluruh iptables yang hanya berada di tabel forward
3. Menutup Port
# iptables -A INPUT -p tcp --dport 22 -j REJECT
Perintah di
atas memblok port 22 yang biasa digunakan untuk ssh
# iptables -A INPUT -p tcp -i eth0 --dport 23 -j
REJECT
Perintah di
atas memblok port 22 yang biasa digunakan untuk telnet
# iptables -I INPUT -s 192.168.0.250 -p tcp --dport 23
-j REJECT
Perintah di
atas untuk memblok service telnet dari IP 192.168.0.250
4. Melihat tabel iptables
# iptables -L
Perintah di
atas digunakan untuk melihat daftar (list) iptables
# iptables -L
--line-number
Perintah di
atas digunakan untuk melihat daftar (list) iptables dan disertai dengan nomor
baris
# iptables -L -v --line-number
Perintah di
atas digunakan untuk melihat daftar (list) iptables dan disertai dengan nomor
baris serta dengan mode verbose
# iptables -L
-v --line-number -t nat
Perintah di
atas digunakan untuk melihat daftar (list) iptables dan disertai dengan nomor
baris dengan mode verbose serta menampilkan tabel NAT
5. Mengubah Policy
# iptables -P INPUT DROP
Mengubah
chain INPUT menjadi DROP
# iptables -P OUTPUT DROP
Mengubah
chain OUTPUT menjadi DROP
# iptables -P FORWARD DROP
Mengubah
chain FORWARD menjadi DROP
6. Lain-Lain
# iptables -A INPUT -m mac -mac-source 00-14-85-47-85-E5
Memblok
komputer yang mempunyai mac address 00-14-85-47-85-E5
# iptables -A INPUT -p tcp -m multiport --source-port
22,53,80
Memblok
port-port 22,53, dan 80
7. Menggunakan Log
Untuk
menggunakan log di dalam iptables, maka kita harus menambahkan skrip di file
file syslog.conf pada folder /etc. Di dalam skrip tersebut, tambahkan skrip
sebagai berikut:
kern.*
/var/log/firewall.log
Setelah itu,
simpan file tersebut dan restart syslog dengan cara:
# service syslog restart
Dengan
demikian, segala hal yang terjadi pada iptables akan dicatat di
/var/log/firewall.logPenentuan posisi log juga berpengaruh terhadap pencatatan
log itu sendiri. Sebaiknya posisi log ditempatkan di baris paling atas karena akan
mencatat segala yang terjadi pada paket-paket sebelum paket-paket tersebut
diperlakukan sesuai dengan rule yang ada di dalam iptables. Untuk lebih
jelasnya, perhatikan contoh berikut. Kita akan membuat server linux di vmware dengan 2 ethernet. eth0 dengan IP
192.168.0.248 dan eth1 dengan IP 192.168.2.2. Lalu di iptables kita buat aturan
sebagai berikut:
# iptables -P INPUT DROP
# iptables -I INPUT -s 192.168.0.1 -d 192.168.0.248 -j
ACCEPT
# iptables -A INPUT -p ALL -m state --state NEW -j LOG
--log-prefix "IPTABLES: (INPUT-REJECT)"
# iptables -A INPUT -i eth1 -j REJECT
Perintah
pertama dapat dijelaskan bahwa policy default untuk rantai INPUT adalah DROP
yang berarti akan memblok seluruh inputan. Perintah iptables kedua akan
menerima inputan dari IP 192.168.0.1 dengan tujuan IP 192.168.0.248. Perintah
iptables ketiga akan mencatat seluruh inputan yang mencoba masuk ke server
selain yang sudah ditentukan. Perintah iptables keempat akan memblok
seluruh inputan yang menuju eth1 atau yang ber- IP 192.168.2.2. Sekarang
coba ping 192.168.0.248 dari komputer yang ber-IP 192.168.0.1, dan akan
terlihat hasil sebagai berikut:
Dan kalau
kita lihat di log firewall di /var/log/firewall akan terlihat tidak ada
aktivitas apa-apa di dalam file tersebut. Tetapi pada saat kita menge-ping
192.168.2.2, maka akan terlihat gambar seperti di bawah ini:
Itu berarti
IP tersebut di blok. Sekarang lihat di log firewall, seharusnya akan terlihat
gambar berikut ini:
Contoh yang
lain lagi misalnya kita mempunyai IP publik yang ada di eth1 dan kita ingin
memblok seluruh IP publik yang ada untuk mengakses IP publik kita, namun kita
juga ingin mengetahui IP-IP mana saja yang mengakses IP Publik kita maka
sintaksnya seperti berikut:
# iptables -I INPUT -p All -i eth1 -s ! 192.168.0.0/24
-m state --state NEW -j LOG --log-prefix "IPTABLES: (INPUT-REJECT) "
# iptables -A INPUT -i eth1 -s ! 192.168.0.0/24 -j
REJECT
Sintaks di
atas dapat dijelaskan bahwa seluruh IP akan ditolak namun hanya IP-IP publik saja
yang akan di catat dalam log.
8. Membackup
dan merestore iptables
Jika kita
sudah mengatur konfigurasi iptables, maka sebaiknya kita langsung menyimpan
iptables tersebut. Karena jika tidak, konfigurasi iptables kita akan hilang
jika server kita restart atau kita menggunakan perintah restart iptables dan
kita harus menyusunnya kembali. Berikut adalah langkah-langkah untuk menyimpan
iptables:
# service
iptables save
Maka
perintah-perintah iptables akan disimpan di file iptables pada folder /etc/sysconfig.
Jika misalnya kita sudah menyimpan iptables yang sudah kita konfigurasi
sebelumnya, maka jika server kita restart atau iptables kita restart maka
iptables kita bisa terestore secara otomatis. Untuk merestore iptables yang
sudah kita simpan sebelumnya, maka ketikkan perintah:
# service
iptables restart
maka
iptables yang sudah kita simpan akan terestore kembali.
VII. Catatan Untuk membuat IPtables
Jika kita
ingin membuat sebuah rule di iptables, maka kita harus mengerti tujuan dari
rule yang kita buat sendiri. Setelah itu, kita baru membuat rule-rule tersebut
menurut sintaks yang sudah ditetapkan iptables. Jika sudah, kita harus
melakukan beberapa pengujian. Uji apakah port-port yang ditutup masih dapat
diakses atau tidak. Jika port yang sudah ditutup sudah tidak dapat diakses,
berarti aturan yang kita terapkan sudah berjalan dengan baik. Begitu juga
dengan port atau service yang dibuka oleh iptables. Jika semua berjalan sesuai
dengan apa yang kita inginkan maka sebaiknya segera disimpan iptables
tersebut.Iptables sendiri merupakan tools yang sangat kompleks dan memiliki
banyak kemampuan. Pada intinya, sesuaikan saja kebutuhan yang ingin kita
terapkan dalam jaringan kita, kemudian gunakan option IPtables yang sesuai
dengan kebutuhan kita.