Jumat, 04 Mei 2012

Implementasi Dynamic NAT

Pada materi sebelumnya saya telah menyampaikan mengenai static NAT dimana pada static NAT, sebuah IP address disamarkan, dibungkus, atau dialihkan (masquerade) oleh sebuah IP address lainnya. Hal itu juga dapat dilakukan pada lebih dari 1 IP address yang hendak disamarkan hanya oleh 1 IP address lainnya. Berbeda dengan dynamic NAT yang membungkus 1 IP address oleh beberapa IP address. Pembungkusan ini biasanya terjadi saat IP yang hendak dibungkus akan berkomunikasi dengan jaringan luar.
Pada dynamic NAT, pemetaan IP yang akan di-masquerade dengan IP pembungkus dilakukan secara random. Jadi, jika pada proses NAT pertama sebuah IP address dibungkus dengan IP A, ada kemungkinan pada proses NAT yang selanjutnya IP tersebut akan dibungkus dengan IP B, C, dll.

Dalam contoh implementasi dynamic NAT yang akan saya praktekan kali ini masih menggunakan utility IPTABLES pada sistem operasi Ubuntu Server. Dan pada praktek ini saya akan menggunakan topologi berikut :

Pada topologi di atas dapat dilihat adanya penggunaan Web Server pada network 192.168.0.0/24. Dalam hal ini saya menggunakan aplikasi apache2. Untuk menginstall aplikasi tersebut gunakan perintah apt-get install apache2. Setelah terinstall, tidak diperlukan konfigurasi khusus.

Skenario yang saya gunakan adalah Web Server melakukan blocking access kepada PC Client untuk aplikasi HTTP (port 80 protocol TCP). Supaya PC client tetap dapat mengakses web server, maka dilakukan masquerading pada Client oleh Router NAT interface network 192.168.0.0/24. Pada interface tersebut dilakukan
aliasing address (penggunaan beberapa IP address pada sebuah interface) dengan spesifikasi alamat seperti pada topologi di atas. Lalu mula-mula interface router dengan alamat 192.168.0.1 akan dimatikan, selanjutnya alamat 192.168.0.2 juga dimatikan. Pembuktiannya adalah apakah setelah beberapa IP dari interface router pembungkus dimatikan client tetap dapat mengakses web server?

Untuk pembuktiannya saya akan menyampaikan tutorial praktikum dari skenario tersebut. Lakukan langkah-langkah berikut :
  1. Siapkan topologi dengan menggunakan sistem virtual (dapat menggunakan aplikasi VMware untuk virtualisasi). Dalam hal ini saya menggunakan 3 buah sistem Ubuntu Server.
  2. Lakukan konfigurasi pengalamatan (addressing) dengan spesifikasi berikut :
    a. Client = 172.16.0.10/16
    b. Web Server = 192.168.0.10/24
    c. Router 1 eth0 = 172.16.0.1/16
    Router 1 eth1 = 192.168.0.1/24
    Router 1 eth1:0 = 192.168.0.2/24
    Router 1 eth1:1 = 192.168.0.3/24
  3. Cara konfigurasi IP address pada Ubuntu dapat anda dapatkan pada materi mengenai Konfigurasi IP Address pada Ubuntu.
  4. Untuk aliasing address Router - NAT pada interface network 192.168.0.0/24, gunakan tambahan script berikut :

  5. Setelah konfigurasi addressing selesai dilakukan, maka langkah selanjutnya adalah mengaktifkan fungsi IP Forward pada Router - NAT. Buka file /etc/sysctl.conf dengan menggunakan utility nano (atau dengan menginputkan perintah nano /etc/sysctl.conf). Setelah itu hapus tanda # (cress / pagar) pada line net.ipv4.ip_forward=1.


  6. Setelah tanda cress dihapus, exit dari utility nano dengan menekan tombol Ctrl + X pada keyboard lalu simpan perubahan yang dilakukan pada file tersebut.
  7. Aktifkan perubahan pada file /etc/sysctl.conf dengan menggunakan perintah sysctl -p. Setelah itu semua sistem dapat berkomunikasi satu sama lain.
  8. Setelah itu lakukan uji akses web server dari Client dengan menggunakan perintah w3m 192.168.0.10 maka hasilnya adalah sebagai berikut :


  9. Langkah selanjutnya adalah melakukan blocking access dari Client oleh Web Server. Pada web server, gunakan perintah iptables -A INPUT -s 172.16.0.0/16 -p tcp --dport 80 -j DROP. Maksudnya adalah mem-block akses dari network 172.16.0.0/16 (network untuk client) pada port 80 (HTTP).
  10. Lakukan uji akses port 80 dari Client ke Web Server dengan menggunakan perintah w3m 192.168.0.10. Karena adanya blocking, maka hasil yang seharusnya ditampilkan adalah sebagai berikut :


  11. Setelah itu lakukan konfigurasi NAT pada sistem Router - NAT dengan menggunakan perintah berikut :

    *) perintah iptables -L digunakan untuk menampilkan skenario yang diberikan.
  12. Dengan demikian IP address Client sudah terbungkus oleh IP dari interface Router - NAT pada network 192.168.0.0/24. Lakukan uji akses ke Web Server dengan menggunakan perintah seperti pada langkah nomer 8. Karena telah dilakukan masquerading, maka seharusnya akses ke Web Server dapat dilakukan.
  13. Setelah itu non-aktifkan salah satu address pada interface Router - NAT yang digunakan sebagai pembungkus. Pertama, matikan address eth1 (yang memiliki IP 192.168.0.1) dengan menggunakan perintah ifdown eth1 pada Router - NAT.
  14. Lakukan uji akses Web Server dari Client dengan menggunakan perintah yang sama seperti pada langkah 8. Menurut teori dynamic NAT, Client masih dapat mengakses Web Server menggunakan IP dari eth1:0 maupun eth1:1.
  15. Setelah itu non-aktifkan address kedua pada interface Router - NAT pembungkus. Matikan address eth1:0 (yang memiliki IP 192.168.0.2) dengan menggunakan perintah ifdown eth1:0 pada Router - NAT.
  16. Lakukan uji akses Web Server dari Client dengan menggunakan perintah yang sama seperti pada langkah 8. Seharusnya, Client masih dapat mengakses Web Server menggunakan IP dari eth1:1 (karena eth1 dan eth1:0 telah dimatikan).
  17. Setelah itu cek log pada Web Server untuk melihat daftar IP address yang telah mengakses Web Server. Gunakan perintah nano /var/log/apache2/access.log pada Web Server. Berikut hasilnya :

Pada gambar di atas dapat dilihat adanya daftar address yang melakukan access ke Web Server beserta keterangan waktu pengaksesan. Dari gambar tersebut ada 4 buah address yang melakukan akses ke web server yaitu :
  • Address 172.16.0.10 (sebelum blocking access)
  • Address 192.168.0.1 (setelah adanya masquerading)
  • Address 192.168.0.2 (setelah eth1 non-aktif)
  • Address 192.168.0.3 (setelah eth1 dan eth1:0 non-aktif)
Dari pembuktian tersebut dapat diperoleh kesimpulan bahwa Dynamic NAT melakukan pembungkusan IP address dengan pemetaan yang random. Pada Static NAT, jika IP pembungkus non-aktif, maka IP yang terbungkus tidak akan dapat mengakses objek lainnya.

Tidak ada komentar:

Posting Komentar