JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 11.1 管理:安全服务     Oracle Solaris 11.1 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分安全性概述

1.  安全性服务(概述)

第 2 部分系统、文件和设备安全性

2.  管理计算机安全性(概述)

3.  控制对系统的访问(任务)

4.  病毒扫描服务(任务)

5.  控制对设备的访问(任务)

6.  使用 BART 验证文件完整性(任务)

7.  控制对文件的访问(任务)

第 3 部分角色、权限配置文件和特权

8.  使用角色和特权(概述)

9.  使用基于角色的访问控制(任务)

10.  Oracle Solaris 中的安全属性(参考信息)

第 4 部分加密服务

11.  加密框架(概述)

12.  加密框架(任务)

13.  密钥管理框架

第 5 部分验证服务和安全通信

14.  使用可插拔验证模块

15.  使用 安全 Shell

安全 Shell(概述)

安全 Shell 验证

企业中的安全 Shell

安全 Shell 和 OpenSSH 项目

安全 Shell 和 FIPS-140

配置安全 Shell(任务)

配置 安全 Shell(任务列表)

如何为安全 Shell 设置基于主机的验证

如何在安全 Shell 中配置端口转发

如何创建不同于 安全 Shell 缺省值的用户和主机例外

如何为 sftp 文件创建隔离的目录

使用 安全 Shell(任务)

使用 安全 Shell(任务列表)

如何生成用于安全 Shell 的公钥/私钥对

如何更改安全 Shell 私钥的口令短语

如何使用安全 Shell 登录到远程主机

如何减少安全 Shell 中的口令提示

如何使用 安全 Shell 远程管理 ZFS

如何在安全 Shell 中使用端口转发

如何使用安全 Shell 复制文件

如何设置防火墙外部主机的缺省 安全 Shell 连接

16.  安全 Shell(参考信息)

17.  使用简单验证和安全层

18.  网络服务验证(任务)

第 6 部分Kerberos 服务

19.  Kerberos 服务介绍

20.  规划 Kerberos 服务

21.  配置 Kerberos 服务(任务)

22.  Kerberos 错误消息和故障排除

23.  管理 Kerberos 主体和策略(任务)

24.  使用 Kerberos 应用程序(任务)

25.  Kerberos 服务(参考信息)

第 7 部分在 Oracle Solaris 中审计

26.  审计(概述)

27.  规划审计

28.  管理审计(任务)

29.  审计(参考信息)

词汇表

索引

配置安全 Shell(任务)

安全 Shell 是在安装时配置的。更改这些缺省设置需要管理干预。以下任务演示了如何更改某些缺省值。

配置 安全 Shell(任务列表)

以下任务列表列出了有关配置安全 Shell 的过程。

任务
说明
参考
配置基于主机的验证。
在客户机和服务器上配置基于主机的验证。
增大缓冲区大小以处理连接延迟。
对于高带宽高延迟网络,请增大 TCP 属性 recv_buf 的值。
配置端口转发。
允许用户使用端口转发。
配置 安全 Shell 系统缺省值例外。
对于用户、主机、组和地址,指定与系统缺省值不同的 安全 Shell。
隔离一个 root 环境以用于 sftp 传输。
为文件传输提供受保护的目录。

如何为安全 Shell 设置基于主机的验证

以下过程设置一个公钥系统,其中使用客户机的公钥进行服务器上的验证。用户还必须创建一个公钥/私钥对。

在此过程中,术语客户机本地主机是指用户键入 ssh 命令的计算机。术语服务器远程主机是指客户机尝试访问的计算机。

开始之前

您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限

  1. 在客户机上,启用基于主机的验证。

    在客户机配置文件 /etc/ssh/ssh_config 中,键入以下项:

    HostbasedAuthentication yes

    有关该文件的语法,请参见 ssh_config(4) 手册页

  2. 在服务器上,启用基于主机的验证。

    在服务器验证文件 /etc/ssh/sshd_config 中,键入相同的项:

    HostbasedAuthentication yes

    有关该文件的语法,请参见 sshd_config(4) 手册页

  3. 在服务器上,配置允许将客户机识别为可信主机的文件。

    有关更多信息,请参见 sshd(1M) 手册页的 FILES 部分。

    • 将客户机作为一项添加到服务器的 /etc/ssh/shosts.equiv 文件中。
      client-host
    • 或者,可以指示用户在服务器上将一个有关客户机的项添加到其 ~/.shosts 文件中。
      client-host
  4. 在服务器上,确保 sshd 守护进程可以访问可信主机列表。

    /etc/ssh/sshd_config 文件中,将 IgnoreRhosts 设置为 no

    ## sshd_config
    IgnoreRhosts no
  5. 确保站点上的安全 Shell 用户在两台主机上都拥有帐户。
  6. 执行以下操作之一,以将客户机的公钥放到服务器上。
    • 修改服务器上的 sshd_config 文件,然后指示用户将客户机的公共主机密钥添加到其 ~/.ssh/known_hosts 文件中。
      ## sshd_config
      IgnoreUserKnownHosts no

      有关用户说明,请参见如何生成用于安全 Shell 的公钥/私钥对

    • 将客户机的公钥复制到服务器。

      主机密钥存储在 /etc/ssh 目录中。这些密钥通常由 sshd 守护进程在首次引导时生成。

      1. 将密钥添加到服务器上的 /etc/ssh/ssh_known_hosts 文件中。

        在客户机上,在一行中键入以下命令(不带反斜杠)。

        # cat /etc/ssh/ssh_host_dsa_key.pub | ssh RemoteHost \
        'cat >> /etc/ssh/ssh_known_hosts && echo "Host key copied"'
      2. 出现提示时,提供登录口令。

        复制该文件后,将显示 "Host key copied"(主机密钥已复制)消息。

        /etc/ssh/ssh_known_hosts 文件中的每一行均由空格分隔的字段组成:

        hostnames algorithm-name publickey comment
      3. 编辑 /etc/ssh/ssh_known_hosts 文件,添加 RemoteHost 作为复制的项中的第一个字段。
        ## /etc/ssh/ssh_known_hosts File
        RemoteHost <copied entry>

示例 15-1 设置基于主机的验证

在以下示例中,每台主机同时配置为服务器和客户机。任一主机上的用户都可以启动与另一台主机的 ssh 连接。以下配置可使每台主机同时成为服务器和客户机:

如何在安全 Shell 中配置端口转发

使用端口转发可以将本地端口转发到远程主机。实际上,分配了一个套接字用于侦听本地端的端口。同样,也可以在远程端指定端口。


注 - 安全 Shell 端口转发必须使用 TCP 连接。安全 Shell 不支持使用 UDP 连接进行端口转发。


开始之前

您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限

  1. 配置远程服务器的安全 Shell 设置以允许端口转发。

    /etc/ssh/sshd_config 文件中,将 AllowTcpForwarding 的值更改为 yes

    # Port forwarding
    AllowTcpForwarding yes
  2. 重新启动安全 Shell 服务。
    remoteHost# svcadm restart network/ssh:default

    有关管理持久性服务的信息,请参见《在 Oracle Solaris 11.1 中管理服务和故障》中的第 1  章 "管理服务(概述)"svcadm(1M) 手册页。

  3. 检验是否可以使用端口转发。
    remoteHost# /usr/bin/pgrep -lf sshd
     1296 ssh -L 2001:remoteHost:23 remoteHost

如何创建不同于 安全 Shell 缺省值的用户和主机例外

此过程在 /etc/ssh/sshd_config 文件的全局部分之后添加了一个有条件的 Match 块。Match 块后的关键字-值对为指定为匹配的用户、组、主机或地址指定例外。

开始之前

您必须是指定有 solaris.admin.edit/etc/ssh/sshd_config 授权的管理员。缺省情况下,root 角色拥有此授权。有关更多信息,请参见如何使用指定给您的管理权限

  1. 编辑 /etc/ssh/sshd_config 文件。
  2. 配置用户、组、主机或地址以使用不同于缺省设置的 安全 Shell 设置。

    Match 块置于全局设置之后。


    注 - 文件的全局部分可能列出缺省设置,也可能不列出。有关缺省值,请参见 sshd_config(4) 手册页。


    您可能有不允许使用 TCP 转发的用户。下列示例中,所有 public 组的用户和所有以 test 开头的用户名都不能使用 TCP 转发。

    ## sshd_config file
    ## Global settings
    
    # Example (reflects default settings):
    #
    # Host *
    #   ForwardAgent no
    #   ForwardX11 no
    #   PubkeyAuthentication yes
    #   PasswordAuthentication yes
    #   FallBackToRsh no
    #   UseRsh no
    #   BatchMode no
    #   CheckHostIP yes
    #   StrictHostKeyChecking ask
    #   EscapeChar ~
    Match Group public
     AllowTcpForwarding no
    Match User test*
     AllowTcpForwarding no

    有关 Match 块的语法信息,请参见 sshd_config(4) 手册页。

如何为 sftp 文件创建隔离的目录

此过程配置为 sftp 传输专门创建的 sftponly 目录。用户无法看见传输目录外的任何文件或目录。

开始之前

您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限

  1. 在 安全 Shell 服务器上,创建一个隔离的目录作为 chroot 环境。
    # groupadd sftp
    # useradd -m -G sftp -s /bin/false sftponly
    # chown root:root /export/home/sftponly
    # mkdir /export/home/sftponly/WWW
    # chown sftponly:staff /export/home/sftponly/WWW

    在此配置中,/export/home/sftonly 是只有 root 帐户可以访问的 chroot 目录。用户对 sftponly/WWW 子目录具有写入权限。

  2. 仍然是在该服务器上,配置 sftp 组的匹配块。

    /etc/ssh/sshd_config 文件中找到 sftp subsystem 项,并按如下方式修改此文件:

    # pfedit /etc/ssh/sshd_config
    ...
    # sftp subsystem
    #Subsystem       sftp    /usr/lib/ssh/sftp-server
    Subsystem       sftp    internal-sftp
    ...
    ## Match Group for Subsystem
    ## At end of file, to follow all global options
    Match Group sftp
          ChrootDirectory %h
          ForceCommand internal-sftp
          AllowTcpForwarding no

    可以使用以下变量指定 chroot 路径:

    • %h-指定起始目录。

    • %u-指定经验证用户的用户名。

    • %%-对 % 符号进行转义。

  3. 在客户机上,验证配置可正常运行。

    您的 chroot 环境中的文件可能有所不同。

    root@client:~# ssh sftponly@server
    This service allows sftp connections only.
    Connection to server closed. No shell access, sftp is enforced.
    root@client:~# sftp sftponly@server
    sftp> pwd sftp access granted
    Remote working directory: /chroot directory looks like root directory
    sftp> ls
    WWW             local.cshrc     local.login     local.profile
    sftp> get local.cshrc
    Fetching /local.cshrc to local.cshrc
    /local.cshrc    100%  166     0.2KB/s   00:00user can read contents
    sftp> put /etc/motd
    Uploading /etc/motd to /motd
    Couldn't get handle: Permission denieduser cannot write to / directory
    sftp> cd WWW
    sftp> put /etc/motd
    Uploading /etc/motd to /WWW/motd
    /etc/motd     100%  118     0.1KB/s   00:00user can write to WWW directory
    sftp> ls -l
    -rw-r--r--    1 101  10    118 Jul 20 09:07 motdsuccessful transfer
    sftp>