headermask image

Notice: Undefined variable: t in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15

Notice: Undefined variable: r in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15
Рекомендую: Фриланс-биржа | Кэшбэк-сервис | Интернет-бухгалтерия

Установка и настройка SSHD в среде chroot при помощи makejail

Иногда возникает необходимость ограничить пользователя который имеет доступ по ssh, конечно это можно реализовать выставив права на лиректории, урезав права пользователю и тд. Но сменив корневую директорию для пользователя и ограничив его набором программ которые вы выбрали сами гораздо безопаснее. В этой статье я опишу как настроить SSHD на работу с chroot, применяя ограничения только к нужным пользователям. Для настроки нам понадобятся измененная версия SSHD и пакет makejail который создает chroot окружение для программ автоматически, используя конфигурационные файлы. Есть и минусы, так как на сегодня имеется не самая свежая версия пакета sshd, а именно версии 4.3p2. Установку и настройку я проводил на системе Ubuntu 8.04, но на странице где можно скачать пропатченный SSHD имеются исходные коды, которые можно собрать на других операционных системах.

Установим необходимое програмное обеспечение командой

Код:

aptitude install makejail

Затем создадим конфигурационный файл для этой программы, он понадобится нам для создания среды chroot с набором необходимых программ, библиотек и прочего.

Код:

touch /etc/makejail/sshd.py

Ниже я приведу свой файл, вы можете изменить там директорию для chroot, имена пользователей, а так же набор программ, вписав названия в секцию packages

Код:

chroot="/mnt/chroot"

forceCopy=["/etc/ssh/ssh_host*","/etc/ssh/sshd*","/etc/ssh/moduli",

"/etc/pam.conf","/etc/security/*","/etc/pam.d/ssh","/etc/pam.d/other",

"/etc/hosts","/etc/nsswitch.conf",

"/var/run/sshd","/lib/security/*",

"/etc/shells", "/etc/nologin","/etc/environment","/etc/motd",

"/etc/shadow","/etc/hosts*",

"/bin/*sh", "/lib/libnss*",

"/dev/pt*","/dev/ttyp[0-9]*"]

packages=["fileutils"]

preserve=["/dev/","/var/www","/etc","/usr","/lib","/etc/ssh"]

userFiles=["/etc/passwd","/etc/shadow"]

groupFiles=["/etc/group","/etc/gshadow"]

users=["sshd","tester"]

groups=["sshd","tester"]

testCommandsInsideJail=["start-stop-daemon --start --quiet --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd"]

testCommandsOutsideJail=["ssh localhost"]

processNames=["sshd"]

Установим пропатченный SSHD, который имеет поддержку chroot. Так же придется заменить и клиент, что бы версии совпадали.

Код:

wget http://debian.home-dn.net/etch/ssh/openssh-server_4.3p2-9etch2-chroot4.3p1_i386.deb

wget http://debian.home-dn.net/etch/ssh/openssh-client_4.3p2-9etch2-chroot4.3p1_i386.deb

dpkg -i openssh-client_4.3p2-9etch2-chroot4.3p1_i386.deb openssh-server_4.3p2-9etch2-chroot4.3p1_i386.deb

Cоздадим тестового пользователя с логином tester

Код:

useradd -m -d /mnt/chroot/home/tester -s /bin/bash -p secret tester

Если вы заглянете в файл /etc/passwd то увидите там примерно следующее:
tester:x:142:142::/mnt/chroot/home/tester:/bin/bash
Для того что бы наш пользователь при входе по SSH попадал в chroot необходимо изменить строку в /etc/passwd вот так:
tester:x:142:142::/mnt/chroot/./home/tester:/bin/bash
Мы добавили в строку символы /./ которые и сменят корневой каталог для нашего пользователя вместо / на /mnt/chroot

Теперь запустим программу makejail для создания chroot среды

Код:

makejail /etc/makejail/sshd.py

Она автоматически скопирует все необходимое и запустит демона SSHD. После этого попробуйте выполнить вход на сервер от пользователя tester.

Для того что бы наш SSH сервер при перезагрузках и рестартах стартовал в созданной нами изолированной среде немного подправим скрипт /etc/init.d/ssh изменив строку “start-stop-daemon …” на “chroot /var/chroot/sshd start-stop-daemon …”

Вот собственно и все, очень надеюсь что статья будет полезна вам.

О разном

Советую скачать саундтрек фильма сумерки. Просто великолепная музыка.

Стихотворная классика: “Гой ты, Русь, моя родная” Сергея Есенина

Похожие посты
  • Простая установка и настройка BIND 9 (ДНС сервер)
  • Установка и настройка DNS сервера bind9 Ubuntu-Debian HOWTO
  • Запуск Х приложений на удаленной машине
  • Сбрасываем пароль в Ubuntu используя Live CD.
  • Как установить программу на комп если установка программ запрещена администратором
  • Добавление дополнительных плагинов для Cacti
  • Установка и настройка Key Management Service (KMS) в корпоративной среде Windows Server 2008/Windows Vista
  • Создание SSL прокси при помощи lighttpd
  • Как установить SSH Server в Windows Server 2008
  • Установка и настройка дедупликации данных в Windows Server 8