From 85335cc27681d55fdb11413eeefadf6dd046a511 Mon Sep 17 00:00:00 2001 From: Xin LI Date: Sun, 28 Aug 2005 17:17:20 +0000 Subject: MFen 1.266 -> 1.281 plus several language improvements. Submitted by: delphij Obtained from: The FreeBSD Simplified Chinese Project --- zh_CN.GB2312/books/handbook/security/chapter.sgml | 238 ++++++++++++++-------- 1 file changed, 152 insertions(+), 86 deletions(-) (limited to 'zh_CN.GB2312/books/handbook') diff --git a/zh_CN.GB2312/books/handbook/security/chapter.sgml b/zh_CN.GB2312/books/handbook/security/chapter.sgml index 7e1baf5111..550194d970 100644 --- a/zh_CN.GB2312/books/handbook/security/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/security/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.266 + Original Revision: 1.281 $FreeBSD$ --> @@ -56,12 +56,12 @@ - 如何在 &os; 5.0 以前的版本上设置 + 如何在 &os; 5.0 以前的版本上设置 KerberosIV - 如何在 &os; 5.0 或更高版本上设置 + 如何在 &os; 5.0 或更高版本上设置 Kerberos5 @@ -899,7 +899,7 @@ &os; 基本系统的一部分, 包含这一特性的操作系统也日益增多。 S/Key 是 Bell Communications Research, Inc. 的注册商标。 - 从 &os; 的 5.0 版开始, S/Key 被功能相同的 + 从 &os; 5.0 版开始, S/Key 被功能相同的 OPIE (One-time Passwords In Everything) 取代了。 OPIE 默认使用 MD5 散列。 @@ -1185,7 +1185,7 @@ Enter secret pass phrase: <secret password> 并给出了更详细的使用这一配置文件时在安全方面需要注意的事项。 如果没有 /etc/skey.access 这个文件 - (在 &os; 4.X 系统上这是默认的), 那么所有的用户都可以使用 + (在 &os; 4.X 系统上这是默认的), 那么所有的用户都可以使用 &unix; 口令。 然而如果它存在, 所有的用户将被要求使用 S/Key, 除非明确地在 @@ -1216,7 +1216,7 @@ permit port ttyd0 OPIE 可以像 S/Key 一样对 &unix; 口令的使用进行基于 IP 的登录限制。 对应的文件是 /etc/opieaccess, 在 - 在 &os; 5.0 和更高版本的系统中, 默认情况下它就已经存在了。 + 在 &os; 5.0 和更高版本的系统中, 默认情况下它就已经存在了。 请参阅 &man.opieaccess.5; 以了解关于这个文件进一步的情况, 以及安全方面需要进行的一些考虑。 @@ -2050,8 +2050,8 @@ kadmind5_server_enable="YES" kerberos_stash="YES" - 只在 - &os; 4.X 上使用。 + 只能在 + &os; 4.X 上使用。 接下来需要修改 Kerberos @@ -2088,7 +2088,7 @@ kerberos_stash="YES" _kerberos._tcp IN SRV 01 00 88 kerberos.example.org. _kpasswd._udp IN SRV 01 00 464 kerberos.example.org. _kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org. -_kerberos IN TXT EXAMPLE.ORG. +_kerberos IN TXT EXAMPLE.ORG 要让客户机能够找到 @@ -2730,26 +2730,28 @@ An optional company name []:Another Name - 上述命令执行完之后应该会在当前目录生成一个 cert.pem - 文件。 这就是刚刚生成的证书, 您可以把它发给任意一家 - CA 进行签署。 + 在您执行前述命令的目录中将生成两个文件。 + 证书申请, 即 req.pem, + 可以发给一家发证机构, 它将验证您输入的凭据的真实性, + 并对申请进行签名, 再把证书返还给您。 + 第二个文件的名字将是 cert.pem, + 它包含了证书的私钥, 应被全力保护; + 如果它落入别人手中, 则可以被用来伪造您 + (或您的服务器)。 如果不需要来自 CA 的签名, 也可以创建自行签名的证书。 首先, 需要生成 RSA 密钥: - &prompt.root; openssl dsaparam -rand -genkey -out -myRSA.key 1024 + &prompt.root; openssl dsaparam -rand -genkey -out myRSA.key 1024 接下来, 生成 CA 密钥: - &prompt.root; openssl gendsa -des3 -out \ -myca.key myRSA.key + &prompt.root; openssl gendsa -des3 -out myca.key myRSA.key 然后用这个密钥来创建证书: - &prompt.root; openssl req -new -x509 -days 365 -key \ -myca.key -out new.crt + &prompt.root; openssl req -new -x509 -days 365 -key myca.key -out new.crt 上述步骤将在当前目录中生成两个新文件: 一个是权威发证机构的签名文件, myca.key; @@ -3153,10 +3155,10 @@ options IPSEC_DEBUG #debug for IP security 对于 gif 设备的支持必须在两台网关机上编译进 &os; 内核。 可以通过添加下面的设置来达到目的: - pseudo-device gif - + device gif + 到两边的内核配置文件中, 并重新编译、 安装和启动它们。 - + 配置隧道可以分为两步来完成。 首先隧道必须被告知外部的 (或公网的) IP 地址, 可以通过 &man.gifconfig.8; 来完成这步。 私网 IP 地址则必须使用 &man.ifconfig.8; 来配置。 @@ -3383,17 +3385,17 @@ options IPSEC_ESP 这一点和 netstat -r 类似。 - FreeBSD 上用于管理安全关联的可供选择的服务程序有很多。 - 这篇文章将介绍如何使用其中的一种, racoon。 - racoon 可以从 FreeBSD ports collection 安装, - 它位于 security/ 分类下。 安装方法与其他软件无异。 + 在 FreeBSD 上可供选择的用于管理安全关联的服务程序有很多。 + 这篇文章将介绍其中的一种, racoon —。 它可以从 + &os; 的 Ports collection 中的 + security/racoon 安装。 racoon - racoon 需要在两台网关机上都运行。 - 需要配置 VPN 另一端的 IP, 以及一个密钥 + security/racoon 软件, + 必须在两台网关机上都运行。 需要配置 VPN 另一端的 IP, 以及一个密钥 (这个密钥可以任意选择, 但两个网关上的密钥必须一致)。 两端的服务程序将相互通讯, 并确认它们各自的身份 (使用刚刚配置的密钥) @@ -3401,13 +3403,13 @@ options IPSEC_ESP 它们定期地改变密钥, 因此即使供给者破解了一个密钥 (虽然这在理论上并不十分可行) 他也得不到什么 -- 破解密钥的时候, 已经产生一组新的密钥了。 - racoon 的配置保存在 - ${PREFIX}/etc/racoon 中。 + racoon 的配置文件是存放在 + ${PREFIX}/etc/racoon 目录中的。 在那里应该能够找到一个配置文件, 不需要修改太多的设置。 raccon 配置的另一部分, 也就是需要修改的内容, 是 预先配置的共享密钥 - - 默认的 racoon 配置文件应该可以在 + + 默认的 racoon 配置应该可以在 ${PREFIX}/etc/racoon/psk.txt 这个文件中找到。 需要强调的是, 这个密钥 并非 用于加密 VPN 连接的密钥, 他们只是密钥管理服务程序用以信任对方的一种凭据。 @@ -3518,7 +3520,7 @@ ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp 这个包将通过 Internet 传递。 很明显地, 我们希望 VPN 之间的通讯是加密的。 - 用语言来描述大致是: + 用于言来描述大致是: 如果包从 A.B.C.D 发出且其目的地是 启用 - 确信已将下面这行加入了 - rc.conf 文件: + 在 &os; 4.X 上, + sshd 服务是默认启用的, + 而在 &os; 5.X 上则是在安装过程中由用户指定。 + 要查看它是否已被启用, + 请检查 rc.conf 文件中的: sshd_enable="YES" 将在下次启动系统时加载 OpenSSH 的 &man.sshd.8; 服务程序。 另外, 也可以简单地使用 sshd 来直接启动 @@ -3809,12 +3814,13 @@ user@example.com's password: ******* 指纹保存在 ~/.ssh/known_hosts 中, 对于 SSH v2 指纹, 则是 ~/.ssh/known_hosts2 - 默认情况下, OpenSSH 服务器只接受 - SSH v2 连接。 然而, 客户端可以自行选择协议的版本 1 和 2 之一。 - 广为人知的一个事实是, 第 2 版的协议要更加健壮和安全。 - - 通过 参数, - 可以强制 &man.ssh.1; 使用 v1 或 v2 的协议。 + 默认情况下, 较新版本的 + OpenSSH 只接受 SSH v2 + 连接。 如果能用版本 2 则客户程序会自动使用, + 否则它会返回使用版本 1 的模式。 此外, + 也可以通过命令行参数 或 + 来相应地强制使用版本 1 或 2。 + 保持客户端的版本 1 能力是为了考虑较早版本的兼容性。 @@ -3865,54 +3871,82 @@ COPYRIGHT 100% |*****************************| 4735 选项提供了更多的配置选择。 - + ssh-keygen - &man.ssh-keygen.1; 可以被用来生成 - RSA 密钥对来代替使用口令验证用户的身份: - - &prompt.user; ssh-keygen -t rsa1 -Initializing random number generator... -Generating p: .++ (distance 66) -Generating q: ..............................++ (distance 498) -Computing the keys... -Key generation complete. -Enter file in which to save the key (/home/user/.ssh/identity): -Enter passphrase: -Enter the same passphrase again: -Your identification has been saved in /home/user/.ssh/identity. -... - - &man.ssh-keygen.1; 将产生一个公私密钥对来用于验证身份。 - 私钥被保存到 - ~/.ssh/identity, 而公钥则保存到 - ~/.ssh/identity.pub。 - 远程机器上的 ~/.ssh/authorized_keys - 中必须有对应的公钥, 才能够完成身份验证过程。 - - 这将允许从远程以基于 RSA 的验证来代替口令验证连接到本机上。 - - 使用 这个选项将创建用于 第1版 SSH 协议的 - RSA 密钥对。 如果您希望使用用于 SSH 第2版协议的 RSA密钥对, 则应使用 - ssh-keygen -t rsa 这个命令。 + 用于取代口令的一种方法是使用 &man.ssh-keygen.1; 来生成 + DSA 或 RSA 密钥对用于验证用户的身份: + + &prompt.user; ssh-keygen -t dsa +Generating public/private dsa key pair. +Enter file in which to save the key (/home/user/.ssh/id_dsa): +Created directory '/home/user/.ssh'. +Enter passphrase (empty for no passphrase): +Enter same passphrase again: +Your identification has been saved in /home/user/.ssh/id_dsa. +Your public key has been saved in /home/user/.ssh/id_dsa.pub. +The key fingerprint is: +bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 user@host.example.com + + + &man.ssh-keygen.1; 会生成一个包含公私钥对用于验证身份。 私钥将保存到 + ~/.ssh/id_dsa 或 + ~/.ssh/id_rsa, 而公钥则被存放到 + ~/.ssh/id_dsa.pub 或 + ~/.ssh/id_rsa.pub, 文件名取决于您选择的 DSA 和 + RSA 密钥类型。 公钥必须被存放到远程机器上的 + ~/.ssh/authorized_keys 才能够使系统正确运转。 + 类似地, 第 1 版的 RSA 公钥应存放到 + ~/.ssh/authorized_keys + + 这将允许从远程连接时以基于 + SSH 密钥的验证来代替口令验证。 如果在 &man.ssh-keygen.1; 中使用了通行字, - 则每次使用私钥时都需要输入它。 + 则每次使用私钥时都需要输入它。 &man.ssh-agent.1; + 能够缓解多次输入长通行字的压力, 并将在接下来的 + 予以详述。 + + 选项和配置文件可能随 OpenSSH + 的版本不同而不同; 为了避免出现问题, + 您应参考 &man.ssh-keygen.1; 联机手册。 + + + + ssh-agent 和 ssh-add + + &man.ssh-agent.1; 和 &man.ssh-add.1; 这两个工具, + 提供了一种将 SSH 秘要加载到内存中以便使用, + 而不必每次都输入通行字的方法。 + + &man.ssh-agent.1; 工具能够使用加载到其中的私钥来处理验证过程。 + &man.ssh-agent.1; 应被用于启动另一个应用程序。 最基本的用法是, + 使用它来启动 shell, 而高级一些的用法则是用它来启动窗口管理器。 - 另外, 还可以使用 ssh-keygen -t dsa 来创建一个用于第2版 - SSH 协议的 DSA 密钥。 - 这将生成一对 DSA 公/私钥, 并且只能用于第2版的 SSH 协议会话。 - 公钥将保存为 ~/.ssh/id_dsa.pub, - 而私钥保存为 ~/.ssh/id_dsa + 要在 shell 中使用 &man.ssh-agent.1;, 首先应把 shell + 作为参数来启动它。 随后, 应通过 &man.ssh-add.1; 并输入通行字, + 来向它提供身份验证信息。 一旦这些步骤都做完了, + 用户就应该能够 &man.ssh.1; 到任何一个安装了对应公钥的机器了。 + 例如: - DSA 公钥也应该放到远程主机的 - ~/.ssh/authorized_keys 里面。 + &prompt.user; ssh-agent csh +&prompt.user; ssh-add +Enter passphrase for /home/user/.ssh/id_dsa: +Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa) +&prompt.user; + + 要在 X11 中使用 &man.ssh-agent.1;, 调用 + &man.ssh-agent.1; 的过程应置于 + ~/.xinitrc 之中。 这将把 + &man.ssh-agent.1; 服务提供给所有在 X11 中运行的程序。 + 下面是一个 ~/.xinitrc 文件的实例: - &man.ssh-agent.1; 和 &man.ssh-add.1; 是用于管理多个受密码保护的私钥的工具。 + exec ssh-agent startxfce4 - 随版本的不同, OpenSSH - 可能会使用不同的文件和选项。 - 为了避免出现问题, 请参考 &man.ssh-keygen.1; 联机手册。 + 这将启动 &man.ssh-agent.1;, 而后者将在每次 X11 + 启动时运行 XFCE。 + 作完这些之后就可以重启 X11 以便使修改生效。 + 随后您就可以运行 &man.ssh-add.1; 来加载全部 SSH 密钥了。 @@ -4057,12 +4091,43 @@ user@unfirewalled-system.example.org's password: *******< + + 允许用户登录 <varname>AllowUsers</varname> 选项 + + 通常限制哪些用户能够登录, 以及从何处登录会是好主意。 + 采用 AllowUsers 选项能够方便地达到这一目的。 + 例如, 想要只允许 root 用户从 + 192.168.1.32 登录, 就可以在 + /etc/ssh/sshd_config 文件中加入下述设置: + + AllowUsers root@192.168.1.32 + + 要允许用户 admin 从任何地方登录, + 则只需列出用户名: + + AllowUsers admin + + 可以在同一行指定多个用户, 例如: + + AllowUsers root@192.168.1.32 admin + + + 列出需要登录机器的用户很重要; 否则他们将被锁在外面。 + + + 在完成对 + /etc/ssh/sshd_config 的修改之后您必须告诉 + &man.sshd.8; 重新加载其配置文件, 方法是执行: + + &prompt.root; /etc/rc.d/sshd reload + + 进一步的资料 OpenSSH - &man.ssh.1; &man.scp.1; &man.ssh-keygen.1; - &man.ssh-agent.1; &man.ssh-add.1; - &man.sshd.8; &man.sftp-server.8; + &man.ssh.1; &man.scp.1; &man.ssh-keygen.1; + &man.ssh-agent.1; &man.ssh-add.1; &man.ssh.config.5; + &man.sshd.8; &man.sftp-server.8; &man.sshd.config.5; @@ -4081,7 +4146,7 @@ user@unfirewalled-system.example.org's password: *******< 文件系统访问控制表 - 与文件系统在其他方面的加强, 如快照等一道, FreeBSD 5.0 + 与文件系统在其他方面的加强, 如快照等一道, &os; 5.0 及更高版本提供了通过文件系统访问控制表 (ACLs) 实现的安全机制。 @@ -4229,7 +4294,8 @@ drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html 在安装过程中, &man.periodic.8; 的配置文件将被修改, 以便让 Portaudit 能够在每天的安全审计过程中运行。 - 不需要进行更多的配置了。 + 一定要保证发到 root 帐号的每日安全审计邮件确实有人在读。 + 除此之外不需要进行更多的配置了。 安装完成之后, 管理员必须通过运行下面的命令, 来更新保存在本地 @@ -4465,7 +4531,7 @@ VII. References 启用并利用进程记帐 - 在使用进程记帐之前, 管理员必须启用它。 + 在使用进程记帐之前, 必须先启用它。 要完成这项工作, 需要运行下面的命令: &prompt.root; touch /var/account/acct -- cgit v1.2.3