|
#!/bin/sh
#ppp_isp_ip=$(/sbin/ifconfig
ppp0 | grep inet | awk '{ print $3 }' | sed -es/P-t-P://)"/32"
echo
"1" > /proc/sys/net/ipv4/ip_forward
echo
"1" > /proc/sys/net/ipv4/ip_dynaddr
/sbin/modprobe
slip.o
/sbin/modprobe
ip_masq_autofw.o
/sbin/modprobe
ip_masq_cuseeme.o
/sbin/modprobe
ip_masq_ftp.o
/sbin/modprobe
ip_masq_irc.o
/sbin/modprobe
ip_masq_quake.o
/sbin/modprobe
ip_masq_raudio.o
/sbin/modprobe
ip_masq_user.o
#
my LAN's address
my_lan="192.168.0.0/24"
ipchains
-M -S 7200 60 7200
#
turn on antispoofing for all interfaces
for
f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $f; done
#
flush, then set all policies
ipchains
-F
ipchains
-P input ACCEPT
ipchains
-P output ACCEPT
ipchains
-P forward ACCEPT
#
create user chains
ipchains
-N icmp-err
ipchains
-N ppp-out
ipchains
-N ppp-in
#
set icmp-err chain
ipchains
-A icmp-err -p icmp --icmp-type destination-unreachable -j ACCEPT
ipchains
-A icmp-err -p icmp --icmp-type source-quench -j ACCEPT
ipchains
-A icmp-err -p icmp --icmp-type time-exceeded -j ACCEPT
ipchains
-A icmp-err -p icmp --icmp-type parameter-problem -j ACCEPT
#
set ppp-out chain
ipchains
-A ppp-out -j DENY -l
ipchains
-A ppp-out -p tcp --dport http -t 0x01 0x10
ipchains
-A ppp-out -p tcp --dport telnet -t 0x01 0x10
ipchains
-A ppp-out -p tcp --dport ftp-data -t 0x01 0x02
ipchains
-A ppp-out -p tcp --dport nntp -t 0x01 0x02
ipchains
-A ppp-out -p tcp --dport pop -t 0x01 0x02
ipchains
-A ppp-out -p tcp --dport mail -t 0x01 0x02
#
set ppp-in chain, colored IP is your ISP DNS
ipchains
-A ppp-in -s $my_lan -j DENY -l
ipchains
-A ppp-in -p tcp --dport 6000:6010 -j DENY
ipchains
-A ppp-in -p udp --dport 61000:65096 -j ACCEPT
ipchains
-A ppp-in -p tcp --dport 1024:65096 -j ACCEPT
ipchains
-A ppp-in -p udp --dport 1024:65096 -j ACCEPT
ipchains
-A ppp-in -p udp -s 193.43.2.1 53 -j ACCEPT
ipchains
-A ppp-in -p tcp -s 193.43.2.1 53 -j ACCEPT
ipchains
-A ppp-in -p tcp -d 0.0.0.0/0 auth -j ACCEPT
ipchains
-A ppp-in -p icmp --icmp-type pong -j ACCEPT
ipchains
-A ppp-in -p icmp -j icmp-err
#ipchains
-A ppp-in -s 224.0.0.10:65596 -j DENY
ipchains
-A ppp-in -j DENY -l
#
set input-output chains
ipchains
-A input -i ppp0 -j DENY
ipchains
-A output -i ppp0 -j DENY
|