Bagaimana mengeset IPTABLES untuk Sharing Internet Part-1
Posted by in TutorialKemarin 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.


ada cara yang lebih gampang?