SUSE由于其出色的性能和对安全较好的控制,吸引了很多企业级用户,目前在国内开始有大量的关键应用。但这并不代表SUSE在使用中就是安全的,SUSE里还有很多安全细节要注意。本文就SUSE中的这些安全细节进行逐一介绍,为大家揭开每一个需要注意的地方。
一、补丁、SSH及其他
1、补丁
每个补丁的更新都意味着这是一个安全漏洞,或是有其他严重的功能问题,但如果更新补丁则又可能导致系统的一些异常,甚至引起一些服务的瘫痪。所以对于补丁的更新要慎重处理。从实际的角度来说,有4种做法:
1)是在刚装完系统之后立刻更新补丁,然后再上应用。
2)是通过外围防护手段来保护服务器,可以用防火墙、IPS之类的手段。
3)是在测试机上更新补丁。不过值得注意的是,有些补丁带来的问题是隐性的,可能今天明天没问题,但后天出了问题,所以,观察的时间需要久一些。
4)、如果你的SUSE服务器比较多,也可以通过NFS共享或者内部的FTP、HTTP服务来完成。但FTP、HTTP又会带来另外的安全风险。
SUSE的补丁升级,需要去下载Novell的新RPM。RPM包的安装会有先有后,不过多数情况下,RPM会根据其依赖关系来处理。另外,Novell也有一些在特殊情况下的提示,比如内核更新、C运行库等。Novell公司提供了一个强大的工具YaST,不过遗憾的是,YaST自身也不安全,有在线升级不安全临时文件建立漏洞。
加固方法:输入yast,在software中选择online update。
2、SSH
SUSE上默认安装了OpenSSH,OpenSSH是目前比较流行并且免费的加密连接工具,但OpenSSH的低版本也存在不少安全漏洞,所以最好还是去http://www.openssh.org下载最新版本的。在升级到最新版本之后,SSH仍有很多需要安全加固工作要做。比如限制那些账户的登录、更改默认端口、指定可访问的网络等等,限于篇幅本文对此不做更详细的介绍。但至少有一点,是你必须要做的:将协议版本修改为2。因为版本1的安全问题实在太严重了,甚至可以截获密码。
加固方法:
vi /etc/ssh/ssh_config
修改protocol的值为2。
3、系统性能审计
对于运维人员来说,需要经常监控系统的性能情况,SUSE提供的sysstat就是一个检测系统状态的工具,比如比如CPU利用率、磁盘I/O等。sysstat默认每10分钟收集一次系统数据,可以用sar命令查看。
sysstat首先会建立一个正常的性能曲线,当这个基线建立完毕以后,任何超出基线的活动都会给出提示。例如密码猜测、或者在业务高峰期以外的事件会导致CPU利用率过高,从而偏离正常的基线。注意sysstat收集的数据默认是在系统上存放一周,一周之后会被cron任务自动移除,可在/var/log/sa/目录下来维护收集的数据。但是默认安装的服务器版本是不包括sysstat包的,除非安装的时候选择了完全安装。
加固方法:安装sysstat,并使用sar命令。
4、防火墙
SuSEfirewall2是SUSE下面的包过滤防火墙,可以允许、拒绝数据的进出。默认是安装并且激活的,而且默认不允许任何服务,要开放服务就必须明确的启用(比如上面提到的SSH)。
加固方法:
在YAST里,Center–#Security and Users–#Firewall进行防火墙策略调整。
更细粒度的策略配置,可以在YAST Center–#System#–/etc/sysconfig editor-Network/Firewall/SuSEfirewall2,也可直接编辑/etc/sysconfig/SuSEfirewall2文件。
5、系统安全定期检查脚本seccheck
seccheck是一个系统安全检查脚本,可以每天、每周、每月的定期生成报告,并且邮件发送。不过他在定期运行的时候比较占用资源,所以要选择在非业务高峰期来做。
加固方法:YAST Center-System-#/etc/sysconfig-System/Security/Seccheck selection
6、SUSE的安全应用框架AppArmor
AppArmor和SuSEfirewall2相比,他的特点在于对应用级的保护,可以管理应用的文件和目录访问等更细颗粒的操作,是一个白名单的机制,即指定哪些行为才是允许的,其他的拒绝,这样可以更好的隐藏内部系统。比如你的系统存在一个漏洞,但由于对其的操作没有受到白名单允许,所以操作会被拒绝。
加固方法:YAST Center-Novell AppArmor可以调整细节策略、查看报告。如果不熟悉的话,AppArmor还内设了一个向导功能。
二、最小化xinetd
1、关闭标准服务
SUSE使用xinetd,他比inetd更优秀也更方便使用。SUSE默认情况下是关闭所有服务的,在启用SSH之后,就可以配置xinetd的服务了。安全的做法也应该如此,先关闭所有服务,然后只启用必须的服务。
加固方法:运行chkconfig查看所有服务的开启状态,对不需要的服务进行关闭。
2、可信网络接入
对服务器的访问应该受到控制,所以需要用SuSEfirewall2或者其他的措施来控制,只允许那些可信的网络接入。
加固方法:
vi /etc/sysconfig/SuSEfirewall2中的第10项配置。也可以在yast Center#System#/etc/sysconfig editor进行配置。
3、telnet
如果不是有特别的理由,不要使用telnet,telnet使用的是不加密的网络协议,这就意味着从你的账号到你传输的数据,都可以被人窃听,严重的可以通过会话劫持控制你的系统。所以这里还是强烈建议使用SSH,虽然SSH也不是那么的安全。
加固方法:
打开的命令是chkconfig telnet on。
关闭的命令是chkconfig telnet off。
4、FTP
同样,在没有充分理由的情况下,不要使用FTP,尤其是匿名FTP。和telnet一样,FTP也不加密,也可以被人窃听或者会话劫持。SSH则提供了SCP和SFTP,可以取代FTP。要注意的是,有时候FTP可能是因为某些应用绑定的,比如我多次见到的WEB上传通道,所以你必须要用这种匿名FTP。如果必须要用FTP,那还是要做一些控制,要注意的一点是,FTP的目录应该受到控制,最好能有自己的分区。在SUSE上,vsftpd默认是不安装的。
加固方法:
打开的命令是chkconfig vsftpd。
关闭命令是chkconfig vsftpd off。
5、rlogin/rsh/rcp
所有r系列的命令都应该被关闭。他们除了可以被窃听之外,在验证机制上也存在问题,并且还有其他的安全漏洞,比如缓冲区溢出、任意命令执行等。建议还是用SSH来取代。
加固方法:
打开命令是
chkconfig rexec on
chkconfig rlogin on
chkconfig rsh on
关闭他们:
chkconfig rexec off
chkconfig rlogin off
chkconfig rsh off
6、TFTP
TFTP一般用在无盘工作站, X-terminals等情况下。路由器或者其他网络设备的配置数据可以利用它复制,实现备份功能。当然,在这里,没有特殊原因,我们仍然建议你禁用。TFTP在SUSE上也不是默认安装的。
关闭命令chkconfig tftp off
7、IMAP
只有邮件服务器才会用到IMAP,一些邮件客户端(比如Eudora、Netscape Mail和Kmail)需要使用IMAP来检索远程邮件。
加固方法:关闭服务的命令
chkconfig cyrus off或chkconfig imap off。
8、POP
这是一个收邮件的服务,作为服务器有收取邮件的需要吗?如果没有,同样也应关闭。
加固方法:chkconfig qpopper off或chkconfig cyrus off。
三、最小化启动服务
1、设置umask
系统默认的umask至少应设置成027,有些守护进程比如系统日志,会默认设置为任何人可以写文件。如果某个守护进程需要放开对权限的限制,可以考虑修改守护进程的启动脚本,给以其权限,同时又不会影响服务器的其他安全。
加固方法:
vi/etc/profile,改变umask的值为027。
对/home下的所有用户,根据其shell类型,定义umask的值。一般在/home/.profile中新增加一行umask 027。
2、SMTP
需要确认服务器是否需要处理邮件。SUSE中,默认安装的是Postfix,并且是激活状态。如果这台服务器是邮件服务器的话,需要注意的是,有权限在web界面上搜索附件是一个安全隐患。另外,如果你对邮件服务器管理有经验的话,你会知道为postfix规划一个chroot环境有多么重要。在chroot环境下,即使有人闯入了smtpd daemon,能够造成的损害也比较有限。
加固方法:
打开:vi /etc/sysconfig/mail,设置SMTPD_LISTEN_REMOTE=”yes”。在防火墙上也必须启用。
关闭:vi /etc/sysconfig/mail,设置SMTPD_LISTEN_REMOTE=”no”。
3、运行级别
SUSE里有两个主要的运行级别,级别5直接启动到X Windows,级别3则是字符界面。但注意的是,即使系统运行在级别3,用户仍然可以在shelle下执行startx来启动X Windows。
加固方法:
设置为级别3,vi /etc/inittab,将id:5:initdefault中的5修改为3。
4、X Font Server
对于服务器来说,一般不需要运行X Windows,如果不使用图形界面的话,X Font Server就可以关掉,他是为图形界面提供字体集用的,并且XFS还有一些缓冲区溢出的问题。
加固方法:关闭X Font Server:chkconfig xfs off
5、标准启动服务
每个系统的守护进程,如果你不能明确知道必须开启的话,都应该关闭。服务器上运行的脆弱应用,将大大增加风险。SUSE使用chkconfig来管理所有的系统服务脚本。这里要注意的是,SUSE的补丁程序可能会恢复启动某些服务,在更新补丁之前,最好还是先记录一下你已经启动哪些服务。还有就是一些守护进程会拥有一些账户,对这些账户要进行删除、锁定,避免别人登录,或者对他的Shell设置成/bin/false。
加固方法:
添加、删除启动服务的方法是在在不同运行级别下的目录里,首先你需要知道你的系统运行界别,使用runlevel命令查看运行级别,如果运行级别是3的话,那就需要在/etc/rc.d/rc3.d修改。这里面以S开头的,都是启动时会运行的服务。例如mv /etc/rc3.d/S04rpcbind etc/rc3.d/K04rpcbind,是将rpcbind服务关闭。
另外还需要对守护进程的账户进行删除或锁定,删除用户命令是userdel,可以删除这些用户:adm lp sync shutdown halt news uucp operator gopher,如果不用x windows的话可以删除games,如果没有匿名ftp可以删除ftp。
6、SMB和NMB
SUSE提供了Samba,为windows用户提供文件和打印共享,这样unix系统可以在windows的网络上充当文件服务器、打印服务器,甚至为早期的windows系统充当域控验证服务器。Samba需要用到SMB和NMB协议,SMB是Windows的文件共享,NMB是NetBIOS消息块。如果不需要充当这些角色的话,就应该关闭这两个协议。关闭命令 chkconfig smb off
7、NFS
NFS经常被利用来越权存取文件,所以没有需要也应关闭。即使真的需要NFS服务,也应该采取控制措施,包括限制访问的IP范围、文件的只读等。NFS的客户端服务也应关闭。
关闭命令:
chkconfig nfsserver off
chkconfig autofs off
8、NIS
除非十分有必要,否则不要使用NIS。NIS是网络信息服务的缩写,类似与windows中的域控制器。NIS虽然使用维护简单,但有设计上的安全问题,而且也完全可以用LDAP来替代。
关闭命令:
chkconfig ypserv off
chkconfig yppasswdd off
9、RPC端口映射
要想NIS能够运行,须首先运行portmap守护进程。但是RPC的验证机制很薄弱,很容易被绕过,却可以利用RPC得到很多重要的信息。除非是需要NIS,最好禁用。
关闭命令:chkconfig portmap off
10、ncpfs脚本
ncpfs是NFS、windows网络里共享文件需要用到的,但并非默认安装,如果没有网络共享在使用,就把它停掉。这个脚本会挂载在客户机的网络驱动器上,好在它不是一个持续的守护进程,所以相对来说不是那么危险。
关闭命令:chkconfig ncpfs off
11、apache
只有WEB服务器才会用到,即使这台服务器是WEB服务器,也不要把数据库和其他环境支持都放在这台服务器上。
关闭命令:chkconfig apache2 off
12、SNMP
在规模比较大的网络里会经常用到的网络管理协议,要确定你是不是在使用依赖SNMP的远程监控工具,比如HP OpenView, MRTG, Cricket等。如果使用了SNMP,也建议更改默认的community string。在SUSE中,snmp的设置在/etc/snmpd.conf里。
关闭命令:chkconfig snmpd off
13、DNS server
确定你的网络是否需要域名解析的服务器,针对DNS的攻击这两年越来越多,如果必须要用,建议在/etc/named.conf里 使用访问控制。比如,内部的DNS服务器不应该对外部开放查询。在比较大的网络里,一般都会使用内部和外部的DNS服务器分别提供查询,但一些小的网络没有条件内外分开,就应考虑访问控制。
关闭命令:chkconfig named off
14、Squid Cache服务器
Squid是一个代理服务器软件,其实Squid是一个较好的安全架构,因为他在客户端和服务器之间设置了一道代理,在一定程度上减少了系统泄露信息的风险,防止内部漏洞被发现。但是,在使用Squid的时候要仔细进行配置,有很多关于Squid cache的漏洞。如果不加安全考虑的话,外部仍然可以探测到内部的主机,或者利用你的cache来隐藏攻击者的真实IP。所以应该配置成:不允许外部人员未经认证使用你的缓存。
关闭命令:chkconfig squid off
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
SUSE安全大揭秘之“十诫”(下)
你的服务器是日志服务器吗?需要从网络上、其他主机上接收日志吗?如果是肯定的,启用日志系统的远程消息接受。
-
SUSE安全大揭秘之“十诫”(中)
SUSE和其他Linux一样,把网络参数的修改都放在了/proc/sys/net/ipv4下,这里所有文件名中包含rate和max的变量都可以防止拒绝服务攻击。