Как разрешить ssh пользователю root только из локальной сети?

Я установил Google-Authenticator на машине CentOS 6.5 и настроил некоторых пользователей на предоставление OTP.

Во время редактирования / etc / ssh / sshd_config Я видел директиву « PermitRootLogin », которая по умолчанию закомментирована.

Я бы хотел установить « PermitRootLogin no » но чтобы по-прежнему иметь возможность подключаться к машине как root только из локальной сети.

Возможно ли это?

38
задан 20 July 2016 в 15:07
3 ответа

Используйте параметр конфигурации Match в /etc/ssh/sshd_config:

# general config
PermitRootLogin no 

# the following overrides the general config when conditions are met. 
Match Address  192.168.0.*
    PermitRootLogin yes

См. man sshd_config

54
ответ дан 28 November 2019 в 19:47

Метод Match address уже упоминался, но вы также можете ограничить пользователей (или группы), которым разрешен вход в систему. Например, чтобы ограничить вход в систему пользователю itai (откуда угодно) и root (из определенной сети), используйте:

AllowUsers itai root@192.168.0.*

Это не позволит всем остальным пользователям (например, apache) входить в систему через SSH.

См. также ключевое слово AllowUsers в руководстве sshd_config(5).

.
14
ответ дан 28 November 2019 в 19:47

Другая стратегия может состоять в том, чтобы оставить для PermitRootLogin значение no для всех адресов, но позволить другому пользователю входить в систему и использовать sudo. Одним из преимуществ этого является то, что вы можете ограничить действия этого пользователя с помощью конфигурации sudo. Это дополнительный уровень защиты в дополнение к ограничению IP-адресов, с которых пользователь-администратор может войти в систему.

В /etc/ssh/sshd_config отключите вход в систему root:

PermitRootLogin no

Создайте другого пользователя, скажем, admin. Настройте разрешенные IP-адреса в файле авторизованных ключей этого пользователя, /home/admin/.ssh/authorized_keys:

from="192.168.0.0/24,fe80::%eth0/64" <your public key here>

В этом примере я также разрешил трафик с локальных IPv6-адресов. ]. Это полезно, если вы используете mDNS, который может разрешаться в адрес IPv6, или если вам нужно получить доступ к серверу, даже если маршрутизация нарушена. Обратите внимание, что часть адреса eth0 будет меняться в зависимости от имени интерфейса на вашем сервере. Используйте ifconfig или ip-ссылку, чтобы получить список допустимых сетевых устройств для вашего сервера.

1
ответ дан 30 April 2021 в 21:35

Теги

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