当前位置: 首页 > news >正文

SmoothWall的小企业应用

引子
S公司是一家小型的设计公司,办公室有5台PC设备,租用了一条宽带线路用以满足大家工作中访问Internet的需要。公司经常需要与外部客户共享数据,偶尔一些员工也会在家里访问公司的机器以完成工作。现在S公司面临的问题是公司的信息和数据正毫无限制的被暴露在Internet之上。当然,购买一台防火墙是解决问题的好办法,但是几千乃至上万元的投入对于S公司的现状来说实在是太过昂贵了,所以,我们将要开动脑筋,以一种更为经济的方式实现防火墙应用。
准备工作
现在有很多Linux或BSD内核为基础的免费防火墙软件,运行在标准PC硬件上,其性能虽然比纯粹的硬件防火墙有一些差距,但是比软件防火墙要好得多,足以满足性能上的要求,而且其功能也相当的强大。由于S公司没有专业的Linux技术人员,选择一款易用的产品就显得尤为重要了,我们针对这种情况选择了SmoothWall,一种基于Linux、具有良好用户接口的开源防火墙软件。我们在 [url]www.smoothwall.org[/url]上下载了该产品最新的2.0版本,下面就要为防火墙软件搭建一个硬件环境了。既然以节省资源为宗旨,就让我们看看库房里有什么可以利用的吧,经过一番搜罗,我们找到了一台旧的兼容机,配置是赛扬400的CPU,64M的SDRAM,带有一块4.3G的硬盘,这个性能应付3-5台机器应该不成问题,我们放弃了原有的一块ISA网卡,另外买了两块新的PCI接口8139网卡,PCI网卡对降低CPU占用率还是很有帮助的。
安装过程
打开机器,从我们用下载文件刻录的光盘引导,将进入到初始安装界面,最下方有boot:字样的提示,敲击回车将加载安装程序。安装时的选项大部分选择默认即可,我们对一些主要的选项进行一些说明。在选择安装源的界面选择默认的CD-ROM。安装程序将自动在我们的硬盘上建立根分区和交换分区等,并将硬盘格式化为ext3格式,我们无须进行配置。配置网络参数的部分需要进行一些设置,在这里首先要向大家介绍一下SmoothWall处理网络接口时的概念;本地网络接口被称为“Green”,通常连接的是受保护的内部网络,外部接口称为“Red”,通常连接Internet,还有一个接口称为“Orange”,就是我们通常所说的DMZ接口,连接在该接口上的区域一般都是提供给Internet访问的机器,例如Web服务器等等;点击Probe按钮之后安装程序很容易就为8139网卡加载了驱动程序,当系统中不只有一块网卡的时候,安装程序会报告首先被检测到的一块,默认的情况下这块网卡会被分配给Green接口使用,如果这块网卡并不是想分配给Green接口的那块,可以选择该界面上的Skip按钮继续显示和选择其它的网卡,在这个步骤里我们主要是激活并正确配置Green接口;在之后配置IP地址的步骤我们维持缺省的IP地址192.168.0.1和子网掩码255.255.255.0做为Green接口的IP地址配置;到这里位置我们就完成了基本的安装设置,继续点击OK按钮之后程序文件将被安装到硬盘中,大约2-3分钟之后,系统会提示我们安装完成,我们重新启动系统之后再进行其它配置。
使用setup程序维护系统基本参数
重新启动系统之后,我们可以用root做为用户名以空密码登录到系统中。通过执行setup命令启动基本设置程序,在这里我们主要设置一些系统的基本参数,也更改安装过程中的设置。setup程序中主要需要维护的是Networking中的设置。在第一项网络类型配置中我们应该选择第三项Green+Red;除非我们的拨号设备是内置卡或者USB接口的,我们才应该选择前两个带有(Red is Modem/ISDN)字样的选项,这种情况下需要在setup程序的ISDN和ADSL配置中维护拨号参数;而对于常见的使用ADSL Modem或拨号路由器的用户来说,Red接口被视为独立的,其拨号参数的设置应该通过浏览器登录到管理界面进行维护。在Networking第三项设置中为接口设置地址,这里我们必须为Red接口选择设备类型即PPPoE。我们进入Hostname选项将默认的主机名smoothwall改为firewall,当然,也可以改为更具隐蔽性的名字,但至少不要保留默认的设置,向自己的朋友夸耀自己在用SmoothWall也许没什么害处,但是告诉Internet上的那些家伙可就不那么有趣了。当然,利用’root password’、 ’setup password’和Admin password选项更改root用户、admin用户以及setup用户的密码是必要的措施。
通过浏览器管理维护防火墙设置
在系统参数被正确的维护之后,我们就可以通过访问 [url]http://192.168.0.1:81[/url](或 [url]https://192.168.0.1:441[/url])登录管理中心,维护防火墙规则或设置各种网络参数。登录时需要输入admin用户名和密码。
与setup程序类似,主要的配置部分都在networking大项中。首先利用networking大项中的ppp setting小项设置宽带拨号参数,在Profiles栏的profile name字段中填入拨号设置的名字,在Telephony栏的Interface下拉列表里选择PPPoE,在Authentication栏中填写好宽带拨号的用户名和密码,并在DNS栏中维护好DNS服务器设置。完成设置之后我们可以点击control大项进入防火墙的全局状态页面,在该界面还可以进行手动拨号。记得勾选ppp setting中的Connect on SmoothWall restart选项,这样每次防火墙启动的时候会自动完成拨号,而无需我们手动拨号了。networking大项的advanced小项中有一些不错的功能,包括阻塞ping回应、阻塞SYN DoS、阻塞IGMP包、阻塞多播传输以及启用通用即插即用支持,应该全部勾选。
我们下面来重点介绍一下防火墙规则方面的内容。在SmoothWall的设计中,外部网络对本地网络和DMZ的访问是缺省禁止的,除非在networking的第一个小项port forwarding中维护相应的规则,否则外部网络无法对本地网络和DMZ进行访问,而本地网络可以不受限制的访问外部网络;内部网络的所有TCP连接可以不受限制的访问DMZ,但UDP连接是不可以的,而DMZ上的机器想访问本地网络的话,必须在networking第三个小项dmz pinholes中为其维护相应的条目;networking中的第二个小项external service access可以限制外部网络的哪些IP地址可以访问防火墙的哪些端口,最主要的作用是为了定义如何远程管理防火墙;值得一提的是,我们可以在port forwarding中将外网的端口请求映射成本地网络的其它端口,以实现更高的安全性,例如维护一条规则使外部网络对5000端口的请求转发到内网的80端口上。一般来说,我们在安装完成之后无需增加任何防火墙规则,因为在缺省规则下,公司的员工可以自由访问Internet,而内部数据处于良好的保护之下。如果外部网络上的客户需要访问公司内部网络的数据或者员工希望在家的时候也能连通到内网,我们根据这些需要维护相应的访问规则就可以了,记住使用防火墙的最重要原则,开放的越少就越安全!
结语
本文向通过实例向大家介绍了一种经济型防火墙系统的实现过程,相信看完本文,您也可以为自己的办公室配置一台廉价而实用的防火墙,赶快动手吧!



本文转自 离子翼 51CTO博客,原文链接:http://blog.51cto.com/ionwing/56950,如需转载请自行联系原作者

相关文章:

  • AWS简介与历史
  • FOSCommentBundle功能包:设置Doctrine ORM映射(投票)
  • 一个16年毕业生所经历的php面试
  • svn1.5+TortoiseSVN1.5+VisualSVN1.5
  • sed常用
  • sublime配置文件
  • 性能测试之手机号码python生成方式
  • centos7 安装 keepalived
  • nginx访问http80端口跳转https443端口
  • 10.6 监控io性能;10.7 free;10.8 ps;10.9 查看网络状态;10.10 抓包
  • shell $$ 的详解
  • Struts1.x 跨站脚本(XSS)漏洞的解决
  • 综合应用WPF/WCF/WF/LINQ之三十:代码生成器之DBMLToDAL
  • Cocos Creator 音频API控制调频
  • OpenGL ES 之对各种坐标系统的记录理解
  •  D - 粉碎叛乱F - 其他起义
  • exports和module.exports
  • javascript从右向左截取指定位数字符的3种方法
  • JavaScript设计模式与开发实践系列之策略模式
  • learning koa2.x
  • TypeScript实现数据结构(一)栈,队列,链表
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 讲清楚之javascript作用域
  • 普通函数和构造函数的区别
  • 前端设计模式
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 如何胜任知名企业的商业数据分析师?
  • 树莓派 - 使用须知
  • 思维导图—你不知道的JavaScript中卷
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 跳前端坑前,先看看这个!!
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 写代码的正确姿势
  • 新版博客前端前瞻
  • 用Canvas画一棵二叉树
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • $ git push -u origin master 推送到远程库出错
  • ( 10 )MySQL中的外键
  • (16)Reactor的测试——响应式Spring的道法术器
  • (多级缓存)多级缓存
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (四)汇编语言——简单程序
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)关于多人操作数据的处理策略
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Project Open Day(2011.11.13)
  • /etc/sudoer文件配置简析
  • @entity 不限字节长度的类型_一文读懂Redis常见对象类型的底层数据结构
  • @Mapper作用
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [ACM] hdu 1201 18岁生日