网吧使用的Nat+Iptables+Squid的脚本
2024-08-28 00:05:12
供稿:网友
#!/bin/bash
# 飘飘的风于2003年7月26日修改,端口影射成功。
###---------------------###
#以下是定义变数
###--------------------###
PATH=/sbin:/usr/sbin:/bin:/usr/bin
RC_SQUID=/etc/rc.d/init.d/squid
EXT_IF=eth1
#外网接口,确定网卡,如果是拨号就用ppp0
INT_IF=eth0
LAN_IP_RANGE="192.168.0.0/24"
STATIC_IP="80.234.71.88"
TRUSTED_TCP_PORT="22 25 53 80 110 143 443 993 995 3389"
TRUSTED_UDP_PORT="53 3389"
ALLOWED_ICMP="0 3 3/4 4 11 12 14 16 18"
###--------------------------------------------------------------------###
#确定iptables安装情况
###--------------------------------------------------------------------###
which iptables &>/dev/null || {
echo
echo "$(basename $0): iptables程序没有找到"
echo "请先安装好这个程序."
echo
exit 1
}
###--------------------------------------------------------------------###
#废掉ipchains,这是针对RedHat以前的版本,新版已经把iptables嵌到内核里了
###--------------------------------------------------------------------###
lsmod | grep ipchains &>/dev/null && {
echo "正在废掉ipchains服务........."
rmmod ipchains
}
###--------------------------------------------------------------------###
#装载模块modules
###--------------------------------------------------------------------###
echo "模块正在载人......"
modprobe ip_tables &>/dev/null || {
echo -n "$(basename $0): ip_tables模块载人失败"
echo "请检查"
exit 3
}
for file in /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_conntrack_*.o
do
module=$(basename $file)
modprobe ${module%.*} &>/dev/null
done
for file in /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_nat_*.o
do
module=$(basename $file)
modprobe ${module%.*} &>/dev/null
done