5

Во время настройки домашнего сервера (под управлением Kubuntu 10.04) я создал пользователя- admin для выполнения административных задач, которые могут потребовать несмонтированного дома. У этого пользователя есть домашний каталог в корневом разделе коробки.

На машине установлен сервер SSH с выходом в Интернет, и я ограничил набор пользователей, которые могут подключаться через SSH, но я бы хотел ограничить его, сделав admin доступным только с моего ноутбука (или, возможно, только с локального 192.168.1.0). /24 диапазона).

В настоящее время у меня есть только

AllowGroups ssh-users

со мной и admin качестве членов группы ssh-users .

То, что я хочу, это то, что работает, как вы можете ожидать, что эта настройка будет работать (но это не так):

$ groups jonathan
... ssh-users
$ groups admin
... ssh-restricted-users
$ cat /etc/ssh/sshd_config
...
AllowGroups ssh-users ssh-restricted-users@192.168.1.*
...

Есть ли способ сделать это? Я также попробовал это, но это не сработало (admin все еще мог войти в систему удаленно):

AllowUsers admin@192.168.1.* *
AllowGroups ssh-users

с admin член ssh-users .

Я также был бы согласен только с разрешением admin входить в систему с ключом и запретом входа в систему с паролями, но я не смог найти никаких общих настроек для sshd ; есть настройка, которая требует, чтобы root пользователи использовали ключ, но не для обычных пользователей.

3 ответа3

5

Стандартный PAM-модуль pam_access.so может ограничивать вход в систему по удаленному адресу и может применяться ко всем службам, а не только к ssh .

1

Это должно быть возможно с помощью директивы Match в sshd_config . Чтобы admin не мог войти за пределы вашей локальной сети, должно работать что-то вроде этого:

Match User="admin",Host="!192.168.1.0/24"
MaxAuthTries 0  # a hack — is there a better way?

Чтобы отключить встроенную проверку подлинности по паролю для пользователя ssh (хотя, если я правильно понимаю документацию, вы не можете настроить аутентификацию PAM таким образом, только встроенную проверку подлинности по паролю sshd):

Match User="admin"
KbdInteractiveAuthentication No
1

Одним из решений может быть создание ключа ssh, который будет ограничен хостом, чтобы он был приемлемым, когда соединение происходит только с одного IP-адреса или домена или субдомена:

Создайте ключ как обычно ... что-то вроде:

ssh-keygen -t rsa -b 4096 -C "admin@wangadingding.com"

затем отредактируйте полученный файл id_rsa.pub (у вас есть возможность выбрать другое базовое имя файла), который будет выглядеть так:

ssh-rsa AA.....

Отредактируйте файл так, чтобы он выглядел следующим образом:

from="*.wangadingding.com" ssh-rsa AA....

Добавьте файл .pub в ~/.ssh/authorized_keys2 (или создайте его) на целевом компьютере.

Теперь любой, кто использует этот ключ (предположительно "admin"), может использовать его только из указанного домена.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .