Назад | Перейти на главную страницу

ВсФТПд - пам_мхомедир

Я пытаюсь настроить FTP-сервер, который аутентифицируется на сервере LDAP. Эта часть сделана и работает. Мой сервер - VsFTPd на Ubuntu Server 11.04. Но мне нужно создать домашние каталоги для моих пользователей LDAP. Я пытаюсь использовать pam_mkhomedir модуль, но он не работает: когда я добавляю его строку в /etc/pam.d/vsftpd файла, мои пользователи больше не могут входить на FTP-сервер. Проблема в том, что у меня очень мало информации о том, что не так. VsFTPd просто отвечает 530: login incorrect и я не мог найти способ получать сообщения об отладке или ошибках от pam_mkhomedir.

Вот мои разные файлы конфигурации. В /etc/pam.d/vsftpd файл:

auth    required    pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

auth        required    pam_ldap.so
account     required    pam_ldap.so
password    required    pam_ldap.so
session     optional    pam_mkhomedir.so skel=/home/skel debug

В /etc/vsftpd.conf файл:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
guest_enable=YES
session_support=YES
log_ftp_protocol=YES
tcp_wrappers=YES

Разрешения на /home и /home/skel:

root@ftp:/home# ls -al
total 16
drwxrwxrwx  4 root     root     4096 2011-10-11 21:19 .
drwxr-xr-x 21 root     root     4096 2011-09-27 13:32 ..
drwxrwxrwx  2 root     root     4096 2011-10-11 19:34 skel
drwxrwxrwx  5 foo      foo      4096 2011-10-11 21:11 foo

root@ftp:/home# ls -al skel/
total 16
drwxrwxrwx 2 root root 4096 2011-10-11 19:34 .
drwxrwxrwx 4 root root 4096 2011-10-11 21:19 ..
-rwxrwxrwx 1 root root 3352 2011-10-11 19:34 .bashrc
-rwxrwxrwx 1 root root  675 2011-10-11 19:34 .profile

Да, я знаю, разрешения не установлены должным образом, но проблема здесь не в безопасности: сначала мне нужно заставить его работать.

Итак, резюмируя: без pam_mkhomedir мои пользователи LDAP могут войти в систему, но они ничего не могут сделать, потому что они находятся в пустой chrooted jail. Если я добавлю pam_mkhomedir, они больше не смогут войти. Если кто-то знает, почему, или знает, как получить дополнительную информацию из логов, я был бы очень благодарен, спасибо.

Ответ простой - необходимо включить поддержку сессий в vsftpd.conf:

session_support=YES

Возможно, это не имеет прямого отношения к vsftpd, но с SFTP я столкнулся с тем, что pam_mkhomedir.so создает домашний адрес, принадлежащий пользователю: group - естественно, даже если файлы skel принадлежат пользователю root. Но chroot с SFTP хочет, чтобы root: root владел chroot homedir по соображениям безопасности (с разрешениями 755). Даже если файлы skel принадлежат пользователю root.

Взгляни на /var/log/audit.log, вы увидите что-то вроде этого:

type = USER_START msg = audit (1290252247.771: 1669772): user pid = 20068 uid = 0 auid = 0 msg = 'PAM: session open acct = "Quanta": exe = "/ usr / sbin / vsftpd" (hostname = SVR040- 763.localdomain, адрес = 127.0.0.1, терминал = ftp res = не удалось) '

Итак, измените /etc/pam.d/vsftpd кому:

auth       sufficient   pam_ldap.so     
account    sufficient   pam_ldap.so
password   sufficient   pam_ldap.so     
session    sufficient   pam_ldap.so     
session    required     pam_mkhomedir.so skel=/etc/skel/ umask=0022

и попробуй еще раз.

Если вы все еще получаете ошибки: «500 OOPS: не удалось найти запись пользователя:», «500 OOPS: невозможно сменить каталог:», Я предлагаю вам использовать автодир вместо.