Делаем антивирусную защиту сервера с блекджеком и няшками

Тема в разделе "Хостинг и настройка серверов", создана пользователем X-Shar, 15 май 2015.

↑ ↓
  1. X-Shar :)
    X-Shar
    Ответить в чате

    Администрация

    Регистрация:
    03.06.2012
    Сообщения:
    5.812
    Симпатии:
    433
    Пол:
    Мужской
    Репа:
    +968 / 152 / -29
    Jabber:
    Telegram:
    Данная статья предназначена для счастливых обладателей бабиков дедиков или VPS/VDS !

    Итак допустим у вас *nix подобная система:Дебиан, CentOS, фря не важно...

    Для начала разбирёмся, а на хуя зачем нам антивирь вообще, объясняю:

    1)Допустим вы используете сервер для размещения своих сайтов, а вы уверены что в этих сайтах нет уязвимостей ? Даже если отслеживать все уязвимости и обновляете CMS, существует риск, что не успели и вам уже залили шелл например...

    2)Вы качаете различные плагины/дополнения к сайтам, только с офф. источников ? А вы уверены что кто-то делает аудит кода на шеллы или уязвимости ?

    В любом случае то-что я сейчас напишу, если не защитит от известных паблик-шеллов и вирусов, то как минимум доставит неудобство хакерам-лентяем !WinkSmile

    Итак, я предлагаю рассмотреть тему на примере антивиря ClamAV, почему именно он:

    -Бесплатный для nix систем;

    -Имеет неплохой сканер;

    -Хорошо настраивается и быстро устанавливается.

    ПРИСТУПИМ:

    1)Установка ClamAV:

    У этого антивируса есть как просто консольный сканер, так и демон (На подобии монитора в винде)...

    Я-же рекомендую ставить просто консольный сканер и вызывать по крону, вот почему:

    1.Демон не хило-так отжирает памяти, минимум 250 метров, а-то и больше;

    2.Демон может грузить проц;

    3.Что-бы он нормально работал, т.е. удалял вирусы "На лету" как в винде, нужно ставить доп. софт, что опять ресурсы сервера и т.д.

    Поэтому, что-бы не нагружать тот-же VPS например, не будем ставить демон, сделаем немного по другому, будем юзать консольный сканер через крон... :)

    Ставим простой коммандой (Для Дебиан, для других ОС свои комманды, можно найти например здесь):

    Код:
    apt-get install clamav

    2)Настройка ClamAV:


    Итак мы установили сканер, без демона, теперь приступим к его настройки:

    1.Создадим конфиг здесь:/etc/clamav

    -Файл clamd.conf конфиг движка, у меня такие настройки:
    Код:
    #Automatically Generated by clamav-daemon postinst
    #To reconfigure clamd run #dpkg-reconfigure clamav-daemon
    #Please read /usr/share/doc/clamav-daemon/README.Debian.gz for details
    LocalSocket /var/run/clamav/clamd.ctl
    FixStaleSocket true
    LocalSocketGroup clamav
    LocalSocketMode 666
    # TemporaryDirectory is not set to its default /tmp here to make overriding
    # the default with environment variables TMPDIR/TMP/TEMP possible
    User clamav
    AllowSupplementaryGroups false
    ScanMail true
    ScanArchive true
    ArchiveBlockEncrypted false
    MaxDirectoryRecursion 15
    FollowDirectorySymlinks false
    FollowFileSymlinks false
    ReadTimeout 180
    MaxThreads 12
    MaxConnectionQueueLength 15
    LogSyslog false
    LogRotate true
    LogFacility LOG_LOCAL6
    LogClean false
    LogVerbose false
    PidFile 
    /var/run/clamav/clamd.pid
    DatabaseDirectory 
    /var/lib/clamav
    OfficialDatabaseOnly false
    SelfCheck 3600
    Foreground false
    Debug false
    ScanPE true
    MaxEmbeddedPE 10M
    ScanOLE2 true
    ScanPDF true
    ScanHTML true
    MaxHTMLNormalize 10M
    MaxHTMLNoTags 2M
    MaxScriptNormalize 5M
    MaxZipTypeRcg 1M
    ScanSWF true
    DetectBrokenExecutables false
    ExitOnOOM false
    LeaveTemporaryFiles false
    AlgorithmicDetection true
    ScanELF true
    IdleTimeout 30
    CrossFilesystems true
    PhishingSignatures true
    PhishingScanURLs true
    PhishingAlwaysBlockSSLMismatch false
    PhishingAlwaysBlockCloak false
    PartitionIntersection false
    DetectPUA false
    ScanPartialMessages false
    HeuristicScanPrecedence false
    StructuredDataDetection false
    CommandReadTimeout 5
    SendBufTimeout 200
    MaxQueue 100
    ExtendedDetectionInfo true
    OLE2BlockMacros false
    ScanOnAccess false
    AllowAllMatchScan true
    ForceToDisk false
    DisableCertCheck false
    DisableCache false
    MaxScanSize 100M
    MaxFileSize 25M
    MaxRecursion 10
    MaxFiles 10000
    MaxPartitions 50
    MaxIconsPE 100
    StatsEnabled false
    StatsPEDisabled true
    StatsHostID auto
    StatsTimeout 10
    StreamMaxLength 25M
    LogFile 
    /var/log/clamav/clamav.log
    LogTime true
    LogFileUnlock false
    LogFileMaxSize 10M
    Bytecode true
    BytecodeSecurity TrustSigned
    BytecodeTimeout 60000

    Далее конфиг обновлялки:freshclam.conf у меня такой:
    Код:
    # Automatically created by the clamav-freshclam postinst
    # Comments will get lost when you reconfigure the clamav-freshclam package

    DatabaseOwner clamav
    UpdateLogFile 
    /var/log/clamav/freshclam.log
    LogVerbose false
    LogSyslog false
    LogFacility LOG_LOCAL6
    LogFileMaxSize 10M
    LogRotate true
    LogTime true
    Foreground false
    Debug false
    MaxAttempts 5
    DatabaseDirectory 
    /var/lib/clamav
    DNSDatabaseInfo current
    .cvd.clamav.net
    AllowSupplementaryGroups false
    PidFile 
    /var/run/clamav/freshclam.pid
    ConnectTimeout 30
    ReceiveTimeout 30
    TestDatabases yes
    ScriptedUpdates yes
    CompressLocalDatabase no
    SafeBrowsing false
    Bytecode true
    NotifyClamd 
    /etc/clamav/clamd.conf
    # Check for new database 24 times a day
    Checks 24
    DatabaseMirror db
    .local.clamav.net
    DatabaseMirror database
    .clamav.net

    Создали эти файлики если их нет хорошо, идём дальше...

    2.Настраиваем крон:

    -Добовляем задание на обновление баз в планировщик:

    Я сделал раз в день ночью обновление баз, комманда:
    Код:
    /usr/bin/freshclam
    -Теперь самое интересно, будем в кроне запускать сканер, который будет сканить нужную папку или всю систему как захотите, раз в день ночью, я запускаю в 2-ва часа ночи, сканер будет автоматически перемещать вирусы/шеллы и слать логи на почту, я сделал проверять только папку с сайтами и всё, вот что получилось, комманда:
    Код:
    /usr/bin/clamscan -ri /var/www --move=/var/CarantineAV/ | tee /var/CarantineAV/log.txt mail -"avreport" ru-sphere.ru@yandex.ru
    /var/CarantineAV/ - Это папка с карантином, нужно сделать на неё права 777, также создать файл log.txt и сделать права 777.

    Всё раз в день будет антивирусная проверка всех сайтов на вирусы/шеллы/бекдуры и если они есть в базе антивирус их переместит в папку с карантином и пришлёт отчёт на почту, примерно такой:

    Код:
    ***/test.phpEicar-Test-Signature FOUND
    ****/test.phpmoved to '****/test.php'

    ----------- SCAN SUMMARY -----------
    Known viruses3806252
    Engine version
    0.98.7
    Scanned directories
    2964
    Scanned files
    98994
    Infected files
    1
    Data scanned
    7664.46 MB
    Data read
    10172.79 MB (ratio 0.75:1)
    Time2515.597 sec (41 m 55 s)
    Как видите 10 гигов сканет не быстро, почти 40-к минут, именно поэтому запускать лучше ночью, т.к. может нагружать сервер...

    3.Как проверить работу ClamAV:

    Создаём файл test.php например в папку со своим сайтом и будем считать что это шелл, содержимое его такое:

    Код:
    X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
    Ждём пока отработает крон и этот файл АВ должен удалить...WinkSmile

    На почту должно прийти письмо:

    Код:
    [PHP]***/test.phpEicar-Test-Signature FOUND
    ****/test.phpmoved to '****/test.php'

    ----------- SCAN SUMMARY -----------
    Known viruses3806252
    Engine version
    0.98.7
    Scanned directories
    2964
    Scanned files
    98994
    Infected files
    1
    Data scanned
    7664.46 MB
    Data read
    10172.79 MB (ratio 0.75:1)
    Time2515.597 sec (41 m 55 s)
    Hi-H-88Hi-H-88Hi-H-88Hi-H-88Hi-H-88sm3888:Mem27::utenok:
     
    • Мне нравится Мне нравится x 2

Поделиться этой страницей