0. Wstęp: Jeśli nie musisz mieć użytkowników którzy mają problemy z wirusami to nie czytaj dalej. Zakładam że wiesz co to jest samba i udało Ci się ją uruchomić z działającym wsparciem dla VFS. Powinienes tez miec zainstalowanego demona dla mks32. Nie namawiam do używania mks32 w ten sposób. Licencja na mks32 może na to pozwalać albo tego zabraniac, jesli masz wątpliwości skontaktuj się z firmą Mks, albo prawnikiem !

1. To jest testowa i nie dopracowana wersja programu, zawiera niewielkie zmiany ze skanera znajdujacego się na stronach openAntivirus
Nie używaj jej na serwerach produkcyjnych.
Aby skompilowac skaner bedziesz potrzebował rozpakowanych źródeł samby w wesji co najmniej 2.2.2a. Oraz patcha ściągnięty plik rozpakuj i skopuj do katalogu samby.

$ tar xfvz smbmksYYMMDD.tgz
$ cp -avR smbmks ~/rpm/BUILD/samba-2.2.3/examples/VFS/
$ cd ~/rpm/BUILD/samba-2.2.3
$  patch -p1 < ~/smbmks/samba-2.2.3-vfs.dif
patching file examples/VFS/audit.c
patching file source/Makefile.in
patching file source/include/proto.h
patching file source/include/stamp-h
patching file source/msdfs/msdfs.c
patching file source/smbd/service.c
patching file source/smbd/vfs.c
$ cd examples/VFS/smbmks
$ make
$ su
# cp vscan-mksd.so /usr/local/lib/samba/
# exit

Po kompilacji należy jeszcze poinformować sambę że powinna użyć vfs i naszego skanera. Odpowiada za to parametr vfs object w smb.conf:
$ su 
# cat << EOF >> /etc/smb/samba.conf
# This one is simple test
[tmp]
   vfs object = /usr/local/lib/samba/vscan-mksd.so
   comment = File space under Antivirus audit 
   path = /tmp
   read only = no
   public = yes
EOF
# /etc/rc.d/init.d/smb restart
# exit
O tym że demon się uruchomił dowiesz się z logów (man syslog), wygodnie jest śledzić pracę programu np w ten sposób: tail -f /var/log/messages (lub /var/log/daemon w zależności od konfiguracji sysloga)
  • 3. Test. Poszukaj pliku w sieci eicar.com (lub umnie). To jest testowy plik z pseudo wirusem, używany jako test. 4. Test należy przeprowadzic jak na obrazkach(:-):


    Albo z shella:
    smb: \> quit
    [hunter@dragon hunter]$ smbclient  \\\\dragon\\tmp -U hunter
    added interface ip=192.168.0.1 bcast=192.168.0.255 nmask=255.255.255.0
    added interface ip=127.0.0.1 bcast=127.255.255.255 nmask=255.0.0.0
    Password:
    Domain=[WWW] OS=[Unix] Server=[Samba 2.2.3]
    smb: \> ls
      .                                   D        0  Wed Apr 17 22:28:59 2002
      ..                                  D        0  Mon Apr 15 15:35:09 2002
      fcgi                                D        0  Wed Apr 17 11:37:36 2002
      poldek..lck                                  5  Wed Apr 17 20:49:45 2002
      sgitz.c                                     99  Wed Apr 17 12:20:23 2002
      .X11-unix                          DH        0  Wed Apr 17 18:46:31 2002
      aqq                                 A        6  Wed Apr 17 21:48:26 2002
      orbit-hunter                        D        0  Wed Apr 17 13:34:38 2002
      eicar.com                           A       70  Wed Apr 17 21:48:59 2002
      sgitz                               A     4833  Wed Apr 17 12:23:46 2002
    
                    39375 blocks of size 65536. 16962 blocks available
    smb: \> get aqq
    getting file aqq of size 6 as aqq (0.3 kb/s) (average 0.3 kb/s)
    smb: \> get eicar.com
    NT_STATUS_ACCESS_DENIED opening remote file \eicar.com
    smb: \> quit
    $
    
    5. Ślad w logach:
    Apr 17 22:29:35 dragon smb: smbd startup  succeeded
    Apr 17 22:29:35 dragon smb: nmbd startup  succeeded
    Apr 17 22:29:37 dragon smbd_vscan_oav[679]: VFS_INIT: vscan_ops - $Revision: 1.1.1.1 $ loaded
    Apr 17 22:29:37 dragon smbd_vscan_oav[679]: connect to service tmp by user hunter
    Apr 17 22:29:39 dragon smbd_vscan_oav[679]: vir: file:/tmp/aqq^I==OK== mks_vir: status: ok:/tmp/aqq
    Apr 17 22:29:39 dragon nmbd[658]: [2002/04/17 22:29:39, 0] nmbd/nmbd_responserecordsdb.c:find_response_record(237)
    Apr 17 22:29:39 dragon nmbd[658]:   find_response_record: response packet id 21735 received with no matching record.
    Apr 17 22:29:39 dragon nmbd[658]: [2002/04/17 22:29:39, 0] nmbd/nmbd_responserecordsdb.c:find_response_record(237)
    Apr 17 22:29:39 dragon nmbd[658]:   find_response_record: response packet id 21736 received with no matching record.
    Apr 17 22:29:45 dragon smbd_vscan_oav[679]: vir: file:/tmp/eicar.com^I--heuristic for virus Eicaro.Test mks_vir: status: virus found:/tmp/eicar.com
    Apr 17 22:29:45 dragon smbd_vscan_oav[679]: Scan result: '/tmp/eicar.com' infected with virus 'mks_vir: file:/tmp/eicar.com^I--heuristic for virus Eicaro.Test mks_vir: status: virus found:/tmp/eicar.com ' - Access denied
    Apr 17 22:29:56 dragon smbd_vscan_oav[679]: disconnected
    
     
    Standardowy Disclaimer: 
    Nie namawiam do używania mks32 w ten sposób. Licencja na mks32 może na to pozwalać albo tego zabraniac, jesli masz wątpliwości skontaktuj się z firmą Mks, albo prawnikiem !. Prawa autorskie należą do Krzysztofa Drewicza. Dokument ten jest rozpowszechniany na podstawie GPL (Gnu Public License). Aby otrzymać kopię tej licencji napisz do Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
    Znaki towarowe należą do ich właścicieli. Nie ma żadnych gwarancji co do dokładności czy przydatności informacji zawartych w tym dokumencie. Choć opisane czynności nie powinny zaszkodzić systemowi nie ponoszę żadnej odpowiedzialności za ich efekty.

    $Id: smbmks.html,v 1.1.1.1 2002/08/04 18:49:50 hunter Exp $