您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

构建高性能的Linux双效防火墙

添加时间:2011-1-27  添加: admin 
系统功能说明

包过滤和WEB代理双效合一。由iptables 实现包的过滤,由Linux下大名鼎鼎的squid结合NAT来实现透明WEB代理。SQUID代理的性能本身已经是代理服务器中的佼佼者,本系统将其性能发挥的极至:通过ramdisk技术,让SQUID把网页cahce到内存中,这样,你所访问的网页,除了第一次需要到网络上取,以后都将来自内存!下面介绍如何用Redhat来实现的方法和步骤。

(1)选择一台比较稳定的计算机,装上两块网卡,256MB或512MB内存,硬盘10GB(注意:第一块网卡接内网,第二块网卡接外网)。

(2)安装RedHat,安装时选择服务器模式,自动分区。

(3)大概在10-15分中后系统安装完毕,重启后进入系统,开始配置系统。

1、开启包转发

编辑/etc/sysctl.conf,将net.ipv4.ip_forward=0 该为net.ipv4.ip_forward=1,保存修改。其目的是允许Linux内核做IP包的转发:允许IP数据包从一个网络接口穿越到另一个网络接口,只有这样,系统才具有充当包过滤防火墙的条件。

2、激活RamDisk

修改/etc/grub.conf:

#boot=/dev/sdadefault=0timeout=10splashimage=(hd0,0)/grub/splash.xpm.gztitle RedHat Linux (2.4.7-10)        root (hd0,0)        kernel /vmlinuz-2.4.7-10 ro root=/dev/sda6   ramdisk=268435        initrd /initrd-2.4.7-10.img<

其中ramdisk=268435 是我们要添加的内容,目的是告诉系统默认的 ramdisk的大小是268435KB,也就是256MB。注意千万不可以直接写256MB,这样系统是不认识的,必须要换成KB才行!(摸索了好几个月的心得!),这样设好,重新启动后就系统就回自动生成一个256MB的虚拟盘了。当然,你要根据自己的内存大小来设置这个参数,如果不运行XWINDOWS,设你总内存的一半都没问题,因为Linux系统本身并不需要很多内存的。

3、设置squid参数

编辑/etc/squid/squid.conf,在末尾加入以下条目:

httpd_accel_host virtualhttpd_accel_port 80httpd_accel_with_proxy onhttpd_accel_uses_host_header onhttp_access allow allcache_dir ufs /squid 256 16 256<

前面四条参数使squid提供透明代理提供基础。“http_access allow all”表示允许所有的客户机器都可以访问代理;这里特别强调的是最后一条 “cache_dir ufs /squid 256 16 256”,squid默认的cache_dir是“/var/spool/squid”,我们因为要让squid将内容cache到内存中,所以这里先改成/squid,接下来要将ramdisk影射到/squid目录中。

4、建立ramdisk

用下面的两条命令来完成:

(1)mkdir /squid 建立目录“/squid”。

(2)mkfs /dev/ramdisk 创建文件系统。

(3)mount /dev/ramdisk /squid 将ramdisk 挂载到/squid目录。

由于ramdisk在每次重启后会消失,因此,为了让系统启动时自动建立好,我们可以建立一个自动装载ramdisk的批命令:

mkfs /dev/ramdiskmount /dev/ramdisk /squid<

将这两条命令写到一个文件中,我们暂且用myautoexec.bat作为文件名,为了方便起见,我们建立/admin目录,然后将myautoexec.bat文件保存在/admin下,并加给可执行的权限:chmod +x myautoexec.bat。但这样系统启动时并不会被调用,所以我们还要做一件事:编辑/etc/rc.local 文件,在文件末尾插入一行:/admin/myautoexec.bat,这样,系统就会自动调用myautoexec.bat了。

5、初始化squid

还记得“cache_dir ufs /squid 256 16 256”这个参数吗?初始化过程实际上就是squid在指定的cache_dir中建立指定的一级目录(这里是16),然后在每个一级目录中建立256个二级目录。使用的命令是:“squid –z ”。但现在这时输入命令系统会报告出错,因为/squid现在的属主是root, squid 没有权限操作root的文件,所以还要先把/squid目录指派给squid用户,用“chown squid.squid /squid”。再一次运行“squid –z ”,不到一秒钟时间就可完成。如果这个过程是在磁盘上而不是在ramdisk上,一般要工作几十秒钟。

同样,这步的设置也要把:

chown squid.squid /squidsquid –z<

两条命令写到myautoexec.bat中,最后加上一条“squid”,就是启动squid服务进程。到这里,squid的设置全部完成。

6、设置NAT和防火墙规则

为了方便起见,建立文件/admin/myfirwall,将规则都写到文件中:

#------初始化部分iptables -Fiptables -t nat -Fmodprobe ip_tablesmodprobe iptable_natmodprobe iptable_filtermodprobe ip_conntrack_ftpmodprobe ip_nat_ftpmodprobe ipt_state#——初始化结束#-START NAT<<<<<让地址为10.27.0.0/16的内部计算机可以伪装上因特网。iptables -t nat -A POSTROUTING -o eth1 -s 10.3.37.0/24  -j MASQUERADE#>>>>>end NAT#端口转换,将所有发到外网的请求端口为80的都转到3128去,让squid来处理,这一#--条是透明代理的关键<<<<<<iptables   -t nat -A  PREROUTING -i eth0 -d ! 10.27.0.0/16  -p tcp  -m tcp  --dport 80 -j REDIRECT --to-ports 3128#>>>>>>>end 端口转换#防火墙规则<<<<<<< 这里要根据你的要求来定了iptables -A INPUT -i eth1 -s  0.0.0.0/0 -p ICMP -j DROPiptables –A INPUT –i eth1 –s 0.0.0.0/0 –p TCP –port ! 80 –j DROP<

以上两条分别是将所有从外网进来的ping包都统统丢弃,将所有由外网发起的非80端口的请求都统统丢弃,意思就是只不允许从外网向内网发ping ,只允许外网访问内网的HTTP服务。完整的防火墙规则要根据你的网络安全要求来制定,这里只做参考。

说明:所有以#开头的行表示说明,不用写入文件,保存为/admin/myfirewall,并用“chmod +x /admin/myfirewall”使其可以执行。编辑/admin/myautoexec.bat,加入“/admin/myfirewall”在最后一行。到此为止,我们的好性能防火墙全部配置完成,运行reboot 重启后,可以工作了。


关键字:Linux 双效 防火墙
分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站