• 20个Linux服务器安全强化建议(二)


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

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

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

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

    锁定所有空密码的账户

    1  # 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"
  • 相关阅读:
    我是如何学习和工作的(1)
    SQL server事物复制报错:要复制的 LOB 数据的长度(xxxxx)超出了配置的最大值 65536
    SQL Server2012高可用之事物复制(发布订阅)测试
    MySQL参数学习(一)
    Oracle间隔(interval)分区
    oracle异机恢复测试
    使用awrsqrpt.sql查看执行计划demo
    使用10046追踪执行计划demo
    js中call、apply和bind到底有什么区别?
    为什么0.1+0.2=0.30000000000000004
  • 原文地址:https://www.cnblogs.com/cocowool/p/5629737.html
Copyright © 2020-2023  润新知