Konsep iptables pada linux

Konsep iptables pada linux

 

Konsep iptables pada linux

Selamat Malam Sohib .:: Go - Blog ::. !!!
Pada postingan kali ini saya sebagai owner dari blog .:: Go - Blog ::. akan menjelaskan sedikit tentang Konsep iptables pada linux..
Sebelum saya menjelaskan tentang Konsep iptables pada linux, saya akan menjelaskan terlebih dahulu apa itu FIREWALL ..???

Firewall

Firewall merupakan sebuah perangkat yang digunakan untuk kepentingan keamanan suatu sistem. Firewall akan melakukan pemeriksaan paket data baik yang masuk maupun yang keluar dari suatu sistem. Paket-paket data yang mencurigakan dan membahayakan sistem akan dibuang oleh firewall.

Firewall dapat dibedakan menjadi :
- Dedicated firewall, firewall yang berupa perangkat keras khusus yang dirancang untuk kepentingan keamanan jaringan, misalnya Cisco PIX Firewall
- Server Based-Firewall, berupa Network Operating System (misalnya Linux, UNIX) yang menjalankan fungsi-fungsi firewall.
- Integrated Firewall, fungsi firewall yang ditambahkan pada suatu perangkat jaringan, misalnya router yang menjalan fungsi firewall. 
- Personal Firewall, berupa firewall yang dipasang pada personal computer (host dalam jaringan), biasanya merupakan bawaan OS, Anti Virus maupun software dari vendor tertentu.

Sudah tahu kan apa itu FIREWALL .. ???

Jika sudah tahu, langsung saja menuju inti dari postingan kali ini, yaitu tentang Konsep iptables pada linux..

Iptables (Linux Firewall)

Linux merupakan Network Operating System yang sudah dilengkapi dengan aplikasi firewall. Fungsi-fungsi firewall pada suatu sistem Linux dijalankan oleh Iptables. Pada sistem Linux terdahulu, fungsi firewall dijalankan oleh Ipchains.

Selain menjalankan fungsi firewall, Iptables juga dapat menjalankan fungsi NAT. NAT merupakan fungsi yang dijalankan oleh sebuah Internet Gateway untuk menghubungkan jaringan lokal (Private IP Address) dengan jaringan Internet (Public IP Address).

Secara default Iptables telah terinstall pada sistem Linux Fedora Core maupun RedHat. Untuk memeriksa apakah Iptables telah terinstall dapat digunakan perintah :
[root@gateway]# rpm –q iptables
iptables-1.3.5-1.2.1

Tables

Setiap paket data yang diterima oleh Sistem Linux yang menjalankan fungsi firewall akan diperiksa oleh Iptables. Iptables akan melakukan pemeriksaan dengan memasukkan setiap paket data ke dalam tabel-tabel

Iptables memiliki 3 buah tabel built-in, yaitu :

 1.  Mangle, digunakan untuk manipulasi paket data, misalnya melakukan perubahan TCP Header
 2.  Filter, digunakan untuk melakukan filter paket data yang diterima firewall
 3.  NAT, digunakan untuk melakukan network address translation.
Chain

Setiap tabel memiliki rule-rule atau aturan-aturan yang disebut chain.
Mangle, memiliki 5 buah built-in chains :

        PREROUTING
        POSTROUTING
        INPUT
        OUTPUT
        FORWARD

 Semua chains diperuntukkan untuk TCP Packet Quality of Service sebelum proses routing dijalankan.

Filter, memiliki 3 buah built-in chains :
FORWARD : melakukan filter paket yang akan diforward dari suatu NIC ke NIC yang lain pada firewall, 
                      seperti fungsi router.
INPUT        : melakukan filter paket yang ditujukan bagi firewall
OUTPUT    : melakukan filter paket yang akan keluar dari firewall.

Nat, memiliki 3 buah built-in chains :
PREROUTING    : digunakan untuk mentranslasi address sebelum proses routing terjadi. Dilakukan dengan 
                              merubah Destination IP Address dari paket data. Biasa dikenal dengan Destination 
                              NAT atau DNAT.
POSTROUTING : digunakan untuk mentranslasi address setelah proses routing terjadi. Dilakukan dengan 
                              merubah Source IP Address dari paket data. Biasa dikenal dengan Source NAT 
                              atau SNAT.
OUTPUT             : digunakan untuk mentranslasi address paket data yang berasal dari firewall itu sendiri.

Target dan Jump

Setiap paket data memasuki sebuah lingkaran, chain akan memeriksa paket tersebut sesuai kriteria yang sudah ditentukan. Pemeriksaan biasanya dilakukan dengan mencocokan TCP Header dari paket data dengan suatu rule yang sudah di tentukan pada chain. Bila ternyata cocok, maka chain akan melakukan “jump” atau eksekusi terhadap paket tersebut. Jump  dapat berupa DROP (buang) atau ACCEPT (terima).

Namun bila kriteria TCP Headernya tidak cocok, maka pemeriksaan akan diserahkan kepada chain selanjutnya. Bila sampai akhir chain tidak ada yang cocok, maka penentuan “jump” paket akan ditentukan oleh chain default dari Iptables. Jump default dari Iptables adalah default DROP ataupun default ACCEPT.

Berikut berbagai jenis “jump” yang dapat diterapkan pada paket data :

    ACCEPT              : paket akan diterima oleh Iptables dan diteruskan kepada aplikasi yang membutuhkan atau diteruskan ke sistem operasi untuk diproses selanjutnya.
    DROP                   : paket akan di-blok (tidak dijinkan masuk ke iptables)
    LOG                      : informasi dari paket akan dimasukan ke syslog untuk keperluan logging, setelah di logging paket diserahkan ke chain berikutnya dalam tabel
    REJECT               : paket akan di-blok (sama seperti DROP), namun dengan memberikan pesan error kepada host pengirim bahwa paket di-blok.
    DNAT                   : destination IP address dari paket akan dirubah
    SNAT                    : source IP address dari paket akan dirubah, source IP address baru yang akan digunakan harus ditentukan.
    MASQUERADE  : source IP Address dari paket akan dirubah, source IP address baru yang akan digunakan sama dengan IP address dari interface firewall.

General Iptables Match Criteria
Dalam proses pencocokan kriteria paket  pada chain digunakan beberapa perintah sebagai berikut :

    -t  <table>                :   mendefinisikan tabel yang akan digunakan (mangel, filter atau nat). Bila tidak didefinisikan, asumsi yang digunakan adalah tabel filter.
    -j <target>                :   mendefinisikan jump yang akan diberlakukan pada suatu paket yang cocok dengan kriteria (rule) yang diterapkan.
    -A                                :   menambahkan chain baru sesudah chain terakhir.
    -F                                :   menghapus semua chain pada suatu tabel.
    -p <protocol-type>  :   mencocokan protocol yang digunakan (TCP, UDP, ICMP dan lain-lain)
    -s <ip address>         :   mencocokan source IP address pada paket data (host pengirim)
    -d <ip address>         :   mencocokan destination IP address pada paket data (host tujuan)
    -i <interface-name> :   mencocokan “input” interface dimana paket akan diterima.
    -o <interface-name>  :   mencocokan “output” interface dimana paket akan dikeluarkan.

 Contoh :
iptables -A INPUT -s 0/0 -i eth0 -d 192.168.1.1  -p tcp -j ACCEPT

perintah yang mengkonfigurasikan iptables, sehingga firewall dapat menerima paket TCP yang masuk pada interface eth0 (192.168.1.1), dimana paket tersebut dapat berasal dari sembarang host

TCP dan UDP Match Criteria

Untuk pencocokan kriteria berdasarkan protokol TCP dan UDP, terdapat beberapa perintah tambahan, yaitu :

-p tcp –-sport  <port>      : TCP source port, dapat berupa satu buah port atau range port. Untuk 
                                           menggunakan range port formatnya adalah : startport:endport 
-p tcp -dport  <port>        :    TCP destination port
-p tcp -syn                        :   mencocokan TCP Request Connection yang baru 
-p udp -sport <port>        : UDP source port, dapat berupa satu buah port atau range port. Untuk 
                                           menggunakan range port formatnya adalah : startport:endport
-p udp –-dport  <port>     : UDP destination port

Contoh :

iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p TCP –sport 1024:65535 –dport 80 -j ACCEPT

 perintah yang mengkonfigurasikan iptables, sehingga firewall dapat menerima paket TCP yang masuk pada interface eth0 (192.168.1.58 )untuk dilakukan routing, kemudian paket data tersebut dikeluarkan melalui ineterface eth1, dimana paket tersebut dapat berasal dari sembarang host dengan source port dalam range 1024 s/d 65535 dan destination port 80 (aplikasi www atau http)
ICMP (ping) Match Criteria

Pencocokan kriteria untuk protokol ICMP, perintah yang dapat digunakan :
  -p icmp-type <type>   :   mencocokan tipe pesan ICMP, apakah icmp echo-request atau icmp echo-reply

Contoh :

 iptables -A OUTPUT -p icmp –icmp-type echo-request -j ACCEPT
 iptables -A INPUT  -p icmp –icmp-type echo-reply   -j ACCEPT
 perintah yang mengkonfigurasikan iptables, sehingga firewall dapat mengirimkan paket ICMP echo-request (ping) dan kemudian dapat menerima kembali ICMP echo-reply.

Menjalankan Iptables
Untuk menjalankan Iptables, dapat digunakan perintah :
[root@gateway etc]# systemctl start iptables.service
[root@gateway etc]# systemctl status named.service
named.service – LSB: start|stop|status|restart|try-restart|reload|force-reload DNS server
         Loaded: loaded (/etc/rc.d/init.d/named)
         Active: active (running) since Wed, 29 Aug 2012 15:25:24 +0800; 7min ago
         Process: 9872 ExecStop=/etc/rc.d/init.d/named stop (code=exited, status=0/SUCCESS)
         Process: 9941 ExecReload=/etc/rc.d/init.d/named reload (code=exited, status=0/SUCCESS)
         Process: 9907 ExecStart=/etc/rc.d/init.d/named start (code=exited, status=0/SUCCESS)
         Main PID: 9912 (named)
         CGroup: name=systemd:/system/named.service
         â 9912 /usr/sbin/named -u named

Untuk menghentikan Iptables, dapat digunakan perintah sebagai berikut :
[root@gateway etc]# systemctl stop iptables.service
[root@gateway etc]# systemctl status iptables.service
iptables.service – IPv4 firewall with iptables
          Loaded: loaded (/lib/systemd/system/iptables.service; enabled)
          Active: inactive (dead)
                  start condition failed at Wed, 29 Aug 2012 15:11:01 +0800; 20min ago
          CGroup: name=systemd:/system/iptables.service

Untuk memastikan Iptables selalu dijalankan pada saat sistem akan boot, dapat digunakan perintah :
[root@gateway ~]# systemctl enable iptables.service

Konfigurasi Iptables

Konfigurasi iptables dapat dilihat pada  file /etc/sysconfig/iptables
Bila dilakukan pengeditan pada file tersebut, harus diikuti dengan perintah #systemctl restart iptables.service sehingga konfigurasi yang baru dapat dijalankan. Namun bila konfigurasi iptables diberikan pada shell prompt, maka konfigurasi tersebut akan langsung dijalankan oleh iptables.

Untuk melihat konfigurasi yang sedang digunakan oleh iptables, dapat digunakan perintah : 
[root@gateway etc]# iptables-save
# Generated by iptables-save v1.4.12 on Wed Aug 29 15:35:27 2012
*mangle
: PREROUTING ACCEPT [154:11803]
:INPUT ACCEPT [154:11803]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [132:13336]
: POSTROUTING ACCEPT [132:13336]
COMMIT
# Completed on Wed Aug 29 15:35:27 2012
# Generated by iptables-save v1.4.12 on Wed Aug 29 15:35:27 2012
*nat
: PREROUTING ACCEPT [1:119]
:INPUT ACCEPT [1:119]
:OUTPUT ACCEPT [1:108]
: POSTROUTING ACCEPT [1:108]
COMMIT
# Completed on Wed Aug 29 15:35:27 2012
# Generated by iptables-save v1.4.12 on Wed Aug 29 15:35:27 2012
*filter
:INPUT ACCEPT [164:12203]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [166:16816]
COMMIT
# Completed on Wed Aug 29 15:35:27 2012

Untuk mengosongkan konfigurasi Iptables, dapat digunakan perintah :
[root@gateway]#iptables –flush

Back Up Configuration
Bila ingin melakukan back-up terhadap konfigurasi iptables dapat digunakan perintah :
[root@gateway]#iptables-save > firewall-config-backup
(perintah menyimpan konfigurasi iptables pada file firewall-config-backup)

Bila ingin me-restore konfigurasi iptables yang telah disimpan, dapat digunakan perintah
[root@gateway]#iptables-restore < firewall-config-backup
(perintah me-restore  konfigurasi iptables dari  file firewall-config-backup)


Mungkin segitu saja yang bisa saya jelaskan tentang Konsep iptables pada linux, saya memohon maaf  jika ada kesalahan pada artikel saya yang berjudul Konsep iptables pada linux ini..

Title : Konsep iptables pada linux
Description : Konsep iptables pada linux   Selamat Malam Sohib .:: Go - Blog ::. !!! Pada postingan kali ini saya sebagai owner dari blog ...

0 Response to "Konsep iptables pada linux"

Post a Comment

Terima kasih atas kunjungan di .:: Go - Blog ::.
Silakan tinggalkan komentar anda :
1. Kami etis dalam berkomentar lho...
2. Tidak ada spam,sara, apalagi pornografi.
3. Bagikan di Google Plus, Facebook,dan Twitter, agar bisa lebih bermanfaat.
4. Yuuk kita menjadi blogger atau pengunjung yang cerdas beretika.
5. Jangan minta ijin untuk salinan artikel, silah dipergunakan dan dibagikan.
6. Terima kasih.

Support : Bina Sarana Informatika | Cengkareng
Copyright © 2013. .:: Go - Blog ::. - All Rights Reserved
.:: Go - Blog ::. Template by Sonny Himawan
Proudly powered by GOOGLE
g+