Назад | Перейти на главную страницу

Ограничить вход по SSH по исходному интерфейсу

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

Можно ли этого добиться без более чем одного sshd?

Я использую Ubuntu 9.04.

Это не проверено, но настройка чего-то вроде этого в самом конце sshd_config должно сработать:

PasswordAuthentication no
PubkeyAuthentication yes
RSAAuthentication yes

Match Address 192.168.1.0/24
  PasswordAuthentication yes

По сути, вы глобально разрешаете аутентификацию с открытым ключом, глобально запрещаете аутентификацию по паролю, а затем, в частности, повторно-разрешить аутентификацию по паролю для всех в подсети 192.168.1.0/24.

Изменить: у вас, вероятно, уже есть первые три строки в другом месте вашей конфигурации. Если вы это сделаете, их больше не нужно добавлять. Однако блок «Матч» должен быть в конце файла.

Так же RSAAuthentication ключевое слово специфично для SSH v1, что вы не разрешаете, верно?

Я думаю, вы можете сделать эту работу, настроив sshd с PAM и Pubkey auth, а затем настроив PAM, чтобы разрешить доступ только из определенных подсетей. Эта уловка работает, потому что sshd ничего не спрашивает PAM об аутентификации на основе ключей.

В / etc / ssh / sshd_config (я думаю, что в Ubuntu это значения по умолчанию) что-то вроде:

PubkeyAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes

В /etc/pam.d/sshd раскомментируйте строку pam_access (я считаю, что в Ubuntu она присутствует в правильной последовательности, но закомментирована):

account required pam_access.so

В /etc/security/access.conf:

+:ALL:192.168.1.0/24

Примечание: я это вообще не тестировал.

Да, я так думаю. Вы можете использовать директивы AllowUser и MatchUser в файле sshd_config, чтобы настроить директивы конфигурации для каждого пользователя.