LINUX.ORG.RU
ФорумAdmin

при любых настройках /etc/security/access.conf всегда отрицательный результат


0

0

Здравствуйте! был вопрос по поводу настроить vsftpd принимать соединение для определенного пользователя только с определенного IP. Нашел в интернете что такое можно настроить используя PAM аутентификацию и сосбтвенно файл настроек /etc/security/access.conf

т.к. у меня vsftpd настроен на использование PAM, то вроде бы это был бы оптимальный вариант решение. Покопавшись я нашел что, чтобы заставить PAM обрабатывать access.conf необходимо в файл настроек /etc/pam.d/vsftpd добавить строку account required /lib/security/pam_access.so что собственно и было сделанно

в файле /etc/security/access.conf прописал следующую строку

+ : ALL : ALL

т.е. первоначально разрешил всем все. Но даже учитывая что в этом файле настроек всего одна строка, которая всем все разрешает, аутентификация пользователя соединяющегося с FTP перестала работать, т.е. ни один из паролей и логинов не работает.

добавил в конфигурационный файл PAM account required pam_warn.so чтобы посмотреть в messages хоть какуюто инфу о процессе аутентификации. В messages появилась строка примерно следующего содержания: function=pam_sm_acct_mgmt service=vsftpd terminal=ftp user=vasya ruser=vasya rhost=192.168.0.250

т.е. в модуль передается правильная информация но как я написал выше, даже если все всем разрешено то все равно аутентификация не проходит :(

в настройках PAM для vsftpd стоит всего три строки

auth required pam_authdb .... account required pam_authdb .... account required pam_access.so

если учесть что у всех модулей стоит тип required то успешной аутентификация будет только в случае если все три из них ответят «положительно», т.к. два первых работают нормально, т.е. аутентифицируют все правильно, а при добавлении модуля обработки правил access.conf аутентификация не проходит при любой паре логин:пароль то проблема в этом модуле или в настройках access.conf

но там, как я уже писал выше, стоит правило одно единственное - разрешать все всем

подскажите пожалуйста, в чем тут грабли то? почему не проходит аутентификация? где я мог ошибиться ведь там всего две строки то :(

использую OpenSuSE 11.1 заранее благодарен за помощь


А у вас откуда пользователи берутся: из /etc/passwd или из «виртуального» списка юзеров vsftpd (если такой есть)?

что в pam_authdb?

(В proftpd вашу первоначальную задачу можно решить без использования pam.

  <IfUser dave>
    <Limit LOGIN>
      Allow from 192.168.0.15
      DenyAll
    </Limit>
  </IfUser>
)

Nao ★★★★★
()
Ответ на: комментарий от Nao

пользователи виртуальные берутся из списка который хранится в БД которая сформирована при помощи db_load

но как я уже сказал, pam_warn для account выдает нормальные данные т.е. туда передается и имя пользователя и его IP и собственно сервис для которого это все вызывается

proftpd может и решил бы проблемму но установка нового сервиса довольно сложно будет

ssnake
() автор топика
Ответ на: комментарий от ssnake

из всех описаний я так понял что PAM это независимая вещь которая при помощи модульной системы производит аутентификацию и еще много чего т.е. есть модуль которому параметрами передаются данные а он на основе настроек принимает решение либо «да» либо «нет» так же в зависимости от настроек PAM это решение может быть критичным (required) или нет (optional) т.е. на самом деле ему должно быть все равно где и как хранятся пароли и логины ему они переданы в виде параметров о чем видно из записи в логах

ssnake
() автор топика
Ответ на: комментарий от ssnake

> решение может быть критичным (required) или нет (optional)
Ну там несколько больше возможных значений. Например если «auth required pam_authdb» откажет в авторизации, то дальнейшие строки уже не смогут привести к успеху.

А что это за модуль такой, pam_authdb?

Можешь попробовать закоментить этот модуль. Ещё можно у многих модулей выставить параметр debug или audit чтобы они писали в суслог о каждом событии (pam_warn будет только писать о проходящих мимо него входных данных)

Nao ★★★★★
()
Ответ на: комментарий от Nao

ошибся когда писал на форум.. не pam_authdb а pam_userdb.so

добавил опцию debug но в логе только одна строка

vsftpd: pam_userdb(vsftpd:auth): user=vasya granted access

ssnake
() автор топика
Ответ на: комментарий от ssnake

неужели такой полезной штукой как pam никто не пользуется :(

ssnake
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.