De - Militarized Zone (DMZ) dan Konfigurasinya di Linux Iptables

DMZ adalah suatu metode untuk membuat resource / server di jaringan lokal kita bisa diakses melalui public/internet tapi jaringan lokal/internal kita tetap terlindungi. Cara kerjanya adalah dengan membuat zona DMZ ZONE yang terpisah dari jaringan lokal untuk digunakan sebagai tempat server / resource yang akan diakses untuk publik. Sehingga jaringan LAN kita tetap aman. Client pada jaringan internet mengira bahwa IP yang diaksesnya adalah IP server, padahal itu IP router yang nantinya akan alihkan oleh router ke server yang sebenarnya. Dan tidak ada yang bisa mengakses jaringan LAN dari INTERNET karena router/firewall tidak akan mengijinkan koneksi apapun selain koneksi ke DMZ zone. Di kasus ini hanya koneksi ssh ke ssh server saja yang diperbolehkan. Tetapi akan berbeda - beda peraturan difirewall tergantung kepentingan, misalkan dari client LAN juga bisa mengakses server. Maka akan ada konfigurasi tambahan. Di sini hanya mengijinkan ssh dari publik ke server.


Untuk membuat DMZ Zone adalah dengan mengkonfigurasi firewall pada router, router yang saya gunakan adalah Debian dengan firewall iptables. Di sini kita akan meletakan ssh server pada DMZ Zone shg bisa diakses dari publik. IP SERVER = 192.168.0.6 dan IP ROUTER pada eth0 = 192.168.0.2

Buat Script dan simpan dimanapun anda mau, misal "nano /etc/iptables.sh", dan isi konfigurasi iptables

#!/bin/sh

#memberitahukan system bahwa yang kita maksud dengan mengetikan IPT adalah iptables, jadi setiap kita #mengetikan IPT dg awal $ maka system akan menterjemahkan bahwa kita mengetik "iptables"
IPT=iptables

# FLUSH (menghapus semua rule yang ada)
$IPT -F
$IPT -t nat -F

# POLICIES (default rule dari masing - masing chain)
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT

# FORWARD (agar router memberi izin paket lewat dari eth0 ke eth1 dan sebaliknya
$IPT -A FORWARD -i eth0 -o eth1 -p tcp --dport 22 -j ACCEPT
$IPT -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# DNAT (agar koneksi ssh yang ditujukan ke router dialihkan ke server)
$IPT -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to 192.168.0.6:22

Tutup dan simpan file. Lalu untuk menerapkan rule pada file tsb kita gunakan perintah :
root@router# sh /etc/iptables.sh
Agar rule langsung diterapkan pada saat booting masukan perintah di atas pada file "rc.local"

Untuk jenis server yang lain, seperti web server, ftp server, mail server dll. Tinggal merubah port - port dan protokol yang dibutuhkan oleh server yang akan ditambahkan.

Kritik dan saran yang membangun sangat saya harapkan ..

11 comments:

  1. bro . gimana cara nerapin menggunakan web server ? apakah ada penambahan rule ? penambahanya seperti apa ?

    ReplyDelete
    Replies
    1. Iya, sama bro .
      contoh di atas kita mengizinkan akses service SSH, port ssh adalah 22.

      nah kalo web server portnya 80 untuk http dan 443 untuk https, rulenya sama, tgl merubah port nya bro ..

      HTTP(port 80)
      # FORWARD (agar router memberi izin paket lewat dari eth0 ke eth1 dan sebaliknya
      $IPT -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT
      $IPT -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

      # DNAT (agar koneksi ssh yang ditujukan ke router dialihkan ke server)
      $IPT -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.0.6:80

      HTTPS(port 443)
      # FORWARD (agar router memberi izin paket lewat dari eth0 ke eth1 dan sebaliknya
      $IPT -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT
      $IPT -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

      # DNAT (agar koneksi ssh yang ditujukan ke router dialihkan ke server)
      $IPT -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to 192.168.0.6:443

      Delete
  2. mau nanya, itu dmz yang di perlihatkan menggunakan ip asli atau pake ip virtual?
    trus klo pake ip virtual iptable nya gimana? mohom pencerahannya

    ReplyDelete
    Replies
    1. menggunakan IP asli semuanya, hanya saja masing - masing jaringan menggunakan VLSM, spy efisien IP, jadi jumlah IP yg tersedia dlm masing2 network sdikit (/30) . nah, klo yg di jaringan internetnya si pkek IP public, tidak mgkn pakek IP sesuka kita. yang di atas cuma perumpamaan. ip virtual = metode menggunakan/memasangkan/memberikan 2 atau lbih alamat IP pada satu alat adapter jaringan (cth eth0)
      klo mau buat ip virtual di eth0, di /etc/network/interfaces nya dikasi nama ifconfig eth0:0 .

      Delete
  3. misi gan mau nanya, apakah itu setting dmz nya menggunakan ip asli atau menggunakan ip firewall?
    cara menggunakan ip firewall gmna caranya ya??

    ReplyDelete
    Replies
    1. menggunakan IP asli semuanya, hanya saja masing - masing jaringan menggunakan VLSM, spy efisien IP, jadi jumlah IP yg tersedia dlm masing2 network sdikit (/30) . nah, klo yg di jaringan internetnya si pkek IP public, tidak mgkn pakek IP sesuka kita. yang di atas cuma perumpamaan. ip virtual = metode menggunakan/memasangkan/memberikan 2 atau lbih alamat IP pada satu alat adapter jaringan (cth eth0)
      klo mau buat ip virtual di eth0, di /etc/network/interfaces nya dikasi nama ifconfig eth0:0 .

      Delete
  4. gan buatin script buat dmz ftp dong...ane persiapan lks nih...tapi dmz buat ke ftp aneh belum tau

    ReplyDelete
  5. gan. gmana kalau sebalikx.. seluruh packet server di alihkan ke router:) jadi saat client melakukan ssh ke ip server, akan di alihkan ke ip router... mohon pencerahanya...gan :)

    ReplyDelete
  6. salam kenal brooo... boleh gak di ajarin khusus untuk keamanan jaringan komputer.. saya mahasiswa teknik elektro..

    ReplyDelete