Linux服务器十大安全注意事项

运维 系统运维
Linux服务器如何才能保证它的安全呢?下文介绍了linux服务器的十个安全注意事项,希望大家能够掌握。

Linux服务器如何才能保证它的安全呢?下文介绍了linux服务器的十个安全注意事项,希望大家能够掌握。

首先要保证自己的服务器的绝对安全,root密码我一般设置为28位以上,而且某些重要的服务器必须只有几个人知道root密码,这个根据公司权限来设置,如果有公司的系统管理员离职,root密码一定要更改;玩linux久了的人都应该知道,更改root密码不会影响linux的crontab计划任务,而windows2003就不一样了,如果随意更改administrator密码,会直接影响其计划任务运行。

我的Nagios外网监控服务器,刚开始测试时取的密码是redhat,放进公网一天就被人改了,郁闷死了;后来环境部署成熟以后发现仍然有不少外网ip在扫描和试探,看来不用点工具不行啊;呵呵,DenyHosts是用Python2.3写的一个程序,它会分析/var/log/secure等日志文件,当发现同一IP在进行多次SSH密码尝试时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽该IP的目的。

DenyHosts官方网站为:http://denyhosts.sourceforge.net

一、检查安装条件

1、首先判断系统安装的sshd是否支持tcp_wrappers(默认都支持)

 

  1. #ldd/usr/sbin/sshdlibwrap.so.0=>/usr/lib/libwrap.so.0(0x0046e000) 

 

2、判断默认安装的Python版本

 

  1. #python-VPython2.3.4 

 

二、已安装Python2.3以上版本的情况

1、安装DenyHosts

 

  1. #cd/usr/local/src#wgethttp://jaist.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz#tarzxfDenyHosts-2.6.tar.gz#cdDenyHosts-2.6#pythonsetup.pyinstall 

 

程序脚本自动安装到/usr/share/denyhosts

库文件自动安装到/usr/lib/python2.3/site-packages/DenyHosts

denyhosts.py自动安装到/usr/bin

2、设置启动脚本

 

  1. #cd/usr/share/denyhosts/#cpdaemon-control-distdaemon-control#chownrootdaemon-control#chmod700daemon-control#grep-v"^#"denyhosts.cfg-dist>denyhosts.cfg#videnyhosts.cfg 

 

根据自己需要进行相应的修改

----------------denyhosts.cfg------------------------SECURE_LOG=/var/log/secure#RedHat/FedoraCore分析该日志文件#其它版本linux根据denyhosts.cfg-dist内提示选择。PURGE_DENY=30m#过多久后清除DENY_THRESHOLD_INVALID=1#允许无效用户(/etc/passwd未列出)登录失败的次数DENY_THRESHOLD_VALID=5#允许有效(普通)用户登录失败的次数DENY_THRESHOLD_ROOT=3#允许root登录失败的次数HOSTNAME_LOOKUP=NO#是否做域名反解----------------denyhosts.cfg------------------------

如果需要DenyHosts随系统重启而自动启动,还需做如下设置:

#vi/etc/rc.local

加入下面这条命令

 

  1. /usr/share/denyhosts/daemon-controlstart 

 

3、启动

 

  1. #/usr/share/denyhosts/daemon-controlstart 

 

如果要使DenyHosts每次重起后自动启动还需做如下设置:

 

  1. #cd/etc/init.d#ln-s/usr/share/denyhosts/daemon-controldenyhosts#chkconfig--adddenyhosts#chkconfig--level345denyhostson 

 

然后就可以启动了:

servicedenyhostsstart

DenyHosts配置文件:

vi/etc/denyhosts.cfg

SECURE_LOG=/var/log/secure#ssh日志文件,它是根据这个文件来判断的。

HOSTS_DENY=/etc/hosts.deny#控制用户登陆的文件

PURGE_DENY=5m#过多久后清除已经禁止的

BLOCK_SERVICE=sshd#禁止的服务名

DENY_THRESHOLD_INVALID=1#允许无效用户失败的次数

DENY_THRESHOLD_VALID=10#允许普通用户登陆失败的次数

DENY_THRESHOLD_ROOT=5#允许root登陆失败的次数

HOSTNAME_LOOKUP=NO#是否做域名反解

DAEMON_LOG=/var/log/denyhosts#自己的日志文件

ADMIN_EMAIL=yuhongchun027@163.com#管理员邮件地址,它会给管理员发邮件

服务器上除root外,Linux用户越少越好;如果非要添加授权用户,请给他的登陆shell为nologin;终止未授权用户,定期检查系统有无多余的用户都是很必要的工作。

分析系统的日志文件,寻找入侵者曾经试图入侵系统的蛛丝马迹。last命令是另外一个可以用来查找非授权用户登录事件的工具

 

  1. lyycheepts/254.107.130.61.diMonMay2214:14stillloggedinlyycheepts/251.107.130.61.diThuMay1818:36-18:42(00:05)lyycheepts/261.130.107.51TueMay1614:21-14:39(00:18)rootpts/261.130.107.58SatMay1315:40-15:43(00:02)lyycheepts/2210.32.178.253FriMay1200:53-01:16(00:23)rootpts/258.107.130.61.diWedMay1015:33-15:35(00:01)rootpts/261.130.107.58TueMay914:58-15:07(00:08)rootpts/259.78.34.62SunMay707:40-07:45(00:05)lyycheepts/259.78.34.62SatMay623:50-00:27(00:37)lyycheepts/2222.64.24.144SatMay610:56-10:56(00:00)rootpts/2192.168.0.111SatMay600:01-00:02(00:01)lyycheepts/2222.64.22.144ThuMay412:41-12:43(00:0rootpts/259.78.34.62TueMay206:59-07:00(00:00) 

 

以下是一台机器上的演示图:

last命令输入的信息来自/var/log/wtmp。这个文件详细地记录着每个系统用户的访问活动。但是有经验的入侵者往往会删掉/var/log/wtmp以清除自己非法行为的证据,但是这种清除行为还是会露出蛛丝马迹:在日志文件里留下一个没有退出操作与之对应的登录操作(因为在你删除wtmp的时候,你的登录记录就没有了,但是你待会儿登出,系统还是会把你记下来),不过再高明一点就用at或者cron等自己登出之后再删文件。(但是这种方法也还是可以查,总之linux没有一种操作是最强的,强到没有纰漏。就像古龙的小说一样,没有一个人是天下第一。这样看起来才有劲)

另外,可以用命令greperror/var/log/messages检查自己的服务器是否存在着硬件损坏的情况。

尝试使用Chkrootkit应用程序对rootkit的踪迹和特进行查找,从它的报告中分析你的服务器否已经感染木马。

尝试使用AIDE来检查文件系统的完整性。

推荐使用Snort自动检测入侵,它集成了同类软件中最先进行技术,并且是开放源码的。

以自己的邮件服务器举例说明,由于这是一个独立的服务器,所以前端并没放置硬件防火墙及Web防火墙,所以一定要开启iptables来防护,其/root/firewall.sh内容如下:

 

  1. #/bin/bashiptables-Fiptables-F-tnatiptables-Xiptables-PINPUTDROPiptables-POUTPUTACCEPTiptables-PFORWARDACCEP#loadconnection-trackingmodulesmodeprobeip_conntrackmodprobeiptable_natmodprobeip_conntrack_ftpmodprobeip_nat_ftpiptables-AINPUT-ilo-jACCEPTiptables-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPTiptables-AINPUT-ptcp-mmultiport--dport80,443,25,465,110,995,143,993,587,465,22-jACCEPT 

 

在另一台机器上用扫描之王nmap进行扫描

 

  1. [root@mailpostfix]#nmap-P0-sS211.143.6.XStartingNmap4.11(http://www.insecure.org/nmap/)at2009-03-2916:21CSTInterestingportson211.143.6.X:Notshown:1668closedportsPORTSTATESERVICE22/tcpopenssh25/tcpopensmtp80/tcpopenhttp110/tcpopenpop3111/tcpopenrpcbind143/tcpopenimap443/tcpopenhttps465/tcpopensmtps587/tcpopensubmission993/tcpopenimaps995/tcpopenpop3s1014/tcpopenunknown 

 

lsof-i:1014,发现又是rpc.statd,这东东,每次用的端口都不一样啊;它不能正确处理SIGPID信号,远程攻击者可利用这个漏洞关闭进程,进行拒绝服务攻击;发现rpc.statd是由服务nfslock开启,关闭它即可

 

  1. servicenfslockstopchkconfignfslockoff 

 

停掉一些系统不必要的服务,强化内核;多关注下服务器的内核漏洞,现在linux很多攻击都是针对内核的,保证内核版本为2.6.9以上(不含2.6.9)。

总结:

希望本文介绍的Linux服务器十大安全注意事项的内容能够对读者有所帮助,更多有关linux系统的知识还有待于读者去探索和学习。

【编辑推荐】

  1. Linux系统VPS下SSH命令
  2. Linux系统下误删文件的解决方法
  3. Linux系统中的环境变量知识详解
  4. linux系统上如何备份网站和备份数据库?
  5. Linux系统下如何使用mail发送Internet邮件?
责任编辑:韩亚珊 来源: 建站学
相关推荐

2013-02-20 10:31:03

虚拟服务器服务器虚拟主机

2009-09-25 15:14:47

2009-09-24 14:53:43

打印服务器

2018-05-24 10:41:37

服务器部署企业

2010-11-02 13:09:42

DB2性能优化

2012-11-22 09:38:11

硬件升级服务器CPU

2014-01-02 09:26:04

2018-06-26 09:50:55

服务器企业运维

2009-11-10 11:38:54

2010-09-25 15:45:54

DHCP服务器安装注意

2013-11-01 11:23:52

Linux迁移Windows服务器

2011-07-25 15:50:46

2022-12-29 07:40:58

2018-02-05 09:18:46

主机服务器安全

2013-07-26 13:23:28

2010-06-21 16:23:29

2010-09-01 09:53:55

DHCP服务器

2011-07-07 10:03:09

2012-05-29 10:21:56

2009-08-26 09:09:46

服务器维护错误
点赞
收藏

51CTO技术栈公众号