Всем привет.
Буквально неделю назад настраивал на домашнем серваке и все работало норм. Сейчас опять решил потренироваться перед настройкой на боевом сервере.
Цель задачи:
Обеспечить доступ по SSH в изолированную среду, чтобы те у кого сильно чешутся руки не смогли нанести вред ОС и работе служб (либо усложнить им задачу).
Доступный пакет программ:
Минимальный набор ультилит который будет доступен пользователям по SSH.
1. Функции копирования, перемещения/переименования, удаления (вобщем работа с файлами)
2. Программы для работы с файлами, а именно mc, nano, vi.
3. Программы для работы через интернет wget, git.
Что имеем:
Сервер находится на выделенной под сети - eth0 смотрит в интернет (файрволл пока не настроен)
Установлен только DNS сервер bind9 (настроен и функционирует) и openssh-server
Расположение и структура текущей изолированной среды:
Изолированная среда расположена в каталоге /home
создана сим. ссылка на этот каталог внутри /home
Листинг каталога:
drwxr-xr-x 11 root root 4096 Фев 25 21:02 .
drwxr-xr-x 23 root root 4096 Фев 25 04:51 ..
drwxr-xr-x 2 root root 4096 Фев 25 06:11 bin
drwxr-xr-x 3 root root 4096 Фев 25 06:20 dev
drwxr-xr-x 2 root root 4096 Фев 25 21:05 etc
lrwxrwxrwx 1 root root 1 Фев 25 05:47 home -> .
drwxr-xr-x 3 root root 4096 Фев 25 05:50 lib
drwxr-xr-x 2 root root 4096 Фев 25 05:51 lib64
drwx------ 2 root root 16384 Фев 25 04:50 lost+found
drwx------ 2 popov popov 4096 Фев 25 06:13 popov
drwx------ 2 svl svl 4096 Фев 25 06:13 svl
drwxr-xr-x 3 root root 4096 Фев 25 06:04 usr
Содержимое каталога bin:
drwxr-xr-x 2 root root 4096 Фев 25 06:11 .
drwxr-xr-x 11 root root 4096 Фев 25 21:02 ..
-rwxr-xr-x 1 root root 975488 Фев 25 06:11 bash
-rwxr-xr-x 1 root root 130128 Фев 25 06:05 cp
-rwxr-xr-x 1 root root 114032 Фев 25 06:07 ls
-rwxr-xr-x 1 root root 55888 Фев 25 06:08 mkdir
-rwxr-xr-x 1 root root 121896 Фев 25 06:09 mv
-rwxr-xr-x 1 root root 60000 Фев 25 06:10 rm
-rwxr-xr-x 1 root root 47584 Фев 25 06:10 rmdir
-rwxr-xr-x 1 root root 106920 Фев 25 05:49 sh
Содержимое каталога dev:
drwxr-xr-x 3 root root 4096 Фев 25 06:20 .
drwxr-xr-x 11 root root 4096 Фев 25 21:02 ..
crw-r--r-- 1 root root 13, 2 Фев 25 06:04 null
drwxr-xr-x 2 root root 4096 Фев 25 06:20 pts
crw-r--r-- 1 root root 13, 12 Фев 25 06:04 zero
Конфигурационный файл sshd_config:
...тут штатные настройки...
Match User svl
ChrootDirectory /home
AllowTCPForwarding no
X11Forwarding no
ForceCommand /usr/lib/openssh/sftp-server
Также сделал в изолированной среде 2-а файла etc/group, etc/passwd таким путем:
grep svl /etc/group > /home/etc/group
grep svl /etc/passwd > /home/etc/passwd
Библиотеки для программ я копировал следующим путем:
так я получал список зависимостей
# ldd `which sh`
и копировал в изолированную среду.
ИТОГ:
если выполнить от рута команду chroot /home /bin/sh то все работает, команды пашут.
если зайти через Putty то поле ввода логина и пароля терминал загрывается.
В логах на сервере при подключении в изолированную среду:
Feb 25 21:34:31 hosting sshd[9069]: Accepted password for svl from ХХХ.ХХХ.ХХХ.ХХХ port 45914 ssh2
Feb 25 21:34:31 hosting sshd[9069]: pam_unix(sshd:session): session opened for user svl by (uid=0)
Feb 25 21:34:32 hosting sshd[9069]: pam_unix(sshd:session): session closed for user svl
P/S:
Я читал кучу мануалов на Руссом и английском языке и успешно настроил 1-н сервер, сейчас не получается. Прошу Вас люди добрые помочь разобраться дабы понять в чем проблема.
Спасибо.
Пользователь решил продолжить мысль 25 Февраля 2014, 17:58:47:
все проблема решена. Убрал ForceCommand и все заработало.