Я установил jailkit на свой сервер CentOS 5.8 и настроил его в соответствии с найденными мной онлайн-руководствами. Это команды, которые были выполнены от имени пользователя root:
mkdir /var/jail
jk_init -j /var/jail extshellplusnet
jk_init -j /var/jail sftp
adduser testuser; passwd testuser
jk_jailuser -j /var/jail testuser
Затем я отредактировал /var/jail/etc/passwd
изменить оболочку входа для testuser
быть /bin/bash
чтобы предоставить им доступ к полной оболочке bash через SSH.
Далее я редактировал /var/jail/etc/jailkit/jk_lsh.ini
чтобы выглядеть следующим образом (не уверен, что это правильно)
[testuser]
paths= /usr/bin, /usr/lib/
executables= /usr/bin/scp, /usr/lib/openssh/sftp-server, /usr/bin/sftp
Тестовый пользователь может подключаться через SSH и ограничен только просмотром каталога chroot jail, а также может входить в систему через SFTP, однако вся файловая система видна и может быть перемещена.
Выход SSH:
> ssh testuser@server
Password:
Last login: Sat Oct 20 03:26:19 2012 from x.x.x.x
bash-3.2$ pwd
/home/testuser
Выход SFTP:
> sftp testuser@server
Password:
Connected to server.
sftp> pwd
Remote working directory: /var/jail/home/testuser
Что можно сделать, чтобы заблокировать доступ SFTP к тюрьме?
Хотелось бы исправить, если есть проблемы с этим, но следующая конфигурация, похоже, сработала.
Сменил пользователя в /etc/passwd
(не /var/jail/etc/passwd
), который был изменен jailkit:
Оригинал testuser:503:503::/var/jail/./home/testuser:/usr/sbin/jk_chrootsh
Изменено testuser:503:503::/home/testuser:/bin/bash
Добавлена конфигурация в /etc/ssh/sshd_config
:
Match Group testuser
ChrootDirectory /var/jail/
Теперь при входе через SSH
или SFTP
пользователь ограничен /var/jail
и ниже и по умолчанию используется домашний каталог в /var/jail/home/testuser