/etc/ssh/sshd_config
Код: Выделить всё
Subsystem sftp /usr/libexec/sftp-server
Код: Выделить всё
Subsystem sftp /usr/libexec/sftp-server
Код: Выделить всё
cd /usr/ports/security/openssh-portable/
make install clean
Код: Выделить всё
#sshd_enable="YES"
sshd_program="/usr/local/sbin/sshd"
openssh_enable="YES"
Код: Выделить всё
#Subsystem sftp /usr/local/libexec/sftp-server
Subsystem sftp internal-sftp
Код: Выделить всё
Match User guest1
ChrootDirectory /home/chroot
AllowTCPForwarding no
X11Forwarding no
Код: Выделить всё
pw useradd -m -d /home/guest1 -s /bin/sh -n guest1
Код: Выделить всё
#!/bin/sh
#
# Usage: ./make_crot.sh [username]
# Here specify the apps you want into the enviroment
APPS="/usr/bin/tar \
/usr/bin/man /usr/bin/find \
/usr/bin/gzip /usr/bin/gunzip /usr/bin/ee \
/usr/local/bin/mc /usr/local/bin/mcmfmt \
/usr/local/bin/mcedit /usr/sbin/chown \
/bin/rmdir /bin/chmod /bin/tcsh /bin/sh \
/bin/ls /bin/mkdir /bin/mv \
/bin/pwd /bin/rm /usr/bin/id /usr/bin/ssh /usr/bin/ldd \
/bin/cp /bin/echo /bin/cat /bin/date \
/bin/pwd /bin/ln /bin/link /bin/ps /usr/local/bin/unzip \
/usr/bin/sed /usr/bin/grep \
/sbin/ldconfig /usr/sbin/mtree \
/usr/bin/uname /usr/bin/diff /usr/bin/tr /usr/bin/sort \
/usr/bin/awk /usr/bin/nawk /usr/bin/less /usr/local/bin/unrar \
/usr/bin/tail /usr/bin/bzip2 /usr/bin/openssl /usr/bin/du"
# Sanity check
if [ "$1" = "" ] ; then
echo " Usage: ./make_crot.sh [ username ] [ homedir ]"
exit
fi
if [ "$2" = "" ] ; then
echo " Usage ./make_crot.sh [ username ] [ homedir ]"
exit
fi
# Obtain username and HomeDir
CHROOT_USERNAME=$1
#HOMEDIR=`grep /etc/passwd -e "^$CHROOT_USERNAME" | cut -d':' -f 6`
HOMEDIR=$2
GROUP_ID=`/usr/bin/groups $CHROOT_USERNAME`
if [ ! -x ${HOMEDIR} ] ; then
/bin/mkdir ${HOMEDIR}
fi
/bin/mkdir ${HOMEDIR}/libexec
/bin/mkdir ${HOMEDIR}/etc
/bin/mkdir ${HOMEDIR}/bin
/bin/mkdir ${HOMEDIR}/sbin
/bin/mkdir ${HOMEDIR}/usr
/bin/mkdir ${HOMEDIR}/usr/bin
/bin/mkdir ${HOMEDIR}/usr/sbin
/bin/mkdir ${HOMEDIR}/usr/lib
/bin/mkdir ${HOMEDIR}/usr/local
/bin/mkdir ${HOMEDIR}/usr/local/etc
/bin/mkdir ${HOMEDIR}/usr/share
/bin/mkdir ${HOMEDIR}/usr/local/bin
/bin/mkdir ${HOMEDIR}/usr/local/lib
/bin/mkdir ${HOMEDIR}/usr/local/share
/bin/mkdir ${HOMEDIR}/dev
/bin/mkdir ${HOMEDIR}/usr/libexec
/bin/mkdir ${HOMEDIR}/tmp
/bin/mkdir ${HOMEDIR}/var
/bin/mkdir ${HOMEDIR}/var/cron
/bin/mkdir ${HOMEDIR}/var/cron/tabs
/bin/mkdir ${HOMEDIR}/var/run
/bin/mkdir ${HOMEDIR}/var/tmp
/bin/chmod 777 ${HOMEDIR}/tmp
/bin/chmod 777 ${HOMEDIR}/var/tmp
# Create short version to /usr/bin/groups
# On some system it requires /bin/sh, which is generally unnessesary in a chroot cage
/bin/echo "#!/bin/sh" > ${HOMEDIR}/usr/bin/groups
/bin/echo "/usr/bin/id -Gn ${CHROOT_USERNAME}" >> ${HOMEDIR}/usr/bin/groups
/bin/echo "/usr/bin/id -Gn root" >> ${HOMEDIR}/usr/bin/groups
/bin/chmod +x ${HOMEDIR}/usr/bin/groups
# Add some users to ./etc/passwd
/bin/echo "root:*:0:0::0:0:Charlie &:/root:/sbin/nologin" > ${HOMEDIR}/etc/master.passwd
/usr/bin/grep /etc/master.passwd -e "^${CHROOT_USERNAME}" >> ${HOMEDIR}/etc/master.passwd
/usr/bin/grep /etc/passwd -e "^${CHROOT_USERNAME}" > ${HOMEDIR}/etc/passwd
/usr/bin/grep /etc/group -e "^${GROUP_ID}" > ${HOMEDIR}/etc/group
/bin/echo "wheel:*:0:root" >> ${HOMEDIR}/etc/group
/bin/cp /etc/pwd.db ${HOMEDIR}/etc/pwd.db
/bin/cp /etc/spwd.db ${HOMEDIR}/etc/spwd.db
/usr/sbin/pwd_mkdb -d ${HOMEDIR}/etc ${HOMEDIR}/etc/master.passwd
# Copy the apps and the related libs
for prog in $APPS; do
/bin/cp $prog ${HOMEDIR}$prog
# obtain a list of related libraryes
/usr/bin/ldd $prog > /dev/null
if [ "$?" = 0 ] ; then
LIBS=`/usr/bin/ldd $prog | awk '{ print $3 }'`
for l in $LIBS; do
/bin/mkdir ${HOMEDIR}`/usr/bin/dirname $l` > /dev/null 2>&1
/bin/cp -f $l ${HOMEDIR}$l
done
fi
done
# From some strange reason these 3 libraries are not in the ldd output, but without them
# some stuff will not work, like usr/bin/groups
/bin/cp -f /libexec/ld-elf.so.1 ${HOMEDIR}/libexec/ld-elf.so.1
/bin/cp -f /etc/manpath.config ${HOMEDIR}/etc/manpath.config
/bin/cp -f /etc/termcap ${HOMEDIR}/etc/termcap
/bin/cp -f /etc/motd ${HOMEDIR}/etc/motd
/bin/cp -R /usr/local/share/mc ${HOMEDIR}/usr/local/share/mc
/bin/echo "export TERMCAP=/etc/termcap" >> ${HOMEDIR}/.profile
/bin/echo "setenv TERMCAP /etc/termcap" >> ${HOMEDIR}/.cshrc
/sbin/mknod ${HOMEDIR}/dev/null c 2 2
/sbin/mknod ${HOMEDIR}/dev/sa0 c 2 2
Код: Выделить всё
./make_chroot.sh guest1 /home/chroot/
Код: Выделить всё
chown -R root:wheel /home/chroot
Как сделать, что куда скопировать, где что подправить?вообще, в 7й ветке, родной ssh системы изначально поддерживает ChrootDirectory
так что думаю, что ставить доп. порт, нет необходимости...
я файлик passwd в чрут/etc/ пробовал кидаь, не помогло.а сама база данныйх присутствует в чруте?
а я хотел без дополнительных установок.cd /usr/ports/security/openssh-portable/
make install clean