热烈祝贺台州朗动科技的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » Linux网络/硬件 » 教你构建高性能的Linux双效防火墙

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

论坛链接
  • 教你构建高性能的Linux双效防火墙
  • 发布时间:2007-10-17 19:56:48    浏览数:6210    发布者:sunhw0725    设置字体【   
系统功能说明

包过滤和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/sda
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title 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 virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
http_access allow all
cache_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/ramdisk
mount /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 /squid
squid –z<两条命令写到myautoexec.bat中,最后加上一条“squid”,就是启动squid服务进程。到这里,squid的设置全部完成。

6、设置NAT和防火墙规则

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


#------初始化部分
iptables -F
iptables -t nat -F
modprobe ip_tables
modprobe iptable_nat
modprobe iptable_filter
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe 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 DROP
iptables –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 重启后,可以工作了。
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理