Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1316221
  • 博文数量: 554
  • 博客积分: 10425
  • 博客等级: 上将
  • 技术积分: 7555
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-09 09:49
文章分类

全部博文(554)

文章存档

2012年(1)

2011年(1)

2009年(8)

2008年(544)

分类:

2008-04-10 16:05:21


Solaris 安全Shell 中的客户机和服务器配置
第19 章• Solaris 安全Shell(参考) 333
Solaris 安全Shell 中的关键字
下表列出了关键字及其缺省值(如果存在)。这些关键字按字母顺序排列。客户机上的关
键字位于ssh_config 文件中。应用于服务器的关键字位于sshd_config 文件中。一些关键
字在两个文件中均有设置。如果关键字仅应用于一种协议版本,则列出了该版本。
表19–1 Solaris 安全Shell 配置文件中的关键字(A到Escape)
关键字缺省值位置协议
AllowGroups 无缺省值。服务器
AllowTcpForwarding no 服务器
AllowUsers 无缺省值。服务器
AuthorizedKeysFile ~/.ssh/authorized_keys 服务器
Banner /etc/issue 服务器
Batchmode no 客户机
BindAddress 无缺省值。客户机
CheckHostIP yes 客户机
Cipher blowfish, 3des 客户机v1
Ciphers aes128-ctr, aes128-cbc, 3des-cbc,
blowfish-cbc, arcfour
两者v2
ClearAllForwardings 无缺省值。客户机
ClientAliveInterval 0 服务器v2
ClientAliveCountMax 3 服务器v2
Compression yes 两者
CompressionLevel 无缺省值。客户机
ConnectionAttempts 1 客户机
DenyGroups 无缺省值。服务器
DenyUsers 无缺省值。服务器
DynamicForward 无缺省值。客户机
EscapeChar ~ 客户机
Solaris 安全Shell 中的关键字
334 系统管理指南:安全性服务• 2006 年9 月
表19–2 Solaris 安全Shell 配置文件中的关键字(Fall 到Local)
关键字缺省值位置协议
FallBackToRsh no 客户机
ForwardAgent no 客户机
ForwardX11 no 客户机
GatewayPorts no 两者
GlobalKnownHostsFile /etc/ssh/ssh_known_hosts 客户机
GSSAPIAuthentication yes 两者v2
GSSAPIDelegateCredentials no 客户机v2
GSSAPIKeyExchange yes 两者v2
GSSAPIStoreDelegateCredentials no 客户机v2
Host *有关更多信息,请参见第
337 页中的“Solaris 安全Shell
中的主机特定参数”。
客户机
HostbasedAuthentication no 两者v2
HostbasedUsesNamesFromPacketOnly no 服务器v2
HostKey /etc/ssh/ssh_host_key 服务器v1
HostKey /etc/ssh/host_rsa_key,
/etc/ssh/host_dsa_key
服务器v2
HostKeyAlgorithms ssh-rsa, ssh-dss 客户机v2
HostKeyAlias 无缺省值。客户机v2
IdentityFile ~/.ssh/identity 客户机v1
IdentityFile ~/.ssh/id_dsa, ~/.ssh/id_rsa 客户机v2
IgnoreRhosts yes 服务器
IgnoreUserKnownHosts yes 服务器
KbdInteractiveAuthentication yes 两者
KeepAlive yes 两者
KeyRegenerationInterval 3600(秒) 服务器
ListenAddress 无缺省值。服务器
LocalForward 无缺省值。客户机
Solaris 安全Shell 中的关键字
第19 章• Solaris 安全Shell(参考) 335
表19–3 Solaris 安全Shell 配置文件中的关键字(Login 到R)
关键字缺省值位置协议
LoginGraceTime 600(秒) 服务器
LogLevel info 两者
LookupClientHostname yes 服务器
MACs hmac-sha1,hmac-md5 两者v2
MaxAuthTries 6 服务器
MaxAuthTriesLog 无缺省值。服务器
MaxStartups 10:30:60 服务器
NoHostAuthenticationForLocalHost no 客户机
NumberOfPasswordPrompts 3 客户机
PAMAuthenticationViaKBDInt yes 服务器v2
PasswordAuthentication yes 两者
PermitEmptyPasswords no 服务器
PermitRootLogin no 服务器
PermitUserEnvironment no 服务器
PreferredAuthentications gssapi-keyex,
gssapi-with-mic, hostbased,
publickey,
keyboard-interactive,
password
客户机v2
Port 22 两者
PrintMotd no 服务器
Protocol 2 两者
ProxyCommand 无缺省值。客户机
PubkeyAuthentication yes 两者v2
RemoteForward 无缺省值。客户机
RhostsAuthentication no 两者v1
RhostsRSAAuthentication no 两者v1
RSAAuthentication no 两者v1
Solaris 安全Shell 中的关键字
336 系统管理指南:安全性服务• 2006 年9 月
表19–4 Solaris 安全Shell 配置文件中的关键字(S 到X)
关键字缺省值位置协议
ServerKeyBits 768 服务器
StrictHostKeyChecking ask 客户机
StrictModes yes 服务器
Subsystem sftp
/usr/lib/ssh/sftp-server
服务器
SyslogFacility auth 服务器
UseLogin no,已过时并被忽略。服务器
User 无缺省值。客户机
UserKnownHostsFile ~/.ssh/known_hosts 客户机
VerifyReverseMapping no 服务器
X11Forwarding yes 服务器
X11DisplayOffset 10 服务器
X11UseLocalHost yes 服务器
XAuthLocation 无缺省值。两者
Solaris 安全Shell 中的主机特定参数
如果不同的本地主机具有不同Solaris 安全Shell 特征很有用,则管理员可以在
/etc/ssh/ssh_config 文件中定义单独的参数组,以根据主机或正则表达式进行应用。通过
按Host 关键字对文件中的项进行分组,可完成此任务。如果不使用Host 关键字,则客户机
配置文件中的项将应用于任一用户正在使用的本地主机。
Solaris 安全Shell 和登录环境变量
如果sshd_config 文件中未设置以下Solaris 安全Shell 关键字,则这些关键字将从
/etc/default/login 文件的等效项中获取各自的值:
/etc/default/login 中的项sshd_config 中的关键字和值
CONSOLE=* PermitRootLogin=without-password
#CONSOLE=* PermitRootLogin=yes
Solaris 安全Shell 中的关键字
第19 章• Solaris 安全Shell(参考) 337
/etc/default/login 中的项sshd_config 中的关键字和值
PASSREQ=YES PermitEmptyPasswords=no
PASSREQ=NO PermitEmptyPasswords=yes
#PASSREQ PermitEmptyPasswords=no
TIMEOUT=secs LoginGraceTime=secs
#TIMEOUT LoginGraceTime=300
RETRIES 和SYSLOG_FAILED_LOGINS 仅应用于password 和keyboard-interactive 验证方法。
通过login 命令设置以下变量后,sshd 守护进程将使用这些值。未设置这些变量时,守护
进程将使用缺省值。
TIMEZONE 控制TZ 环境变量的设置。如果未设置此值,在启动sshd 守护进程时,守护进
程将使用TZ 的值。
ALTSHELL 控制SHELL 环境变量的设置。缺省值是ALTSHELL=YES,此时sshd 守护进程使用
用户shell 的值。ALTSHELL=NO 时,不设置SHELL 值。
PATH 控制PATH 环境变量的设置。未设置此值时,缺省路径为/usr/bin。
SUPATH 控制root 的PATH 环境变量的设置。未设置此值时,缺省路径为
/usr/sbin:/usr/bin。
有关更多信息,请参见login(1) 和sshd(1M) 手册页。
维护Solaris 安全Shell 中的已知主机
需要与其他主机安全通信的每台主机都必须将服务器的公钥存储在本地主机的
/etc/ssh/ssh_known_hosts 文件中。虽然脚本可用于更新/etc/ssh/ssh_known_hosts 文件,
但是强烈建议不要这样做,因为脚本会打开严重的安全漏洞。
/etc/ssh/ssh_known_hosts 文件应只按如下安全机制分发:
 通过安全连接,如Solaris 安全Shell、IPsec 或已知和受信任计算机的基于Kerberos 的ftp
 在系统安装时
要避免入侵者通过向known_hosts 文件插入伪造公钥而获得访问权限的可能性,应使用
JumpStartTM 服务器作为ssh_known_hosts 文件的已知和受信任源。ssh_known_hosts 文件可
在安装过程中分发。然后,可将使用scp 命令的脚本用于引入最新版本。由于每台主机都
已具有JumpStart 服务器的公钥,因此此方法是安全的。
维护Solaris 安全Shell 中的已知主机
338 系统管理指南:安全性服务• 2006 年9 月
Solaris 安全Shell 软件包和初始化
Solaris 安全Shell 依赖于核心Solaris 软件包和以下软件包:
 SUNWgss-包含通用安全服务(Generic Security Service, GSS) 软件
 SUNWtcpd-包含TCP 包装
 SUNWopenssl-libraries-包含OpenSSL 库
 SUNWzlib-包含zip 压缩库
以下软件包安装Solaris 安全Shell:
 SUNWsshr-包含根(/) 目录的客户机文件和实用程序
 SUNWsshdr-包含根(/) 目录的服务器文件和实用程序
 SUNWsshcu-包含/usr 目录的公用源文件
 SUNWsshdu-包含/usr 目录的服务器文件
 SUNWsshu-包含/usr 目录的客户机文件和实用程序
安装后重新引导时,sshd 守护进程将运行。该守护进程在系统中创建主机密钥。运行sshd
守护进程的Solaris 系统是Solaris 安全Shell 服务器。
Solaris 安全Shell 文件
下表显示了重要的Solaris 安全Shell 文件和建议的文件权限。
表19–5 Solaris 安全Shell 文件
文件名说明建议的权限和属主
/etc/ssh/sshd_config 包含sshd(Solaris 安全Shell 守护进程)的配置数
据。
-rw-r--r-- root
/etc/ssh/ssh_host_key 包含主机私钥(v1)。-rw-r--r-- root
/etc/ssh/ssh_host_dsa_key 或
/etc/ssh/ssh_host_rsa_key
包含主机私钥(v2)。-rw-r--r-- root
host-private-key.pub 包含主机公钥,如
/etc/ssh/ssh_host_rsa_key.pub。用于将主机密钥
复制到本地known_hosts 文件中。
-rw-r--r-- root
/var/run/sshd.pid 包含Solaris 安全Shell 守护进程sshd 的进程ID。如
果正在运行多个守护进程,则文件包含最后启动的
守护进程。
-rw-r--r-- root
~/.ssh/authorized_keys 存储允许登录到用户帐户的用户公钥。-rw-rw-r-- username
/etc/ssh/ssh_known_hosts 包含客户机可安全与其通信的所有主机的主机公
钥。此文件由管理员填写。
-rw-r--r-- root
Solaris 安全Shell 文件
第19 章• Solaris 安全Shell(参考) 339
表19–5 Solaris 安全Shell 文件(续)
文件名说明建议的权限和属主
~/.ssh/known_hosts 包含客户机可安全与其通信的所有主机的主机公
钥。该文件将会自动维护。只要用户与未知主机连
接,就会向该文件中添加远程主机密钥。
-rw-r--r-- username
/etc/default/login 未设置对应的sshd_config 参数时,将为sshd 守护
进程提供缺省值。
-r--r--r-- root
/etc/nologin 如果此文件存在,则sshd 守护进程只允许root 登
录。此文件的内容将向尝试登录的用户显示。
-rw-r--r-- root
~/.rhosts 包含指定用户无需口令即可登录主机的主机-用户
名称对。rlogind 和rshd 守护进程也使用此文件。
-rw-r--r-- username
~/.shosts 包含指定用户无需口令即可登录主机的主机-用户
名称对。其他实用程序不使用此文件。有关更多信
息,请参见sshd(1M) 手册页中的FILES 部分。
-rw-r--r-- username
/etc/hosts.equiv 包含.rhosts 验证中使用的主机。rlogind 和rshd
守护进程也使用此文件。
-rw-r--r-- root
/etc/ssh/shosts.equiv 包含基于主机的验证中使用的主机。其他实用程序
不使用此文件。
-rw-r--r-- root
~/.ssh/environment 包含登录时的初始赋值。缺省情况下,不会读取此
文件。要读取此文件,必须将sshd_config 文件中
的PermitUserEnvironment 关键字设置为yes。
-rw------- username
~/.ssh/rc 包含启动用户shell 前运行的初始化例程。有关初
始化例程的样例,请参见sshd 手册页。
-rw------- username
/etc/ssh/sshrc 包含管理员指定的主机特定的初始化例程。-rw-r--r-- root
/etc/ssh/ssh_config 配置客户机系统上的系统设置。-rw-r--r-- root
~/.ssh/config 配置用户设置。覆盖系统设置。-rw------- username
下表列出了可被关键字或命令选项覆盖的Solaris 安全Shell 文件。
表19–6 覆盖Solaris 安全Shell 文件的位置
文件名关键字覆盖命令行覆盖
/etc/ssh/ssh_config ssh -F config-file
scp -F config-file
~/.ssh/config ssh -F config-file
Solaris 安全Shell 文件
340 系统管理指南:安全性服务• 2006 年9 月
表19–6 覆盖Solaris 安全Shell 文件的位置(续)
文件名关键字覆盖命令行覆盖
/etc/ssh/host_rsa_key
/etc/ssh/host_dsa_key
HostKey
~/.ssh/identity
~/.ssh/id_dsa ~/.ssh/id_rsa
IdentityFile ssh -i id-file
scp -i id-file
~/.ssh/authorized_keys AuthorizedKeysFile
/etc/ssh/ssh_known_hosts GlobalKnownHostsFile
~/.ssh/known_hosts UserKnownHostsFile
IgnoreUserKnownHosts
Solaris 安全Shell 命令
下表汇总了主要的Solaris 安全Shell 命令。
表19–7 Solaris 安全Shell 中的命令
命令说明手册页
ssh 使用户登录到远程计算机并在远程计算机上安全地执行命令。此命令是Solaris
安全Shell 中替代rlogin 和rsh 命令的命令。ssh 命令在不安全网络上两台不受
信任主机之间启用安全的加密通信。X11 连接和任意TCP/IP 端口也可通过安全
通道进行转发。
ssh(1)
sshd Solaris 安全Shell 的守护进程。该守护进程侦听来自客户机的连接,并在不安全
网络上两台不受信任主机之间启用安全的加密通信。
sshd(1M)
ssh-add 将RSA或DSA身份添加到验证代理ssh-agent。这些身份也称为密钥。ssh-add(1)
ssh-agent 存储用于公钥验证的私钥。ssh-agent 程序在X 会话或登录会话开始时启动。
所有其他窗口和其他程序均作为ssh-agent 程序的客户机启动。通过使用环境
变量,当用户使用ssh 命令登录到其他系统时,可以找到代理并将其用于验
证。
ssh-agent(1)
ssh-keygen 生成并管理用于Solaris 安全Shell 的验证密钥。ssh-keygen(1)
ssh-keyscan 收集大量Solaris 安全Shell 主机的公钥。帮助构建并验证ssh_known_hosts 文
件。
ssh-keyscan(1)
ssh-keysign 由ssh 命令用于访问本地主机上的主机密钥。生成使用Solaris 安全Shell v2 进行
基于主机的验证时所需的数字签名。此命令由ssh 命令(而不是用户)调用。
ssh-keysign(1M)
scp 通过加密的ssh 传输在网络上的主机之间安全地复制文件。与rcp 命令不同,
如果验证需要口令信息,scp 命令会提示输入口令或口令短语。
scp(1)
Solaris 安全Shell 命令
第19 章• Solaris 安全Shell(参考) 341
表19–7 Solaris 安全Shell 中的命令(续)
命令说明手册页
sftp 一个与ftp 命令类似的交互式文件传输程序。与ftp 命令不同,sftp 命令通过
加密的ssh 传输执行所有操作。此命令连接并登录到指定的主机名,然后进入
交互式命令模式。
sftp(1)
下表列出了覆盖Solaris 安全Shell 关键字的命令选项。这些关键字在ssh_config 和
sshd_config 文件中指定。
表19–8 Solaris 安全Shell 关键字的命令行等效关键字
关键字ssh 命令行覆盖scp 命令行覆盖
BatchMode scp -B
BindAddress ssh -b bind-addr scp -a bind-addr
Cipher ssh -c cipher scp -c cipher
Ciphers ssh -c cipher-spec scp -c cipher-spec
Compression ssh -C scp -C
DynamicForward ssh -D SOCKS4-port
EscapeChar ssh -e escape-char
ForwardAgent ssh -A(启用)
ssh -a(禁用)
ForwardX11 ssh -X(启用)
ssh -x(禁用)
GatewayPorts ssh -g
IPv4 ssh -4 scp -4
IPv6 ssh -6 scp -6
LocalForward ssh -L localport:remotehost:remoteport
MACS ssh -m mac-spec
Port ssh -p port scp -P port
Protocol ssh -1(仅用于v1)
ssh -2(仅用于v2)
RemoteForward ssh -R remoteport:localhost:localport
Solaris 安全Shell 命令
342 系统管理指南:安全性服务• 2006 年9 月
Kerberos 服务
本部分提供有关Kerberos 服务的配置、管理和使用方法的信息。
第6 部分
343
344
Kerberos 服务介绍
本章介绍Kerberos 服务。以下是本章中概述信息的列表:
 第345 页中的“什么是Kerberos 服务?”
 第346 页中的“Kerberos 服务的工作方式”
 第351 页中的“Kerberos 安全服务”
 第351 页中的“各种Kerberos 发行版的组件”
什么是Kerberos 服务?
Kerberos 服务是一种通过网络提供安全事务处理的客户机/服务器体系结构。该服务可提供
功能强大的用户验证以及完整性和保密性服务。通过验证,可保证网络事务的发送者和接
收者的身份真实。该服务还可以检验来回传递的数据的有效性(完整性),并在传输过程
中对数据进行加密(保密性)。使用Kerberos 服务,可以安全登录到其他计算机、执行命
令、交换数据以及传输文件。此外,该服务还提供授权服务,管理员可通过此服务限制对
服务和计算机的访问。而且,作为Kerberos 用户,您还可以控制其他用户对您帐户的访
问。
Kerberos 服务是单点登录系统,这意味着您对于每个会话只需向服务进行一次自我验证,
即可自动保护该会话过程中所有后续事务的安全。服务对您进行验证后,即无需在每次使
用基于Kerberos 的命令(如ftp 或rsh)或访问NFS 文件系统上数据时都进行自我验证。因
此,无需在每次使用这些服务时都在网络上发送口令(口令在网络上可能会被拦截)。
Solaris Kerberos 服务基于麻省理工学院(Massachusetts Institute of Technology, MIT) 开发的
Kerberos V5 网络验证协议。因此,使用过Kerberos V5 产品的用户会感觉对Solaris 版本非常
熟悉。因为Kerberos V5 协议是网络安全性的实际行业标准,所以Solaris 版本可提高与其他
系统的互操作性。换句话说,因为可在使用Kerberos V5 协议的系统中使用Solaris Kerberos
服务,所以该服务甚至允许在异构网络上进行安全事务处理。此外,该服务还会在各个域
之间以及单个域内提供验证和安全服务。
通过Kerberos 服务可灵活运行Solaris 应用程序。可以将该服务配置为允许同时向网络服务
(如NFS 服务、telnet 和ftp)发出基于Kerberos 的请求和非基于Kerberos 的请求。因此,
20 第2 0 章
345
即使当前Solaris 应用程序运行的系统上未启用Kerberos 服务,这些程序仍能工作。当然,
也可以将Kerberos 服务配置为仅允许基于Kerberos 的网络请求。
Kerberos 服务提供了一种安全机制,通过该安全机制,在使用采用通用安全服务应用程序
编程接口(Generic Security Service Application Programming Interface, GSS-API) 的应用程序
时,可使用Kerberos 提供验证、完整性和保密性服务。但是,如果开发了其他安全机制,
则应用程序无需继续承诺使用Kerberos 服务。因为该服务设计为以模块形式集成到GSS-API
中,所以使用GSS-API 的应用程序可以利用最好地满足其需求的任何安全机制。
Kerberos 服务的工作方式
以下概述了Kerberos 验证系统。有关更详细的说明,请参见第508 页中的“Kerberos 验证
系统的工作方式”。
从用户的角度来看,启动Kerberos 会话后,Kerberos 服务通常不可见。一些命令(如rsh 或
ftp)也是如此。初始化Kerberos 会话通常仅包括登录和提供Kerberos 口令。
Kerberos 系统的工作围绕票证的概念展开。票证是一组标识用户或服务(如NFS 服务)的
电子信息。正如您的驾驶证可标识您的身份并表明您的驾驶级别一样,票证也可标识您的
身份以及您的网络访问权限。执行基于Kerberos 的事务时(例如,远程登录到另一台计算
机),您将透明地向密钥分发中心(KDC) 发送票证请求。KDC 将访问数据库以验证您的身
份,然后返回授予您访问其他计算机的权限的票证。“透明”意味着您无需显式请求票证。
请求是在执行rlogin 命令过程中进行的。因为只有通过验证的客户机可以获取特定服务的
票证,所以其他客户机不能以虚假身份使用rlogin。
票证具有一些与其关联的属性。例如,票证可以是可转发的,这意味着它可以在其他计算
机上使用,而不必进行新的验证。票证也可以是以后生效的,这意味着它要到指定时间后
才会生效。票证的使用方式(例如,如何指定允许哪些用户获取哪些类型的票证)由策略
设置。策略在安装或管理Kerberos 服务时确定。
注– 您可能会经常看到术语凭证和票证。在更为广泛的Kerberos 范围内,两者通常可互换使
用。但是,从技术上讲,凭证指的是票证和会话的会话密钥。第509 页中的“使用
Kerberos 获取服务访问权限”中对此区别进行了更详细的说明。
以下各节将进一步说明Kerberos 验证过程。
初始验证:票证授予票证
Kerberos 验证分为两个阶段:允许进行后续验证的初始验证以及所有后续验证自身。
下图显示了如何进行初始验证。
Kerberos 服务的工作方式
346 系统管理指南:安全性服务• 2006 年9 月
图20–1 Kerberos 会话的初始验证
1. 客户机(用户或NFS 等服务)通过从密钥分发中心(Key Distribution Center, KDC) 请求票
证授予票证(Ticket-Granting Ticket, TGT) 开始Kerberos 会话。此请求通常在登录时自动
完成。
要获取特定服务的其他票证,需要票证授予票证。票证授予票证类似于护照。与护照一
样,票证授予票证可标识您的身份并允许您获取多个“签证”,此处的“签证”(票证)不
是用于外国,而是用于远程计算机或网络服务。与护照和签证一样,票证授予票证和其
他各种票证具有有限的生命周期。区别在于基于Kerberos 的命令会通知您拥有护照并为
您取得签证。您不必亲自执行该事务。
与票证授予票证类似的另一种情况是可以在四个不同的滑雪场使用的三天滑雪入场卷。
只要入场券未到期,您就可以在决定要去的任意一个滑雪场出示入场卷,并获取该滑雪
场提供的缆车票。获取缆车票后,即可在该滑雪场随意滑雪。如果第二天去另一个滑雪
场,您需要再次出示入场卷,并获取新滑雪场的另一张缆车票。区别在于基于Kerberos
的命令会通知您拥有周末滑雪入场卷,并会为您取得缆车票。因此,您不必亲自执行该
事务。
2. KDC 可创建票证授予票证,并采用加密形式将其发送回客户机。客户机使用其口令来解
密票证授予票证。
3. 拥有有效的票证授予票证后,只要该票证授予票证未到期,客户机便可以请求所有类型
的网络操作(如rlogin 或telnet)的票证。此票证的有效期通常为几个小时。每次客户
机执行唯一的网络操作时,都将从KDC 请求该操作的票证。
Kerberos 服务的工作方式
 
 
以上文章转自于 : http://developers.sun.com.cn/
阅读(511) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~