系统服务

    加固SSH服务,是指修改SSH服务中的配置来设置系统使用OpenSSH协议时的算法、认证等参数,从而提高系统的安全性。表1中详细说明了各加固项含义、建议加固值及其默认策略。

    服务端加固操作如下:

    1. 打开服务端SSH服务的配置文件/etc/ssh/sshd_config,在该文件中修改或添加对应加固项及其加固值。
    2. 保存/etc/ssh/sshd_config文件。
    3. 重启SSH服务,命令如下:

    客户端加固操作如下:

    1. 打开客户端SSH服务的配置文件/etc/ssh/ssh_config,在该文件中修改或添加对应加固项及其加固值。
    2. 保存/etc/ssh/ssh_config文件。
    3. 重启SSH服务,命令如下:

    • 服务端加固策略

      SSH服务的所有加固项均保存在配置文件/etc/ssh/sshd_config中,服务端各加固项的含义、加固建议以及openEuler默认是否已经加固为建议加固值请参见。

      表 1 SSH服务端加固项说明

    • 客户端加固策略

      SSH服务的所有加固项均保存在配置文件/etc/ssh/ssh_config中,客户端各加固项的含义、加固建议以及openEuler默认是否已经加固为建议加固值请参见。

      表 2 SSH客户端加固项说明

      加固项

      加固项说明

      加固建议

      openEuler默认是否已加固为建议值

      KexAlgorithms

      设置SSH密钥交换算法

      ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256

      VerifyHostKeyDNS

      是否使用DNS或者SSHFP资源记录验证HostKey

      ask

    • SSH服务仅侦听指定IP地址

      出于安全考虑,建议用户在使用SSH服务时,仅在必需的IP上进行绑定侦听,而不是侦听0.0.0.0,可修改/etc/ssh/sshd_config文件中的ListenAddress配置项。

      1. 打开并修改/etc/ssh/sshd_config文件

          修改内容如下,表示绑定侦听IP为 192.168.1.100,用户可根据实际情况修改需要侦听的IP

          1. ...
          2. ListenAddress 192.168.1.100
          3. ...
        1. 重启SSH服务

          1. systemctl restart sshd.service
      • 限制SFTP用户向上跨目录访问

        SFTP是FTP over SSH的安全FTP协议,对于访问SFTP的用户建议使用专用账号,只能上传或下载文件,不能用于SSH登录,同时对SFTP可以访问的目录进行限定,防止目录遍历攻击,具体配置如下:

        1. 创建SFTP用户组

        2. 创建SFTP根目录

          1. mkdir /sftp
        3. 修改SFTP根目录属主和权限

          1. chown root:root /sftp
        4. 创建SFTP用户

          1. useradd -g sftpgroup -s /sbin/nologin sftpuser
        5. 设置SFTP用户的口令

          1. passwd sftpuser
        6. 创建SFTP用户上传目录

        7. 修改SFTP用户上传目录属主和权限

          1. chmod 777 /sftp/sftpuser
        8. 修改/etc/ssh/sshd_config文件

          1. vi /etc/ssh/sshd_config

          修改内容如下:

          1. #Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO -f AUTH
          2. Subsystem sftp internal-sftp -l INFO -f AUTH
          3. Match Group sftpgroup
          4. ChrootDirectory /sftp/%u
          5. ForceCommand internal-sftp
        9. 重启SSH服务

      • SSH远程执行命令

        OpenSSH通用机制,在远程执行命令时,默认不开启tty,如果执行需要密码的命令,密码会明文回显。出于安全考虑,建议用户增加-t选项,确保密码输入安全。如下: