Selasa, 25 Maret 2008

iptables.txt iptables

IPTABLES adalah sebuah packet program yang dimiliki oleh linux.
pada postingan ini saia akan memberi tips agar kita dapat menjalankan iptables dengn mudah.
persiapan yang dibutuhkan juga sangat mudah. cukup dengan menginstal text editor seperti vi, nano, & tex editor lainya. pastinya anda juga harus mengetahui rule dari iptables.

kita memang bisa menjalankan langsung perintah untuk iptables, tapi jika firewall menglami eror maka kita akan membuat ulang perintah-perintah yang telah kita jalankan. untuk mengatasi itu semua, maka kita akan membuat suatu file yang bisa menjalankan beberapa perintah iptables sesuai dengna kebutuhan.

buatlah sebuah file baru dengan nama iptables dengna menggunakan text editor.
kemudian masukan perintah iptables. seperti dibawah ini.


##################### START #######################
#flush tables
iptables -F

#ip forward
echo 1 > /proc/sys/net/ipv4/ip_forward

# DUMP
iptables -N DUMP > /dev/null
iptables -F DUMP
iptables -A DUMP -p tcp -j LOG
iptables -A DUMP -p udp -j LOG
iptables -A DUMP -p tcp -j REJECT --reject-with tcp-reset
iptables -A DUMP -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A DUMP -j DROP

# Stateful table
iptables -N STATEFUL > /dev/null
iptables -F STATEFUL
iptables -I STATEFUL -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A STATEFUL -m state --state NEW -i ! eth0 -j ACCEPT
iptables -A STATEFUL -j DUMP

# loopback rules
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# drop reserved addresses incoming (these are reserved addresses
# but may change soon
iptables -A INPUT -i eth0 -s 0.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 1.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 2.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 5.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 7.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 23.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 27.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 31.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 36.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 39.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 41.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 42.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 58.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 59.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 60.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 127.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 169.254.0.0/16 -j DUMP
iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DUMP
iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DUMP
iptables -A INPUT -i eth0 -s 197.0.0.0/8 -j DUMP
iptables -A INPUT -i eth0 -s 224.0.0.0/3 -j DUMP
iptables -A INPUT -i eth0 -s 240.0.0.0/8 -j DUMP

#set iptables to allow everything from my work network
iptables -A INPUT -i eth0 -p all -s 202.0.0.0/8 -j ACCEPT
iptables -A INPUT -i eth0 -p all -s 219.0.0.0/8 -j ACCEPT
iptables -A INPUT -i eth0 -p all -s 118.98.0.0/16 -j ACCEPT
iptables -A INPUT -i eth0 -p all -j DROP

# allow certain inbound ICMP types (ping, traceroute..)
iptables -A INPUT -i eth0 -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j ACCEPT
#iptables -A INPUT -i eth0 -p icmp --icmp-type 30 -j DROP

# Drop all packets to port 111 except those from localhost
iptables -A INPUT -s ! 127.0.0.0/8 -p tcp --dport 111 -j DROP

# kill off identd quick
iptables -A INPUT -p tcp -i eth0 --dport 113 -j REJECT --reject-with tcp-reset

# ftp
iptables -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 21 -j ACCEPT
# ssh
iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 22 -j ACCEPT
# www
iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 80 -j ACCEPT
# https
iptables -A INPUT -p tcp -i eth0 --dport 443 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 443 -j ACCEPT

# Don't log route packets coming from routers - too much logging
iptables -A INPUT -p udp -i eth0 --dport 520 -j REJECT

# Don't log smb/windows sharing packets - too much logging
iptables -A INPUT -p tcp -i eth0 --dport 137:139 -j REJECT
iptables -A INPUT -p udp -i eth0 --dport 137:139 -j REJECT

#settingan untuk security
# block xmas scans
iptables -N xmas
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j xmas
iptables -A FORWARD -p tcp --tcp-flags ALL ALL -j xmas
iptables -A xmas -m limit -j LOG --log-level info --log-prefix "-- XMAS-SCAN --> "
iptables -A xmas -j REJECT
# block xmas-psh-packets
iptables -N xmas_psh
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j xmas_psh
iptables -A FORWARD -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j xmas_psh
iptables -A xmas_psh -m limit -j LOG --log-level info --log-prefix "-- XMAS-PSH-SCAN --> "
iptables -A xmas_psh -j REJECT
# block nmap-xmas-packets
iptables -N nmap_xmas
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j nmap_xmas
iptables -A FORWARD -p tcp --tcp-flags ALL FIN,URG,PSH -j nmap_xmas
iptables -A nmap_xmas -m limit -j LOG --log-level info --log-prefix "-- NMAP-XMAS-SCAN --> "
iptables -A nmap_xmas -j REJECT
# block syn/rst-packets
iptables -N syn_rst
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j syn_rst
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j syn_rst
iptables -A syn_rst -m limit -j LOG --log-level info --log-prefix "-- SYN/RST-SCAN --> "
iptables -A syn_rst -j REJECT
# block syn/fin-packets
iptables -N syn_fin
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j syn_fin
iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j syn_fin
iptables -A syn_fin -m limit -j LOG --log-level info --log-prefix "-- SYN/FIN-SCAN --> "
iptables -A syn_fin -j REJECT
# bluck null-packets
iptables -N null_scan
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j null_scan
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j null_scan
iptables -A null_scan -m limit -j LOG --log-level info --log-prefix "-- NULL-SCAN --> "
iptables -A null_scan -j REJECT
# spoofed packets: log and drop
iptables -N spoofing
iptables -A FORWARD -i eth0 -s 192.168.0.0/16 -j spoofing
iptables -A FORWARD -i eth0 -s 172.16.0.0/12 -j spoofing
iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -j spoofing
iptables -A spoofing -m limit -j LOG --log-level info --log-prefix "-- SPOOFING --> "
iptables -A spoofing -j REJECT
# icmp handling - ICMP-Pakete werden erlaubt, bis auf type 5 (redirect)
iptables -N icmp_allow
iptables -N icmp_reject
iptables -A INPUT -p icmp --icmp-type ! 5 -j icmp_allow
iptables -A INPUT -i eth1 -p icmp --icmp-type 5 -m limit -j icmp_reject
iptables -A icmp_allow -j ACCEPT
iptables -A icmp_reject -m limit -j LOG --log-prefix "-- ICMP_REJ --> "
iptables -A icmp_reject -j REJECT --reject-with icmp-host-unreachable
# port-scan default blocked
iptables -N port-scan
iptables -A port-scan -m limit --limit 1/s --limit-burst 4 -j RETURN
iptables -A port-scan -i eth0 -j LOG --log-level info --log-prefix 'port-scan'
iptables -A port-scan -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j port-scan
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j port-scan

#Tambahan settingan buat router
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 118.98.168.138

################# END ######################

Semua rule tersebut masih terisi dengan IP ROUTER yang saia miliki. Tugas anda tinggal meng-edit ulang sesuai dengan kebutuhan dan IP yang anda miliki.
jika semua sudah anda edit. kita tinggal menjalankan dengan perintah ./iptables (enter)
saia membuat kumpulan rule ini pada PC ROUTER dengan SO LINUX SuSE 10.2 kemudian saia tempatkan file tersebut di direktory /etc/init.d/iptables. jadi jangan lupa untuk masuk terlebih dahulu pada direktory tersebut sebelum menjalankannya.

SELAMAT MENCOBA.

SOURCE : http://packetstormsecurity.org

Tidak ada komentar: