А вот и долгожданное продолжение от © Tagd Tagd.

Файл, который упоминается в статье, будет добавлен в комментарии.

Погнали

Хотел писать про другое в ssh, но без блока Match ну никак не получается.

Для начала лирическое отступление. Вы установили ключи, отключили парольную аутентификацию, но вас все равно брутят.

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
Плохие парни, что, дебилы? Не видят, что у вас ключи стоят? Все они видят. Просто есть блок Match, с помощью которого можно задавать различные настройки разным пользователям.
PasswordAuthentication no
PubkeyAuthentication yes
Match User bashdays
  MaxSessions 10
  MaxAuthTries 10
  PasswordAuthentication yes

В этом примере парольная аутентификация запрещена для всех, кроме пользователя bashdays.

Скажу по секрету, я тоже делаю настройки для пользователя последнего шанса.

У меня на флэшке есть ключи и putty. Потому что не знаешь, когда и откуда понадобится порулить. Но я допускаю, что и флэшки может не оказаться.

Вот тогда пригодится такой пользователь. Только чтобы пользователя быстро не нашли, я беру логин, сложнее, чем admin, Root student или pi.

Ну и парольную фразу задаю больше 20 символов. К статейке должен быть прикреплен архив с логинами реальных простукиваний.

В первой колонке - количество стуков для данного пароля. Реальная база, собранная с одной машины, с системой защиты от переборов за пару лет.

Если вы нашли свой логин в этой базе - повод задуматься. Логин "_" в базе - замена пользователя пробел.

Да, раньше можно было и такое. Благо сейчас эту дыру закрыли.

Что-то я отвлекся.

В блоке MATCH доступны ключевые слова User, Group, Host, Address, LocalAddress, LocalPort, RDomain.

Первые четыре применяются наиболее часто. Если в блоке MATCH несколько ключевых слов, они объединяются по AND.

Также возможно использование шаблонов.

Например:

Match User *bashdays*, guest*
Address 192.168.0.0/24,!192.168.0.27

Перечисления идут через запятую БЕЗ ПРОБЕЛОВ. Допускается несколько блоков MATCH.

Ну, и последний вопрос. Раз конфиг у нас с условием, как его проверять?

sudo sshd -T -C user=bashdays,addr=192.168.0.27

Выдаст на stdout конфиг для указанного пользователя с указанного адреса.

Обратите внимание. Здесь ключевые слова немного отличаются:

«addr», «user», «host», «laddr», «lport», «rdomain» и отсутствует группа.

man sshd
man sshd_config

продолжение следует…