Створення користувачів SFTP та ув'язнення для хронізації на CentOS - помилка аутентифікації користувача


18

У мене випуск CentOs 6.4 з Digital Ocean, і я хотів би успішно створити користувачів SFTP і відправити їх у власну домашню директорію chroot, але я боюся, що я з цим заплутаюся.

Я спробував багато речей, занадто багато, щоб перелічити тут насправді, як більшість, мабуть, неправильно або не матиме особливого сенсу, але те, що я вважаю, має бути правильним процесом, і те, що я спробував, це: -

Створіть групу для sftp: -

groupadd sftp

Створіть користувача та встановіть його домашній каталог: -

useradd -d /var/www/vhosts/domain.com dummyuser

Встановіть пароль для користувача: -

passwd dummyuser

Змініть групу користувача на 'sftp': -

usermod -g sftp dummyuser

Встановіть оболонку користувача на /bin/false: -

usermod -s /bin/false dummyuser

Редагування підсистеми в sshd_config( /etc/ssh/): -

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Додайте до нижньої частини sshd_configфайлу:

Match group sftp
    X11Forwarding no
    ChrootDirectory %h
    AllowTcpForwarding no
    ForceCommand internal-sftp

Я переконуюсь, що всі наступні каталоги root:root:

/var
/var/www
/var/www/vhosts
/var/www/vhosts/domain.com

Якщо я спробую увійти на сервер через SFTP з користувачем dummyuser(у WinSCP), я отримаю наступне: -

Authentication log (see session log for details):
Using username "dummyuser".

Authentication failed.

Все, що я хочу досягти, - це заарештувати користувача до їх домашнього каталогу. У мене також встановлено і настроєно vsftpd. Користувачі могли б увійти в систему добре, але матимуть доступ до всього сервера - я просто не встиг домогтися в'язниці працювати.

Редагувати

Забув згадати, я потім sshdтакож перезапустив :

service sshd restart

Коли помилка виробляється в WinSCP, їх довідкова сторінка тут .

Результати журналу

/var/log/secure

Я замінив фактичне ім’я сервера на server_name.

 Apr 28 14:20:56 server_name sshd[9944]: Accepted password for dummyuser from 80.194.255.4 port 44402 ssh2
 Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session opened for user dummyuser by (uid=0)
 Apr 28 14:20:56 server_name sshd[9946]: fatal: bad ownership or modes for chroot directory component "/var/www/vhosts/"
 Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session closed for user dummyuser

Ви перезапустили sshd? Що є у файлах журналів на сервері?
факер

Так, я, вибачте, що забув додати це до кінця свого запитання (включу зараз). Який файл журналу (та його місцеположення) я повинен шукати, оскільки я досі не зміг знайти файл "журналу сеансу"? Спасибі.
zigojacko

Ви захочете поглянути /var/log/secure.
факер

Відмінно, дякую - це допомагає (оновлення запитання за допомогою записів журналу).
zigojacko

фатально: погана власність або режими для компонента каталогу chroot "/ var / www / vhosts /" щось подібне, я підозрював, але vhostsє root:root.
zigojacko

Відповіді:


14

Це загальна помилка:
всі папки до будинку chroot повинні бути власником та користуватися ним лише rootкористувачем.
Папки не можуть бути доступними для запису групи, навіть якщо група є root.


4
Я просто навчився хитрості, щоб перевірити це зручно:namei -l /var/www/vhosts
clockworkgeek

5

Я знайшов і успішно налаштував sftp на CentOS 6.5: http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/

Редагувати налаштування sshd:

vim / etc / ssh / sshd_config

#Subsystem      sftp    /usr/libexec/openssh/sftp-server (comment out the default with "#")

add:

Subsystem sftp internal-sftp
Match Group sftp-only
ChrootDirectory /var/www/%u
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

Вийдіть і збережіть.

Потім:

mkdir /etc/skel2
groupadd sftp-only
getent group |grep sftp-only  (take note the GID (Group ID).  Here, in my example it's 500)

Для нового користувача під назвою "testuser" (член групи лише sftp з GID 500):

useradd --base-dir /var/www --gid 500 --skel /etc/skel2 --create-home --shell /sbin/nologin testuser

(я використовую порожній / etc / skel2, тому не .bashrc тощо не копіюється CentOS за замовчуванням)

mkdir -p /var/www/testuser/home/testuser

chown root:sftp-only /var/www/testuser
chmod 750 /var/www/testuser

chown root:root /var/www/testuser/home
chmod 755 /var/www/testuser/home

chown testuser:sftp-only /var/www/testuser/home/testuser
chmod 770 /var/www/testuser/home/testuser

Тому в цьому прикладі я зробив це, щоб надати безпечний доступ до зовнішніх консалтингових фірм, які керують веб-сайтами. Ви можете, створивши все це:

mkdir /var/www/testuser/home/testuser/www.somesite.com
chown testuser:apache /var/www/testuser/home/testuser/www.somesite.com
chmod xxx (permissions to the website as needed, usually 750 so apache would get read access)

Можна було б все це налаштувати за потребою.

Сподіваюсь, це допомогло!

Хлопець Boisvert IngTegration inc. http://www.ingtegration.com


Ласкаво просимо до помилки сервера! Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
masegaloeh

1
Оскільки ви змінили конфігурацію sshd, я б запропонував вам перезапустити її:service sshd restart
Loïc
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.