Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> программы —> samba & ClamAV

SAMBA и ClamAV - антивирусная защита.

Автор: lissyara.


    На фрёвой машине, хранились кое какие доки пользователей, также она же использовалась для обмена документами. Решил привернуть проверку на вирусы к самбе. Порыскав по портам, по ключевому слову `samba`, нашёл антивирь - samba-vscan. Почитал - сойдёть. Будем ставить. В качестве антивируса поставим ClamAV:
/usr/home/lissyara/>cd /usr/ports/security/clamav
/usr/ports/security/clamav/>make && make install && make clean

Вылезет окно - где ничё не надо выбирать.
[ ] MILTER    Compile the milter interface
[ ] CURL      Support URL downloading
[ ] LIBUNRAR  Support for external Unrar library

После сборки обновляем антивирусные базы:
/usr/ports/security/clamav/>cd /usr/local/etc/
/usr/local/etc/>freshclam
ClamAV update process started at Tue Jan 24 16:30:46 2006
main.cvd is up to date (version: 35, sigs: 41649, f-level: 6, builder: tkojm)
Downloading daily.cvd [*]
daily.cvd updated (version: 1248, sigs: 852, f-level: 7, builder: diego)
Database updated (42501 signatures) from database.clamav.net (IP: 62.181.41.8)
ERROR: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd
connect(): No such file or directory
/usr/local/etc/>

Добаляем строку в /etc/rc.conf, запускаем clamd и проверяем, запустился ли:

/usr/local/etc/>echo '' >> /etc/rc.conf
/usr/local/etc/>echo 'clamav_clamd_enable="YES"' >> /etc/rc.conf
/usr/local/etc/>
/usr/local/etc/>/usr/local/etc/rc.d/clamav-clamd.sh start
Starting clamav_clamd.
/usr/local/etc/>ps -ax | grep clam
63829  ??  Ss     0:00.00 /usr/local/sbin/clamd
63831  p0  S+     0:00.01 grep clam
/usr/local/etc/>

После чего можно переходить к самбе.
   Для начала, неплохо бы, эту самую самбу обновить, какая-то старая версия у меня стоит:
/usr/ports/>pkg_info | grep samba
samba-3.0.14a,1     A free SMB and CIFS client and server for UNIX
/usr/ports/>portupgrade samba-3.0.14a,1
[Updating the portsdb <format:bdb1_btree> in /usr/ports ... 
- 14052 port entries found .........1000......14000 ..... done]
** Port marked as IGNORE: net/samba3:
        broken dependency between OpenSSL, OpenLDAP and
        Heimdal for FreeBSD 4.x. Disable ADS support
/usr/ports/>
/usr/ports/>cat /var/db/ports/samba3/options
# This file is auto-generated by 'make config'.
# No user-servicable parts inside!
# Options for samba-3.0.14a,1
_OPTIONS_READ=samba-3.0.14a,1
WITH_LDAP=true
WITH_ADS=true
WITH_CUPS=true
WITH_WINBIND=true
WITHOUT_ACL_SUPPORT=true
WITH_SYSLOG=true
WITHOUT_QUOTAS=true
WITH_UTMP=true
WITHOUT_MSDFS=true
WITHOUT_SAM_XML=true
WITHOUT_SAM_MYSQL=true
WITHOUT_SAM_PGSQL=true
WITHOUT_SAM_OLD_LDAP=true
WITHOUT_PAM_SMBPASS=true
WITHOUT_EXP_MODULES=true
WITH_POPT=true
/usr/ports/>

Обновляться не захотела - пришлось отрихтовать файл /var/db/ports/samba3/option - заменить строчку:
WITH_ADS=true
на:
WITHOUT_ADS=true
После чего она прекрасно обновилась. Затем собираем антвирусный модуль:
/usr/ports/>cd /usr/ports/security/samba-vscan
/usr/ports/security/samba-vscan/>make && make install && make clean

После инсталляции вылазиет инструкция по применению:

You have installed the samba-vscan package.

The vfs object's is in /usr/local/lib/samba.

The configuration files is in /usr/local/etc/samba-vscan.

Edit /usr/local/etc/smb.conf and add the following entry if you are using
samba 2.X (that's only an example):

  [vscan]
       comment = virus-protected /tmp directory
       path = /tmp
       vfs object = /usr/local/lib/samba/vscan-oav.so
       vfs options = config-file = /usr/local/etc/samba-vscan/vscan-oav.conf
       writeable = yes
       browseable = yes
       guest ok = yes

If you are using samba 3.X:

Edit /etc/smb.conf and add the following entry (that's only an example):
  [vscan]
      comment = virus-protected /tmp directory
      path = /tmp
      vfs object = vscan-oav
      vscan-oav: config-file = /usr/local/etc/samba-vscan/vscan-oav.conf
      writeable = yes
      browseable = yes
      guest ok = yes

Basically you have to add a vfs object line to your shares
which should be virus-protected by this module. If you'd like to use the
run-time configuration file, simply add the
vfs options = config-file = /path/config-file
(different settings for several shares can be achieved by using a different
name of the configuration file for each share). If you want to protect _all_
shares your Samba server offers, simply add the vfs object line (and the
vfs options line, if you like) to the [global] section.

Then restart samba.

По ней всё и делаем - рихтуем /usr/local/etc/smb.conf
[global]
        workgroup = main_workgroup_name
        netbios name = FREEBSD
        server string = BSD_4-11
        interfaces = sis0
        bind interfaces only = Yes
        security = SHARE
        encrypt passwords = No
        lanman auth = No
        ntlm auth = No
        client lanman auth = No
        client plaintext auth = No
        announce version = 4.11
        wins support = Yes
        ldap ssl = no
        create mask = 0666
        security mask = 0666
        directory mask = 0777

[main_bsd_share]
        comment = примечание к шаре
        path = /usr/local/smb_fs
        # добавлены следующие две строки:
        vfs object = vscan-clamav
        vscan-clamav: config-file = /usr/local/etc/samba-vscan/vscan-clamav.conf
        read only = No
        guest ok = Yes

После чего приводим конфиг vscan к такому виду:
/usr/local/etc/samba-vscan/vscan-clamav.conf

[samba-vscan]

max file size = 0
; не забудте, после отладки, поставить
; следующую строчку в `no`
verbose file logging = yes
scan on open = yes
scan on close = yes
deny access on error = no
deny access on minor error = no
send warning message = yes
; в карантин у мя не перемещает - 
; порылся в инете - не я один такой. Так и оставил.
; а хотел уже новую коллекцию вирей собирать...
infected file action = delete
quarantine directory  = /tmp/smb_infected
quarantine prefix = vir-
max lru files entries = 100
lru file entry lifetime = 5
exclude file types =
clamd socket name = /var/run/clamav/clamd
libclamav max files in archive = 1000
libclamav max archived file size = 10485760
libclamav max recursion level = 5

Ну и всё. Перезапускаем самбу (у меня она остановилась в результате обновления :))

/usr/local/etc/>/usr/local/etc/rc.d/samba.sh restart
Stopping /usr/local/sbin/nmbd.
Waiting for PIDS: 56778.
Stopping /usr/local/sbin/smbd.
Starting SAMBA: removing stale tdbs :
/var/db/samba/connections.tdb
/var/db/samba/messages.tdb
/var/db/samba/sessionid.tdb
/var/db/samba/unexpected.tdb
/var/db/samba/brlock.tdb
/var/db/samba/locking.tdb
Starting nmbd.
Starting smbd.
/usr/local/etc/>

и наблюдаем следующую активность в /var/log/messages:
Jan 24 14:17:50 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/A4-2a.jpg is clean
Jan 24 14:17:50 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/A4-1ob.jpg'
Jan 24 14:17:51 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/A4-1ob.jpg is clean
Jan 24 14:17:51 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/Vnytr1.jpg'
Jan 24 14:17:51 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Vnytr1.jpg is clean
Jan 24 14:17:51 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/Vnutr.jpg'
Jan 24 14:17:52 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Vnutr.jpg is clean
Jan 24 14:17:52 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/Vkatalog1.tif'
Jan 24 14:17:53 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Vkatalog1.tif is clean
Jan 24 14:17:53 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/Vkatalog.tif'
Jan 24 14:17:53 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Vkatalog.tif is clean
Jan 24 14:17:53 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/RazvRod.tif'
Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/RazvRod.tif is clean
Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/A5Kolle.tif was not modified - not scanned
Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/A5.jpg was not modified - not scanned
Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/A4-2a.jpg was not modified - not scanned
Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/A4-2.jpg was not modified - not scanned
Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/A4-1ob.jpg was not modified - not scanned
Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Vnytr1.jpg was not modified - not scanned
Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Vnutr.jpg was not modified - not scanned
Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/RazvRod.jpg'
Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/RazvRod.jpg is clean
Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Vkatalog1.tif was not modified - not scanned
Jan 24 14:18:05 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Vkatalog.tif was not modified - not scanned
Jan 24 14:18:06 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/Razvorot2.jpg'
Jan 24 14:18:06 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Razvorot2.jpg is clean
Jan 24 14:18:06 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/Razvorot1.jpg'
Jan 24 14:18:07 mail2 smbd_vscan-clamav[58022]: INFO: file /usr/smb/Nastia/Razvorot1.jpg is clean
Jan 24 14:18:07 mail2 smbd_vscan-clamav[58022]: INFO: Scanning file : '/usr/smb/Nastia/Razvorot.tif'

Всё пучком. :) Меняем `verbose file logging` на `no` и перезапускаем самбу ещё раз.
   Конечно же, стало медленней - но не так уж и сильно. Работать можно.

P.S. У меня почему-то на заражённые файлы ругается так:
ERROR: string overflow by 1 (24 - 23) in safe_strcpy [main_bsd_share]

Пока не разобрался, но - ещё не вечер...



размещено: 2006-01-24,
последнее обновление: 2008-07-09,
автор: lissyara


NuN, 2006-06-08 в 16:13:47

Можноли сканер подключить к удалённому clamavd ? Как это можно в exim. Спасибо.

bonh, 2006-07-27 в 13:04:49

Отличнаяя статья всё работает, только вот у меня на Самбе стоит "Гарант" версии файл-сервер (клиент сервер предусмотрен только для Виндовых серваков. Глупо, но не чего не поделаешь.), так что он у меня то и без антивиря тормозит, а с антивирем вообще глухой номер. Как вариант можно для "Гаранта" отдельную секцию выделить и нетрогать её антивирью, что то вроде:
  [Garant]
    comment = Garant
    path = /shared
    read only = no
    public = yes
, но не охото потом этот Грант предётся переустанавливать, а с ним постоянно какие то проблемы... Так что я пока антивирь отключил на самбе, но не факт что на долго.

PS: Всем пользователям Unix, советую ставить Kodeks вместо Гаранта, у негото  поддерживается версия клиент сервер, работает гораздо быстрее и обновление идёт каждый день. Один недостаток.. название Kodeks, а не Kodex :), но его приемущества с всё сглаживают :)))

Maks, 2007-01-11 в 20:59:52

Для запуска карантина нужно установить правильно пользователя для папки "quarantine directory". Поставь права на нее 777 и проверь тестовыми вирусами под каким пользователем clamav туда переносит файлы. В SUSE это был "nobody"

staskur, 2007-03-30 в 13:22:33

под FreeBSD domen.ru 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Fri Jan 12 10:40:27 UTC 2007     root@dessler.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386

тоже "nobody" . зараженные файлы переносятся в заданную папку

на зараженные файлы ругается так -

Mar 30 13:18:20 base smbd_vscan-clamav[1185]: INFO: Scanning file : '/data/test01.txt'
Mar 30 13:18:20 base smbd_vscan-clamav[1185]: ALERT - Scan result: '/data/test01.txt' infected with virus 'Eicar-Test-Signature', client: '192.168.1.3'
Mar 30 13:18:20 base smbd_vscan-clamav[1185]: INFO: quarantining file '/data/test01.txt' to '/tmp/smb_infected/vir-WIgFXX' was successful


для обновления баз без нашего участия в /etc/rc.conf  добавляем  clamav_freshclam_enable="YES"

а в /usr/local/etc/freshclam.conf   раскоментируем  
Checks 24  
для ежечасной проверки обновлений.

smilealex, 2007-06-18 в 22:22:47

The latest release is 0.3.6b. If you're using Samba 3.0.25 (or later), please give 0.3.6c Beta4 a try. samba-vscan is maintained by Rainer Link.

)) вот такие пироги..
в портах версия 0.3.6b при make install плачет "===> samba-vscan-0.3.6b_1 is marked as broken: Does not compile."

staskur, 2008-01-05 в 14:10:37

да из портов вроде уже пару недель как вообще samba-vscan  убрали...

Isvet, 2008-01-22 в 9:25:09

Обновите порты все заработала!
freebsd 6.2

artem, 2008-02-08 в 14:20:05

еще одна очень маленькая деталь что если ходить без
guest ok = Yes
то по даже правильному паролю не пускает из-за оссобенностей формата хэша passwd в линухе что дает незаметный плюс FreeBSD
юзеров надо системных (и тока системных) переносить ручками
и можно ставить им свой  пароль в
/usr/local/etc/samba/smbpasswd secrets.tbd
командой #>smbpasswd -a user

artem, 2008-02-08 в 16:52:15

1 encrypt passwords = No
передает пароль в незашифрованом виде нужно только для дос и вин 3.11
2 глюки винды при коннекте вида:
Множественное подключение к серверу или разделяемым ресурсам одним пользователем с использованием одного или более пользователя неразрешено  
решаются путем #net use, #net use \\10.0.0.1 /delete

artem, 2008-02-12 в 10:43:29

3 проблемы авторизации в XP, когда просит пароль,
а юзера пишет серым гость решается путем костыля
[global]
     security = shara
     map to guest = bad user
это типа всех юзеров указавших неправильно пароль считать гостем. после этого когда идешь на шару которая с паролем, вылазит правильное окно ввода имени пользователя

artem, 2008-02-12 в 16:33:13

в винде прибить все коннекты #>net use * /delete
во фре можно увидеть список коннектов к самбе
#>net status shares или net status sessions
удялять похоже через-  #>net rap session delete user
ну или через swat

igorek12, 2008-04-21 в 13:58:06

Кто поможет?
КламАВ ругается на любой файл.

INFO: Scanning file : '/srv/samba/public/eicar.com'
ERROR: file /srv/samba/public/eicar.com not found, not readable or an error occured

Есть предложения по данной проблемке????

igorek12, 2008-04-21 в 23:10:51

Проблема решилась!
Пришлось дать полномчия РУТА для КамАВ. Правильно ето или нет? Кто Гуру? Посоветуйте!!!

Neteru, 2008-07-09 в 19:10:48

А у меня че часто выводит такое!
Jul  9 19:00:30 file-server smbd_vscan-clamav[80904]: INFO: File !_RISK_!/RISK_POST/ACCOUNT.LOG is larger than specified maximum file size! Not scanned!
Jul  9 19:00:30 file-server smbd_vscan-clamav[80904]: INFO: File !_RISK_!/RISK_POST/ACCOUNT.LOG is larger than specified maximum file size! Not scanned!
Jul  9 19:05:40 file-server smbd_vscan-clamav[80904]: INFO: File !_RISK_!/RISK_POST/ACCOUNT.LOG is larger than specified maximum file size! Not scanned!
Jul  9 19:05:40 file-server smbd_vscan-clamav[80904]: INFO: File !_RISK_!/RISK_POST/ACCOUNT.LOG is larger than specified maximum file size! Not scanned!

Хотя max file size = 0, а фаил ACCOUNT.LOG весит 19.1Кб!
Не понятно!

Nik, 2008-08-13 в 22:02:26

Спасибо за сайт, спасибо за статьи!!! Банально но актуально!!!
Было бы совсем круто если бы в общей документации на SAMBA указать еще методы логирования и сетевой корзины. Сетевая корзина решает много проблем, но ест место на дисе, без этого ни куда.
Дома настроил файлопомойник, PII 266 240Мб atacontrol    RAID1, согласно вашей статье и чтению документации, помаялся когда случайно(не специально) забыл убрать галочку CUPS при установке порта самбы. Пришлось все взад возвращать, но сейчас все работает, тормозит немного,при заливки туда всего что есть :-) Но это ни чего зато антивирь, логирование действий пользователя, корзина, софтверный RAID1! СПАСИБО!

skeletor, 2008-10-28 в 12:47:46

Дело в том, что лечить он не может. Да и тормозит прилично, даже на 2х 4 ядерных процах. :(

sasha462, 2008-12-24 в 23:22:41

незабуде поправить clamav-clamd.sh

case "$1" in
   start)
   /usr/local/bin/freshclam -d -c 2 -l /var/log/"clamav"/freshclam.log
   echo -n ' freshclam'
       ;;

Alter Ego, 2009-02-15 в 13:50:44

в последних версиях имя сокета в антивирусе и имя сокета в samba-vscan, отличаются.
если не будет работать обратите внимание.
я сразу не заметил.

тобишь сокет теперь зовется /var/run/clamav/clamd.sock
а раньше был /var/run/clamav/clamd

удачи.

DemonSKED, 2009-05-26 в 17:36:40

===>  samba-3.0.34,1 doesn't compile when tdb is installed. Uninstall databases/tdb port.

DemonSKED, 2009-05-26 в 17:37:26

И что с этим делать? Получается из портов ничего для защиты самбы нет?

Рома, 2009-09-06 в 5:03:55

Сделал по статье. Всё шикарно завелось. И перемешаются файлы заражённые в карантин.

Lblss, 2010-11-05 в 12:17:45

Похоже что samba-vscan кончился...

$ make search name=samba-vscan -C /usr/ports/
Port:   security/samba-vscan
Moved:
Date:   2010-10-18
Reason: Removed

oz, 2010-12-17 в 14:28:10

да , его больше нет с нами. (

Navigator, 2011-03-24 в 0:18:45

Так и чего теперь? больше ничего полезного из бесплатных антивирусов к самбе прикрутить нельзя?

pr0l, 2011-06-24 в 10:31:10

http://www.openantivirus.org/
тут можно скачать пакет samba-vscan

tehnikpc, 2012-09-06 в 12:50:17

"Почитал - сойдёть"
Что сойдёт? Антивирус, который ничего не ловит? Сами подумали хоть, что написали. Антивирусы нынче дешёвые например dr. Web.

jafff, 2013-04-29 в 12:09:15

/usr/ports/security/samba-virusfilter ктонить прикручивал? к 3.6 ?



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.057 секунд
Из них PHP: 35%; SQL: 65%; Число SQL-запросов: 86 шт.
Исходный размер: 52197; Сжатая: 12702