为 OpenSSH 添加 chroot 功能

2009-05-13 15:28:49来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


目标
#}ci9\D)Gbl为
[url=javascript:;]OpenSSH[/url]
的 sshd 添加将登录用户
[url=javascript:;]chroot[/url]
的功能。
5{&Pp7pgdB,]
原理介绍
BSD爱好者乐园cuux$h(lh9]r@/n
OpenSSH 的 sshd 本身没有提供 chroot 的功能,所以必须依靠一些其他的方法来提供 chroot 的功能。而 OpenSSH 所提供的 sshd 拥有使用 Pluggable Authentication Module(简称为 PAM,下同)的能力,因而我们可以利用这个东西来提供这样的功能。正好
[url=javascript:;]FreeBSD[/url]
同时提供了一个叫做 pam_chroot(8) 的 PAM 模块,这个模块的作用就是提供 chroot 的功能。于是通过 FreeBSD 已有的代码,我们可以为 OpenSSH 的 sshd 提供 chroot 的功能。BSD爱好者乐园-@QVf+}7X xI
软件需求
0Y I|*[6zUyFreeBSD 7.0-RELEASE(实际上未必需要这么新,但是其他的版本我没有测试过)。BSD爱好者乐园j X \ @W&_3G
[url=javascript:;]实现[/url]
过程
配置 /etc/ssh/sshd_config
BSD爱好者乐园:u`Ou$q B9}n
设置 UsePAM 为 yes。
4uw \$l5D H?/F
配置 /etc/pam.d/sshd

pam_chroot(8) 的简介
BSD爱好者乐园h7g-j0b9\2~!Okq}%S
PAM 模块可以提供 4 种功能,分别是 authentication、account management、
[url=javascript:;]session[/url]
management 和 password management。而 pam_chroot(8) 本身只提供了 session management 的功能。这个 PAM 模块可以有 4 个参数 also_root,always,cwd,dir,以下逐一解释。BSD爱好者乐园1~gMR3Y
also_root
E;P? {])K8Y如果设置了 also_root,那么即使是
[url=javascript:;]root[/url]
登录上来,也会被 chroot。BSD爱好者乐园rOQ5^J,G
always
BSD爱好者乐园@4`n1w'D1h9G
always 告诉 pam_chroot(8) 无论如何都要 chroot,如果找不到合适的 root directory,那么 pam_chroot(8) 模块就报告失败。如果不设置这个选项,查找合适的 root directory 失败之后,pam_chroot(8) 模块报告的就是成功。BSD爱好者乐园7^&s+WI+S1S_
dir
7Zlzg1Zdir 是默认的 root directory,如果用户的 home directory 在 passwd 中的描述不符合 pam_chroot(8) 的要求,那么用户就会被 dir 就将是用户的 root directory。BSD爱好者乐园|&wP2Mce3[ k x
cwd
h){;R1xT"Z*lYocwd 提供一个默认的 working directory 给 pam_chroot(8),如果用户的 home directory 在 passwd 中的描述不符合 pam_chroot(8) 的要求,那么将会 chdir 到这个目录,该参数默认为 /。
{%D"ME)}+?3c
配置合适的参数
BSD爱好者乐园0d+mRZw-T"F#\#xZB
由于 pam_chroot(8) 只有 session management 功能,那么 /etc/pam.d/sshd 这个
[url=javascript:;]文件

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:agef - Usenet news 管理工具

下一篇:通过 PXE 安装 FreeBSD