Так что ради интереса я открыл SSH всему миру, и несколько ботов подключились к моему серверу (безуспешно пытаясь войти в систему по паролю). Но, конечно, это забивает журналы. Я попытался использовать DenyHosts, но почему-то он не работает, поэтому я подумал: «Почему бы не использовать приманку?»
Проблема в том, что я хочу разрешить хороший вход, отправляя всех остальных в приманку.
Есть ли способ отфильтровать правильные логины на реальном SSH-сервере и оставить всех остальных в приманке?
Если вы хотите разрешить легальные входы по SSH и запретить (через приманку) подделку, я бы изменил тактику.
Поместите свой SSHD на другой порт, например 2323 или какой-нибудь другой необычный порт, и перенаправьте на него соединения. В идеале у вас есть отдельная машина для этого, поэтому вы можете указать маршрутизатору перенаправить порт 2323 на внутренний порт XYZ 22.
Откройте порт 22, чтобы перенаправить его на ваш компьютер-приманку ABC через порт 22.
По возможности настройте сеть так, чтобы приманка находилась в демилитаризованной зоне, вдали от ваших легитимных сетевых систем. В противном случае вы просите о проблемах.
Использование такого инструмента, как fail2ban в качестве отправной точки, позволит вам относиться к тем, кто пытается использовать грубую силу, иначе, чем к законным пользователям.
Обычно fail2ban просто отклоняет соединения, но я думаю, что было бы несложно изменить его, чтобы вместо этого перенаправлять соединения на приманку.
Сложная часть на самом деле будет ключом хоста. С одной стороны, вы не хотите, чтобы приманка имела доступ к ключу вашего хоста из соображений безопасности. Но, с другой стороны, вы не хотите, чтобы злоумышленники заметили, что они перенаправлены на другой SSH-сервер.