Internet Sharing : IP Masquerading

Kalau gateway anda sudah siap dengan dua interface, tinggal pasang IP Masquerading dan voila … Internet Sharing anda jalan.

IPTABLES

IPTABLES itu pengatur komunikasi TCP/IP di Linux kernel 2.4 ke atas. IPTABLES jalan bersama kernel. Kita mengatur kerja IPTABLES dengan memberi rules (hukum). Nah untuk ini kita bisa pakai a.l:

  1. Script manual.
  2. Konfigurator high level seperti guarddog (KDE), lokkit (Redhat), portsentry (VL) dll.

Perhatikan bahwa semua cara tersebut cuma mengirim hukum ke si IPTABLES. Jadi kalau anda pakai beberapa cara, tentu saja hukum-hukumnya akan campur aduk. Makanya lebih baik hanya pakai salah satu cara. Di sini kita akan coba cara skrip manual yang generik (kapan ya si Kocil mau pakai cara GUI ?).PERSIAPAN DI REDHAT

Sistem firewall di Redhat punya lokkit dan service iptables. Buat latihan ini, matikan saja semuanya !

root@gateway # lookkit --disabled
root@gateway # service iptables stop
root@gateway # chkconfig iptables off

Nanti kalau mau menghidupkan lagi ..

root@gateway # lookkit --high
root@gateway # chkconfig iptables on
root@gateway # service iptables start

PERSIAPAN DI VL

Jalankan vasm, pilih menu SRVMENU, lalu matikan portsentry.

IPTABLES GENERIK

Nah, untuk membuat skrip manual sederhana, edit file /etc/rc.d/rc.local. Isinya cukup:

#!/bin/sh
# Setting IPTABLES paling sederhana untuk masquerading 
######################################################

# Konstanta
IPT="/sbin/iptables" 
LOAD="/sbin/modprobe" 

# Interface
# Kalau pakai modem, ganti RED=ppp0
RED=eth1
GREEN=eth0         
RED_IP=10.0.0.15
GREEN_NET=192.168.0.0/24

#--------------------------------
# Inisialisasi IPTABLES 
$LOAD ip_tables 
$LOAD iptable_filter 
$LOAD iptable_nat 
$LOAD ip_conntrack 
$LOAD ip_conntrack_ftp 
$LOAD ip_nat_ftp 
$LOAD ip_conntrack_irc 
$LOAD ip_nat_irc 

#-------------------------------- 
# Kosongkan rumus-rumus IPTABLES 
$IPT -F 
$IPT -F -t nat 
$IPT -F -t mangle 
$IPT -X 

#-------------------------------- 
# Rumus default 
$IPT -P INPUT DROP
$IPT -P FORWARD DROP 
$IPT -P OUTPUT ACCEPT 

#-------------------------------- 
# Rumus masquerading, IP statik 
$IPT -t nat -A POSTROUTING -o $RED -j SNAT --to-source $RED_IP

# Rumus masquerading, lebih komplit
$IPT -t nat -A POSTROUTING -s $GREEN_NET -o $RED -j SNAT --to-source $RED_IP

# Kalau RED anda IP dinamik (ppp0), gunakan
# $IPT -t nat -A POSTROUTING -o $RED -j MASQUERADE

#--------------------------------
# Rumus forward, hanya dari dalam atau luar related
$IPT -A FORWARD -i $GREEN -o $RED -j ACCEPT
$IPT -A FORWARD -i $RED -o $GREEN -m state --state ESTABLISHED,RELATED -j ACCEPT 

#--------------------------------
# Rumus INPUT, hanya terima dari dalam atau luar yang related
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $GREEN -j ACCEPT
$IPT -A INPUT -i $RED -m state --state ESTABLISHED,RELATED -j ACCEPT

#--------------------------------
# Hidupkan forwarding 
echo "1" > /proc/sys/net/ipv4/ip_forward 

###############################################################

Nah, tinggal jalankan skrip tersebut atau reboot komputer anda.

root@gateway # chmod 700 /etc/rc.d/rc.local
root@gateway # /etc/rc.d/rc.local

TEST DARI CLIENT

Pastikan network client anda sudah benar,

IP=192,168.0.x
Netmask=255.255.255.0
Gateway=192.168.0.1
DNS= DNS si ISP

Coba dari client …

# Ping sisi internal gateway.
# Kalau gagal, koneksi client ke gateway tidak beres 
# atau network sisi internal gateway belum benar
tux@client$ ping 192.168.0.1

# Ping sisi eksternal gateway.
# Kalau gagal, network sisi eksternal gateway belum benar
tux@client$ ping 10.0.0.15

# Ping gateway si ISP
# Kalau gagal, masquerading belum benar
tux@client$ ping 10.0.0.1

Copyleft : Kocil, 2003
License : GNU FDL
Posted to: www.benpinter.net, 6 Dec 2003.
Testbed : Redhat 9.0, Vector Linux 4.0
Writepad : Bluefish

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: