З випуском OpenSSH 4.9p1 вам більше не доведеться покладатися на сторонні хаки або складні налаштування chroot, щоб обмежити користувачів домашніми каталогами або надати їм доступ до сервісів SFTP.
редагуйте / etc / ssh / sshd_config (/ etc / sshd_config у деяких дистрибутивах) та встановіть наступні параметри:
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Переконайтеся, що в кінці файлу є директива "Збіг". Це говорить про OpenSSH, що всі користувачі групи sftp повинні бути вписані в домашній каталог (що% h представляє в команді ChrootDirectory
Для будь-яких користувачів, які ви хочете chroot, додайте їх до групи sftp, використовуючи:
# usermod -G sftp joe
# usermod -s /bin/false joe
# chown root:root /home/joe
# chmod 0755 /home/joe
Команда usermod вище додасть користувача joe до групи sftp і встановить їх оболонку на / bin / false, щоб вони абсолютно ніколи не могли отримати доступ до оболонки. Команди chown та chmod встановлять необхідні дозволи для каталогу. Якщо встановлено ці дозволи, користувачеві буде дозволено завантажувати та завантажувати файли, але він не може створювати каталоги або файли в кореневому каталозі
Хротування облікових записів оболонок трохи складніше, оскільки вимагає, щоб певні файли пристрою та оболонка були доступні в домашньому каталозі користувача. Наступні команди налаштують дуже основну систему chroot на Mandriva Linux:
# mkdir /chroot
# cd /chroot
# mkdir {bin,dev,lib}
# cp -p /bin/bash bin/
# cp -p /lib/{ld-linux.so.2,libc.so.6,libdl.so.2,libtermcap.so.2} lib/
# mknod dev/null c 1 3
# mknod dev/zero c 1 5
# chmod 0666 dev/{null,zero}
# mkdir -p /chroot/home/joe
З урахуванням вищесказаного, користувач joe може вторгнутись і обмежиться chroot. На жаль, це не дуже добре, але це дає вам уявлення про те, як це можна налаштувати. Залежно від того, що ви хочете надати, вам потрібно буде встановити додаткові бібліотеки та бінарні файли.
Створення хроту
Встановіть пакети dchroot та debootstrap.
Як адміністратор (тобто використовуючи sudo), створіть новий каталог для chroot. У цій процедурі /var/chroot
буде використано каталог . Для цього введіть sudo mkdir /var/chroot
командний рядок.
Як адміністратор, відкрийте
/etc/schroot/schroot.conf
в текстовому редакторі. Тип cd /etc/schroot
, потім gksu gedit schroot.conf
. Це дозволить вам редагувати файл.
Додайте до цього рядки, schroot.conf
а потім збережіть і закрийте файл. Замініть
your_username
своїм іменем користувача.
[lucid] опис = Ubuntu Lucid location = / var / chroot пріоритет = 3 користувача = your_username groups = побудувати root-groups = root
Відкрийте термінал і введіть:
sudo debootstrap --variant=buildd --arch i386 lucid /var/chroot/ \
http://mirror.url.com/ubuntu/
Це створить базову «установку» Ubuntu 10.04 (Lucid Lynx) у chroot. Завантаження пакетів може зайняти деякий час. Примітка. Ви можете замінити lucid на вибрану вами версію Ubuntu. Примітка. Ви повинні змінити вищезазначене mirror.url.com
за допомогою URL-адреси дійсного місцевого дзеркала архіву. Тепер повинен був бути створений базовий chroot. Введіть sudo chroot /var/chroot
для зміни кореневу оболонку всередині chroot.
Налаштування chroot
Існує кілька основних кроків, які ви можете зробити, щоб налаштувати chroot, надаючи такі засоби, як роздільна здатність DNS та доступ до них /proc
.
Примітка: Введіть ці команди в оболонку, яка знаходиться поза chroot.
Введіть наступне, щоб змонтувати /proc
файлову систему в chroot (потрібно для управління процесами):
sudo mount -o bind /proc /var/chroot/proc
Введіть наступне, щоб дозволити роздільну здатність DNS зсередини chroot (необхідна для доступу до Інтернету):
sudo cp /etc/resolv.conf /var/chroot/etc/resolv.conf
Дуже мало пакетів встановлено за замовчуванням у chroot (навіть sudo не встановлено). Використовуйте apt-get install package_name
для встановлення пакетів.