Как я ограничиваю указанного пользователя SSH для соединения только от одного IP или имени хоста?

У меня есть контролирующий сервер, который требует деталей соединения SSH non-sudo учетной записи пользователя каждого поля, которое это контролирует. Существует ли способ, которым я могу настроить определенную учетную запись пользователя, таким образом, что в него можно только войти от определенного IP (или еще лучше имя хоста)? Я не хочу ограничивать способность других пользователей на сервере, чтобы смочь соединиться от других адресов (иначе, я просто использовал бы брандмауэр), или используйте аутентификацию по паролю для контрольного сервиса только.

7
задан 19 July 2015 в 03:10

4 ответа

Посмотрите man sshd_config. Существует возможность добавить AllowUsers блок, где можно указать и пользователя и разместить как это:

AllowUsers user@host # or IP

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

Другое решение (зависит от исправлений ошибок!)

Как я думаю об этом еще раз, существует возможность изменить Ваш sshd_config как это:

Match Host !hostname
    DenyUsers user
Match Host hostname
    AllowUsers user

Это легко заблокировало бы всех пользователей кроме от user от hostname и отовсюду еще это заблокировалось бы user.

НО это не работает, из-за немногих ошибок сообщил в восходящем направлении [1] [2]. Но мы обещали его, это будет зафиксировано в следующем выпуске.

8
ответ дан 23 November 2019 в 06:12

Можно использовать подстановочные знаки для строки AllowUsers на /etc/ssh/sshd_config файл. Таким образом, было бы выполнимо добавить строку:

AllowUsers *@192.168.1.100

Или:

AllowUsers *@hostname

, Чтобы позволить всем от того доступа IP-адреса или имени хоста.

Не забудьте:

service ssh restart

, После того как Вы внесли изменения, пока Вы находитесь на версии прежде 15.04. 15,04 использования systemd теперь, также - другой механизм для управления сервисами.

6
ответ дан 23 November 2019 в 06:12

Согласно страницы справочника , это должно работать:

DenyUsers user@"!host,*"

я протестировал это на Debian, и это, казалось, работало правильно.

3
ответ дан 23 November 2019 в 06:12

Так как это - главный результат поиска в Google, я думаю, что люди должны также знать об установке полномочий в /etc/hosts.allow файл (curtesy сообщения в блоге Cameron Oltmann по вопросу):

Для ограничения ssh доступа к полю Linux на основе возникновения IP-адреса отредактируйте/etc/hosts.allow:

sshd : localhost : allow
sshd : 192.168.0. : allow
sshd : 99.151.250.7 : allow
sshd : mydomain.net : allow
sshd : ALL : deny

Вышеупомянутая запись предоставит ssh доступ от localhost, 192.168.0.x подсеть, единственный IP-адрес 99.151.250.7 и mydomain.net (предполагающий, что mydomain.net имеет в распоряжении запись ptr для упрощения обратного поиска). Все другие IP-адреса будут запрещены доступа к sshd.

Примечания: Можно позволить или отклонить на основе IP-адреса, подсети или имени хоста. Список управляет в порядке большинства к наименее определенному. Файл только читается, пока согласующий отрезок длинной линии не найден, поэтому если Вы запускаете с ssdh: ВСЕ: отклоните, никакие соединения SSH не будут позволены.

И необходимо смочь использовать user@address в этом файле, на эту ссылку lifewire.com:

Более сложные формы daemon@host и user@host объяснены в разделах по шаблонам конечной точки сервера и по клиентским поискам имени пользователя, соответственно.

2
ответ дан 23 November 2019 в 06:12

Другие вопросы по тегам:

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