Pencarian

Minggu, 19 September 2010

Sharing internet di linux dengan iptables dan dnsmasq

Setelah hampir 1 tahun mengarungi bahtera dunia maya bersama linux akhirnya nulisnya juga tutorial ginian hehe...
Sharing internet/berbagi akses internet di linux.
Sebenarnya udah pernah buat tutorial ginian tapi waktu itu menggunakan firestarter yang cukup mudah di configure karena base nya GUI http://a3m-nix.blogspot.com/2009/07/share-internet-virtual-windows-di.html
Sekarang pengen yang pake terminal aja lebih seru :D
langsung saja, pastikan komputer nya memiliki 2 interface.
Pada contoh saya ini, interface yang terhubung langsung ke internet adalah eth0 dan mau di sharing via wlan0 ada bisa pake ad-Hoc dengan laptop yang lain.

Langkah pertama, aktifkan ip_forward dengan memberi nilai 1, hal ini agar kernel mau meneruskan paket yang datang.
buka terminal dan login sebagai root lalu ketik perintah:
root@nix-server:/home/a3m-nix# echo 1 > /proc/sys/net/ipv4/ip_forward
agar setiap kali di restart ip_forward nya bernilai 1 edit file sysctl.conf
root@nix-server:/home/a3m-nix# nano /etc/sysctl.conf
cari line seperti ini
#net.ipv4.ip_forward=1

hilangkan tanda # hingga menjadi:
net.ipv4.ip_forward=1

lalu simpan dengan ctrl+o, ctrl+m dan ctrl+x untuk keluar dari editor nano.
okeh, paket udah bisa lewat, sekarang tinggal nat,
Pada terminal tersayang ketikan perintah iptabels berikut:
root@nix-server:/home/a3m-nix# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

*yang perlu diperhatikan pada baris -o eth0, ini merujuk ke interface yang terhubung langsung ke internet, lihat melalui ifconfig lalu sesuaikan karena bisa jadi berbeda pada tiap komputer, sesuaikan dengan kebutuhan.
Ok, sampai di langkah ini, client yang terkoneksi melalui wlan0 sudah bisa menggunakan koneksi internet.
Untuk mempercepat proses tanya jawab DNS silahkan install dnsmasq (karena menurut saya dnsmasq cukup simpel dan sesuai kebutuhan).

root@nix-server:/home/a3m-nix# apt-get install dnsmasq


setelah itu edit file
root@nix-server:/home/a3m-nix# nano /etc/dnsmasq.conf

cari baris
interface=eth0
edit menjadi
interface=wlan0
agar dnsmasq mau mendengarkan permintaan pada wlan0
lihat interface yang terhubung ke client atau lan melalui ifconfig.
lalu cari baris:
#listen-address=
edit menjadi
listen-address=127.0.0.1
cari lagi baris:
#cache-size=150
edit menjadi
cache-size=15000

lalu simpan file tersebut dan restart service dnsmasq:
root@nix-server:/home/a3m-nix# /etc/init.d/dnsmasq restart
gunakan dig untuk melihat apakah dnsmasq berfungsi dengan baik atau tidak,
root@nix-server:/home/a3m-nix# dig google.com

lihat angka pada Query time: 125 msec
dan lakukan dig sekali lagi;
jika angka pada Query time lebih kecil dari 5msec.
berarti dnsmasq sudah berfungsi dengan baik, karena sudah bisa mencache alamat google.com
sekarang semua sudah bisa berinternetan.


Agar iptables tersimpan secara permanen, edit file:
root@nix-server:/home/a3m-nix# nano /etc/network/interfaces

pada baris terakhir tambahkan

pre-up iptables-restore < /etc/iptables.rule
post-down iptables-save -c > /etc/iptables.rule

perintah pertama untuk mengembalikan isi iptables sesuai dengan isi file iptables.rule pada saat interface up, baris yang kedua untuk menyimpan iptables ke file iptables.rule pada saat interface down.
okeh, sekarang sudah waktunya tidur...
Keep share...

3 komentar:

  1. apakah cara ini bisa bekerja di UBUNTU dan BACKTRACK ??

    BalasHapus
  2. yupz bisa, saya juga pengguna linux ubuntu dan untuk backtrack yg v.4 (udah base debian) rasanya juga bisa, tp saya belum pernah coba :D

    BalasHapus
  3. maksudnya hasilnya diakses dari komputer client melalui wlan0?

    BalasHapus