天天看点

使用openssh的新特性构建chroot环境

一、简述:

    chroot 即 change root directory (更改 root 目录) 。在 linux 系统中,系统默认的目录结构都是以 `/`,即是以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为 `/` 位置。

二、为什么要使用chroot

    在经过 chroot 之后,系统读取到的目录和文件将不在是真实系统根下的而是新根下(即被指定的新的位置)的目录结构和文件,因此它带来的好处大致有以下3个:

    * 增加了系统的安全性,限制了用户的权力;

    * 建立一个与原系统隔离的系统目录结构,方便用户的开发;

    * 可以限制chroot用户的命令使用

三、目的:可开放chroot帐号供开发人员web服务器查看日志,分析问题等。

四、chroot环境部署

如果是5.5的系统,需要升级openssh,本文是在6.2和5.5中都有使用。

#建立帐号

useradd rd 

echo "www.elain.org" | passwd --stdin rd 

#下载chroot环境

cd /home 

wget http://ebook.elain.org/tools/chroot_v1.0.tar.gz 

tar zxvf chroot_v1.0.tar.gz 

chown rd.rd /home/chroot/home/rd 

rm -rf chroot_v1.0.tar.gz  

cat <<EOF>>/etc/ssh/sshd_config 

#chroot 

Match User rd 

ChrootDirectory /home/chroot 

EOF 

/etc/init.d/sshd restart 

mount --bind /data/logs /home/chroot/home/rd 

使用rd登录测试!!!

五、openssh升级(for centos 5.5)

1.升级sshd前准备

yum -y install gcc* make openssl openssl-devel perl pam pam-devel 

mkdir -p /opt/soft/src && cd /opt/soft/src 

wget http://ftp.bit.nl/mirror/openssh/portable/openssh-5.9p1.tar.gz

#备份现有ssh

mv /etc/ssh/ /etc/ssh.bak 

cp /etc/init.d/sshd /etc/init.d/sshd.bak

2.安装sshd

cd /opt/soft/src 

tar zxf openssh-5.9p1.tar.gz 

cd openssh-5.9p1 

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords 

make 

rpm -e --nodeps openssh-server-4.3p2-41.el5 

rpm -e --nodeps openssh-4.3p2-41.el5 

make install 

mv /etc/init.d/sshd.bak /etc/init.d/sshd 

touch /etc/ssh/ssh_host_ecdsa_key 

touch /etc/ssh/ssh_host_ecdsa_key.pub 

mkdir -p /var/empty/sshd/etc 

#重启sshd.

升级成功.

转载请注明: 转载自http://www.elain.org

本文转自 elain2012 51CTO博客,原文链接:http://blog.51cto.com/elain/949301

继续阅读