Боитесь ли вы брутфорса SSH? наблюдается увеличения количества таких атак,и следует об этом задуматься. sshguard - это утилита, которая защитит вашу систему от такого вида атак. Не смотря на то, что она находится в стадии бета тестирования, она прекрасно работает.
OpenSSH предоставляет защищенную альтернативу протоколам первого поколения, таким как telnet и ftp, где логины и пароли передаются открытым текстом. Но простого использования SSH вместо telnet не достаточно. Если вы используете простые пароли в SSH, то взломать ваш пароль также легко, как если бы вы передавали пароли открытым текстом.
sshguard защищает вас от атаки на 22-й порт. Он следит за попытками входа и банит ip адреса атакующих. По умолчанию sshguard забанит аткующего (добавит правило в фаерволе, блокирующее ip-адрес) после 4-х неудачных попыток входа за 20-ти минутный период. Бан снимается через некоторое время(от 7 до 10.5 минут).
Установка:
Это How-to для установки на типичную linux систему. Скачайте последнюю версию и распакуйте архив командой
tar xjf sshguard-0.9.tar.bz2
Инструкции по инсталяции зависят от платформы, так же внимательно прочитайте README, который вы найдете в директории sshguard-0.9, следуйте предложенным там инструкциям.
Для компиляции программы запустите питоновский скрипт:
python scons.py -Q FIREWALLTYPE=iptables
Потом установите, выполнив команду из-под root'а:
python scons.py -Q FIREWALLTYPE=iptables install
Теперь перед началом работы вы должны сделать три вещи. Во-первых добавить правило в iptables:
iptables -N sshguard
iptables -A INPUT -p tcp --dport 22 -j sshguard
Теперь сделаем так, чтобы sshguard читал логи. Есть несколько способов сделать это(смотри README), но давайте сделаем так, как советуют нам разработчики, самый эффективный способ, это команда "tail".
tail -n0 -F /var/log/auth.log | /usr/local/sbin/sshguard &
Теперь надо сделать тач, чтобы эта команда переживала перезагрузку системы. Загружаясьсь в однопользовательском режиме вы можете добавить эту строчку в файл .bashrc в вашем домашнем каталоге, для многопользовательской системы проконсультируйтесь с вашим сисадмином(Короче покурите на эту тему. В gentoo есть специальный файл для этих целей. /etc/conf.d/local.start (поправьте если ошибся))
И наконец sshguarg тербует права доступа для динамической правки настроек iptables. Так что выполним из-под root'а команду:
chmod +s /usr/local/sbin/sshguard
Все должно заработать.
Теперь перезапустим sshd с помощью команды sudo /usr/sbin/sshd (ну я думаю вы с этим справитесь, т.к. есть множество других способов), теперь попробуйте залогиниться на нашу машину с удаленного компа. Если инсталяция прошла успешно, то при попытке залогиниться вы увидите sshguard в действии. Проверьте, что во время входа в систему sshguard работает. это должно выглядеть примерно так:
ps ax |grep sshguard
27729 pts/1 Sl 0:00 /usr/local/sbin/sshguard
Я проверял залогинившись через LAN с другой машины я быстро 4 раза ввел неправильный пароль. После этого я подошел к своей машине(на которой стоит sshguard) - появилась информация о бане. Через несколько минут я попытался залогиниться опять. Динамические цепочки для iptables работали так, как были должны.
Информации о sshguard очень мало, это обуславливается развитием программы, тем неменее утилиту можно использовать. Если вы ищете способ защитить свой SSH от брутфорса, то sshguard - это то, с чего вам следует начать.
MooSE 2007-03-07 09:41:52 (#)
Сейчас правил не помню, но темма рассматривалась много раз и погуглив найти не трудно.
Смысл такой что после N неудачных попыток логина с определённого IP, адрес блокируется на M минут.
:)