The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"FreeBSD PAM RADIUS/TACACS+"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Авторизация и аутентификация, LDAP / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"FreeBSD PAM RADIUS/TACACS+"  +1 +/
Сообщение от GByte (??) on 21-Фев-11, 12:36 
Приветствую!
Помогите настроить PAM на аутентификацию пользователей через TACACS+ или RADIUS.


Возмникла необходимость аутентифицировать пользователей на сервере Cisco ACS 5.

Необходимая конфигурация ACS сделана.

Настраиваю PAM.

В первую очередь хотелось использовать TACACS+.
Сделана была следующая настройка:
[/etc/pam.d]# cat tacacs
#%PAM-1.0
auth        sufficient    /usr/lib/pam_tacplus.so try_first_pass template_user=tacuser
session        sufficient    /usr/lib/pam_tacplus.so service=shell protocol=ssh
account        sufficient    /usr/lib/pam_tacplus.so service=shell protocol=ssh


[/etc/pam.d]# grep -v '#' sshd
auth        include        tacacs
account        include        tacacs
session        include        tacacs

auth        sufficient    pam_opie.so        no_warn no_fake_prompts
auth        requisite    pam_opieaccess.so    no_warn allow_local
auth        required    pam_unix.so        try_first_pass

account        required    pam_nologin.so
account        required    pam_login_access.so
account        required    pam_unix.so

session        required    pam_permit.so
password    required    pam_unix.so        try_first_pass

При таких настройках получаю проблемы на уровне Cisco ACS 5: "24408 User authentication against Active Directory failed since user has entered the wrong password".
При этом пароль _точно_ ввожу правильный, подозреваю какие-то проблемы в кодировании на уровне pam_tacplus<=>CiscoACS5.


Так как не получилось использовать pam_tacplus решено использовать pam_radius.
Но и тут возникли проблемы.

Настройки PAM:
[/etc/pam.d]# grep -v '#' sshd
auth        sufficient    pam_opie.so        no_warn no_fake_prompts
auth        requisite    pam_opieaccess.so    no_warn allow_local
auth        sufficient    pam_radius.so        no_warn try_first_pass template_user=raduser
auth        required    pam_unix.so        try_first_pass


account        required    pam_nologin.so
account        sufficient    pam_radius.so        template_user=raduser
account        required    pam_login_access.so
account        required    pam_unix.so

session        required    pam_permit.so
password    required    pam_unix.so        try_first_pass

При аутентификации получаю закрытие ssh-сессии, а в /var/log/auth.log следующее:
Feb 21 11:19:44 webserv sshd[99280]: Invalid user user1 from 172.1.1.100
Feb 21 11:19:48 webserv sshd[99282]: in openpam_dispatch(): pam_radius.so: no pam_sm_acct_mgmt()
Feb 21 11:19:48 webserv sshd[99280]: fatal: Internal error: PAM auth succeeded when it should have failed

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "FreeBSD PAM RADIUS/TACACS+"  +/
Сообщение от GByte (??) on 22-Фев-11, 15:23 
Up!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "FreeBSD PAM RADIUS/TACACS+"  +/
Сообщение от Try on 11-Апр-12, 17:17 
Я не с ответом а с вопросом пришел! )

Как я понимаю tacacs сервер на циске..?
Если да то изначально как тебе удалось заставить pam_tacplus.so  обращаться на удаленную машину! У меня он требует локальный /etc/tacplus.conf
Я от только в упор не понимаю что в него нужно писать, что бы тот отправил запрос на удаленный сервер..

Поясни пожалуйста, как у тебя это сделано! Может быть у тебя уже получилась реализовать такую авторизацию.. ?


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "FreeBSD PAM RADIUS/TACACS+"  +/
Сообщение от Try on 28-Май-12, 17:19 
У меня вот что получилось!

tac_plus.conf
=============
key = super_secret
user = tacuser {
# Пользователя несуществует на клиентском хосте
login = cleartext tacuserpass
}
user = user {
# Пользователь существует на клиентском хосте
login = cleartext userpass
}

/etc/pam.d/tacacs
=================
auth    sufficient      /usr/lib/pam_tacplus.so try_first_pass
account sufficient      /usr/lib/pam_tacplus.so service=shell protocol=ssh
session sufficient      /usr/lib/pam_tacplus.so service=shell protocol=ssh

При авторизации пользователем tacuser получаю ошибку:
====================================================
Mon May 28 17:04:07 2012 [14045]: PACKET: key=super_secret
Mon May 28 17:04:07 2012 [14045]: version 192 (0xc0), type 1, seq no 3, flags 0x1
Mon May 28 17:04:07 2012 [14045]: session_id 3974293904 (0xece2e990), Data length 18 (0x12)
Mon May 28 17:04:07 2012 [14045]: End header
Mon May 28 17:04:07 2012 [14045]: type=AUTHEN/CONT
Mon May 28 17:04:07 2012 [14045]: user_msg_len 13 (0xd), user_data_len 0 (0x0)
Mon May 28 17:04:07 2012 [14045]: flags=0x0
Mon May 28 17:04:07 2012 [14045]: User msg:
Mon May 28 17:04:07 2012 [14045]:  0x8  0xa
Mon May 28 17:04:07 2012 [14045]: User data:
Mon May 28 17:04:07 2012 [14045]: End packet
Mon May 28 17:04:07 2012 [14045]: login query for 'tacuser' unknown-port from 10.171.50.244 rejected
Mon May 28 17:04:07 2012 [14045]: login failure: tacuser 10.171.50.244 (10.171.50.244) unknown-port
Mon May 28 17:04:07 2012 [14045]: Writing AUTHEN/FAIL size=18
Mon May 28 17:04:07 2012 [14045]: PACKET: key=super_secret
Mon May 28 17:04:07 2012 [14045]: version 192 (0xc0), type 1, seq no 4, flags 0x1
Mon May 28 17:04:07 2012 [14045]: session_id 3974293904 (0xece2e990), Data length 6 (0x6)
Mon May 28 17:04:07 2012 [14045]: End header

При авторизации пользователем user получаю следующее:
=====================================================
Mon May 28 17:14:12 2012 [14066]: Read AUTHEN/CONT size=25
Mon May 28 17:14:12 2012 [14066]: PACKET: key=super_secret
Mon May 28 17:14:12 2012 [14066]: version 192 (0xc0), type 1, seq no 3, flags 0x1
Mon May 28 17:14:12 2012 [14066]: session_id 4210167980 (0xfaf210ac), Data length 13 (0xd)
Mon May 28 17:14:12 2012 [14066]: End header
Mon May 28 17:14:12 2012 [14066]: type=AUTHEN/CONT
Mon May 28 17:14:12 2012 [14066]: user_msg_len 8 (0x8), user_data_len 0 (0x0)
Mon May 28 17:14:12 2012 [14066]: flags=0x0
Mon May 28 17:14:12 2012 [14066]: User msg:
Mon May 28 17:14:12 2012 [14066]: userpass
Mon May 28 17:14:12 2012 [14066]: User data:
Mon May 28 17:14:12 2012 [14066]: End packet
Mon May 28 17:14:12 2012 [14066]: login query for 'user' unknown-port from 10.171.50.244 accepted
Mon May 28 17:14:12 2012 [14066]: Writing AUTHEN/SUCCEED size=18
Mon May 28 17:14:12 2012 [14066]: PACKET: key=super_secret
Mon May 28 17:14:12 2012 [14066]: version 192 (0xc0), type 1, seq no 4, flags 0x1
Mon May 28 17:14:12 2012 [14066]: session_id 4210167980 (0xfaf210ac), Data length 6 (0x6)
Mon May 28 17:14:12 2012 [14066]: End header
Mon May 28 17:14:12 2012 [14066]: type=AUTHEN status=1 (AUTHEN/SUCCEED) flags=0x0
Mon May 28 17:14:12 2012 [14066]: msg_len=0, data_len=0
Mon May 28 17:14:12 2012 [14066]: msg:
Mon May 28 17:14:12 2012 [14066]: data:
Mon May 28 17:14:12 2012 [14066]: End packet
Mon May 28 17:14:12 2012 [14066]: 10.171.50.244: disconnect

Как я понимаю, серверу не передается пароль несушествующего пользователя в системе.
При этом я могу войти в систему как под паролем локального пользователя так и под паролем с сервера

Можете подсказать возможно ли войти в систему под несушествующей локальной учетной записью на удаленном хосте, а под учеткой взятой с сервера? Как я понял переменная template_user служит именно для этого, должна авторизовать входящего пользователя под тем пользователем который указан при авторизации именно в том случае когда локального паользователя с таким именем нет!.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру