引言:Webmin基于Web服务环境运行的工具可以对系统和网络环境进行有效管理。Webmin具有访问控制和SSL加密传输功能,可以保证数据传输的安全性。Webmin支持插件功能。这里就从维护网络安全角度,分析Webmin的相关功能。
和Windows不 同,在Linux中执行各种系统配置操作时主要依靠的是各种命令。要想熟练的掌握众多的命令及其参数,不是一朝一夕所能实现。相比之下,使用Webmin基于Web服务环境运行的工具可以对系统和网络环境进行有效管理。Webmin具有访问控制和SSL加密传输功能,可以保证数据传输的安全性。Webmin支持插件功能,可以极大的扩展其功能,其自身包含了大多数Linux管理模块,还可以使用第三方模块来强化其功能。这里就从维护网络安全角度,分析Webmin的相关功能。
进入主控界面,在其左侧分别点击“Webmin”、“Change language snd Theme”项,在右侧选 择“Personal choice” 项,在列表中选择“Simolified Chinese(ZH_CN)”项,点击“Make Changes”按钮,重新登录后得到中文界面。默认情况下Webmin的管理员名称为“root”。
为更好的使用Webmin,需要对其进行合理设置。点击“Webmin”、“Webmin 配置”项,在右侧显示所有的配置项目。例如,点击其中的“IP访问控制”项,为了安全起见,最好选择“只允许列出的地址访问”项,输入合适的地址。在“解析每一个请求中的主机”栏中选择“是”项,则只允许拥有预设的主机名的客户机访问Webmin。
在Webmin配置页面中点击“地址和端口”项,可以对Webmin的IP和端口进行绑定。如果运行Webmin的主机拥有多个IP,可以在“Bind to IP address” 列表中选择“Any address”项,表示监听所有的IP,选 择“Only address”项,则只监听设定的IP。 在“Listen on port”列表中选择监听的端口号。点击确定按钮保存配置信息。在Webmin配置界面中点击“计入日志”项,可以设置是否激活日志记录功能,是否记录解析的主机名,以及清除日志的时间间隔。在“Users to log”栏中可以设置记录所有用户的动作或者指定用户的动作。如果主机是通过代理服务器接入Internet的话,可以在Webmin配置界面中点击“代理服务器”项,设置所需的HTTP,FTP等代理服务器地址,以及代理用户名和密码等信息。
Webmin的更大功能在于支持各种模块插件,在配置界面中点击“Webmin模块”项,在“Install”面板中的“从本地文件”栏中点击浏览按钮,选择目标Webmin模块文件来安装该模块。在“Delete”面板中显示安装的所有模块信息,点击“删除选择的模块”按钮,可以将选定的模块删除。为了提高安全性,可以在配置界面中点击“验证”项,勾选“启动口令超时功能”项,可以防止非法用户对登录密码进行猜测破解操作。在其下可以设置登录拦截功能。
Webmin提供了系统管理,服务器管理,网络管理,硬件管理,群集管理等分类,每一分类中包含了大量的管理模块,这里只谈如何利用Webmin来进行网络安全管理操作。在Webmin管理界面左侧依次点击“网络”、“Linux Firewall”项,在右侧窗口中的“Forwarded packages(FORWARD)”栏中点击“Add Ruls”按钮,在弹出界面中的“Rule Comment”栏中输入规则名称,在“Action to take”栏中选择“Drop”项,选择放弃动作。在“Destination address or network”列表中选择“Equals”项,在其右侧输入目标网址。点击“新建”按钮,完成该规则的创建操作。按照同样的方法,可以创建多条规则。这样,用户就无法访问这些网站了。
如果想禁止特定的用户上网,可以在上述“Linux Firewall”页面中的“Forwarded packages(FORWARD)”栏中点击“Add Ruls”按钮,在弹出界面中的“Rule Comment”栏中输入规则名称,在“Action to take”栏中选择“Drop”项, 在“Source address or network”列表中选择“Equals”项,在右侧输入禁止上网的客户机的IP地址,也可以输入其子网ID号(例如“172.16.22.0/39”)。 点击“新建”按钮,完成该规则的创建操作。同理,可以创建多条规则。这样,指定的主机就无法上网了。
如果想禁止指定用户禁止使用某种服务(例如 FTP服 务),可以在“Linux Firewall”页面中的“Forwarded packages(FORWARD)”栏中点击“Add Ruls”按钮,在弹出界面中的“Rule Comment”栏中输入规则名称,在“Action to take”栏中选择“Drop” 项,在“Source address or network”列表中选择“Equals”项,在右侧输入禁止上网的客户机的IP地址,也可以输入其子网ID号。在“Network protocol”列表中选择“Equals”项,在协议列表中选择“TCP”项。 在“Destination TCP or UDP port”列表中选择“Equals”项,在“Port”栏中输入指定的端口号(例如21,即FTP服务的端口)。选择点击“新建”按钮,完成该规则的创建操作。同理,可以创建多条规则。这样,指定的主机就无法使用指定的服务了。实际上,利用该方法,可以有效封锁特定主机连接的端口。
为了防止其他的主机对本机发起ICMP攻击,造成本机系统崩溃,可以禁止使用ICMP协议来防范这种攻击。在“Linux Firewall”页面中的“Incoming packages(INPUT)”栏 中点击“Add Rule”按钮,在规则添加界面中输入规则名称,在“Action to take”栏中选择“Drop”项。在“Incoming interface” 栏中选择“Equals” 项,在其右侧选择网络接口(例如“eth0”)。 在“Network protocol”栏中选择“Equals”项,在其右侧选择“ICMP”项,点击“新建”按钮,完成该规则的创建操作。在“Linux Firewall”界面中点击“Apply Configuration”按钮,激活设定的规则。
如果想让用户只能访问指定的网站,可以在“Linux Firewall”页面中 的“Showing IPtable”列表中选择“Network address translation”项,点击“Showing Iptable” 按钮,在“NAT”设置界面中的“Packets before routing(PREROUTING)”栏中点击“Add Rule”按钮,输入规则名称,在“Action to take”栏中选择“Destination NAT” 项, 在“Ips and ports for DNAT”栏中选择“IP range”项,在其右侧输入允许访问的目标网址的IP和端口号范围。在“Incoming interface”栏中选择“Equals”项,在右侧选择网卡接口(例如“eth0”)。 在“Network protocal”栏中选择“Equals”项,在右侧选择“TCP”项,点击“新建”按钮,完成该规则的创建操作。
在Linux中,可以利用Squid创建代理服务。利用代理服务,不仅可以提供文件缓存,复制和地址过滤,提高出口带宽利用率,加快内部主机访问速度,解决公有IP地址不足等功能,而且代理服务还提供了类似于网络防火墙的功能,将内外网隔离,监控和记录网络传输信息,提高局域网的安全性。
在Webmin中,可以对Squid代理服务器进行简单高效的配置操作。分别点击“服务器”、“Squid代理服务器”项,在右侧显示与其相关的配置项目。例如,点击“网络和端口”项,在设置界面中选择“List below”项,在“端口”栏中设置Squis服务使用的端口号,在“主机名/IP地址”列中选择设置项目,输入监听的IP地址,完成对Squid代理服务器监听IP和端口的设置。
在Squid 代理设置页面中点击“内存使用”项,可以根据需要设置内置使用限制,高速缓存大小等参数。为防止内存不足导致Squid代理服务出现异常,可以点击“高速缓存选项”项,为其分配磁盘空间,作为缓冲区使用。正常的网络访问离不开DNS解析服务,在Squid服务设置页面中点击“帮助程序”项,在其中的“DNS服务器地址”栏中选择“resolv.conf”项,输入合适的DNS服务器地址,保存配置信息。
在实际网络管理中,有时需要禁止某些账户上网。可以在Squid代理服务设置界面中点击“访问控制”项,在“访问控制列表”面板中的“创建新的ACL”栏右侧的列表中选择限制类型,选择“客户地址”项,表示使用客户端的IP作为限制条件。为防止其更改IP地址避开拦截,也可以使用MAC地址限制项目来阻止其非法操作。点击“创建新的ACL”按钮,在创建ACL界面中的“ACL名称”栏中输入规则名称,在“来自IP”栏中输入客户机的IP地址,点击保存完成该规则的创建。在访问控制页面中打开“代理约束”面板,点击“添加约束规则”按钮,在创建代理约束页面中选择“拒绝”项,在“匹配ACL”列表中选择上述规则,点击保存按钮即可。同理可以创建多条ACL规则,来封锁特定用户的上网操作。
如果想限制所有账户在规定的时间段内上网,可以按照上述方法,创建一条ACL约束规则,所不同的是,将IP和子网掩码都设置为“0.0.0.0”,之后保存该规则。在“访问控制”面板中的“访问控制列表”栏中选择限制类型为“日期和时间”项,点击“创建新的ACL”按钮,输入新规则名称,按下Ctrl键,之后在“星期几”列表中选择禁止上网的星期数,在“时间”栏中输入禁止上网的时间段,点击保存按钮完成该规则的创建操作。之后按照上述方法,在“代理约束”面板中同时选择上述两条规则,并选择“拒绝”项,点击保存按钮,保存规则信息。
提起透明代理,有些用户可能感到陌生。该代理方式对于内网用户来说是透明的。用户感觉不到该代理服务的存在。即用户不必在本机上手工设置代理服务器参数,就可以穿越代理服务器上网,好像代理服务器不存在一样。但是对于外网用户来说,当其访问该局域网时,只能看到该代理服务器,而无法窥视内部的主机。利用透明代理,可以有效保护内网安全。实现透明代理的方法很简单,在Squid代理设置页面中点击“杂类选项”项,在“HTTP加速主机”栏中选择“Virtual”项,在“HTTP加速端口”栏中选择“None”项,设置端口为80。在“HTTP代理加速”栏中选择“开”项,在“HTTP加速使用主机头”栏中选择“是”,点击保存按钮,就可以激活透明代理服务。
为防止用户随意上网,可以为其配置身份认证功能。只有使用正确的账户名和密码,才可以通过Squid代理服务的审核,顺利连接Internet。在Squid代理服务设置界面中点击“Authentication Programs”项,在弹出页面中的“Basic authentication programs”栏中选择“Webmin default”项,在其右侧输入认证程序读取账户文件的目录。点击保存按钮后,在Squid代理服务设置页面中点击“代理验证”项,在Proxy验证页面中点击“新增新的代理用户”链接,在创建代理用户页面中输入账户名和密码,在“启动”栏中选择“是”,点击“新建”按钮,完成新账户的创建操作。
这样,在客户端选择代理服务时,必须输入该账户名和密码,否则无法通过Squid代理的安全认证。在Squid代理服务设置页面中点击“访问控制”项,在“访问控制”面板中的“访问控制列表”栏中选择ACL类型为“外部验证”项,点击“创建新的ACL”按钮,在打开的页面中输入本ACL规则名称,在“外部验证用户”栏中选择“All users”项,其余设置保持默认,点击保存按钮保存该规则。之后在“访问控制”面板中的“代理约束”栏中点击“添加代理约束规则”链接,在“动作”栏中选择“允许”项,在“匹配ACL”列表中选择上述规则,保存配置信息即可。