openssh记录sftp详细日志,并chroot用户目录
本站原创转载注明出处
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

浙公网安备 33010602011771号