Jun 05

Bagaimana mengeset IPTABLES untuk Sharing Internet Part-1

Posted by KPLI Lamongan in Tutorial

Kemarin sempat ada yang tanya ke email KOSLA, tentang bagaimana mengeset IPTABLES sekedar untuk sharing internet.
Nah, supaya rekan-rekan yang lain juga tahu jawabannya akahirnya diposkan di blog ini, berikut step-stepnya:

1. Untuk mempermudah script ini dimasukkan ke /etc/rc.local
2. pada konsole ketik sudo vi /etc/rc.local (masukkan password ketika ditanya)
3. masukkan script dibawah ini sebelum
exit 0:

# lokasi binary iptables

IPT=”/sbin/iptables”

# Interface yang digunakan
# WAN = koneksi dari internet
# LAN = koneksi ke lokal jaringan
WAN=”ppp0″
LAN=”eth1″
# Jika perlu bersihkan semua rule iptables sebelumnya
$IPT -F
$IPT -F INPUT
$IPT -F OUTPUT
$IPT -F FORWARD
$IPT -F -t mangle
$IPT -F -t nat
$IPT -X

# Peraturan Dasar: Drop paket yang masuk
# dan terima sisanya.
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT

# Untuk mengizinkan LAN mengakses internet maka perlu
# melakukan ip forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t nat -A POSTROUTING -o $WAN -j MASQUERADE

# Jangan izinkan koneksi baru atau salah untuk menjangkau
# jaringan dalam (lokal)
$IPT -A FORWARD -i $WAN -m state –state NEW,INVALID -j DROP

# Terima semua koneksi dari dalam (lokal)
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $LAN -j ACCEPT

# Di sini akan diatur penanganan paket yang
# tidak merespon dan dimasukkan ke log
$IPT -N Firewall
$IPT -A Firewall -m limit –limit 10/minute -j LOG –log-prefix “Firewall: ”
$IPT -A Firewall -j DROP

# menyimpan log dan memberitahukan pengirim paket
# bahwa paket telah ditolah
$IPT -N Penolakan
$IPT -A Penolakan -m limit –limit 10/minute -j LOG –log-prefix “Penolakan: ”
$IPT -A Penolakan -j REJECT

# di sini kita menciptakan sebuah “rantai” untuk menangani “bad” paket
# dan membatasi peringatan 10/min
# paket akan didrop tanpa memberitahu pengirim
$IPT -N Badflags
$IPT -A Badflags -m limit –limit 10/minute -j LOG –log-prefix “Badflags: ”
$IPT -A Badflags -j DROP # A list of well known combination of Bad TCP flags

# paket-paket tersebut akan dikembalikan ke “rantai” badflags
# yang kemudian akan ditangani (di-log dan di drop)
$IPT -A INPUT -p tcp –tcp-flags ACK,FIN FIN -j Badflags
$IPT -A INPUT -p tcp –tcp-flags ACK,PSH PSH -j Badflags
$IPT -A INPUT -p tcp –tcp-flags ACK,URG URG -j Badflags
$IPT -A INPUT -p tcp –tcp-flags FIN,RST FIN,RST -j Badflags
$IPT -A INPUT -p tcp –tcp-flags SYN,FIN SYN,FIN -j Badflags
$IPT -A INPUT -p tcp –tcp-flags SYN,RST SYN,RST -j Badflags
$IPT -A INPUT -p tcp –tcp-flags ALL ALL -j Badflags
$IPT -A INPUT -p tcp –tcp-flags ALL NONE -j Badflags
$IPT -A INPUT -p tcp –tcp-flags ALL FIN,PSH,URG -j Badflags
$IPT -A INPUT -p tcp –tcp-flags ALL SYN,FIN,PSH,URG -j Badflags
$IPT -A INPUT -p tcp –tcp-flags ALL SYN,RST,ACK,FIN,URG -j Badflags

# Untuk mempersempit celah keamanan protokol icmp hanya akan dibuka
# untuk jenis-jenis tertentu dan semua akan di log ke “rantai” Firewall
# ex: 0 => echo reply
$IPT -A INPUT -p icmp –icmp-type 0 -j ACCEPT
# 3 => Destination Unreachable
$IPT -A INPUT -p icmp –icmp-type 3 -j ACCEPT
# 11 => Time Exceeded $IPT -A INPUT -p icmp –icmp-type 11 -j ACCEPT
# 8 => Echo
# untuk menolak ping flood
$IPT -A INPUT -p icmp –icmp-type 8 -m limit –limit 1/second -j ACCEPT
$IPT -A INPUT -p icmp -j Firewall

# Accept ssh connections from the Internet
$IPT -A INPUT -i $WAN -p tcp –dport 22 -j ACCEPT
$IPT -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

# Menolak netbios dari luar, tanpa disimpan pada log
$IPT -A INPUT -p udp –sport 137 –dport 137 -j DROP

# Dan apapun yang belum didefinisikan, akan ditolak
# oleh aturan “Penolakan, yang telah dibuat sebelumnya
$IPT -A INPUT -j Penolakan

HTH

di sini kita menciptakan sebuah rantai untuk menangani paket unlegitimate

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

One Response



Leave a Reply

Komunitas Open Source dan Linux Lamongan Design by  KOSLA