sshd :Каков практический эффект от установки «UsePAM no»

Вам просто нужно настроить маршрутизацию. Убедитесь, что IP-переадресация включена на VPN-сервере и клиентах. (Я предполагаю, что клиенты являются шлюзами по умолчанию для двух локальных сетей, это проще всего ). Кроме того, проще всего запустить два экземпляра OpenVPN на сервере VPN, по одному для каждого клиента (точка -— -точка ). Просто дайте им разные порты для работы.

Затем вам просто нужно добавить директивы «маршрут» в ваши конфигурации OpenVPN. Использование 192.168.1.0/24 в качестве подставки -для первой сети и 192.168.2.0/24 для второй:

ptp -first.conf (не полная конфигурация, просто несколько вещей, которые могут отличаться от обычной точки -на -многоточечный клиент VPN):

mode p2p
dev-type tun
dev first_vpn
ifconfig 192.168.0.1 192.168.0.2 # note NOT on either network
route 192.168.1.0 255.255.255.0
push "route 192.168.2.0 255.255.255.0"

ptp -second.conf:

mode p2p
dev-type tun
dev second_vpn
ifconfig 192.168.0.3 192.168.0.4 # note NOT on either network
route 192.168.2.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0"

Помните, что конфигурациям клиентов потребуются адреса «ifconfig» в обратном порядке.

Вы можете найти гораздо больше информации, примеры конфигураций и т. д., выполнив поиск по таким терминам, как «маршрутизация openvpn».

4
14.10.2021, 04:02
3 ответа

Вопреки тому, что утверждает man-страница (и другой ответ ), UsePAM yesне только позволяет запускать sshd от имени не -пользователя root, но также позволяет запускать sshd как не -пользователь root для выполнения аутентификации по паролю(для того же пользователя, который работает как )с помощью программы setuid /sbin/unix_chkpwd.

Последнее из которых весьма неожиданно.

user$ /usr/sbin/sshd -f /dev/null -p 9009 -h ~/.ssh/id_rsa
user$ /usr/sbin/sshd -f /dev/null -o UsePAM=yes -p 7007 -h ~/.ssh/id_rsa

user$ ssh -p 7007 localhost
The authenticity of host '[localhost]:7007 ([::1]:7007)' can't be established.
...
Password: <correct password>
Linux deb11 5.10.0-8-amd64 #1 SMP Debian 5.10.46-4 (2021-08-03) x86_64
...
user$  <I'm logged in!>
user$ ^D
Connection to localhost closed.


user$ ssh -p 9009 localhost
The authenticity of host '[localhost]:9009 ([::1]:9009)' can't be established.
...
user@localhost's password:
Permission denied, please try again.
user@localhost's password:
Permission denied, please try again.
user@localhost's password:
user@localhost: Permission denied (publickey,password,keyboard-interactive).
user$
3
17.10.2021, 15:28

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

В древние времена, когда для UsePAMбыло установлено значение «да», sshd требовал привилегий суперпользователя. В зависимости от варианта использования -, запуск от имени пользователя, отличного от -, может помочь с безопасностью или настройкой.

Я могу представить, что бывают ситуации, когда это может пригодиться. Например, git использует ssh в качестве транспортного протокола. Я могу настроить сервер git, но я вообще не хочу управлять пользователями git через PAM.

3
16.10.2021, 06:20

Для этого я изучил исходный код OpenSSH.

Судя по комментарию auth-pam.c, который я нашел здесь, в строках 378 -382 (, ссылка здесь):

может привести к тому, что UsePAM может косвенно или напрямую привести к утечке вашей среды.
         /*
         * XXX this possibly leaks env because it is not documented
         * what pam_putenv() does with it. Does it copy it? Does it
         * take ownweship? We don't know, so it's safest just to leak.
         */

Также в том же исходном коде я нашел это интересное содержание:

/*
     * Some silly PAM modules (e.g. pam_time) require a TTY to operate.
     * sshd doesn't set the tty until too late in the auth process and
     * may not even set one (for tty-less connections)
     */

Похоже также, что попытка аутентификации по паролю осуществляется через PAM в строке 1351, и в этом коде используется защита от -временных атак.

Поскольку он определен в предложении if, весь этот auth-pam.cкод не выполняется, поэтому я бы установил значение no, если позволяют настройки безопасности.

Так что, по моему мнению, я бы предпочел установить значение «нет» и больше не терять из-за этого сон.

Другие мнения

Есть и такое мнение:https://askubuntu.com/questions/1259848/

Похоже, что аутентификация с открытым ключом SSH может завершиться ошибкой, если вы неправильно настроите параметры :https://serverfault.com/questions/475880

Я бы также рекомендовал прочитать этот вывод в конце раздела Configuring accounts:

https://arlimus.github.io/articles/usepam/

2
16.10.2021, 17:46

Теги

Похожие вопросы