xandeadx.ru Блог музицирующего веб-девелопера

Разное → shhit — защищаем SSH от брутфорса

Опубликовано в

Если ваш /var/log/auth.log пухнет от записей вида

Mar 22 10:56:50 username sshd[24818]: Invalid user adiaz from 58.221.34.18
Mar 22 10:56:54 username sshd[24928]: Invalid user capacita from 58.221.34.18
Mar 22 10:56:58 username sshd[25065]: Invalid user manuel from 58.221.34.18
Mar 22 10:57:02 username sshd[25164]: Invalid user silvia from 58.221.34.18
Mar 22 10:57:06 username sshd[25294]: Invalid user adriano from 58.221.34.18
Mar 22 10:57:10 username sshd[25393]: Invalid user rfonseca from 58.221.34.18

то пора принимать меры :) Один из вариантов защиты от подбора паролей к ssh, это установка sshit.

sshit — это перловый скрипт, который анализирует данные от syslogd в поисках брутфорс атак. Если количество неудачных попыток достигает определённого числа, то ip атакующего блокируется с помощью фаервола ipfw, ipfw2 или pf (на выбор).

Установка

  1. В ISPManager, в разделе Настройки сервераВозможности, включаем Брэндмауэр ipfw (как установить ipfw без ISPManager).

  2. Ставим из портов sshit:

    # cd /usr/ports/security/sshit
    # make install clean

    В конце установки будет дана инструкция по дальнейшей настройке:

    ===>  CONFIGURATION NOTE:
     
      Configuration of sshit is done via main configuration file
      located at /usr/local/etc/sshit.conf
     
      To run the script, add a line in /etc/syslog.conf:
     
    auth.info;authpriv.info                         |exec /usr/local/sbin/sshit
     
      and restart syslogd.
     
      If you want to use pf as the firewall, you should add a table and the
      corresponding deny rule. For example,
      (In /etc/pf.conf)
     
    table <badhosts> persist
    block on $extdev from <badhosts> to any
     
      and reload the pf rules.
     
      If you want to use ipfw2 (with table) as the firewall, you should add a
      table and the corresponding deny rule. For example,
     
    # ipfw add deny ip from table(0) to any

  3. Следуя инструкции открываем файл /etc/syslog.conf и после

    auth.info;authpriv.info				/var/log/auth.log

    добавляем:

    auth.info;authpriv.info				|exec /usr/local/sbin/sshit

  4. Перезапускаем syslogd:

    # /etc/rc.d/syslogd restart

  5. Настраиваем sshit, файл /usr/local/etc/sshit.conf:

    # тип фаервола, я использую ipfw2
    FIREWALL_TYPE	= ipfw2
     
    # Количество попыток, после которых ip будет заблокирован
    MAX_COUNT	= 3 
     
    # Время в секундах, за которое считаются неудачные попытки
    WITHIN_TIME	= 300
     
    # Время в секундах, на которое будет заблокирован ip
    RESET_IP	= 3600
     
    ... остальные настройки ...

  6. В конец файла /etc/rc.firewall добавляем правило для блокировки:

    ${fwcmd} add deny all from "table(0)" to any

  7. Перезагружаем сервер

  8. Проверяем список правил фаервола:

    # ipfw show
    00100 247446 699254233 allow ip from any to any via lo0
    00200      0         0 deny ip from any to 127.0.0.0/8
    00300      0         0 deny ip from 127.0.0.0/8 to any
    00400     22      1436 deny ip from table(0) to any

    Цифры перед последним правилом означают: 00400 — номер правила, 22 — число пакетов попавших под правило, 1436 — число байт попавших под правило. Эти цифры будут меняться по ходу работы фаервола.

    Посмотреть таблицу 0, в которой хранятся адреса атакующих, можно с помощью команды

    # ipfw table 0 list
    141.164.71.71/32 0

Результат работы sshit в файле /var/log/auth.log:

Mar 23 00:00:19 username sshd[88589]: Invalid user admin from 141.164.71.71
Mar 23 00:00:21 username sshd[89495]: Invalid user test from 141.164.71.71
Mar 23 00:00:23 username sshd[89892]: Invalid user guest from 141.164.71.71
Mar 23 00:00:24 username sshit: BLOCKING 141.164.71.71 with ipfw2 

По материалам:
Защита ssh от брутфорс атак.
sshit - защита от подбора паролей ssh/ftp
Sshit - защищаем сервер от перебора паролей

Написанное актуально для FreeBSD 8
Похожие записи

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

Замечательная инструкция!!! Спасибо большое, все сделал по шагам - работает!
Смущает только при редактировании некоторых файлов сообщение file has hard-links detach before saving, что это за hard-links не подскажите?

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании