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

Некоторые приложения «помнят» настройки принтера из предыдущих запросов печати. Поэтому, если вы измените системные значения по умолчанию ПОСЛЕ того, как вы уже напечатали один раз с предыдущими значениями по умолчанию, он «запоминает» предыдущие настройки, даже если вы этого не хотите!

Например. Evolution хранит настройки принтера в ~ / .evolution / printing, Evince в ~ / .config / evince / print-settings

Кажется, что нет стандартного способа (или приложения просто не придерживаются это) для приложений для хранения этой информации.

Я думаю, но не подтвердил, что, если вы не касаетесь значений по умолчанию при печати из приложения, он не сохранит настройки, и, следовательно, система значения по умолчанию будут продолжать проходить. Но, измените настройку один раз, и сохраненная настройка всегда будет переопределять системные значения по умолчанию для этого приложения.

Это объясняет, почему новые пользователи отлично выбирают значения по умолчанию. Но существующие пользователи видят проблему.

1
задан 19 July 2015 в 13:10

3 ответа

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

AllowUsers *@192.168.1.100

Или:

AllowUsers *@hostname

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

Помните:

service ssh restart

После внесения изменений, если вы используете версию до 15.04. 15.04 использует systemd сейчас, поэтому имеет другой механизм управления сервисами.

3
ответ дан 23 May 2018 в 18:58
  • 1
    Спасибо, но это может помешать другим пользователям подключиться с IP-адресов, отличных от 192.168.1.100, прямо? Я пытаюсь только ограничить этого одного пользователя при входе с одного IP-адреса, и все, что я делаю, не должно влиять на других пользователей. – Programster 18 July 2015 в 17:39
  • 2
    Его можно использовать для пространственного разделенного списка или с символом @ непосредственно перед именами групп. Он очень настраиваемый, но в качестве альтернативы использует сочетание аутентификации на основе ключа без паролей для серверов и обычного пароля ssh для пользователей. Похоже, это уже ваш план! – Arronical 18 July 2015 в 20:19
  • 3
    Для всех, кроме указанного пользователя, нет подстановочного знака, такого как regex ^ (! Username $). * Есть ли? – Programster 18 July 2015 в 20:27

Поскольку это лучший результат поиска в 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:

1
ответ дан 23 May 2018 в 18:58

В соответствии с man-страницами это должно работать:

DenyUsers user@"!host,*"

Я тестировал это на Debian и, похоже, работал правильно.

0
ответ дан 23 May 2018 в 18:58

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

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