#!/bin/sh setchains() { case $1 in start) mode=-A ;; stop) mode=-D ;; esac /sbin/ipchains $mode ppp -p icmp -s $LOCALIP/32 -d 0.0.0.0/0 \ -j ACCEPT /sbin/ipchains $mode ppp -p icmp -s 0.0.0.0/0 -d $LOCALIP \ -j ACCEPT /sbin/ipchains $mode ppp -p udp -s $LOCALIP/32 domain -d 0.0.0.0/0 \ domain -i $INTERFACE -j ACCEPT /sbin/ipchains $mode ppp -p udp -s 0.0.0.0/0 domain -d $LOCALIP \ domain -i $INTERFACE -j ACCEPT /sbin/ipchains $mode ppp -p tcp -s $LOCALIP/32 domain -d 0.0.0.0/0 \ domain -i $INTERFACE -j ACCEPT /sbin/ipchains $mode ppp -p tcp -s 0.0.0.0/0 domain -d $LOCALIP \ domain -i $INTERFACE -j ACCEPT /sbin/ipchains $mode ppp -p tcp -s $LOCALIP/32 -d 0.0.0.0/0 \ -j ACCEPT /sbin/ipchains $mode ppp -p tcp -s 0.0.0.0/0 -d $LOCALIP \ 1025:1079 -j ACCEPT /sbin/ipchains $mode ppp -p tcp -s 0.0.0.0/0 -d $LOCALIP \ 1081:2048 -j ACCEPT /sbin/ipchains $mode ppp -p tcp -s 0.0.0.0/0 -d $LOCALIP \ 2050:5999 -j ACCEPT /sbin/ipchains $mode ppp -p tcp -s 0.0.0.0/0 -d $LOCALIP \ 6001:6710 -j ACCEPT /sbin/ipchains $mode ppp -p tcp -s 0.0.0.0/0 -d $LOCALIP \ 6712:7999 -j ACCEPT /sbin/ipchains $mode ppp -p tcp -s 0.0.0.0/0 -d $LOCALIP \ 8001:8079 -j ACCEPT /sbin/ipchains $mode ppp -p tcp -s 0.0.0.0/0 -d $LOCALIP \ 8081:20004 -j ACCEPT /sbin/ipchains $mode ppp -p tcp -s 0.0.0.0/0 -d $LOCALIP \ 20006:40000 -j ACCEPT /sbin/ipchains $mode ppp -p tcp -s 0.0.0.0/0 -d $LOCALIP \ 40002:65535 -j ACCEPT /sbin/ipchains $mode ppp -p tcp -s 0.0.0.0/0 -d $LOCALIP \ 0:1023 -y -j DENY -l /sbin/ipchains $mode ppp -p tcp -s 0.0.0.0/0 -d $LOCALIP \ 0:1023 -j ACCEPT /sbin/ipchains $mode ppp -p all -b -s 0.0.0.0/0 -d 0.0.0.0/0 \ -j DENY -l } setroute() { case $1 in start) mode=add ;; stop) mode=del ;; esac /sbin/route $mode -host a.b.c.11 gw $REMOTEIP metric 0 /sbin/route $mode default gw $REMOTEIP metric 0 } BASENAME=`basename $0` INTERFACE=$1 DEVICE=$2 SPEED=$3 LOCALIP=$4 REMOTEIP=$5 if [ -z "$REMOTEIP" ]; then echo "Usage: $0 <INTERFACE> <DEVICE> <SPEED> <LOCALIP> <REMOTEIP>" exit 1 fi case "$BASENAME" in ip-up) setchains start setroute start ;; ip-down)setroute stop setchains stop /sbin/ifconfig $INTERFACE down /sbin/ifconfig $INTERFACE 0.0.0.0 ;; esac