Linux安全之道:安全部署的五个步骤(4)

ZDNet软件频道 时间:2009-11-05 作者: | 论坛整理 我要评论()
本文关键词:安全防范 系统安全 Linux
道,意味着途径或方法,是一个对实现想要的结果而设置的指南或规则,与其它道类似,安全需要一个结构化的、系统化的方法,同时,它也应该是整体的、涵盖系统生命周期(从计划到退休)的每一个部分。在本文中的道由五个步骤组成,每个Linux系统要建立一个基线都应该通过这些步骤。这些步骤不是开始也不是最终的安全方案。
步骤四:加固

在给你的新系统打好补丁后,你可能需要额外的步骤来加固它,在你的计划中应该有一个安全目标,参照这些目标确定要做哪些事情,你的目标越多,事情就越多,尽量保持简化,实际上复杂的设置会让系统更不安全,因为它们常常导致配置失效,同时,在你的安装日志中记录这些步骤。

Fedora实例已经准备好展示两个重要的步骤来增强安全性:启用SELinux和安装一个防火墙。在大多数典型的使用桌面的情况下,安装一个杀毒软件就足够了,对于Debian盒子而言,我选择了三个可以在任何服务器上使用的步骤:使用sudo、锁住ssh和使用一个限制性的iptables防火墙,这些项目应该在任何服务器上考虑部署,如果需要,它们也可以在桌面系统上应用。

sudo

sudo对于限制root访问而言是一个伟大的程序,它应该在任何服务器上接受严格的监视,将用户添加到/etc/sudoers文件中,限制它们使用su来执行特殊的命令,访问特殊的目录或访问网络主机,在sudoers文件中的任何用户只要在它运行命令前输入sudo来进入root环境即可执行想执行的程序,这比起将root密码告诉每个人来将更容易,而且更安全了。

ssh

ssh是目前Linux系统上标准的远程访问协议,在它的默认配置下,它有一些设置明确地需要你进行锁定,将下面两行添加到/etc/ssh/sshd.config文件中:

PermitRootLogin no
X11DisplayForwarding no

第一行阻止root用户通过ssh登陆到服务器,永远都不要用root用户登陆ssh,第二行禁用了X转发(它允许用户快速地从你的服务器启动一个X会话),在本例中,X并没有安装,因此这不是问题,你应该通过chroot技术或使用TCP Wrappers进一步锁定ssh,由于空间限制,我忽略了这些配置步骤。

iptables防火墙

与其长时间讨论如何正确配置一个防火墙,还不如使用我编写的现成脚本,我编写了下面的脚本并配有注释来加固Debian系统,它限制了新发起的ssh、http、ssl连接通信,将本例中的ip地址修改为你服务器的ip地址,想了解更多关于iptables可用选项的细节,请参考帮助文档,当安装你自己的防火墙时,不要忘了只在iptables中开放必须的端口以减小攻击面的目标。

#!/bin/sh

PATH=/usr/sbin:/sbin:/bin:/usr/bin

#FLUSH PREVIOUS TABLE ENTRIES
iptables --flush

#CHANGE DEFAULT POLICIES FROM
#ACCEPT TO DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

#ALLOW LOCAL LOOPBACK TRAFFIC
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#ALLOW ESTABLISHED CONNECTIONS
iptables -A INPUT -m state --state 
ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state 
ESTABLISHED,RELATED -j ACCEPT

#ALLOW DEFINED TRAFFIC
#
#SSH - 22
iptables -A INPUT -d 192.168.1.2 -p tcp 
--dport 22 --sport 1024:65535 -m state 
--state NEW -j ACCEPT

#HTTP - APACHE -80
iptables -A INPUT -d 192.168.1.2 -p tcp 
--dport 80 --sport 1024:65535 -m state 
--state NEW -j ACCEPT

#SSL - 443
iptables -A INPUT -d 192.168.1.2 -p tcp 
--dport 443 --sport 1024:65535 -m state 
--state NEW -j ACCEPT

将这些脚本保存到本地,然后拷贝或移动到/etc/network/if-up.d目录,当系统启动网络开启后它将被执行,如果你西藏应用这个配置到一个基于Redhat的系统上,你只需简单地运行上面的脚本并用iptables-save命令来重设规则,可以不用重新启动系统。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134