SFTP chroot: sshd_selinux_copy_context: помилка getcon із дозволом відхилена [postauth]


0

Я застряг у створенні SFTP chroot. Я можу ввійти, але я отримую "Дозвіл відмовлено", що б я не намагався.

sftp webadm@<ip>:
webadm@<ip>'s password:
Connected to <ip>.
Changing to: /
sftp> ls
remote readdir("/"): Permission denied
sftp>

Ось що я зробив:

/etc/ssh/sshd_config
Subsystem sftp internal-sftp
Match Group sftponly
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no
        PermitTunnel no
        X11Forwarding no

Я створив webadm користувача

useradd webadm
passwd webadm
groupadd sftponly
gpasswd -a webadm sftponly
usermod -g sftponly webadm
groups webadm
webadm : sftponly

Я дотримувався цього як https://wiki.archlinux.org/index.php/SFTP_chroot

ll /home/
drwx------+ 5 root   root   4096 May 31 23:49 webadm
ll /home/webadm/
-rw-r--r--.  1 webadm sftponly    5 May 31 23:34 test
getfacl /home/webadm/
getfacl: Removing leading '/' from absolute path names
# file: home/webadm/
# owner: root
# group: root
user::rwx
group::---
mask::---
other::---

Там написаний root має володіти chroot dir, але як тоді користувач webadm може отримати доступ до вмісту свого dir? Я намагався

setfacl -m u:webadm:rwx /home/webadm/

але тоді я навіть не зміг увійти.

Я також спробував матчу користувача в sshd, але такий же ефект

Match User webadm
       ChrootDirectory /home/webadm
       AllowAgentForwarding no
       X11Forwarding no
       AllowTcpForwarding no
       #PermitTTY no
       ForceCommand internal-sftp
       PermitTunnel no

Selinux знаходиться в дозвільному режимі. Єдина помилка, яку я бачу, - це в / var / log / secure

Accepted password for webadm from <ip> port 19669 ssh2
pam_unix(sshd:session): session opened for user webadm by (uid=0)
sshd_selinux_copy_context: getcon failed with Permission denied [postauth]

Так що я роблю неправильно? Будь-яка допомога дуже цінується. Дякую.


Яку ОС ви використовуєте?
Jakuje

Останній CentOS 7
Сігі

ваш користувач webadmмає uid=0? Це підозріло.
Jakuje

це не означає, що сеанс відкрив ssh deamon, який працює під коренем?
Сігі

у будь-якому випадку я повністю відключив selinux, і тепер повідомлення про помилку з sshd_selinux_copy_context зникло. Я повинен редагувати назву питання пізніше. Але результат залишається тим самим ...
Сігі

Відповіді:


0
drwx------+ 5 root   root   4096 May 31 23:49 webadm

Спробуйте встановити дозволи для цього каталогу на 755 (rwxr-xr-x), а не на 700. Ідентифікатору веб-адміністратора потрібен дозвіл Read та eXamine в каталозі, щоб бачити файли в ньому.

Сервер ssh буде добре, коли директор читає. Функція chroot вимагає, щоб каталог не був записаний . З посібника sshd_config (наголос додано):

ChrootDirectory
Вказує ім'я шляху каталогу для chroot (2) до після аутентифікації. Під час запуску сеансу sshd (8) перевіряє, чи всі компоненти імені шляху є кореневими каталогами, які не можна записувати жодним іншим користувачем або групою . Після chroot sshd (8) змінює робочий каталог на домашній каталог користувача.

Я пропоную вам також видалити ACL з каталогу, якщо це вам не знадобиться з інших причин. Я не вірю, що SSHD буде враховувати ACL, вирішуючи, чи підходить каталог як каталог chroot.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.