У меня есть сервер мониторинга, для которого требуется информация о соединении SSH для учетной записи пользователя, отличной от sudo, для каждого блока, который он контролирует. Есть ли способ настроить конкретную учетную запись пользователя таким образом, чтобы ее можно было регистрировать только с определенного IP-адреса (или еще лучшего имени хоста)? Я не хочу ограничивать возможность других пользователей на сервере иметь возможность подключения с других адресов (в противном случае я бы просто использовал брандмауэр) или использовать аутентификацию только для службы мониторинга.
См. 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]. Но мы получили обещание, что оно будет исправлено в следующем выпуске.
[1] https://bugzilla.mindrot.org/show_bug.cgi?id=1918 [2] https: //bugzilla.mindrot .org / show_bug.cgi? id = 2397См. 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]. Но мы получили обещание, что оно будет исправлено в следующем выпуске.
[1] https://bugzilla.mindrot.org/show_bug.cgi?id=1918 [2] https: //bugzilla.mindrot .org / show_bug.cgi? id = 2397Вы можете использовать подстановочные знаки для строки AllowUsers в файле /etc/ssh/sshd_config. Таким образом, было бы возможно добавить строку:
AllowUsers *@192.168.1.100
Или:
AllowUsers *@hostname
Чтобы разрешить всем доступ к этому IP-адресу или имени хоста.
Помните:
service ssh restart
После внесения изменений, если вы используете версию до 15.04. 15.04 использует systemd сейчас, поэтому имеет другой механизм управления сервисами.
Поскольку это лучший результат поиска в google, я думаю, что люди также должны знать о настройке разрешений в файле /etc/hosts.allow (с учетом сообщения блога 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: ALL: deny, никакие ssh-соединения не будут разрешены. И вы должны иметь возможность использовать user@address в этом файле, за это сообщение в блоге :
Чтобы ограничить доступ ssh к Linux на основе исходящего IP-адреса, отредактируйте /etc/hosts.allow:
В соответствии с man-страницами это должно работать:
DenyUsers user@"!host,*"
Я тестировал это на Debian и, похоже, работал правильно.
Вы можете использовать подстановочные знаки для строки AllowUsers в файле /etc/ssh/sshd_config. Таким образом, было бы возможно добавить строку:
AllowUsers *@192.168.1.100
Или:
AllowUsers *@hostname
Чтобы разрешить всем доступ к этому IP-адресу или имени хоста.
Помните:
service ssh restart
После внесения изменений, если вы используете версию до 15.04. 15.04 использует systemd сейчас, поэтому имеет другой механизм управления сервисами.
Поскольку это лучший результат поиска в google, я думаю, что люди также должны знать о настройке разрешений в файле /etc/hosts.allow (с учетом сообщения блога 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: ALL: deny, никакие ssh-соединения не будут разрешены. И вы должны иметь возможность использовать user@address в этом файле, за это сообщение в блоге :
Чтобы ограничить доступ ssh к Linux на основе исходящего IP-адреса, отредактируйте /etc/hosts.allow:
В соответствии с man-страницами это должно работать:
DenyUsers user@"!host,*"
Я тестировал это на Debian и, похоже, работал правильно.
В соответствии с страницами man это должно работать:
DenyUsers user@"!host,*"
Я тестировал это на Debian и, похоже, работал правильно.
Так как это лучший результат поиска в google, я думаю, что люди также должны знать о настройке разрешений в файле /etc/hosts.allow
(с учетом сообщения блога 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: ALL: deny, никакие ssh-соединения не будут разрешены.
blockquote>И вы должны иметь возможность использовать
user@address
в этом файле, на эту ссылку lifewire.com :Более сложные формы daemon @ host и user @ host объясняются в разделах шаблонов конечных точек сервера и на запросы пользователей по имени пользователя, соответственно.
blockquote>