本站原创转载注明出处 by:vitter(vitter_at_safechina.net) My blog: http://blog.securitycn.net www.securitycn.net,www.vfocus.net,www.safechina.net
1 安装准备 下载openssh和sftp logging patch for openssh http://www.openssh.org/ http://sftplogging.sourceforge.net/ 以openssh-4.4p1为例
1.1 解压openssh tar zxvf openssh-4.4p1.tar.gz
1.2 log补丁 patch -p0 < openssh-4.4p1.sftplogging-v1.5.patch
1.3 编译 cd openssh-4.4p1 ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam 注:--with-pam是支持pam,--prefix=/usr --sysconfdir=/etc/ssh是与原来的sshd保持一致 make
1.4 如果1.3通过,停止sshd服务 service sshd stop
1.5 卸载 openssh-server和openssh rpm -qa|grep openssh openssh-clients-3.6.1p2-34 openssh-server-3.6.1p2-34 openssh-3.6.1p2-34
rpm -e --nodeps openssh-server-3.6.1p2-34 rpm -e --nodeps openssh-3.6.1p2-34 只卸载openssh-server和openssh,因为我们只关心这两个服务
1.6 安装刚刚编译的openssh make install
1.7 重建 /etc/rc.d/init.d/sshd cp contrib/redhat/sshd.init /etc/rc.d/init.d/sshd
1.8 重建 pam.d/sshd cat /etc/pam.d/sshd #%PAM-1.0 auth required pam_stack.so service=system-auth auth required pam_nologin.so account required pam_stack.so service=system-auth password required pam_stack.so service=system-auth session required pam_stack.so service=system-auth
1.9 openssh支持sftp上传下载日志记录 vi /etc/ssh/sshd_config
LogSftp yes SftpLogFacility AUTH
vi /etc/syslog.conf auth,authpriv.* /var/log/sftp.log
service syslog restart
1.10 重启 sshd service sshd start
2 配置sshd以支持chroot
2.1 构建chroot环境
2.1.1 使用环境变量,方便 export CHROOT_PATH=/home/vitter
2.1.2 创建基本目录 mkdir -p $CHROOT_PATH/{bin,home,usr,lib} chown -R root.root $CHROOT_PATH cd $CHROOT_PATH
2.1.3 创建 /bin/bash环境 cp /bin/bash $CHROOT_PATH/bin/bash for a in $(ldd /bin/bash | awk '{print $3}') do [ -e $CHROOT_PATH`dirname $a` ] || mkdir -p $CHROOT_PATH`dirname $a` cp -f $a $CHROOT_PATH$a; done
2.1.4 创建 sftp-server 环境 export SFTP_SERVER=`grep Subsystem /etc/ssh/sshd_config | awk '{print $3}'` echo $SFTP_SERVER mkdir -p $CHROOT_PATH/`dirname $SFTP_SERVER` cp $SFTP_SERVER $CHROOT_PATH$SFTP_SERVER for a in $(ldd $SFTP_SERVER | awk '{print $3}') do [ -e $CHROOT_PATH`dirname $a` ] || mkdir -p $CHROOT_PATH`dirname $a` cp -f --reply=yes $a $CHROOT_PATH$a; done
chroot环境已经搭建完毕,只有一个bash可供使用 sftp-server,是为了相应用户的sftp登陆的
2.2 配置chroot-openssh
2.2.1 添加或指定享受此待遇的用户,这里以sftptest为例 useradd -d /home/sftptest sftptest mv /home/sftptest $CHROOT_PATH/home/sftptest ln -s $CHROOT_PATH/home/sftptest /home/sftptest passwd sftptest
这里使用了软连接,为了保持chroot环境和实际环境的一致。
2.2.2 修改sshd配置 [vi /etc/ssh/sshd_config] UsePAM yes
2.2.3 修改sshd.pam配置 [vi /etc/pam.d/sshd] session required pam_chroot.so
2.2.4 修改chroot配置 echo sftptest $CHROOT_PATH >> /etc/security/chroot.conf
2.2.5 重新启动 service sshd restart
3 可选操作,增加安全性 chattr -R +i $CHROOT_PATH chattr -R -i $CHROOT_PATH/home
本博原创,如转载请注明出处:http://blog.vfocus.net,谢谢。
本文的引用网址: /blog/mt-tb.cgi/176
|