sshguard - защита для openssh

()

Боитесь ли вы брутфорса 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 - это то, с чего вам следует начать.

Источник

Ключевые слова: ssh, sshguard.

Комментарии:

MooSE 2007-03-07 09:41:52 (#)

Скажу одно. Ничего лишнего не нужно ставить для защиты от брутфорса. Там три или четыре правила iptables замечательно выпоолняют всю работу.

Сейчас правил не помню, но темма рассматривалась много раз и погуглив найти не трудно.

Смысл такой что после N неудачных попыток логина с определённого IP, адрес блокируется на M минут.

:)

gln0fate 2007-03-07 22:03:19 (#)

а лучше вообше пас не забывать :)

MooSE 2007-03-07 22:21:45 (#)

> а лучше вообще пас не забывать

Тут дело вообще не о забытом пароле. Речь о брутфорсе.

У меня на старой работе за сутки было на каждом сервере метров триста логов с попытками перебора пароля.

Там где я сейчас работаю SSH тупо перевешен на нестандартный порт. Тоже кстати хорошее решение. Судя по логам порт ещё никто не вычислил:)

2007-03-07 23:21:47 (#)

Может кто-нибудь опишет реализацию port-knocking? тогда вообще проблем не будет. причем не только у SSH а у всех программ, предназначенных только для администрирования.

ЗЫ. спасибо что статью оформил нормально:)

MooSE 2007-03-08 09:52:45 (#)

> Может кто-нибудь опишет реализацию port-knocking?
А что тебе в ней не понятно?:)

> спасибо что статью оформил нормально
Не за что:)

2007-03-08 20:56:43 (#)

>У меня на старой работе за сутки было на каждом сервере метров триста логов с попытками перебора пароля.

ИМХО на новой работе просто народу меньше у тебя. а тех кто что-то пытается ломать вообще пару человек всего.

MooSE 2007-03-09 01:11:29 (#)

> ИМХО на новой работе просто народу меньше у тебя. а тех кто что-то пытается ломать вообще пару человек всего.

Я понимаю что ты прекрасно осведомлён о том где и кем я работал раньше и где и кем я работаю сейчас. Но поверь. Есть отдельные сервера, которые теоретически должны страдать сильнее чем на старой работе. Это видно если слушать порт например netstat'ом. Но именно за счёт SSH на порту X!=22 мне это не сильно мешает:)

nexus 2007-03-09 06:33:31 (#)

MooSE, что там про iptables?

nexus 2007-03-09 06:36:14 (#)

Как вариант, рабочая машинка с замечательно настроенным ssh, сервера пускают только с нее и еще с парочки доверенных хостов. Все, сузили дырку до одного адреса, рулим безопасностью доверенных машин.

MooSE 2007-03-09 10:14:52 (#)

nexus: не помню я:) но только недавно на gentoo.ru тема пробегала опять.

а ограничение доступа конечно хорошо. Но, nexus, я в вашей же конторе сменил тарифных план, в связи с чем у меня сменился внешний адрес. Это... Э... Вобщем я потом полдня потратил на "хождение с доверенных хостов" чтобы получить возможность шастать из дома. Было очень неприятно.... :(

v12aml 2007-03-09 22:43:42 (#)

не понял, чем это лучше denyhosts.. если кто то юзал и то и другое - поделитесь впечатлениями plz
Новый комментарий



© 2006-2016 Вадим Калинников aka MooSE