Linux 虚拟机的安全加固建议

1、修改用户的密码口令策略:

 
  • [root@centos-73-1 chpaadmin]# cat /etc/login.defs |grep -i pass
    # passwd command) should therefore be configured elsewhere. Refer to
    # Password aging controls:
    #       PASS_MAX_DAYS   Maximum number of days a password may be used.
    #       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
    #       PASS_MIN_LEN    Minimum acceptable password length.
    #       PASS_WARN_AGE   Number of days warning given before a password expires.
    PASS_MAX_DAYS   99999       修改密码有效期
    PASS_MIN_DAYS   0
    PASS_MIN_LEN    5       修改密码长度
    PASS_WARN_AGE   7
    # the user to be removed (passed as the first argument).
    # Use SHA512 to encrypt password.
  • 2、
  • 修改危险文件(命令)权限:

    对于一些比较危险的操作,如:rm,mv,ifconfig,cron,vi 等。这类命令会直接对文件或者文件内容进行操作,那么建议上述操作只给具有 root 权限的管理员来执行。可以通过命令:chmod 700 <command>,来修改上述命令的权限。

  • 3、
  • 用户登录通知:

    目前,客户只能在发现数据或者虚拟机被恶意侵入或者用户的误操作导致了数据的丢失之后,采取善后的手段,但是并没法做到提前的预警。那么通过 PAM 模块,就可以实现用户登录,root 权限获取时,通过邮件等方式进行通知。以实现,预先知道,预先警惕的目标,降低受影响的范围。以下是通过 PAM 模块实现的邮件通知用户登录的功能。

  • 4、
  • 以管理员身份登录虚拟机,并切换成 root 用户。

  • 5、
  • 新建脚本 /etc/ssh/login_notifiy.sh (该脚本可以存放在任意位置,但是需要将后续的路径指定好即可),内容如下:

     
  • #!/bin/bash
    
    [ "$PAM_TYPE" = "open_session" ] || exit 0
    {
    echo "User: $PAM_USER"
    echo "Ruser: $PAM_RUSER"
    echo "Rhost: $PAM_RHOST"
    echo "Service: $PAM_SERVICE"
    echo "TTY: $PAM_TTY"
    echo "Date: `date`"
    echo "Server: `uname -a`"
    } | mail -s "`hostname -s` $PAM_SERVICE login: $PAM_USER" user@yourdomain.com
    
  • 6、
  • 编辑文件 /etc/pam.d/sshd,在文件最后追加一行:

    session optional pam_exec.so debug /bin/bash /etc/ssh/login-notify.sh

  • 7、
  • 保存并退出。

  • 8、
  • 至此,每一个用户登录都会发邮件通知给收件人,内容包括用户名以及登录的 IP 地址信息。如果遇到陌生 IP,那么就要注意,该虚拟机是否正在遭受攻击。

  • 9、
  • 同理,你可以在把上述脚本应用到 /etc/pam.d/ 其他模块中,比如 sudo,login 等,来进行监控。

原文地址:https://www.cnblogs.com/yaok430/p/9766196.html