论坛风格切换切换到宽版
  • 535阅读
  • 3回复

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

上一主题 下一主题
离线yeen.
 
发帖
1984
C币
-604987
威望
381
贡献值
5
银元
-5
铜钱
4417
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
文件内容如下:
#! /bin/sh
UPLINK="ppp0"
#默认连接In.ternet的是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 .eth.0 eth1 ppp0" 教育
#网.卡界面,默认是两块网卡eth0和eth1,ppp0是在其中某一块网卡上虚拟拨号后产生的;如果你有更多的网卡,就加上eth2、eth.3等.;如果你用专线固定IP的,就把ppp0去掉,因为你永远不会有ppp0这个设备;投资
SERVICES="80 22 25 110. "     外汇
#外网可以访问到的端口;注意:子网用户可以访问到服务器所有的服务端口,默认.是全开放的;这样做是为了减少初学者的困惑.,你可以根据自己情况改一下;如果SERVICES里什么端口也.不填,那么外网用户无法访问到你服务器的任何服务;如果你要增加对外网开放的服务,就在里面加上端.口号,如要开放ftp服务,就在110后面加上21,中间用空格格开;    外汇
deny=""
case "$@" in
start)
echo -n "Starting firew.all...." #显示一段文字服务器
modprobe i.p_nat_f.tp #加载ftp的nat模块.
modprobe ip_conntrack_ftp #加载ftp的跟踪.模.块虚拟主机
iptables -P I.NPUT DROP #默认拒绝所有输入的TCPIP.包          婚庆
iptables -A INPUT -i ! ${UPLINK} -j ACCEPT. #允许非.UPLINK设备的输入,即允许所有子网的输入.
iptables -A INPUT -m state --state EST.ABLISHED,RELAT.ED -j ACCEPT #允许有状态的包输入    外汇

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

#以下四行根据den.y里的端口配置作一个循环,拒绝这些.端口的输出    美容
f.or y in ${deny} <性病>
do
iptables -A O.UTPUT -p. tcp --dport ${y} -j DROP外贸
iptables -A OUTPUT -p udp .--dpo.rt ${y} -j DROP    美容
done

#enable syst.em-log(        游戏          )
#iptables -.A INPUT .-j LOG --log-prefix "bad input:".

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

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

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

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

#以下设置nat转发
i.f [ "$ROUTER" = "yes". ] #如果ROUTER设置为yes,则投资
then
#we're a route.r of some kind, e.nable IP forwarding.
echo 1 >; /proc/s.ys/net/ipv4/ip_forward #打开内核的N.AT转发功能(广告)
if [ "$NAT" = ".dynamic" ]<性病>
then
#dynamic IP address,. use masqueradi.ng教育
iptables -t nat -A POSTROUTING -o ${UP.LINK} -j MASQUER.ADE #动态IP,使用masq转发方式             汽车
elif [ "$N.AT" != "" ]电脑
then
#static .IP, use SNAT    健康
iptab.les -t nat -A POSTROUTING -o $.{UPLINK} -j SNAT --t.o ${UPIP} #静态IP,使用SNAT转发方式              乙肝
fi
fi
e.cho "OK!" #显示OK!健康
exit 0
;;
#防火墙停止脚本
stop)
echo -n "Stopping fir.ewall..." #显示.文字.
iptables -.F INPUT #清空输入.链的全部规则--------------彩票
iptables -P .INPUT ACCEPT #默认.输入为允许          婚庆
iptable.s. -F OUTPUT #清空输出链的全部规则服务器
iptables -P OUTPU.T. ACCEPT #默认输出为允许外贸
#turn of.f NAT/.masquerading, if any.
#ipt.ables -t na.t -F POSTROUTING电脑
echo "OK!"
exit 0
;;
restart)
{PAGEEDI.T_FORM_TEXT} stop    健康
{PAGEEDIT_FORM_T.EXT} star.t健康

;;
show)
clear
echo ">;--------------------------.---.------------------------------.--------"          婚庆
iptables -L
echo ">;-----------------------------------------------.-------.---.----------".
iptab.les -t nat -L POSTR.OUTING           女人
exit 0
;;
*)
echo. "Usage: {PAGEEDIT_FORM_TEXT} {start|st.op|restart|show}"电影
exit 1
fi
esac

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

不知道算不算精华

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线海龟的.
发帖
2199
C币
-235349
威望
396
贡献值
6
银元
4
铜钱
4851
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
如果再加上能防止DoS或SYN攻击的功能就更好了!

离线月无痕.
发帖
2143
C币
-60280
威望
395
贡献值
1
银元
-7
铜钱
4737
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
是自己写的吗?

发帖
2112
C币
-235117
威望
406
贡献值
1
银元
-2
铜钱
4772
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
参考别人的。
使用方法,上面的忘了写了。
把上面的内容vi成一个文件,比如firewall或者你喜欢的名字,然后copy到/sbin/下面去,,,如果要运行,只要firewall start  就可以了,停止的话firewall stop  但记得里面的参数要先改哦。


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

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

快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个