Pengertian Iptables dan Command pada Linux Debian - Karena sebentar lagi ujikom saya harus banyak memahami mengenai iptables dasar. Perintah dasar iptables pada linux atau debian lenny harus benar-benar saya pahami agar saat ditanya oleh pengawas bisa menjawab dengan benar. Mulai dari iptables target, command, struktur penulisan tabel dan yang lainnya. Memang banyak yang harus kita mengerti mengenai iptables karena sangat banyak mulai dari POSTROUTING sampai yang lainnya karena iptables berguna untuk firewall, router dan yang lainnya.
POSTROUTING, yaitu melakukan NAT paket data yang keluar dari firewall, kebanyakan postrouting dipakai untuk translasi alamat IP. Yang kedua adalah PREROUTING, untuk melakukan NAT paket data yang memasuki firewall, kebanyakan digunakan untuk transparency proxy server dan membangun beberapa server dengan satu IP publik.
Iptables Command
-A : append
Perintah ini menambahkan aturan pada akhir aturan-aturan yang telah dibuat
contoh : iptables -A INPUT
Perintah ini menambahkan aturan pada akhir aturan-aturan yang telah dibuat
contoh : iptables -A INPUT
-D : delete
Perintah ini menghapus satu baris aturan yang telah dibuat. Dilakukan dengan cara menyebutkan secara lengkap perintah yang ingin dihapus atau dengan menyebutkan nomor baris dimana perintah akan dihapus.
Contoh : iptables –D INPUT 1
Iptables –D –s 192.168.1.3
Perintah ini menghapus satu baris aturan yang telah dibuat. Dilakukan dengan cara menyebutkan secara lengkap perintah yang ingin dihapus atau dengan menyebutkan nomor baris dimana perintah akan dihapus.
Contoh : iptables –D INPUT 1
Iptables –D –s 192.168.1.3
-R : replace
Penggunaannya sama seperti delete, tetapi command ini menggantinya dengan entry yang baru pada urutan yang sama.
Contoh : iptables –R INPUT 2 –s 192.168.1.3 –j DROP
Penggunaannya sama seperti delete, tetapi command ini menggantinya dengan entry yang baru pada urutan yang sama.
Contoh : iptables –R INPUT 2 –s 192.168.1.3 –j DROP
-I : insert
Memasukkan aturan baru pada suatu baris aturan yang penempatannya sesuai dengan perintah yang kita masukkan dan aturan awal yang menempati baris tersebut akan digeser ke bawah. Demikian pula baris-baris selanjutnya.
Contoh : iptables –I INPUT 3 –s 192.168.1.3 –j ACCEPT
Memasukkan aturan baru pada suatu baris aturan yang penempatannya sesuai dengan perintah yang kita masukkan dan aturan awal yang menempati baris tersebut akan digeser ke bawah. Demikian pula baris-baris selanjutnya.
Contoh : iptables –I INPUT 3 –s 192.168.1.3 –j ACCEPT
-L : list
Perintah ini menampilkan semua aturan yang telah kita buat.
Contoh : iptables –t nat –L
Perintah ini menampilkan semua aturan yang telah kita buat.
Contoh : iptables –t nat –L
-F : flush
Perintah inimenghapus semua aturan yang telah dibuat.
Contoh : iptables –F OUTPUT
Perintah inimenghapus semua aturan yang telah dibuat.
Contoh : iptables –F OUTPUT
-N : new-chain
Perintah tersebut akan membuat suatu kolom tabel baru.
Contoh : iptables –N eth0-IN
Perintah tersebut akan membuat suatu kolom tabel baru.
Contoh : iptables –N eth0-IN
-X : delete-chain
Perintah ini akan menghapus satu kolom tables yang dibuat dengan perintah -N. Agar perintah di atas berhasil, tidak boleh ada aturan lain yang mengacu kepada kolom tersebut.
Contoh : iptables –x eth0-IN
Perintah ini akan menghapus satu kolom tables yang dibuat dengan perintah -N. Agar perintah di atas berhasil, tidak boleh ada aturan lain yang mengacu kepada kolom tersebut.
Contoh : iptables –x eth0-IN
-P : policy
Perintah ini membuat kebijakan default pada sebuah tabel. Sehingga jika ada sebuah paket yang tidak memenuhi aturan pada baris-baris yang telah didefinisikan, maka paket akan diperlakukan sesuai dengan kebijakan default ini.
Contoh : Iptables –P INPUT DROP
Perintah ini membuat kebijakan default pada sebuah tabel. Sehingga jika ada sebuah paket yang tidak memenuhi aturan pada baris-baris yang telah didefinisikan, maka paket akan diperlakukan sesuai dengan kebijakan default ini.
Contoh : Iptables –P INPUT DROP
-E : rename-chain
Perintah ini akan merubah nama suatu kolom tabel. Kolom yang dibuat dengan –N
Contoh : iptables –E eth0_IN eth0_masuk
Perintah ini akan merubah nama suatu kolom tabel. Kolom yang dibuat dengan –N
Contoh : iptables –E eth0_IN eth0_masuk
-h : help
menampilkan help/bantuan pada iptables
menampilkan help/bantuan pada iptables
Iptables Parameter
-p : protocol
Digunakan untuk mengecek tipe protokol tertentu. Contoh protokol yang umum adalah TCP, UDP, ICMP dan ALL. Daftar protokol bisa dilihat pada /etc/protocols. Tanda ! bisa digunakan, misal kita menghendaki semua protokol kecuali icmp, maka kita bisa menuliskan -p ! icmp yang berarti semua kecuali icmp.
Contoh : iptables -A INPUT -p tcp …
iptables -A INPUT -p ! tcp …
-s : source
Digunakan untuk mencocokkan paket berdasarkan alamat IP asal/sumber. Alamat di sini bisa berberntuk alamat tunggal seperti 192.168.1.1, atau suatu alamat network menggunakan netmask misal 192.168.1.0/255.255.255.0, atau bisa juga ditulis 192.168.1.0/24 yang artinya semua alamat 192.168.1.x. Kita juga bisa menggunakan inversi.
Contoh : iptables -A INPUT -s 192.168.1.3 …
-d : destination
Digunakan untuk mecocokkan paket berdasarkan alamat tujuan. Penggunaannya sama dengan –s
contoh : iptables -A INPUT -s 192.168.1.3 …
-j : jump
berguna untuk menentukan nasib paket, apakah paket akan diterima (ACCEPT), ditolak (DROP), dikembalikan (RETURN), dll
contoh : iptables -A INPUT -j DROP
Digunakan untuk mengecek tipe protokol tertentu. Contoh protokol yang umum adalah TCP, UDP, ICMP dan ALL. Daftar protokol bisa dilihat pada /etc/protocols. Tanda ! bisa digunakan, misal kita menghendaki semua protokol kecuali icmp, maka kita bisa menuliskan -p ! icmp yang berarti semua kecuali icmp.
Contoh : iptables -A INPUT -p tcp …
iptables -A INPUT -p ! tcp …
-s : source
Digunakan untuk mencocokkan paket berdasarkan alamat IP asal/sumber. Alamat di sini bisa berberntuk alamat tunggal seperti 192.168.1.1, atau suatu alamat network menggunakan netmask misal 192.168.1.0/255.255.255.0, atau bisa juga ditulis 192.168.1.0/24 yang artinya semua alamat 192.168.1.x. Kita juga bisa menggunakan inversi.
Contoh : iptables -A INPUT -s 192.168.1.3 …
-d : destination
Digunakan untuk mecocokkan paket berdasarkan alamat tujuan. Penggunaannya sama dengan –s
contoh : iptables -A INPUT -s 192.168.1.3 …
-j : jump
berguna untuk menentukan nasib paket, apakah paket akan diterima (ACCEPT), ditolak (DROP), dikembalikan (RETURN), dll
contoh : iptables -A INPUT -j DROP
-i : in-interface
berguna untuk mencocokkan paket berdasarkan interface di mana paket datang. Match ini hanya berlaku pada chain INPUT, FORWARD
contoh : iptables -A INPUT -i eth0
berguna untuk mencocokkan paket berdasarkan interface di mana paket datang. Match ini hanya berlaku pada chain INPUT, FORWARD
contoh : iptables -A INPUT -i eth0
-o : out-interface
Berfungsi untuk mencocokkan paket berdasarkan interface di mana paket keluar. Penggunannya sama dengan -i. Berlaku untuk chain OUTPUT, FORWARD
contoh : iptables -A OUTPUT -o eth1
Berfungsi untuk mencocokkan paket berdasarkan interface di mana paket keluar. Penggunannya sama dengan -i. Berlaku untuk chain OUTPUT, FORWARD
contoh : iptables -A OUTPUT -o eth1
Iptables Target
Target atau jump adalah perlakuan yang diberikan terhadap paket-paket yang memenuhi kriteria. Atau sebagai penentu nasib suatu paket
ACCEPT setiap paket akan diterima oleh firewall dan akan diteruskan ke tujuan dari paket tersebut
contoh : iptables -A INPUT -p tcp -–dport 80 -j ACCEPT
contoh : iptables -A INPUT -p tcp -–dport 80 -j ACCEPT
DROP
akan membuang setiap paket yang diterima tanpa mengirimkan pesan ke pengirim paket
contoh : iptables -A INPUT -p tcp -–dport 80 -j DROP
akan membuang setiap paket yang diterima tanpa mengirimkan pesan ke pengirim paket
contoh : iptables -A INPUT -p tcp -–dport 80 -j DROP
RETURN
akan menolak setiap paket yang diterima tapi firewall akan mengirimkan pesan ICMP errror kepada pengirim paket, defaultnya berupa port-unreachable pesan dapat dirubah misal icmp-net-unreachable, icmp-host-unreachable, icmp-proto-unreachable, icmp-net-prohibited, dll
contoh : iptables -A INPUT -p tcp -–dport 80 -j REJECT –reject-with icmp-net-unreachable
akan menolak setiap paket yang diterima tapi firewall akan mengirimkan pesan ICMP errror kepada pengirim paket, defaultnya berupa port-unreachable pesan dapat dirubah misal icmp-net-unreachable, icmp-host-unreachable, icmp-proto-unreachable, icmp-net-prohibited, dll
contoh : iptables -A INPUT -p tcp -–dport 80 -j REJECT –reject-with icmp-net-unreachable
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.
Contoh :
iptables –A FORWARD –p tcp –j LOG –log-level debug
iptables –A INPUT –p tcp –j LOG –log-prefix “INPUT Packets”
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.
Contoh :
iptables –A FORWARD –p tcp –j LOG –log-level debug
iptables –A INPUT –p tcp –j LOG –log-prefix “INPUT Packets”
SNAT Target
Target ini berguna untuk melakukan perubahan alamat asal dari paket (Source Network Address Translation). Target ini berlaku untuk tabel nat pada kolom POSTROUTING, dan hanya di sinilah SNAT bisa dilakukan. Jika paket pertama dari sebuah koneksi mengalami SNAT, maka paket-paket berikutnya dalam koneksi tersebut juga akan mengalami hal yang sama.
Contoh : iptables –t nat –A POSTROUTING –o eth0 –j SNAT –to-source 194.236.50.155-194.236.50.160:1024-32000
Target ini berguna untuk melakukan perubahan alamat asal dari paket (Source Network Address Translation). Target ini berlaku untuk tabel nat pada kolom POSTROUTING, dan hanya di sinilah SNAT bisa dilakukan. Jika paket pertama dari sebuah koneksi mengalami SNAT, maka paket-paket berikutnya dalam koneksi tersebut juga akan mengalami hal yang sama.
Contoh : iptables –t nat –A POSTROUTING –o eth0 –j SNAT –to-source 194.236.50.155-194.236.50.160:1024-32000
DNAT Target
Berkebalikan dengan SNAT, DNAT 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 chain PREROUTING dan OUTPUT atau chain buatan yang dipanggil oleh kedua chain tersebut.
Contoh : iptables –t nat –A PREROUTING –p tcp –d 15.45.23.67 –dport 80 –j DNAT –to-destination 192.168.0.2
Berkebalikan dengan SNAT, DNAT 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 chain PREROUTING dan OUTPUT atau chain buatan yang dipanggil oleh kedua chain tersebut.
Contoh : iptables –t nat –A PREROUTING –p tcp –d 15.45.23.67 –dport 80 –j DNAT –to-destination 192.168.0.2
MASQUERADE Target
Secara umum, target MASQUERADE bekerja dengan cara yang hampir sama seperti target SNAT, tetapi target ini tidak memerlukan option –to-source. MASQUERADE memang 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.
Seperti halnya pada SNAT, target ini hanya bekerja untuk tabel nat pada chain POSTROUTING.
Contoh : iptables –t nat –A POSTROUTING –o eth0 -dport 80 –j MASQUERADE
Secara umum, target MASQUERADE bekerja dengan cara yang hampir sama seperti target SNAT, tetapi target ini tidak memerlukan option –to-source. MASQUERADE memang 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.
Seperti halnya pada SNAT, target ini hanya bekerja untuk tabel nat pada chain POSTROUTING.
Contoh : iptables –t nat –A POSTROUTING –o eth0 -dport 80 –j MASQUERADE
REDIRECT Target
Target REDIRECT 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 chain PREROUTING dan OUTPUT atau pada chain buatan yang dipanggil dari kedua chain tersebut.
Contoh : iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 80 -j REDIRECT –to-port 3128
iptables -t nat -A PREROUTING -p tcp -d 0/0 –dport 80 -j REDIRECT –to-port 8080
Target REDIRECT 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 chain PREROUTING dan OUTPUT atau pada chain buatan yang dipanggil dari kedua chain tersebut.
Contoh : iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 80 -j REDIRECT –to-port 3128
iptables -t nat -A PREROUTING -p tcp -d 0/0 –dport 80 -j REDIRECT –to-port 8080