接上文,继续介绍一些Linux服务器的安全配置。

#6、强密码策略。
 
当我们使用 useradd、usermod 命令创建或维护用户账号时,确保始终应用强密码策略。例如,一个好的密码至少包括8个字符,包含了字母、数字以及特殊字符串、大小写等。使用诸如“John the ripper”这样的工具来查找弱口令用户,使用 pam_cracklib.so 来增强密码策略。
 
#6.1 密码生命周期。
 
chage 命令能够修改口令的修改周期,以及最近一次密码修改的日期。系统依据这些信息判断用户口令是否应该修改。在 /etc/login.defs 文件中定义了包括密码生命周期在内的一些选项。如果需要对某个用户禁用密码生命周期,如下:
 
 # chage -M  userName

获取密码过期信息,输入:

 chage -l userName

我们也可以在 /etc/shadow 文件中定义这些字段:

{userName}:{password}:{lastpasswdchanged}:{Minimum_days}:{Maximum_days}:{Warn}:{Inactive}:{Expire}:
 
其中:Minimum_days 定义密码修改的最小时间间隔,也就是用户能够修改密码的最小时间间隔。Maximum_days 定义密码有效的时间间隔,超过这个时间,用户就必须修改密码。Warn 定义口令过期多少天前开始向用户提示进行口令修改。Expire 定义从1970年1月1日到过期时的天数,之后该用户将无法再登录。
 
建议使用 chage 命令,而不是修改 /etc/shadow 文件
 
 # chage -M  -m  -W  userName

#6.2、禁止使用之前用过的密码。

 
可以设置禁止所有用户使用之前的旧密码,pam_unix 模块提供了这个功能,允许我们定义之前几个旧密码不能使用。
 
#6.3、登录失败后锁定用户。
 
在Linux中可以使用 faillog 命令来显示失败的登录或者设置失败登录限制。查看失败的登录,可以输入:
 
faillog
 
解锁登录失败的用户,运行
 
faillog -r -u userName
 
注意可以使用 passwd 命令来锁定或解锁用户密码。
 
#6.4、如何来检查是否有账号使用了空口令。
 
使用如下命令:
 
 # awk -F: '($2 == "") {print}' /etc/shadow

锁定所有空密码的账户

  # passwd -l accountName

#6.5、确保没有非Root用户的UID为0。

 
只有Root用户的UID为0,其具有系统的所有权限。使用下面的命令进行检查:
 
# awk -F: '($3 == "0") {print}' /etc/passwd
应该仅能看到root一行的结果,如果还有其他用户,请将这些用户删除。
 
#7、禁止root用户登录。
 
永远不要使用root用户登录,应该使用 sudo 来执行需要root权限的命令。sudo 避免了root口令的共享,同时提供了一些审计和追踪的功能支持。
 
#8、服务器的物理安全。
 
我们必须确保服务器的物理安全,配置 BIOS 禁止从外部设备启动。设置 BIOS 和 grub boot loader 的密码。所有的设备应当安全的存放在IDC(Internet Data Center)中,并且安排了适当的机房安检。
 
#9、禁用不需要的服务。
 
禁用所有不必要的服务和守护进程,并且将他们从随系统启动中删除。使用下面的命令来检查是否有服务随系统启动。
 
# chkconfig --list | grep '3:on'

要禁用服务,可以使用下面的命令:

# service serviceName stop
# chkconfig serviceName off

#9.1、检查网络监听的端口。

 
使用 netstat 命令查看服务器中有哪些监听端口
 
# netstat -tulpn
 
如果有不需要的服务,可以使用 chkconfig 进行关闭。如果需要对外屏蔽,可以使用 iptables 。
 
#10、删除X Windows。
 
对服务器来说,X Windows完全没有必要。可以使用包管理工具删除。
 
# yum groupremove "X Window System"

20个Linux服务器安全强化建议(二)的更多相关文章

  1. 20个Linux服务器安全强化建议(一)

    Linux服务器安全对于保护用户数据.知识产权非常重要,同时还能减少你面对黑客的时间.在工作中,通常由系统管理员对Linux的安全负责,在这篇文章中,介绍了20条对Linux系统进行强化的建议.本文所 ...

  2. 20个Linux服务器安全强化建议(三)

    #11.配置iptables和TCPWrappers.   iptables 是一个Linux内核提供的,运行在用户空间的程序,它允许用户配置自己的防火墙策略.我们可以使用防火墙将不必要的流量过滤出去 ...

  3. 20个Linux服务器性能调优技巧

    Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要 ...

  4. Linux服务器部署系列之二—MySQL篇

    MySQL是linux环境中使用最广泛的数据库之一,著名的“LAMP黄金组合”就要用到MySQL.关于MySQL的优点及作用,我就不多讲了,网上很多这样的文章. 今天我们要谈的是MySQL服务器的部署 ...

  5. Linux命令(20)linux服务器之间复制文件和目录

    linux的scp命令: scp就是secure copy的简写,用于在linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器. 有时我们需要获得远程服务器上 ...

  6. Linux服务器管理: 日志管理(二)

    日志的轮替 1.日志文件的命名规则 a.如果配置文件中拥有"dateext"参数,那么日志会用日期来作为日志文件的后缀,例如:"secure-20150630" ...

  7. Linux服务器下载与上传文件

    一.图形化工具 FileZilla.SecureCRT,连接Linux服务器后直接操作 二.命令 使用终端模拟软件连接服务器后,首先安装lrzsz工具包 yum install lrzsz rz ,上 ...

  8. [转帖]加强Linux服务器安全的20项建议

    加强Linux服务器安全的20项建议 2017-10-19 22:15:01作者:Linux编辑稿源:系统极客 https://ywnz.com/linuxyffq/99.html 一般情况下用 Li ...

  9. Linux服务器集群系统(二)--转

    引用地址:http://www.linuxvirtualserver.org/zh/lvs2.html LVS集群的体系结构 章文嵩 (wensong@linux-vs.org) 2002 年 4 月 ...

随机推荐

  1. 深入理解C++虚函数表

    虚函数表是C++类中存放虚函数的一张表,理解虚函数表对于理解多态很重要. 本次使用的编译器是VS2013,为了简化操作,不用去操作函数指针,我使用到了VS的CL编译选项来查看类的内存布局. CL使用方 ...

  2. C# 常用结构

    几种常用类的基本结构如下: public Size( double width, double height ) public Point( double x, double y) public Ve ...

  3. 预防 Session 劫持与 Session 固定攻击

    一.预防 Session 劫持 要求: ① 只允许通过 Cookie 来传递 SessionID ② 生成一个由 URL 传递的唯一标识作为 Session 的标记(token) 当请求同时包含有效的 ...

  4. A B-tree index can be used for column comparisons in expressions that use the =, >, >=, <, <=, or BETWEEN operators.

    http://dev.mysql.com/doc/refman/5.7/en/index-btree-hash.html MySQL 5.7 Reference Manual  /  ...  /   ...

  5. Apply 与 Call 的用法(简化版)

    Javascript中Apply 与 Call 的用法,这里只作简单的入门说明 function human( name, age ){ this.name = name; this.age = ag ...

  6. StringUtils.isEmpty和StringUtils.isBlank用法

    StringUtils 方法的操作对象是 java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 ...

  7. jQuery ajax 返回的数据类型

    请求数据的接口信息如下 当我们打印出返回的数据与数据节点时,我们发现数据节点显示为undefind 查看一下我们的代码 $.ajax({ type: "Post", url: &q ...

  8. Maven-007-Nexus 用户添加,用户角色分配,用户修改密码,管理员重置用户密码

    配置好 maven nexus 私服后,默认的用户可通过查看[Users]查看当前私服中所存在的用户,如下图所示:

  9. inittab 分析

    内核初始化后,启动init进程/sbin/init,读取/etc/inittab文件进行初始化. 参考链接 http://wenku.baidu.com/view/5a82b5f67c1cfad619 ...

  10. http://blog.csdn.net/ClementAD/article/category/6217187/2

    http://blog.csdn.net/ClementAD/article/category/6217187/2