`
zpball
  • 浏览: 916425 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何保证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(默认都支持)

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

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

# python -VPython 2.3.4



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

1、安装DenyHosts

# 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/DenyHosts

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


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 start


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 start

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命令是另外一个可以用来查找非授权用户登录事件的工具

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进行扫描

[root@mail 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 portsPORT STATE SERVICE22/tcp open ssh25/tcp open smtp80/tcp open http110/tcp open pop3111/tcp open rpcbind143/tcp open imap443/tcp open https465/tcp open smtps587/tcp open submission993/tcp open imaps995/tcp open pop3s1014/tcp open unknown

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

service nfslock stopchkconfig nfslock off

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

本文转自 ☆★ 黑白前线 ★☆ - www.hackline.net 转载请注明出处,侵权必究!
原文链接:http://www.hackline.net/a/special/linux/safe/2010/0622/4552.html
分享到:
评论

相关推荐

    如何保证自己的Linux生产服务器安全

    2. **限制SSH访问**:SSH是远程管理Linux服务器的主要方式,但也容易成为攻击目标。可以通过限制特定IP地址、使用密钥对认证而非密码认证、禁用root用户直接通过SSH登录以及启用防火墙规则来限制不必要的SSH连接。 ...

    25个Linux服务器安全小技巧

    ### 25个Linux服务器安全小技巧详解 #### 一、引言 随着网络安全威胁的不断升级,确保服务器的安全成为了每个系统管理员的核心职责之一。Linux因其开源性、灵活性及丰富的配置选项,在服务器操作系统中占据了...

    基于云平台的linux服务器搭建探究.pdf

    3. 稳定、安全、可靠的性能,Linux服务器采用了非常多的安全技术措施,如核心授权技术、审计跟踪技术、权限控制技术等。 4. 丰富的网络功能,在Linux服务器中,用户能够轻松的浏览各种网页,进行文件的传输等,同时...

    Linux-服务器巡检报告.docx

    总的来说,Linux服务器巡检是保证服务连续性、预防故障、提升系统性能和安全性的必要步骤。通过对硬件、软件、性能和安全的全面检查,运维人员可以及时发现并解决潜在问题,从而提高服务器的可靠性和效率。

    加固Linux SSH保证服务器安全.pdf

    加固Linux SSH保证服务器安全.pdf

    Linux服务器巡检报告

    Linux服务器巡检报告是针对Linux系统进行定期检查...综上所述,Linux服务器巡检是一个综合性的过程,涉及硬件状态、操作系统运行情况和系统性能等多个层面,通过定期巡检可以有效预防故障,保证服务器的高效稳定运行。

    Linux服务器巡检报告.pdf

    通过对以上各项的检查,可以全面评估Linux服务器的运行状况,及时发现并解决可能的问题,保证服务器的稳定性和安全性。在日常运维中,定期进行这样的巡检至关重要,能有效预防故障发生,提升服务器的整体性能。

    构建高可用Linux服务器.第4版

    《构建高可用Linux服务器》第四版是一本专为IT专业人士准备的指南,旨在帮助读者掌握如何在Linux环境中建立稳定、高效且高度可用的服务器系统。这本书涵盖了Linux运维的基础知识,特别是针对CentOS这一广泛使用的...

    Linux 服务器巡检报告.docx

    Linux 服务器在现代网络环境中扮演着至关重要的角色,保证其稳定、安全和高效运行对于任何组织都是至关重要的。 服务器基本信息 Linux 服务器巡检报告中,服务器基本信息包括服务器型号、处理器、内存、硬盘和...

    Linux服务器集群系统

    ### Linux服务器集群系统中的LVS集群体系架构解析 #### 一、引言 随着互联网的飞速发展,网络服务的需求量急剧增加,这对服务器的性能和可靠性提出了更高的要求。为了解决这一问题,Linux服务器集群系统应运而生,...

    Linux高性能服务器编程电子版

    7. **安全与权限**:理解Unix权限模型,熟悉SELinux、AppArmor等强制访问控制机制,确保服务器安全稳定运行。 8. **日志与监控**:学习如何设置和解析系统日志,以及使用工具如syslog、Prometheus、Grafana进行性能...

    Linux服务器巡检手册

    ### Linux服务器巡检手册知识点详解 #### 一、巡检目的 Linux服务器巡检是确保服务器稳定、高效运行的关键步骤之一。通过对服务器进行定期检查,可以及时发现并解决潜在问题,预防故障的发生,保证业务的连续性和...

    从十个方面讲解如何保证自己的LINUX服务器安全归类.pdf

    从十个方面讲解如何保证自己的LINUX服务器安全归类.pdf

    上传项目到Linux服务器

    对于许多开发者来说,Linux服务器因其稳定性、安全性和成本效益而成为首选。本文将详细介绍如何将项目上传至Linux服务器,并通过具体的步骤指导您完成整个过程。 #### 二、环境准备 首先,我们需要准备以下工具和...

    Linux服务器配置ppt

    Linux服务器配置是IT运维工作中不可或缺的部分,特别是在网络服务领域。本章主要讲解了Linux系统...对于IT专业人士来说,这部分知识是必备技能,能够帮助他们更好地管理和维护Linux服务器,确保服务的稳定性和安全性。

    Linux服务器集群,转载自:51CTO

    在IT行业中,Linux服务器集群是一项重要的技术,它能够提高服务的可用性和性能,同时降低成本。本文将基于给定的文件名称列表,详细讲解Linux服务器集群的三种主要实现方式:直接路由(VS-DR)、IP隧道(VS-TUN)和...

    SecureCRT登录UNIX或Linux服务器主机的软件

    SecureCRT,全称为SecureCRT for Windows,是一款功能强大的终端仿真程序,专为Windows用户设计,用于实现对UNIX或Linux服务器的安全远程访问。它支持SSH(Secure Shell)协议的两种主要版本——SSH1和SSH2,确保了...

    Linux服务器集群系统实现方案详细解析

    Linux服务器集群系统是一种提高服务可用性和安全性的技术,它通过将多台独立的服务器整合成一个逻辑上的单一系统,提供高可靠性和负载均衡。本文详细解析了Linux服务器集群的实现方案。 集群技术的核心在于,一组...

    通过COM口管理Linux系统服务器简介

    【通过COM口管理Linux系统...然而,需要注意的是,为了保证安全,应当采取必要的安全措施,如使用加密的通信协议,以防止未经授权的访问。同时,定期检查和维护串行线缆的物理连接,以确保始终能够顺利进行远程管理。

    基于linux服务器集群安全的探讨.pdf

    【基于Linux服务器集群安全的探讨】 随着互联网和信息技术的飞速发展,网络服务器承载着越来越多的学习、生活和工作的需求,其负载不断增大。为了解决单一服务器无法满足高负载的问题,集群技术应运而生。服务器...

Global site tag (gtag.js) - Google Analytics