免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1399 | 回复: 4
打印 上一主题 下一主题

防火墙的一个脚本,可以实现基本功能。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-04-06 18:59 |只看该作者 |倒序浏览
文件内容如下:
#! /bin/sh
UPLINK="ppp0"
#默认连接Internet的是ppp0,也就是ADSL虚拟拨号,专线连接请改成网卡号,如eth0或eth1
UPIP=""
#使用虚拟拨号不填,因为IP是变化的;使用专线固定IP的请填入IP,改成UPIP="61.132.118.32"
ROUTER="yes"
#是否为子网机器作NAT转发,不需要则改成"no"
#NAT="UPIP/dynamic"
NAT="dynamic"
#NAT转发类型,dynamic指ADSL虚拟拨号,动态IP;用专线静态IP的请改为"UPIP"
INTERFACES="lo eth0 eth1 ppp0"
#网卡界面,默认是两块网卡eth0和eth1,ppp0是在其中某一块网卡上虚拟拨号后产生的;如果你有更多的网卡,就加上eth2、eth3等;如果你用专线固定IP的,就把ppp0去掉,因为你永远不会有ppp0这个设备;
SERVICES="80 22 25 110 "
#外网可以访问到的端口;注意:子网用户可以访问到服务器所有的服务端口,默认是全开放的;这样做是为了减少初学者的困惑,你可以根据自己情况改一下;如果SERVICES里什么端口也不填,那么外网用户无法访问到你服务器的任何服务;如果你要增加对外网开放的服务,就在里面加上端口号,如要开放ftp服务,就在110后面加上21,中间用空格格开;
deny=""
case "$@" in
start)
echo -n "Starting firewall..." #显示一段文字
modprobe ip_nat_ftp #加载ftp的nat模块
modprobe ip_conntrack_ftp #加载ftp的跟踪模块
iptables -P INPUT DROP #默认拒绝所有输入的TCPIP包
iptables -A INPUT -i ! ${UPLINK} -j ACCEPT #允许非UPLINK设备的输入,即允许所有子网的输入
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允许有状态的包输入

#以下四行根据SERVICES里的配置作一个循环,打开允许对外网开放的端口
for x in ${SERVICES}
do
iptables -A INPUT -p tcp --dport ${x} -m state --state NEW -j ACCEPT #允许输入的类型是tcp,端口为前面SERVICES里指定
done

#以下四行根据deny里的端口配置作一个循环,拒绝这些端口的输出
for y in ${deny}
do
iptables -A OUTPUT -p tcp --dport ${y} -j DROP
iptables -A OUTPUT -p udp --dport ${y} -j DROP
done

#enable system-log
#iptables -A INPUT -j LOG --log-prefix "bad input:"

#以下两句在外网试图连接未开放的服务端口时候应答标准 TCP 复位和 ICMP 端口不可到达响应,假装我们根本没有运行服务,以迷惑潜在的闯入者。
iptables -A INPUT -p tcp -i ${UPLINK} -j REJECT --reject-with tcp-reset
#iptables -A INPUT -p udp -i ${UPLINK} -j REJECT --reject-with icmp-port-unreachable

#以下关闭 ECN(明确拥塞通知),以便因特网通信可以正确工作

#explicitly disable ECN
if [ -e /proc/sys/net/ipv4/tcp_ecn ]
then
echo 0 >; /proc/sys/net/ipv4/tcp_ecn

#以下这个循环告诉内核删除网络接口所有受到欺骗的包
for x in ${INTERFACES}
do
echo 1 >; /proc/sys/net/ipv4/conf/${x}/rp_filter
done

#以下设置nat转发
if [ "$ROUTER" = "yes" ] #如果ROUTER设置为yes,则
then
#we're a router of some kind, enable IP forwarding
echo 1 >; /proc/sys/net/ipv4/ip_forward #打开内核的NAT转发功能
if [ "$NAT" = "dynamic" ]
then
#dynamic IP address, use masquerading
iptables -t nat -A POSTROUTING -o ${UPLINK} -j MASQUERADE #动态IP,使用masq转发方式
elif [ "$NAT" != "" ]
then
#static IP, use SNAT
iptables -t nat -A POSTROUTING -o ${UPLINK} -j SNAT --to ${UPIP} #静态IP,使用SNAT转发方式
fi
fi
echo "OK!" #显示OK!
exit 0
;;
#防火墙停止脚本
stop)
echo -n "Stopping firewall..." #显示文字
iptables -F INPUT #清空输入链的全部规则
iptables -P INPUT ACCEPT #默认输入为允许
iptables -F OUTPUT #清空输出链的全部规则
iptables -P OUTPUT ACCEPT #默认输出为允许
#turn off NAT/masquerading, if any
#iptables -t nat -F POSTROUTING
echo "OK!"
exit 0
;;
restart)
{PAGEEDIT_FORM_TEXT} stop
{PAGEEDIT_FORM_TEXT} start

;;
show)
clear
echo ">;-------------------------------------------------------------------"
iptables -L
echo ">;-------------------------------------------------------------------"
iptables -t nat -L POSTROUTING
exit 0
;;
*)
echo "Usage: {PAGEEDIT_FORM_TEXT} {start|stop|restart|show}"
exit 1
fi
esac

推荐以下文章:
吴阿亭的Linux 2.4 内核中的iptables 新增功能指南 http://www.linuxforum.net/doc/iptable-wu.html
CNGNU.org的IPtable 1.0.7指南
http://www.cngnu.org/technology/9405/282.html

不知道算不算精华

论坛徽章:
0
2 [报告]
发表于 2004-04-06 19:06 |只看该作者

防火墙的一个脚本,可以实现基本功能。

如果再加上能防止DoS或SYN攻击的功能就更好了!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2004-04-06 19:10 |只看该作者

防火墙的一个脚本,可以实现基本功能。

是自己写的吗?

论坛徽章:
0
4 [报告]
发表于 2004-04-06 21:11 |只看该作者

防火墙的一个脚本,可以实现基本功能。

参考别人的。
使用方法,上面的忘了写了。
把上面的内容vi成一个文件,比如firewall或者你喜欢的名字,然后copy到/sbin/下面去,,,如果要运行,只要firewall start  就可以了,停止的话firewall stop  但记得里面的参数要先改哦。


一般如果是公网上的机器,如果带内网nat上网。就可以把ppp0e,拿掉,但记得在UPIP=""  添上自己公网的ip。

把它做成一个sh,放在启动里面,每次重启可以得到一个干净的firewall。

论坛徽章:
0
5 [报告]
发表于 2004-04-10 22:13 |只看该作者

防火墙的一个脚本,可以实现基本功能。

有没有哪位知道在上面再价格防止dos的啊,要是有的话,那就太好了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP