dasar-dasar pemahaman penggunaan perintah program iptables

6
DASAR-DASAR PEMAHAMAN PENGGUNAAN PERINTAH PROGRAM IPTABLES IPTables adalah paket aplikasi (program berbasis Linux) yang saat ini sudah menjadi platform untuk membuat (mensetup) firewall hampir di kebanyakan distro Linux. Dengan menggunakan IPtables seorang  pengguna / admin jaringan bisa mengatur lalulintas paket data yang keluar masuk pada router atau server yang menjadi gateway (pintu gerbang) antara jaringan perusahaan/lokal (LAN) dengan jaringan publik (WAN/internet). Mekanismenya adalah dengan cara mendefinisikan aturan-aturan (rules) tertentu, dimana aturan-2 itu dikelompokkan dalam wadah tabel-tabel dan chains yang disetting (dikonfigurasi) menggunakan perintah  baris "iptables .... " Para praktisi Linux, IT Support maupun network administrator yang berkecimpung dalam manajemen server  berbasis Linux pasti mutlak harus tahu, mengerti dan bisa menggunakan program IPTables ini dengan baik. Begitupun anak-anak TKJ yang notabene akan menjadi calon-2 IT Networking Support di masa depan. Berusahalah untuk mempelajari dan memahaminya dengan baik. Maka kita akan bisa menggunakannya untuk membuat firewall yang 'powerful' and 'stateful' pada server berbasis Linux. Jika anda ingin belajar bagaimana mekanisme/tata cara penggunaan perintah program IPTables, dibawah ini dipaparkan dasar-dasar pemahaman dan penggunaan program IPTables. Artikel ini saya adaptasi dari posting sdr. Asif Maulana - Siswa kelas XI TKJ 2 SMK Informatika Wonosobo. Selamat menyimak paparan selanjutnya. Semoga bermanfaat. DASAR-DASAR PENGGUNAAN PERINTAH IPTABLES: -A : append 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 -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 -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 -L : list Perintah ini menampilkan semua aturan yang telah kita buat. Contoh : iptables – t nat – -F : flush Perintah inimenghapus semua aturan yang telah dibuat. Contoh : iptables – F OUTPUT -N : new-chain Perintah tersebut akan membuat suatu kolom tabel baru. Contoh :

Upload: manaf-hasibuan

Post on 15-Oct-2015

19 views

Category:

Documents


2 download

DESCRIPTION

Dasar-dasar Pemahaman Penggunaan Perintah Program Iptables

TRANSCRIPT

  • 5/25/2018 Dasar-dasar Pemahaman Penggunaan Perintah Program Iptables

    1/6

    DASAR-DASAR PEMAHAMAN PENGGUNAAN PERINTAH PROGRAM IPTABLES

    IPTables adalah paket aplikasi (program berbasis Linux) yang saat ini sudah menjadi platform untuk

    membuat (mensetup) firewall hampir di kebanyakan distro Linux. Dengan menggunakan IPtables seorang

    pengguna / admin jaringan bisa mengatur lalulintas paket data yang keluar masuk pada router atau serveryang menjadi gateway (pintu gerbang) antara jaringan perusahaan/lokal (LAN) dengan jaringan publik

    (WAN/internet).

    Mekanismenya adalah dengan cara mendefinisikan aturan-aturan (rules) tertentu, dimana aturan-2 itu

    dikelompokkan dalam wadah tabel-tabel dan chains yang disetting (dikonfigurasi) menggunakan perintah

    baris "iptables .... "

    Para praktisi Linux, IT Support maupun network administrator yang berkecimpung dalam manajemen server

    berbasis Linux pasti mutlak harus tahu, mengerti dan bisa menggunakan program IPTables ini dengan baik.Begitupun anak-anak TKJ yang notabene akan menjadi calon-2 IT Networking Support di masa depan.

    Berusahalah untuk mempelajari dan memahaminya dengan baik. Maka kita akan bisa menggunakannya

    untuk membuat firewall yang 'powerful' and 'stateful' pada server berbasis Linux.

    Jika anda ingin belajar bagaimana mekanisme/tata cara penggunaan perintah program IPTables, dibawah inidipaparkan dasar-dasar pemahaman dan penggunaan program IPTables. Artikel ini saya adaptasi dari posting

    sdr. Asif Maulana - Siswa kelas XI TKJ 2 SMK Informatika Wonosobo. Selamat menyimak paparanselanjutnya. Semoga bermanfaat.

    DASAR-DASAR PENGGUNAAN PERINTAH IPTABLES:

    -A : appendPerintah 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 :

    iptablesD INPUT 1

    iptablesDs 192.168.1.3

    -R : replace

    Penggunaannya sama seperti delete, tetapi command ini menggantinya dengan entry yang baru pada urutanyang sama.

    Contoh :

    iptablesR INPUT 2s 192.168.1.3j DROP

    -I : insert

    Memasukkan aturan baru pada suatu baris aturan yang penempatannya sesuai dengan perintah yang kitamasukkan dan aturan awal yang menempati baris tersebut akan digeser ke bawah. Demikian pula baris-baris

    selanjutnya.

    Contoh :

    iptablesI INPUT 3s 192.168.1.3j ACCEPT

    -L : list

    Perintah ini menampilkan semua aturan yang telah kita buat.Contoh : iptablest natL

    -F : flushPerintah inimenghapus semua aturan yang telah dibuat.

    Contoh :

    iptablesF OUTPUT

    -N : new-chain

    Perintah tersebut akan membuat suatu kolom tabel baru.Contoh :

  • 5/25/2018 Dasar-dasar Pemahaman Penggunaan Perintah Program Iptables

    2/6

    iptablesN eth0-IN

    -X : delete-chain

    Perintah ini akan menghapus satu kolom tables yang dibuat dengan perintah -N. Agar perintah di atasberhasil, tidak boleh ada aturan lain yang mengacu kepada kolom tersebut.

    Contoh :

    iptablesx eth0-IN

    -P : policyPerintah 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 dengankebijakan default ini.

    Contoh :

    iptablesP INPUT DROP

    -E : rename-chain

    Perintah ini akan merubah nama suatu kolom tabel. Kolom yang dibuat denganNContoh :

    iptablesE eth0_IN eth0_masuk

    -h : helpmenampilkan help/bantuan pada iptables

    IPTABLES PARAMETER

    -p : protocolDigunakan 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 misal192.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 : destinationDigunakan 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), dllcontoh :

    iptables -A INPUT -j DROP

    -i : in-interface

    berguna untuk mencocokkan paket berdasarkan interface di mana paket datang. Match ini hanya berlakupada chain INPUT, FORWARDcontoh :

    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 :

  • 5/25/2018 Dasar-dasar Pemahaman Penggunaan Perintah Program Iptables

    3/6

    iptables -A OUTPUT -o eth1IPTABLES TARGET

    Target atau jump adalah perlakuan yang diberikan terhadap paket-paket yang memenuhi kriteria. Atau

    sebagai penentu nasib suatu paket

    ACCEPTpaket data akan diterima oleh firewall dan akan diteruskan ke tujuan dari paket tersebut

    contoh :

    iptables -A INPUT -p tcp -dport 80 -j ACCEPT

    DROP

    akan membuang setiap paket yang diterima tanpa mengirimkan pesan ke IP pengirim paket

    contoh :iptables -A INPUT -p tcp -dport 80 -j DROP

    REJECTakan membuang paket yang diterima tapi akan mengirimkan pesan ke IP pengirim paket

    contoh :

    iptables -A INPUT -p tcp -dport 80 -j REJECT

    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 REJECTreject-with icmp-net-unreachable

    LOG Target

    Ada beberapa option yang bisa digunakan bersamaan dengan target ini. Yang pertama adalah yang digunakanuntuk menentukan tingkat log. Tingkatan log yang bisa digunakan adalah debug, info, notice, warning, err,

    crit, alert dan emerg.Yang kedua adalah -j LOGlog-prefix yang digunakan untuk memberikan string yang

    tertulis pada awalan log, sehingga memudahkan pembacaan log tersebut.Contoh :iptablesA FORWARDp tcpj LOGlog-level debug

    iptablesA INPUTp tcpj LOGlog-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 SNATbisa dilakukan. Jika paket pertama dari sebuah koneksi mengalami SNAT, maka paket-paket berikutnya

    dalam koneksi tersebut juga akan mengalami hal yang sama.

    Contoh :

    iptablest natA POSTROUTINGo eth0j SNATto-source 194.236.50.155-194.236.50.160:1024-32000

    DNAT TargetBerkebalikan 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 olehkedua chain tersebut.

    Contoh :

    iptablest natA PREROUTINGp tcpd 15.45.23.67dport 80j DNATto-destination 192.168.0.2

    MASQUERADE TargetSecara umum, target MASQUERADE bekerja dengan cara yang hampir sama seperti target SNAT, tetapitarget ini tidak memerlukan optionto-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 :

    iptablest natA POSTROUTINGo eth0 -dport 80j MASQUERADE

  • 5/25/2018 Dasar-dasar Pemahaman Penggunaan Perintah Program Iptables

    4/6

    REDIRECT TargetTarget REDIRECT digunakan untuk mengalihkan/membelokkan 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 sistemjaringan yang menggunakan sistem (mekanisme) transparent proxy. Sebagai contoh kita ingin mengalihkan

    semua koneksi yang menuju port http untuk memasuki aplikasi http proxy seperti 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 tcpdport 80 -j REDIRECTto-port 3128

    iptables -t nat -A PREROUTING -p tcp -d 0/0dport 80 -j REDIRECTto-port 8080

    Maksud dari perintah diatas adalah tambahkan aturan pada tables firewall yaitu:

    Belokkan semua paket data (koneksi) yang berasal dari interface eth1 dengan protocol TCP no port 80 keport no 3128 (dimana no port 3128 merupakan no port yang sudah ditentukan pada aplikasi Proxy Squid)

    Blocking IP atau MAC Address Menggunakan iptables

    Para mimin (baca: administrator) jaringan pasti pernah dijengkelkan oleh ulah user menyebalkan dan inginmenendang user tersebut keluar dari jaringan dengan cara halus. Block IP atau MAC adress dari user

    tersebut adalah cara halus yang saya sukai untuk menangani user-user menyabalkan seperti itu. Tools yang

    saya gunakan adalah iptables (bila router yang kita gunakan adalah linux). Perintahnya pun sederhana,

    cukup:

    1 iptables -I FORWARD -s -j DROP

    atau

    1 iptables -I FORWARD -m mac --mac-source -j DROP

    Masalahnya adalah bila harus menuliskan perintah block tersebut berkali akan menjadi sebuah pekerjaan

    yang sangat menyebalkan. Itulah sebabnya akhirnya saya membuat script sederhana yang dapat memblock IP

    atau MAC Address user dan dapat juga memblock alamat server yang menjadi masalah (misalnya sebuahalamat server yang diakses oleh user tersebut). Script ini saya digunakan di sebuah server bebasis centos 5

    yang berperan sebagai router dan NAT server.

    Berikut isi dari script tersebut:

  • 5/25/2018 Dasar-dasar Pemahaman Penggunaan Perintah Program Iptables

    5/6

    Masukkan ip yang ingin di block ke dalam array blockSource atau array blockDestination, pisahkan antar ip

    dengan spasi.

    Untuk memblock mac address, masukkan mac address ke dalam array blockSourceMac, pisahkan antar mac

    address dengan spasi.

    Setelah itu simpan file (misal: block.sh), ubah permissionnya menjadi executable (chmod +x block.sh) danjalankan file tersebut (./block.sh).

    Selesai, user menyebalkan telah dienyahkan jadi jaringan!

    Contoh Lain

    #!/bin/bash

    # Flush semua aturan dalam iptables pada tabel filter

    iptables -F

    iptables -X

    # ijinkan koneksi ssh melalui tcp port 22

    iptables -A INPUT -p tcp --dport 22 -j ACCEPT

    # ijinkan semua akses masuk melalui loop back interface (localhost)

    iptables -A INPUT -i lo -j ACCEPT

    # ijinkan semua akses masuk yang sifatnya established dan related connections

    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    # ijinkan packet icmp (ping, traceroute, dll)

    iptables -A INPUT -p icmp -j ACCEPT

    # ijinkan service http di akses menggunakan port 80

    iptables -A INPUT -p tcp --dport 80 -j ACCEPT

    # ijinkan service https di akses menggunakan port 443

    iptables -A INPUT -p tcp --dport 443 -j ACCEPT

    # Block semua packet masuk dan packet fowarding yang tidak ada dalam list diatas,

    ijinkan semua packet keluar

    iptables -P INPUT DROP

  • 5/25/2018 Dasar-dasar Pemahaman Penggunaan Perintah Program Iptables

    6/6

    iptables -P FORWARD DROP

    iptables -P OUTPUT ACCEPT

    # simpan setting iptables

    /usr/libexec/iptables.init save

    # List rules

    iptables -L -v

    Simpan file diatas (misal: firewall.sh) lalu buat permissionnya menjadi executable (misal : chmod 700

    firewall.sh ). Untuk merubah setting firewall cukup eksekusi file tersebut (misal: ./firewall.sh). Pastikan

    anda punya hak akses root ketika mengeksekusi file tersebut.

    Rubahlah script diatas sesuai kebutuhan. Dalam script tersebut saya hanya mengijinkan akses melalui

    localhost, icmp, port 80, port 443 dan port 22.