Скажи «Нет!» взломщику

Защищаем компьютер от проникновения путём подбора пароля

Устав от того, что ко мне на компьютер ломятся всякие придурки юные кулхацкеры, я решил принять меры. Товарищи кулхацкеры лезут в систему с трёх сторон: Путем подбора пароля на SSH. Путем подбора пароля на FTP. Пытаясь использовать компьютер в качестве релея (это уже спамеры). Есть и другие поползновения (например, попытки достучаться до MySQL, к которому [...]

← Вернуться к полной версии записи «Скажи «Нет!» взломщику»…

Автор: ; опубликовано в: Безопасность; метки: iptables, Linux, swatch, безопасность
14
Июн
2008

RSS Комментарии к статье «Скажи «Нет!» взломщику» (15)  »

  1. Бонус: парочка скриптов для анализа логов.

    1. Кто лез к нам по SSH:
      [-]
      View Code Bash
      #! /bin/sh

      if [ x$1 = x ]; then
          FILE=/var/log/auth.log
      else
          FILE=$1
      fi

      cat $FILE | grep " sshd\[" > /tmp/sshd.log
      # Левые пользователи
      cat /tmp/sshd.log | grep "Invalid user " | awk '{ print $10 }' | sort | uniq > /tmp/sshd_user
      # Неверные пароли для существующих пользователей
      cat /tmp/sshd.log | grep -E "Failed password for [a-zA-Z0-9_-]+ from " | awk '{ print $11 }' | sort | uniq > /tmp/sshd_pass
      # Кто нас проверял на наличие SSH
      cat /tmp/sshd.log | grep "Did not receive" | awk '{ print $12 }' | sort | uniq > /tmp/sshd_noident
      [ -s /tmp/sshd_user ] && echo "Intruders" && cat /tmp/sshd_user
      [ -s /tmp/sshd_pass ] && echo "Wrong password" && cat /tmp/sshd_pass
      [ -s /tmp/sshd_noident ] && echo "No identification string" && cat /tmp/sshd_noident
      rm -f /tmp/sshd.log /tmp/sshd_user /tmp/sshd_pass /tmp/sshd_name /tmp/sshd_noident
      exit 0
    2. Кто лез к нам по FTP (для vsftpd):
      [-]
      View Code Bash
      #! /bin/sh

      if [ x$1 = x ]; then
          FILE=/var/log/vsftpd.log
      else
          FILE=$1
      fi

      # cat $FILE | grep "FAIL LOGIN: Client" | awk '{ print $12 }' | sed s/\"//g | sort | uniq
      cat $FILE | grep -E -o 'FAIL LOGIN: Client "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"' | awk '{ print $4 }' | sed 's/"//g' | sort | uniq
      exit 0
    3. Здесь вам не релеи (для Courier):
      [-]
      View Code Bash
      #! /bin/sh

      if [ x$1 = x ]; then
          FILE=/var/log/mail.err
      else
          FILE=$1
      fi

      cat $FILE | grep relay | awk '{ print $6 }' | sed s/error,relay=::ffff:// | sed s/,.*// | sort | uniq
      exit 0
    4. Здесь вам не релеи (для Postfix):
      [-]
      View Code Bash
      #! /bin/sh

      if [ x$1 = x ]; then
          FILE=/var/log/mail.log
      else
          FILE=$1
      fi

      cat $FILE | grep -o -E '\[[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\]:' | grep -o -E '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort | uniq
      exit 0

    Надеюсь, кому-нибудь пригодится.

    scripts.tar.bz2

  2. [...] Пример подобного скрипта я уже приводил в статье «Скажи “Нет!” взломщику». Вся почта хранилась на рабочих станциях сотрудников, [...]

  3. как вариант против кул-хацкеров из рецептов от одного знакомого админа: запускаем sshd на каком-то другом порту 1234, а за коннект в 22му сразу в blacklist. очень помагает :)

  4. Это да, главное самому номер порта помнить :-)

    А вообще — аутентификация по ключу, а за попытку логина по паролю в бан.

  5. Еще один красивый способ:

    [-]
    View Code Bash
    iptables -A INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
    iptables -A INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 600 --hitcount 5 -j DROP
    iptables -A INPUT -p tcp --dport 22 -i eth0 -j ACCEPT
  6. [...] Продолжение статьи Скажи «Нет!» взломщику. [...]

  7. Alex

    мой рецепт на пункты 1,2:

    отказаться от ftp вообще, перейдя на sftp + chroot (штатные средства openssh-server) + нестандартный легкозапоминающийся порт, например 2222. Эту схему легко помнить и легко развернуть на новом сервере, кол-во софта уменьшается.

    • Почти так и делаю. При использовании SFTP настраиваю iptables так, что любое соединение с портами 20–21 воспринимается как сканирование портов с последующим баном.

      Но иногда приходится вместо SFTP использовать FTPES, ибо не хочется давать пользователям никакой шелл.

  8. mamuka

    Владимир, где находится этот пакет swatch?

  9. /dev/random

    Спасибо вам за отличную дыру – теперь я знаю как забанить кого угодно на вашем серваке ;-)

Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.

Оставить комментарий к записи «Скажи «Нет!» взломщику»

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя

गते गते पारगते पारसंगते बोधि स्वाहा