sftp сервер в chroot с ведением логов

 

Иногда возникает необходимость предоставить некоторому кругу лиц sftp доступ, но без возможности подключиться по ssh и ходить по основной файловой системе, читая файлы типа /etc/passwd, обычно доступные всем для чтения. В этом случае можно создать chroot-окружение для этих пользователей, изолировав их в отдельной "песочнице" и не давай выйти за ее пределы. Вот как это делается:

Создание chroot

Первое и самое сложное что необходимо сделать - создать директорию (например /home/chroot), содержащую все необходимые файлы (бинарники и библиотеки) для работы sftp в ней. Можно сделать это вручную копируя файлы из основной системы, но гораздо эффективнее сделать это с помощью jailkit. После установки тем или иным способом можно приступить к созданию директории:

mkdir /home/chroot
chown root:root /home/chroot
chmod 0755 /home/chroot
jk_init -j /home/chroot basicshell
jk_init -j /home/chroot sftp
jk_init -j /home/chroot scp
jk_init -j /home/chroot logbasics

После этого можно проверить chroot:

chroot /home/chroot
ls /
ls /home
exit

Создание пользователей

Тут есть небольшая хитрость: нам нужно чтобы пользователь присутствовал в passwd как основной системы, так и chroot. Кроме того, нужно чтобы его домашняя директория также была доступна и там и там.

Вот как это делал я:

# создаем пользователя jailtest
useradd -m jailtest
# перемещаем его домашнюю директорию в chroot, а в основном /home/ делаем ссылку на нее:
mkdir -p /home/chroot/home
mv /home/jailtest /home/chroot/home/
ln -s /home/chroot/home/jailtest  /home/
# добавляем запись о пользователе в passwd chroot-окружения:
grep jailtest /etc/passwd >> /home/chroot/etc/passwd

pam_chroot

Теперь "запрем" пользователей с помощью pam_chroot. В файле /etc/security/chroot.conf:

jailtest                /home/chroot/

Итак, на этом этапе chroot уже работает, в чем можно убедиться зайдя пользователем jailtest:

su - jailtest

Отключение интерактивного входа

Однако скорее всего вам нужно запретить интерактивный вход, оставив только sftp и scp. Существуют разные способы сделать это, наиболее удобным мне показалось использование rssh - специальной командной оболочки, позволяющей запретить интерактивный логин, разрешив использование sftp.

Устанавливаем rssh, открываем его конфигурационный файл /etc/rssh.conf и убеждаемся что строчки

allowscp
allowsftp

раскомментированы, а все остальные закомментированы. rssh также умеет самостоятельно делать chroot (без pam_chroot), но я не использовал эту возможность, поэтому оставил опцию chrootpath закомментированой.

Теперь нужно поменять оболочку с /bin/bash на /usr/bin/rssh в файлах /etc/passwd и /home/chroot/etc/passwd. В дальнейшем можно указывать /usr/bin/rssh в качестве оболочки сразу при создании пользователя.

Кроме того, нужно скопировать rssh со всеми необходимыми ему библиотеками и конфигурационными файлами в chroot. В этом нам снова поможет jailkit:

jk_cp -j /home/chroot/ /usr/bin/rssh
cp /etc/rssh.conf /home/chroot/etc/

Проверяем:

su - jailtest
 
This account is restricted by rssh.
Allowed commands: scp sftp 
 
If you believe this is in error, please contact your system administrator.

Логирование

Остался последний штрих: хорошо было бы логировать все что происходит с нашим sftp сервером. Делается это так:

Во-первых, включаем логирование в sshd_config - находим строчку описания подсистемы sftp и дополняем опциями "-l INFO -f LOCAL1", стока должна выглядеть так:

Subsystem       sftp    /usr/libexec/openssh/sftp-server -l INFO -f LOCAL1

Далее необходимо создать лог-устройство в chroot и указать syslog'у что нужно прослушивать и его.

cd /home/chroot
mknod dev/log c 21 5

Для того чтобы syslog прослушивал и это устройство, нужно запускать syslogd с опцией -a /home/jail/dev/log. В rhel этого можно добиться отредактировав файл /etc/sysconfig/syslog:

# Options to syslogd
# -m 0 disables 'MARK' messages.
# -r enables logging from remote machines
# -x disables DNS lookups on messages recieved with -r
# See syslogd(8) for more details
SYSLOGD_OPTIONS="-m 0 -a /home/chroot/dev/log"

Ну и последний штрих: чтобы отделить сообщения sftp от других, добавим в /etc/syslog.conf следущую строчку:

# sftp logging
local1.*                                                /var/log/sftp.log

Как-то мне хватало вот такой

Как-то мне хватало вот такой настройки в sshd.conf

Match Group sftponly
ChrootDirectory /home/sftponly
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp

Пользователей, естественно нужно поместить в группу sftponly, а их домашние папки перенести в /home/sftponly

Проще.
А логи он и так в auth.log пишет.

К сожалению, с некоторыми

К сожалению, с некоторыми версиями sshd (4.3, которых в rhel5) это не работает.

Думаю вам бы sshd обновить

Думаю вам бы sshd обновить чтоли.

Аффтар похоже нашел и перевел

Аффтар похоже нашел и перевел хавтушку для FreeBSD 4.* ... сто лет в обед как это всё умеет стандартный sshd

см. выше

см. выше

proftpd+sftp

добавлю - в последней версии proftpd появилась поддержка sftp.

moncler

Moncler Gamme Bleu series seems to be bound up with bike culture.Moncler This not only shows in its design but also the pattern printed in the clothes. In this series, designer put in leggings to match some clothes. herve leger This point arouses great controversy in public. It is common that ladies wear leggings to match their long shirts or short dresses.Moncler Jackets If a man put on a legging, he looks a little feminization.Hermes Birkin Somebody do not agree with this. They thought men also should be fashionable.Buy Moncler Wearing leggings is not the right of ladies, but also the fashion of men`s.Christian Louboutin In recent years, many clothes have been more neutralize. Men are paying more and more attention to their dressing.Moncler Clothing Creations in men`s dressing are more and more diversified. Fashion is such kind of thing that at first it will arouse controversy and with acceptance from more and more people it will be popular.Herve Leger dresses Maybe one day there will be more neutralized clothes that men and women can try together.Christian Louboutin Pumps

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
КАПЧА