Вопрос или проблема
Я новичок в PAM
, и довольно сложно определить конкретный модуль или конфигурационный файл, поэтому обращаюсь с этим вопросом.
Я хочу разрешить доступ к root
только из консоли, т.е. если кто-то физически присутствует на этой системе. Когда кто-то пытается каким-либо образом удаленно войти в root
(даже если у него правильный пароль), например, через ssh, telnet и т.д. (любые средства), это должно быть запрещено.
Доступ к root
должен предоставляться только при доступе с консоли и вводе правильного пароля.
Как я могу добиться этого, используя PAM
?
Чтобы отключить доступ к root
через удаленный SSH, отредактируйте файл /etc/ssh/sshd_conf
и убедитесь, что у вас есть эта строка PermitRootLogin no
. Затем перезапустите службу SSH.
Чтобы отключить доступ к root
через удаленный Telnet:
$ sudo sh -c 'echo "CONSOLE=/dev/console" > /etc/default/login'
В дополнение к изменениям ssh – может потребоваться обновить /etc/securetty, чтобы ограничить доступ к root
только консолью (без tty и vc типов).
Ответ или решение
Как использовать PAM для разрешения доступа к ‘root’ только с локального терминала
При работе с безопасностью систем администрирования важно контролировать доступ к учетной записи root
. Использование модуля PAM (Pluggable Authentication Modules) может помочь ограничить доступ к root
только для локального терминала. В этой статье мы подробно рассмотрим, как это сделать.
Шаг 1: Отключение удаленного доступа
Первый шаг — отключение возможности удаленного входа под учетной записью root
. Это можно сделать, изменив несколько конфигурационных файлов.
-
SSH-доступ: Чтобы заблокировать вход по SSH, откройте файл конфигурации SSH:
sudo nano /etc/ssh/sshd_config
Найдите строку с параметром
PermitRootLogin
и измените её на:PermitRootLogin no
Затем перезапустите SSH-сервис для применения изменений:
sudo systemctl restart sshd
-
Telnet-доступ: Чтобы заблокировать доступ через Telnet, добавьте следующую строку в файл
/etc/default/login
:echo "CONSOLE=/dev/console" | sudo tee /etc/default/login
Шаг 2: Настройка PAM
Теперь, когда доступ root
через SSH и Telnet отключен, необходимо настроить PAM для ограничения доступа к root
только с локального терминала.
-
Откройте файл конфигурации PAM для работы с терминалом:
sudo nano /etc/pam.d/login
Добавьте следующую строку в начало файла (или перед другими управляющими модулями):
auth required pam_securetty.so
-
Затем откройте файл
/etc/securetty
:sudo nano /etc/securetty
В этом файле укажите, на каких терминалах разрешён вход под пользователем
root
. Для локального доступа вам нужно добавить строки, указывающие на терминалы. Например, добавьте следующее (если используете стандартные терминалы):console tty1 tty2 tty3 tty4
Эти строки указывают PAM, что доступ к
root
разрешён только с указанных терминалов.
Шаг 3: Тестирование конфигурации
После завершения всех изменений обязательно протестируйте конфигурацию:
- Попробуйте войти под
root
с локального терминала, используя правильный пароль. - Попробуйте удалить SSH и Telnet доступ, чтобы убедиться, что вы не можете войти под
root
с удаленных машин.
Заключение
Следуя приведённым выше шагам, вы сможете успешно настроить систему так, чтобы доступ к учетной записи root
был разрешён только с локального терминала. Это значительно повысит уровень безопасности вашей системы, предотвращая попытки удалённого входа в учетную запись с максимальными привилегиями.
Использование PAM в сочетании с разумной конфигурацией SSH и Telnet является важным шагом в управлении безопасностью вашей операционной системы.