当前位置: 技术问答>linux和unix
linux下的防火墙
来源: 互联网 发布时间:2015-04-13
本文导语: 最近开始研究linux下的防火墙,请问各位高手如何下手? 应该使用哪个版本的linux,应该看哪些书,应该学习些哪方面的知识,请详细介绍! 在这里谢谢了! | 当然是看内核方面的源代码了,...
最近开始研究linux下的防火墙,请问各位高手如何下手?
应该使用哪个版本的linux,应该看哪些书,应该学习些哪方面的知识,请详细介绍!
在这里谢谢了!
应该使用哪个版本的linux,应该看哪些书,应该学习些哪方面的知识,请详细介绍!
在这里谢谢了!
|
当然是看内核方面的源代码了, 具体位置是/usr/src/linux/net/ipv[46]/netfilter
至于iptables则有单独的包,可以去http://www.netfilter.org/下载
phrack 61的一篇文章也有分析,你可以去看看
地址是:http://www.nsfocus.net/index.php?act=sec_doc&do=view&doc_id=862
至于iptables则有单独的包,可以去http://www.netfilter.org/下载
phrack 61的一篇文章也有分析,你可以去看看
地址是:http://www.nsfocus.net/index.php?act=sec_doc&do=view&doc_id=862
|
借花献佛了,呵呵
1.关于DNAT的补充说明!
对于用ADSL拨号上网的用户,外部网卡往往获取的ip地址是不固定的,所以虚拟主机,或者WWW,mail,ftp发布可能会有些问题,在此针对ADSL的不固定IP情况设置相应的DNAT策略,使能正常发布内网的FTP,MAIL,WWW。
我们这里以发布WWW为例,还是192.168.0.2为内部WWW服务器,只不过现在的服务器是通过ADSL上网
所以我们添加以下策略:
ptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
将80请求转发至192.168.0.2:80端口
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 192.168.0.2 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.0.1
返回a.b.b.d时数据源来自同一子网,就将其源地址更改为192.168.0.1,从eth0发出,并在连接跟踪表中查出a.b.c.d是从ppp0进来的,又由ppp0将此数据发出。(我也看不明白为何要有这句话)
iptables -A INPUT -p tcp --dport 80 -i ppp0 -j ACCEPT
允许80端口访问的语句。
然后重新
/etc/rc.d/init.d/iptables save
/etc/rc.d/init.d/iptables restart
其他如FTP发布也可举一反三:
ptables -t nat -A PREROUTING -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.0.2:21
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 192.168.0.2 -p tcp -m tcp --dport 21 -j SNAT --to-source 192.168.0.1
iptables -A INPUT -p tcp --dport 21 -i ppp0 -j ACCEPT
上网的时候,用ifconfig看看ppp0的地址,然后用那个地址看看WWW是否正常发布。呵呵,应该是没问题的哦!
2.关于封QQ,联众和边峰游戏的补充说明
相信很多公司的老板会让网管通过防火墙来封锁QQ,联众和边峰游戏,但又不能耽误其他事,我这里有个简单的配置文件服务器也是通过ADSL上网,能简单的实现以上要求:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A FORWARD -p icmp -j ACCEPT 开放ping功能
iptables -A FORWARD -p tcp -s 192.168.0.0/24 --dport 80 -j ACCEPT 开放网页浏览功能
iptables -A FORWARD -p tcp -s 192.168.0.0/24 --dport 25 -j ACCEPT 开放smtp发信功能
iptables -A FORWARD -p tcp -s 192.168.0.0/24 --dport 110 -j ACCEPT 开放pop3收信功能
iptables -A FORWARD -p tcp -s 192.168.0.0/24 --dport 21 -j ACCEPT 开放默认FTP功能
iptables -A FORWARD -p tcp --dport 4000 -o ppp0 -j DROP 封锁边峰
iptables -A FORWARD -p tcp --dport 2000 -o ppp0 -j DROP 封锁联众
iptables -A FORWARD -p udp -s 192.168.0.0/24 --dport 8000 -j DROP 封锁QQ(有时udp4000端口也要封锁)
iptables -A FORWARD -p udp -j ACCEPT 允许其他UDP服务,比如DNS等
IPTABLES -A FORWARD -p TCP --dport 1863 -j ACCEPT
IPTABLES -A FORWARD -p TCP --dport 7801:7825 -j ACCEPT
IPTABLES -A FORWARD -p TCP --dport 6891:6900 -j ACCEPT
上面三条是开放了MSN, 不知行不行?
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
3.我不想让人家可以PING到我
这大概是做防火墙用到最多的一种了 你可以在iptables写这句话
iptables -A INPUT -p icmp --icmp-type echo-request -i ppp0 -j DROP
1.关于DNAT的补充说明!
对于用ADSL拨号上网的用户,外部网卡往往获取的ip地址是不固定的,所以虚拟主机,或者WWW,mail,ftp发布可能会有些问题,在此针对ADSL的不固定IP情况设置相应的DNAT策略,使能正常发布内网的FTP,MAIL,WWW。
我们这里以发布WWW为例,还是192.168.0.2为内部WWW服务器,只不过现在的服务器是通过ADSL上网
所以我们添加以下策略:
ptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
将80请求转发至192.168.0.2:80端口
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 192.168.0.2 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.0.1
返回a.b.b.d时数据源来自同一子网,就将其源地址更改为192.168.0.1,从eth0发出,并在连接跟踪表中查出a.b.c.d是从ppp0进来的,又由ppp0将此数据发出。(我也看不明白为何要有这句话)
iptables -A INPUT -p tcp --dport 80 -i ppp0 -j ACCEPT
允许80端口访问的语句。
然后重新
/etc/rc.d/init.d/iptables save
/etc/rc.d/init.d/iptables restart
其他如FTP发布也可举一反三:
ptables -t nat -A PREROUTING -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.0.2:21
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 192.168.0.2 -p tcp -m tcp --dport 21 -j SNAT --to-source 192.168.0.1
iptables -A INPUT -p tcp --dport 21 -i ppp0 -j ACCEPT
上网的时候,用ifconfig看看ppp0的地址,然后用那个地址看看WWW是否正常发布。呵呵,应该是没问题的哦!
2.关于封QQ,联众和边峰游戏的补充说明
相信很多公司的老板会让网管通过防火墙来封锁QQ,联众和边峰游戏,但又不能耽误其他事,我这里有个简单的配置文件服务器也是通过ADSL上网,能简单的实现以上要求:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A FORWARD -p icmp -j ACCEPT 开放ping功能
iptables -A FORWARD -p tcp -s 192.168.0.0/24 --dport 80 -j ACCEPT 开放网页浏览功能
iptables -A FORWARD -p tcp -s 192.168.0.0/24 --dport 25 -j ACCEPT 开放smtp发信功能
iptables -A FORWARD -p tcp -s 192.168.0.0/24 --dport 110 -j ACCEPT 开放pop3收信功能
iptables -A FORWARD -p tcp -s 192.168.0.0/24 --dport 21 -j ACCEPT 开放默认FTP功能
iptables -A FORWARD -p tcp --dport 4000 -o ppp0 -j DROP 封锁边峰
iptables -A FORWARD -p tcp --dport 2000 -o ppp0 -j DROP 封锁联众
iptables -A FORWARD -p udp -s 192.168.0.0/24 --dport 8000 -j DROP 封锁QQ(有时udp4000端口也要封锁)
iptables -A FORWARD -p udp -j ACCEPT 允许其他UDP服务,比如DNS等
IPTABLES -A FORWARD -p TCP --dport 1863 -j ACCEPT
IPTABLES -A FORWARD -p TCP --dport 7801:7825 -j ACCEPT
IPTABLES -A FORWARD -p TCP --dport 6891:6900 -j ACCEPT
上面三条是开放了MSN, 不知行不行?
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
3.我不想让人家可以PING到我
这大概是做防火墙用到最多的一种了 你可以在iptables写这句话
iptables -A INPUT -p icmp --icmp-type echo-request -i ppp0 -j DROP
|
先学一下防火墙的原理,再学会LINUX下的iptables和netfilter的使用,最好能读一下相关的源代码。进一家网络安全公司,写自己的LINUX防火墙。(不能排除有的网络安全公司把iptables包装一下,变成中国第三代,达到国际先进水平的,自主知识产权的防火墙)。
|
我也在学,正在读iptables/netfilter 得源代码,
可以交流一下,
qq 64385885
cvsuser(猪头)
可以交流一下,
qq 64385885
cvsuser(猪头)