资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
从十个方面讲解如何保证自己的从十个方面讲解如何保证自己的 LinuxLinux 服务器安全服务器安全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 的目的。一、检查安装条件一、检查安装条件1、首先判断系统安装的 sshd 是否支持 tcp_wrappers(默认都支持)# ldd /usr/sbin/sshdlibwrap.so.0 = /usr/lib/libwrap.so.0(0x0046e000)2、判断默认安装的 Python 版本# python -VPython 2.3.4二、已安装二、已安装 Python2.3Python2.3 以上版本的情况以上版本的情况1 1、安装、安装 DenyHostsDenyHosts# cd /usr/local/src# wget http:/jaist.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz# tar zxf DenyHosts-2.6.tar.gz# cd DenyHosts-2.6# python setup.py install程序脚本自动安装到/usr/share/denyhosts库文件自动安装到/usr/lib/python2.3/site-packages/DenyHostsdenyhosts.py 自动安装到/usr/bin2 2、设置启动脚本、设置启动脚本# cd /usr/share/denyhosts/# cp daemon-control-dist daemon-control# chown root daemon-control# chmod 700 daemon-control# grep -v “#“ denyhosts.cfg-dist denyhosts.cfg# vi denyhosts.cfg根据自己需要进行相应的修改-denyhosts.cfg-SECURE_LOG = /var/log/secure#RedHat/Fedora Core 分析该日志文件#其它版本 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加入下面这条命令/usr/share/denyhosts/daemon-control start3 3、启动、启动# /usr/share/denyhosts/daemon-control start如果要使 DenyHosts 每次重起后自动启动还需做如下设置:# cd /etc/init.d# ln -s /usr/share/denyhosts/daemon-control denyhosts# chkconfig -add denyhosts# chkconfig -level 345 denyhosts on然后就可以启动了:service denyhosts startDenyHosts 配置文件:vi /etc/denyhosts.cfgSECURE_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 = yuhongchun027163.com#管理员邮件地址,它会给管理员发邮件服务器上除 root 外,Linux 用户越少越好;如果非要添加授权用户,请给他的登陆shell 为 nologin;终止未授权用户,定期检查系统有无多余的用户都是很必要的工作。分析系统的日志文件,寻找入侵者曾经试图入侵系统的蛛丝马迹。last 命令是另外一个可以用来查找非授权用户登录事件的工具lyychee pts/2 54.107.130.61.di Mon May 22 14:14 still logged inlyychee pts/2 51.107.130.61.di Thu May 18 18:36 - 18:42 (00:05)lyychee pts/2 61.130.107.51 Tue May 16 14:21 - 14:39 (00:18)root pts/2 61.130.107.58 Sat May 13 15:40 - 15:43 (00:02)lyychee pts/2 210.32.178.253 Fri May 12 00:53 - 01:16 (00:23)root pts/2 58.107.130.61.di Wed May 10 15:33 - 15:35 (00:01)root pts/2 61.130.107.58 Tue May 9 14:58 - 15:07 (00:08)root pts/2 59.78.34.62 Sun May 7 07:40 - 07:45 (00:05)lyychee pts/2 59.78.34.62 Sat May 6 23:50 - 00:27 (00:37)lyychee pts/2 222.64.24.144 Sat May 6 10:56 - 10:56 (00:00)root pts/2 192.168.0.111 Sat May 6 00:01 - 00:02 (00:01)lyychee pts/2 222.64.22.144 Thu May 4 12:41 - 12:43 (00:0root pts/2 59.78.34.62 Tue May 2 06:59 - 07:00 (00:00)以下是一台机器上的演示图:last 命令输入的信息来自/var/log/wtmp。这个文件详细地记录着每个系统用户的访问活动。但是有经验的入侵者往往会删掉/var/log/wtmp 以清除自己非法行为的证据,但是这种清除行为还是会露出蛛丝马迹: 在日志文件里留下一个没有退出操作与之对应的登录操作(因为在你删除 wtmp 的时候,你的登录记录就没有了,但是你待会儿登出,系统还是会把你记下来),不过再高明一点就用 at 或者 cron 等自己登出之后再删文件。 (但是这种方法也还是可以查,总之 linux 没有一种操作是最强的,强到没有纰漏。就像古龙的小说一样,没有一个人是天下第一。这样看起来才有劲)另外,可以用命令 grep error /var/log/messages 检查自己的服务器是否存在着硬件损坏的情况。尝试使用 Chkrootkit 应用程序对 rootkit 的踪迹和特进行查找,从它的报告中分析你的服务器否已经感染木马。尝试使用 AIDE 来检查文件系统的完整性。推荐使用 Snort 自动检测入侵, 它集成了同类软件中最先进行技术, 并且是开放源码的。以自己的邮件服务器举例说明, 由于这是一个独立的服务器, 所以前端并没放置硬件防火墙及 Web 防火墙,所以一定要开启 iptables 来防护,其/root/firewall.sh 内容如下:#/bin/bashiptables -Fiptables -F -t natiptables -Xiptables -P INPUT DROPiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEP#load connection-tracking modulesmodeprobe ip_conntrackmodprobe iptable_natmodprobe ip_conntrack_ftpmodprobe ip_nat_ftpiptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPTiptables -A INPUT -p tcp -m multiport-dport80,443,25,465,110,995,143,993,587,465,22 -j ACCEPT在另一台机器上用扫描之王 nmap 进行扫描rootmail postfix# nmap -P0 -sS 211.143.6.XStarting Nmap 4.11 ( http:/www.insecure.org/nmap/ ) at 2009-03-29 16:21 CSTInteresting ports on 211.143.6.X:Not shown: 1668 closed portsPORTSTATE SERVICE22/tcp openssh25/tcp opensmtp80/tcp openhttp110/tcpopenpop3111/tcpopenrpcbind143/tcpopenimap443/tcpopenhttps465/tcpopensmtps587/tcpopensubmission993/tcpopenimaps995/tcpopenpop3s1014/tcp openunknownlsof -i:1014,发现又是 rpc.statd,这东东,每次用的端口都不一样啊;它不能正确处理SIGPID信号, 远程攻击者可利用这个漏洞关闭进程, 进行拒绝服务攻击; 发现rpc.statd是由服务 nfslock 开启,关闭它即可service nfslock stopchkconfig nfslock of
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号