当前位置导航:炫浪网>>网络学院>>操作系统>>Linux教程

Linux安全:步步设防(3)


  作者:丁玮
  
  NFS服务
  
  
  网络文件系统是构成Unix世界文件共享访问的基础。如果希望禁止用户任意的共享目录,可以增加NFS限制,比如锁定/etc/exports文件,并事先定义共享的目录。如果不希望用户共享,只限制用户访问,就需要修改NFS的启动脚本。编辑/etc/init.d/nfs文件,找到守护进程一行并注释掉。
  
  /etc/init.d/nfs
  # daemon rpc.nfsd $RPCNFSDCOUNT
  
  
  
  系统中的很多配置文件和命令是很敏感的,修改权限和增加只读属性可以在一定程度上避免安全问题。
  
  chmod 700 /bin/rpm
  #NFS共享目录配置文件
  chmod 600 /etc/exports
  #主机访问控制文件
  chmod 600 /etc/hosts.*
  chmod R 751 /var/log
  chmod 644 /var/log/messages
  #系统日志配置文件
  chmod 640 /etc/syslog.conf
  chmod 660 /var/log/wtmp
  chmod 640 /var/log/lastlog
  chmod 600 /etc/ftpusers
  #用户口令文件
  chmod 644 /etc/passwd
  chmod 600 /etc/shadow
  #校验模块配置文件目录
  chmod R 750 /etc/pam.d
  chmod 600 /etc/lilo.conf
  #终端配置文件
  chmod 600 /etc/securetty
  chmod 400 /etc/shutdown.allow
  #系统访问安全配置文件
  chmod 700 /etc/security
  #网络系统配置文件
  chmod R 751 /etc/sysconfig
  #超级守护进程配置文件
  chmod 600 /etc/xinetd.conf
  chmod 600 /etc/inetd.conf
  chmod R 750 /etc/rc.d/init.d/
  chmod 750 /etc/rc.d/init.d/*
  #自动运行程序控制文件
  chmod 600 /etc/crontab
  chmod 400 /etc/cron.*
  #SSH配置文件
  chmod 750 /etc/ssh
  #内核控制配置文件
  chmod 400 /etc/sysctl.confg
  
  chattr +i /etc/services
  chattr +i /etc/group
  chattr +i /etc/gshadow
  chattr +i /etc/hosts.*
  chattr +i /etc/xinetd.conf
  chattr +i /etc/exports
  chattr +i /bin/login
  chattr +a /var/log/message
  
  
  
  
  关注日志
  
  
  首先要使用日志服务器。将客户机的日志信息保存副本是好主意,创建一台服务器专门存放日志文件,可以通过检查日志来发现问题。修改/etc/sysconfig/syslog文件加入接受远程日志记录。
  
  /etc/sysconfig/syslog
  SYSLOGD_OPTIONS="-m r 0"
  
  
  
  还应该设定日志远程保存。修改/etc/syslog.conf文件加入日志服务器的设置,syslog将保存副本在日志服务器上。
  
  /etc/syslog.conf
  *.* @log_server_IP
  
  
  
  可以使用彩色日志过滤器。彩色日志loco过滤器,目前版本是0.32。使用loco /var/log/messages | more可以显示出彩色的日志,明显标记出root的位置和日志中异常的命令。这样可以减少分析日志时人为遗漏。
  
  还要进行日志的定期检查。Red Hat Linux中提供了logwatch工具,定期自动检查日志并发送邮件到管理员信箱。需要修改/etc/log.d/conf/ logwatch.conf文件,在MailTo = root参数后增加管理员的邮件地址。Logwatch会定期检查日志,过滤有关使用root、sudo、telnet、ftp登录等信息,协助管理员分析日常安全。
  
  检查本机具有suid和sgid的文件。具有suid和sgid的文件具有相当的危险性。简单说就是普通用户使用这些命令时可以具有超级用户的权限,用户就直接进入超级用户环境。有很多命令是需要suid和sgid的。在系统安装时就把这些命令找到,并作为标准以比较出现问题的机器就可以发现安全问题。除了suid和sgid外,如果发现有些文件不属于任何用户,也可能是安全出现漏洞。下面的命令可以将以上的文件列表保存到文件中,备份这些文件,以后用来方便比较。
  
  find / -xdev -type f -perm +6000 2> /dev/null > /root/backup/audit/suid.log
  find / -xdev -nouser -o -nogroup > /dev/null > /root/backup/audit/nouser.log
  find / -xdev -type f -perm -2 > /dev/null > /root/backup/audit/other.log
  
  
  
  
  使用SSH
  
  
  当管理员远程管理客户机时,除了Webmin方便通过浏览器管理外,命令行的使用更加快捷。而telnet是明文传输的,为了防止被嗅探器捕捉敏感信息,使用SSH是最好的选择。SSH会在第一次连接时在通讯的两台机器之间生成密钥,随后的通讯是通过加密方式传输的,嗅探器将无法有效地分析信息。如果是Linux直接使用SSH命令将可以连接到对方主机,如果是从Windows连接,则需要软件的支持,推荐使用PuTTY,可以从http://www.chiark.greenend.org.uk/~sgtatham/putty/下载,目前的版本是0.52。SSH使用的是TCP端口22。注意不要使用任何r进程,比如rlogin、rcp等。
  
  
  使用更安全的文件传输
  
  
  除非需要FTP传输大量文件,不然可以使用SCP来代替。同SSH一样,SCP是通过密钥来创建加密通道的。在Windows上的WinSCP可以从http://winscp.vse.cz/下载,目前版本是2.0.0 (Build89)。但是如果需要传输大量的文件,SCP会导致处理器在处理加密上耗费过多的资源,可以使用proftp来代替。Red Hat Linux缺省使用的Wuftp服务,从http://www.proftpd.org/下载,目前的版本是1.2.4。
  
  
  使用系统快照
  
  
  系统快照是利用对系统文件编排数据库来定期发现系统的变化。推荐使用tripwire,目前的版本是2.3.1-10。需要注意的是,tripwire的配置文件很全面,但是不一定适合你的系统,因此需要定制twpol.txt文件。定制的原则是首先安装完整的系统,随后安装tripwire,使用缺省的配置文件制作系统快照。根据提示的错误信息,用#屏蔽掉多出来的配置信息,随后重新生成数据库。
  
  rpm ivh tripwire-2.3.1-10.i386.rpm
  #修改twpol.txt文件,屏蔽掉系统中不存在的文件,随后开始安装
  /etc/tripwire/twinstall.sh
  #安装会要求输入生成密钥的密码和更新数据库的密码
  #注意复制密钥的操作,不然会在初始化中提示文件不存在的错误
  cp /etc/tripwire/$HOSTNAME-local.key /etc/tripwire/localhost-local.key
  #初始化tripwire,生成数据库,其中会要求输入密钥的密码
  tripwire --init
  #通过系统快照判断系统的变化,并且发送邮件到指定用户
  tripwire --check -M
  
  
  
  
  使用基于主机的入侵检测
  
  
  IDS可以帮助管理员发现突破安全的企图。在企业中基于主机的入侵防御比基于网络的更重要,毕竟企业的网络是在防火墙后。建议使用snare,目前在Red Hat Linux 7.2上支持的版本是0.9-1,可以到http://www.intersectalliance.com下载。其中snare-core是核心的守护进程。snare是图形界面的显示程序。安装完毕后会产生名为audit的守护进程。snare关心的是以root操作或修改文件权限,以及访问敏感数据的日志。因此可以通过配置文件来定义适合自己系统的入侵检测日志系统。缺省的安装已经提供了完整的配置,可以满足一般的需求。
  
  
  其它安全工具
  
  
  使用Bastille工具
  
  Bastille是一组安全设置脚本的集合,前面的很多设置可以使用Bastille来自动完成。首次安装完Bastille后,BastilleBackEnd可以使用以前设置好的配置文件。配置/etc/Bastille/config文件就可以完成安全脚本的定制。Bastille的一般配置中没包括防火墙等参数。如果需要,可以在安装完后使用InteractiveBastille.pl交互安装。Bastille将会启动向导窗口,只要选择是或者否就可以生成适合自己系统的配置文件。Bastille的配置方案略。
  
  使用木马检查工具
  
  chkrootkit就是通过校验系统中重要的命令,来判断是否被替换,因为是根据已出现的木马与后门工具编写的,要注意经常更新。
  
  使用自动运行程序
  
  使用crontab可以减少管理员的工作强度。比如加入定期的tripwire校验、chkrootkit校验,并发送结果到管理员的制定信箱。
  
  提醒大家注意:至少应有一台日志服务器,并且使用不同类型的Linux版本或者操作系统;所有的桌面机需在防火墙内,并且禁止使用调制解调器连接互联网;至少有一个入侵检测系统,多个传感器分布在网络中;至少有2名系统管理员互为备份;不要使用root直接登录;不要使用telnet远程登陆;任何的系统更改需要文档化;毕竟一分预防胜于十分的治疗。
  
  以上仅仅是简单的说明了企业中Linux安全的基本设置。如果连基本设置都没有达到,安全问题将会困扰系统管理员。还有很多更复杂的安全设置没有介绍,比如限制网络的交互、限制资源等。因为介绍的是防火墙内的桌面机,所以防火墙、邮件服务器、文件和Web服务器的安全设定也都没加以描述,但是决不是说安全照这样做了,就可以高枕无忧。这些只是入门,还远远不够。很多具体使用情况和更深入的配置欢迎关心Linux安全的管理员交流。
  
  (责任编辑 Sunny)
相关内容
赞助商链接