Tanya 150 : Membuat Ubuntu menjadi Router untuk Sharing Internet dengan IPtables

Tanya :
Bagaimana menjadikan komputer Ubuntu kita sebagai router untuk sharing internet secara manual lewat terminal ?
Jawab :
Dalam praktek ini saya ingin menghubungkan komputer klien (Ubuntu 10.04 Server) dengan internet. Sayangnya koneksi internet yang ada di rumah adalah wireless, server saya tidak punya Wireles Card dan saya tidak punya kabel yang cukup panjang untuk menghubungkan server ini dengan modem. Salah satu cara adalah menggunakan laptop saya (Ubuntu 11.04 Desktop) yang terkoneksi ke internet via WLAN Card, memfungsikan laptop ini sebagai router, sehingga saya bisa mengkoneksikan komputer Ubuntu Server tadi dengan internet dari Ethernet Card laptop saya. Cara GUI bisa dilihat di Tanya 146 : http://tanyarezaervani.wordpress.com/2011/05/05/tanya-146-menjadikan-ubuntu-anda-router-untuk-sharing-internet/
Di kesempatan ini kita akan melakukannya secara manual dengan memanfaatkan IPTables chain rules.
Mari kita gambarkan kasusnya terlebih dahulu :

Internet <<==>> wlan0 <> Ubuntu gateway <> eth0 <<==>> Client PC

Langkah pertama adalah menset IP tertentu untuk eth0 (keluaran ke Client). Gunakan perintah ifconfig

sudo ifconfig eth0 10.10.10.1 netmask 255.255.255.0

Selanjutnya kita lakukan konfigurasi NAT (Network Address Translation) dengan menggunakan IPTables :
Pertama, kita buat terlebih dahulu rantai untuk forward paket

iptables -A FORWARD -o wlan0 -i eth0 -s 192.168.1.2/24 -m conntrack --ctstate NEW -j ACCEPT

Keterangan :

  • -A : Chain Rules yang akan kita gunakan adalah Forward
  • -o : Dari interface mana paket akan diteruskan, dalam hal ini dari wlan0
  • -i : Ke interface mana paket diteruskan, dalam hal ini eth0
  • -m : Menggunakan modul conntrack dan dikombinasikan dengan connection tracking NEW untuk memulai koneksi baru atau mengasosiakan dirinya dengan koneksi yang belum mengalirkan paket dari arah manapun
  • -j : target ACCEPT
.

Lalu berikan izin untuk melakukan forwarding dari paket yang ada (atau dari paket yang sudah mulai)

sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Terakhir lakukan Network Address Translation

sudo iptables -A POSTROUTING -t nat -j MASQUERADE

Keterangan

  • POSTROUTING : Translasi address kita lakukan setelah proses routing
  • MASQUERADE : Melakukan NAT
.

Sekarang kita Aktifkan ip forwarding yang sudah kita buat tadi

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

Lalu edit file /etc/sysctl.conf
Hilangkan tanda pagar di

net.ipv4.ip_forward=1

Tugas kita di komputer yang berfungsi sebagai router selesai
Di sisi klien cukup kita sesuaikan ip address-nya. Dalam kasus ini saya akan menghubungkan server Ubuntu 10.04 (tanpa GUI) ke laptop yang tadi saya jadikan router. Saya set IP static di server itu sebagai berikut :

auto lo
 iface lo inet loopback
auto eth0
 iface eth0 inet static
 address 10.10.10.2
 network 10.10.10.0
 netmask 255.255.255.0
 broadcast 10.10.10.255
 gateway 10.10.10.1
 dns-domain 8.8.8.8,8.8.4.4

Saya restart networknya dengan

sudo /etc/init.d/networking restart

Lalu saya ping sebuah situs dari Ubuntu 10.04 tadi
Selesai, komputer klien yang menggunakan Ubuntu 10.04 kini terkoneksi internet via laptop yang berfungsi sebagai router, dan saya kini bisa melakukan rsync untuk mengupdate koleksi repository Ubuntu yang dimiliki.
Demikian, semoga bermanfaat. (rezaervani@gmail.com)
Beberapa keterangan tambahan yang diperlukan :

.

Klik Disini untuk Info Lebih Lanjut

5 Comments

  1. mau nanya…
    apakah setelah langkah terakhir (net.ipv4.ip_forward=1) komputer 11.04 harus di restart dengan perintah /etc/init.d/networking restart ?
    dan, katanya perintah2 melalui terminal akan terjadi konflik dengan perintah GUI (network-manager), jd harus men-disable NMnya. Benarkah begitu ?

  2. auto lo
    iface lo inet loopback
    auto eth0
    iface eth0 inet static
    address 10.10.10.2
    network 10.10.10.0
    netmask 255.255.255.0
    broadcast 10.10.10.255
    gateway 10.10.10.1
    dns-domain 8.8.8.8,8.8.4.4
    mas klo konfigurasi network interfacenya di komputer router tw di komputer client?

Leave a Reply to takatux Cancel reply

Your email address will not be published.


*