论坛风格切换切换到宽版
  • 531阅读
  • 2回复

[问题求助]在LINUX系统上构建防火墙 [复制链接]

上一主题 下一主题
 
发帖
2019
C币
-505456
威望
366
贡献值
4
银元
-2
铜钱
4381
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
在LINUX系统上用n.etfilter/iptable.s构建防火墙

cloud/200.3.11.04学习
mail:.flashc@21cn.com外贸
欢迎转载,转载请保留上述信息,本人水平.有限,文中.如有差错,敬请指出。教育

netfilter/iptables是linux 2.4内核里一个全新设计的防火墙,功能非.常强大,配置非.常灵活,合理.的使用iptables用户空间配置工具可以一个强大的状态跟踪的防火墙。我个人水平有限,文中如有遗漏的.有用的过滤规则,欢迎大家指出,补充进去。本文只实现了基本的入侵防御,如果你想进行更细粒度的数据包检测日志,那么就可能不太适合你了。学习
首先,你要确保你的内核编译了相应的netfil.ter/iptables模块,一般情况下,我习惯采取编译进核心的方式,编译成模块在使用时需要加载,觉得比较麻烦,而且编译.进核心的话,核心大小也不会增加太大,这里假设netfilter/iptables模块已经编译进了内核,关于编译内核的资料,大家到网上查找..去吧.,很多.的。这里我就不废话了。以下的命令在系统restart后就会自动消失,你可以写成一个shell脚本,放到/et.c/init.d ,做一个简单的start/stop参数传递就可以了。这里我主要针对单一的服务器环境做的配置,如果你的网络连接着内部网络和DMZ区域,配置大体上也是相同的。              乙肝


e.cho 0 >;  /proc/sys/net/ipv4./tcp_ecn #关闭IP包头中的明确拥塞通知标志虚拟主机
echo 0 >.; /.proc/sys/net/ipv4/ip_forward #关闭IP转发学习
echo. 1 >; /p.roc/sys/net/ipv4/icmp_echo_ignore_broadcasts #忽略广播类型的ping,默认情况下LINUX系统.响应广播类型的ping电影
echo 1 >; ./proc/sys/ne.t/ipv4/conf/*/rp_filter #防止IP欺骗,*在这里表示你的网卡接口              乙肝
echo 1 >; /proc/sys./net/ipv4/conf/*/accept_source_route #禁.止IP源路由.
echo. 0 >; /proc/sys/net/ipv4/conf/all/accept_redirects .#禁止ICMP重定向域名
e.cho 1 >; /proc/sys/net/ipv4/tcp_syncookies #打开syn cookies.功能    外汇

ipt.ables -P INPUT DROP #给filter表(不使用-t选项,默认是filter表)的INPUT链指定一个缺省的过滤政策-禁.止所有进入的包,如果数据包进入INPUT链后没有找到匹配的规则,. 那么将使用缺省设置的DROP政策--- 印刷
iptables -A INPUT -i ! .eth0 -j ACCEPT #如果你的机.器有多个网络接口,那么这个规则将除了eth0接口(这里假设eth0是对外接口)的其他接口的进入INP.UT链的数据包允许通过,就是.容许内部网络的数据和防火墙的内部网卡通信啦           女人
iptables -A INPUT -m .state --state E.ST.ABLISHED,RELATED -j ACCEPT #设置一个INPUT链的规则,允许连接.状态是ESTABLISHED和RELATED的数据包通过.(建立连接的数据包和与先前连接相关的数据包,这个就是状态跟踪了,内核在加载或编译了这个模块后会在/proc/net/ip_conntrack里面维护一个当前连接的状态表             电子
iptables -A INPUT -f -m limit --lim.it .100/s --limit-burst 100 .-j ACCEPT #设置进入INPUT链的IP碎片限制,达到100个数字后,限制每秒100个碎片进入,防止IP碎片攻击.
iptables -A INPUT -p icmp -m limit --li.mit 1/s --limit-burst 10 -j ACCEPT. #设置INP.UT链.的ICMP连接限制,在达到10次后限制每秒允许1个ICMP数据包通过,就是防止常说的死亡之ping攻击了.
iptables -A INPUT -p tcp  --dport 80 -m state --state NEW -j ACCEPT #容..许进入目标端口为.80的,连接状态为NEW的数据包通过,就是对外开放80端口,如果需要发布其他的服务,重复这条命.令,修改一下端口号就ok了(        游戏          )


ipta.bles -A INPUT -p tcp -i et.h0 -j REJECT --reject-with tcp-reset --------------彩票
iptables -A INPUT -p udp -i eth0 -j REJEC.T --reject-with icmp-port-unreachable #这两句话是防止扫描的,主要是对其他和上面规则不匹配.的连接一律应答标准TCP连接复位和ICMP端口不可到达响应,注意,如果需要添加其.他的规则必.须加到这两条命令的上面,否则是无效的             电子

iptables -P OUTPUT DRO.P #设置OUTPUT链.的缺省策略为DROP服务器
iptab.les -A OUTPUT -p tcp -j A.CCEPT
iptables -A OUTPUT .-p .udp -j ACCEPT--- 印刷
iptables. -A OUTPUT -p icmp -j A.CCEPT #允许对外的tcp/udp/icmp数据流出--------------彩票
# iptable.s -A OUTPUT -m sta.te ESTABLISHED,RELATED -j ACCEPT #只容许连接状态为ESTABLISHED和RELATED的数据包出去,这句命令适合单独的服务器使用,.因为对出去的数据限制太严(先声明我没试过,但估.计应该可以)           鲜花
# iptables -A OUTPUT -p tcp -s 1.2.3.4 --spor.t 80 --dport 1024: -j ACCEPT #允.许源IP地址为1.2.3.4,源端口.为80的数据,目标端口为1024以上的数据流出,适合单独的.服务发布使用              乙肝

查看规则表:
iptables -.v -L (-t tabl.es)    外汇
清空规则表:
ipt.ables -F (-t tables)              乙肝
附:
iptables -t nat -A POSTROUT.ING -o ppp0 -j MASQUERA.DE. #用于动态IP NAT的,MASQUERADE是一种特.殊的SNAT,使用MASQUERADE目标可以自动寻找到外网IP地址,适合拨号的动态IP使用.
ipta.bles -t nat -A POSTROUTING .-o eth1 -j SNAT --to 1.2.3.4 #这个命令和上句相.反,静态IP的SNAT映射使用.

iptables -A INPUT -p tcp -s 1.92.168.0.0/24 --dport .www -i eth1 -j REDIRECT. --to-port 3128 #透明代理使用,将从eth1网卡进入的来源为192.168.0.0/24子网内的发往目标.端口为80的连接请求重定向到本机的3128端口,当然,前提条件是你在本机的3128端口配置运行了web.代理软件(如squid或oops)           鲜花

iptable.s  -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destnation 192.168.1.1:80 #.适合对外发布在内部服务器上运行的服务,将到达本机的80端.口的连接请求重.定向到192.168.1.1的80端口,还可使用-d选项指定目标IP地址匹配域名

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

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线warriow.
发帖
2020
C币
-139333
威望
385
贡献值
1
银元
-5
铜钱
4588
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
难道不限制FORWARD吗?
另外,iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
是不是最好写成iptables -t nat -A POSTROUTING -i eth0 -j MASQUERADE

发帖
2037
C币
-235268
威望
387
贡献值
1
银元
0
铜钱
4662
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
如果做转发那就需要限制forward 的 MASQUERADE是一种特殊的SNAT,使用在动态IP上的 一般动态IP都是PPP波号的 静态IP就不使用MASQUERADE了
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个