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

Несколько экземпляров sshd с использованием разных конфигураций PAM

Я установил несколько открытых демонов ssh на разных портах и ​​хотел бы, чтобы они использовали разные профили конфигурации PAM. Это возможно? Насколько я понимаю, PAM определяет имя файла конфигурации из двоичного файла демона - поэтому мне нужно перекомпилировать мой sshd, чтобы он использовал другой файл конфигурации PAM ?!

К сожалению, имя службы, выбранное программой, жестко запрограммировано. Скорее всего, вам придется изменить исходный код sshd и перекомпилировать.

Причина, по которой они делают это вместо того, чтобы просто передавать ARGV [0] в качестве имени службы, связана с соображениями безопасности. Если файл pam.d / был выбран на основе ARGV [0] (имя программы), то злоумышленник может создать символическую ссылку / жесткую ссылку / cp для этой программы на имя по своему выбору. Тот, который имел наименьшие ограничения внутри связанного pam.d / file.

Найдите в источнике строку, например:

int pam_start(

===================

ОБНОВИТЬ:

auth-pam.h показывает значение servicename:

__progname

Это означает, что вы МОЖЕТЕ просто изменить имя программы, и программа будет искать pam-файл с новым именем. Не очень хорошая практика безопасности, и я немного удивлен этим. Может быть, кто-то знает что-то, чего я не знаю ... потому что ребята из OpenBSD намного умнее меня. :п

ОБНОВЛЕНИЕ 2:

Проверено, что для PAM servicename установлено базовое имя, выполнив с консоли следующее:

cp sshd на sshd2:

[root@cent ~]# cp /usr/sbin/sshd /usr/sbin/sshd2

остановите текущий sshd и запустите новый:

[root@cent ~]# /etc/init.d/sshd stop
[root@cent ~]# /usr/sbin/sshd2

Запустите strace на новом sshd и попытайтесь войти через ssh из другого компа.

[root@cent ~]# strace -fp 5835 -e trace=open -o ssh_results&

Найдите, какой файл pam:

[root@cent ~]# grep -i pam.d ssh_results 
6116  open("/etc/pam.d/sshd2", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)

sshd2 (базовое имя)