Как использовать PAM, чтобы разрешить доступ ‘root’ только с локального терминала?

Вопрос или проблема

Я новичок в 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. Это можно сделать, изменив несколько конфигурационных файлов.

  1. SSH-доступ: Чтобы заблокировать вход по SSH, откройте файл конфигурации SSH:

    sudo nano /etc/ssh/sshd_config

    Найдите строку с параметром PermitRootLogin и измените её на:

    PermitRootLogin no

    Затем перезапустите SSH-сервис для применения изменений:

    sudo systemctl restart sshd
  2. Telnet-доступ: Чтобы заблокировать доступ через Telnet, добавьте следующую строку в файл /etc/default/login:

    echo "CONSOLE=/dev/console" | sudo tee /etc/default/login

Шаг 2: Настройка PAM

Теперь, когда доступ root через SSH и Telnet отключен, необходимо настроить PAM для ограничения доступа к root только с локального терминала.

  1. Откройте файл конфигурации PAM для работы с терминалом:

    sudo nano /etc/pam.d/login

    Добавьте следующую строку в начало файла (или перед другими управляющими модулями):

    auth required pam_securetty.so
  2. Затем откройте файл /etc/securetty:

    sudo nano /etc/securetty

    В этом файле укажите, на каких терминалах разрешён вход под пользователем root. Для локального доступа вам нужно добавить строки, указывающие на терминалы. Например, добавьте следующее (если используете стандартные терминалы):

    console
    tty1
    tty2
    tty3
    tty4

    Эти строки указывают PAM, что доступ к root разрешён только с указанных терминалов.

Шаг 3: Тестирование конфигурации

После завершения всех изменений обязательно протестируйте конфигурацию:

  1. Попробуйте войти под root с локального терминала, используя правильный пароль.
  2. Попробуйте удалить SSH и Telnet доступ, чтобы убедиться, что вы не можете войти под root с удаленных машин.

Заключение

Следуя приведённым выше шагам, вы сможете успешно настроить систему так, чтобы доступ к учетной записи root был разрешён только с локального терминала. Это значительно повысит уровень безопасности вашей системы, предотвращая попытки удалённого входа в учетную запись с максимальными привилегиями.

Использование PAM в сочетании с разумной конфигурацией SSH и Telnet является важным шагом в управлении безопасностью вашей операционной системы.

Оцените материал
Добавить комментарий

Капча загружается...