www.ProFTPD.de
13. März 2007, 19:40:26 *
Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge
News: SMF - Neu installiert!
 
   Übersicht   Hilfe Suche Login Registrieren  
Seiten: [1]   Nach unten
  Drucken  
Autor Thema: Virenscanning  (Gelesen 318 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
Stormbringer
ProFTPD
*
Offline Offline

Beiträge: 12


Profil anzeigen
« am: 02. Januar 2005, 21:00:37 »

Hallo Leute,

ich habe vor einigen Monaten schon einmal danach gefragt, es aber nicht weiter verfolgt ...
Heute nun habe ich mir erst einmal einen Satz RPMs für die hier laufende SuSE 9.2 gebaut, inkl. mod_exec.
In die /etc/proftpd.conf habe ich dann folgende Einträge gemacht:
Code:

ExecEngine on
ExecLog /var/log/proftpd/exec.log
ExecTimeout 30
ExecOnCommand WRITE,STOR /usr/local/f-prot/f-prot.sh --user -%u --file %f

Das funzt auch wunderbar, solange DefaultRoot deaktiviert bleibt.

Nun denke ich über eine andere Lösung nach, um DefaultRoot nutzen zu können ... aber leider verlangt mod_exec die Pfadangabe des auszuführenden Programms als absolute Angabe - kann man das irgendwie umbiegen?
Auf dem Server werden nur Systembenutzer Zugang zu Ihren ~/ haben. Somit wäre es möglich, bei einer relativen Angabe, durch linken einem jeden Benutzer die AV Engine nutzbar zu machen ... oder habe ich da einen elementaren Denkfehler?

Gruß
Gespeichert

Continuum Hierarchy Supervisor:
You have already been assimilated.
stonki
Administrator
ProFTPD
*****
Offline Offline

Beiträge: 1853


15318939
Profil anzeigen WWW E-Mail
« Antwort #1 am: 02. Januar 2005, 23:58:15 »

um es mal deutlich zu sagen: mod_exec mit defaultroot ist ein riesen Scheiss. Ich wuerde Dir empfehlen auf defaultroot zu verzichten und mod_vroot zu verwenden, dann hast Du den ganzen scheiss mit dem chroot nicht. Jeder Programm, jede Lib, jedes wasweissich ausserhalb Deines defaultroot ist ja sonst nicht zu erreichen, du muesstest Dir fuer jeden User eine mini chroot umgebung bauen.

http://www.castaglia.org/proftpd/modules/mod_vroot.html

cu
stonki
Gespeichert

www.stonki.de:    the more I see, the more I know.......
www.proftpd.de:   Deutsche ProFTPD Dokumentation
www.krename.net:  Der Batch Renamer für KDE
www.kbarcode.net: Die Barcode Solution für KDE
Stormbringer
ProFTPD
*
Offline Offline

Beiträge: 12


Profil anzeigen
« Antwort #2 am: 03. Januar 2005, 14:03:35 »

Ok, Danke schon einmal!
... funzt aber leider nicht wirklich ...

Habe nun einmal mod_vroot mit eingebaut, die Konfigurationsdatei angepaßt, und proftpd neu gestartet.
Code:

suse92test:/var/log/proftpd # ftp localhost
Trying 127.0.0.1...
Connected to localhost.
220 ProFTPD 1.2.10 Server (ProFTPD Server) [127.0.0.1]
Name (localhost:root): stormbringer
331 Password required for stormbringer.
Password:
230 User stormbringer logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||32803|)
150 Opening ASCII mode data connection for file list
421 Service not available, remote server has closed connection.
ftp> bye
suse92test:/var/log/proftpd #

Und sies steht in /var/log/proftpd/proftpd.syslog
Code:

Jan 03 13:52:09 suse92test proftpd[24595] suse92test.skar.dt: ProFTPD 1.2.10 (stable) (built Mon Jan 3 13:04:40 CET 2005) standalone mode STARTUP
Jan 03 13:52:15 suse92test proftpd[24597] suse92test.skar.dt (127.0.0.1[127.0.0.1]): FTP session opened.
Jan 03 13:52:22 suse92test proftpd[24597] suse92test.skar.dt (127.0.0.1[127.0.0.1]): USER stormbringer: Login successful.
Jan 03 13:52:24 suse92test proftpd[24597] suse92test.skar.dt (127.0.0.1[127.0.0.1]): ProFTPD terminating (signal 11)
Jan 03 13:52:24 suse92test proftpd[24597] suse92test.skar.dt (127.0.0.1[127.0.0.1]): FTP session closed.


Sobald ich 'VRootEngine' auf off setze, kann eine FTP Sitzung normal genutzt werden ...

Hier meine /etc/proftpd.conf:
Code:

ServerName          "ProFTPD Server"
ServerType          standalone
DefaultServer       on
Port                21
Umask               022
MaxInstances        30
User                nobody
Group               nogroup

VRootEngine on
VRootOptions allowSymlinks
ExecEngine on
ExecLog /var/log/proftpd/exec.log
ExecTimeout 30
ExecOnCommand WRITE,STOR /usr/local/f-prot/f-prot.sh --user -%u --file %f

PidFile             /var/run/proftpd.pid
ScoreboardFile      /var/run/proftpd.score
SystemLog           /var/log/proftpd/proftpd.syslog
TransferLog         /var/log/xferlog
IdentLookups        off
RequireValidShell   off
UseFtpUsers         off
UseReverseDNS       off
WtmpLog             on
#Umask              002
TimeoutLogin        120
TimeoutIdle         600
TimeoutNoTransfer   900
TimeoutStalled      3600
LogFormat           default "%h %l %u %t \"%r\" %s %b"
LogFormat           auth    "%v [%P] %h %t \"%r\" %s"
LogFormat           write   "%h %l %u %t \"%r\" %s %b"
ExtendedLog         /var/log/proftpd/proftpd-access.log WRITE,READ write
ExtendedLog         /var/log/proftpd/proftpd-auth.log AUTH auth
#ExtendedLog        /var/log/proftpd/proftpd-paranoid.log ALL default
#DefaultRoot ~
AllowOverwrite      on

<Limit SITE_CHMOD>
  DenyAll
</Limit>

<Anonymous ~ftp>
  User              ftp
  Group             ftp
  UserAlias         anonymous ftp
  MaxClients        5
  DisplayLogin      welcome.msg
  DisplayFirstChdir .message
  <Limit WRITE>
    DenyAll
  </Limit>
</Anonymous>


Korrekt erstellt wurde proftpd wohl auch:
Code:

suse92test:/var/log/proftpd # /usr/sbin/proftpd -l
Compiled-in modules:
  mod_core.c
  mod_xfer.c
  mod_auth_unix.c
  mod_auth_file.c
  mod_auth.c
  mod_ls.c
  mod_log.c
  mod_site.c
  mod_auth_pam.c
  mod_ratio.c
  mod_readme.c
  mod_exec.c
  mod_vroot.c
  mod_cap.c
suse92test:/var/log/proftpd #


Und die Syntax dürfte ebenfalls stimmen:
Code:

suse92test:/var/log/proftpd # /usr/sbin/proftpd -td5
Checking syntax of configuration file
 - parsing '/etc/proftpd.conf' configuration
suse92test.skar.dt -
suse92test.skar.dt - Config for ProFTPD Server:
suse92test.skar.dt - ~ftp/
suse92test.skar.dt -  Limit
suse92test.skar.dt -   DenyAll
suse92test.skar.dt -  UserName
suse92test.skar.dt -  GroupName
suse92test.skar.dt -  UserAlias
suse92test.skar.dt -  MaxClients
suse92test.skar.dt -  DisplayLogin
suse92test.skar.dt -  DisplayFirstChdir
suse92test.skar.dt -  Umask
suse92test.skar.dt -  ExecOnCommand
suse92test.skar.dt -  TransferLog
suse92test.skar.dt -  RequireValidShell
suse92test.skar.dt -  UseFtpUsers
suse92test.skar.dt -  WtmpLog
suse92test.skar.dt -  AllowOverwrite
suse92test.skar.dt - Limit
suse92test.skar.dt -  DenyAll
suse92test.skar.dt - DefaultServer
suse92test.skar.dt - Umask
suse92test.skar.dt - UserID
suse92test.skar.dt - UserName
suse92test.skar.dt - GroupID
suse92test.skar.dt - GroupName
suse92test.skar.dt - VRootEngine
suse92test.skar.dt - VRootOptions
suse92test.skar.dt - ExecEngine
suse92test.skar.dt - ExecLog
suse92test.skar.dt - ExecTimeout
suse92test.skar.dt - ExecOnCommand
suse92test.skar.dt - PidFile
suse92test.skar.dt - TransferLog
suse92test.skar.dt - IdentLookups
suse92test.skar.dt - RequireValidShell
suse92test.skar.dt - UseFtpUsers
suse92test.skar.dt - WtmpLog
suse92test.skar.dt - TimeoutLogin
suse92test.skar.dt - TimeoutIdle
suse92test.skar.dt - TimeoutNoTransfer
suse92test.skar.dt - TimeoutStalled
suse92test.skar.dt - ExtendedLog
suse92test.skar.dt - ExtendedLog
suse92test.skar.dt - AllowOverwrite
Syntax check complete.
suse92test:/var/log/proftpd #


Ich habe dann noch zwei Debugfiles erstellt, einmal mit deaktivierter Option VRootEngine (proftpd.debug), und einmal mit aktivierter Option
(proftpd.debug1). EDITIERT

Hat jemand eine Idee?

Danke & Gruß
Gespeichert

Continuum Hierarchy Supervisor:
You have already been assimilated.
Stormbringer
ProFTPD
*
Offline Offline

Beiträge: 12


Profil anzeigen
« Antwort #3 am: 03. Januar 2005, 14:52:13 »

Argh ..... nun läuft es! L&auml;chelnd
/var/log/proftpd/exec.log sagt:
Code:


Jan 03 14:49:59 mod_exec/0.8.1[24992]: preparing to execute '/usr/local/f-prot/f-prot.sh' with uid 0, gid 100
Jan 03 14:50:01 mod_exec/0.8.1[24961]: STOR ExecOnCommand '/usr/local/f-prot/f-prot.sh' succeeded


Der entsprechende Passus in der proftpd.conf:
Code:

## Use of mod_vroot
##
VRootEngine on
VRootOptions allowSymlinks
DefaultRoot ~

## Use of mod_exec (eg. for virus-scanning)
##
mod_exec
ExecEngine on
ExecLog /var/log/proftpd/exec.log
ExecTimeout 30
ExecOnCommand WRITE,STOR /usr/local/f-prot/f-prot.sh --user -%u --file %f


Gruß
Gespeichert

Continuum Hierarchy Supervisor:
You have already been assimilated.
Wörsty
Moderator
ProFTPD
*****
Offline Offline

Beiträge: 1602


50772603
Profil anzeigen WWW E-Mail
« Antwort #4 am: 03. Januar 2005, 16:00:49 »

...und was macht er, wenn er einen Virus findet?
Gespeichert

RedHat 8.0 (2.4er Kernel)
proftpd 1.2.10
-mod_sql_mysql
-mow_wrap
-mod_exec
-mod_ifsession[/size]
Stormbringer
ProFTPD
*
Offline Offline

Beiträge: 12


Profil anzeigen
« Antwort #5 am: 03. Januar 2005, 19:45:49 »

Das weiß ich noch nicht.
Nun muß ich erst einmal eine vernünftige Anbindung an die AV Software herstellen. Momentan tendiere ich zu uvscan (ist zwar nicht OS, wird aber vom AG bezahlt).
uvscan prüft Dateien und deren Inhalt, bspw. Archive, und im Falle einer Infektion wird die Datei in ein anzugebendes Quarantäneverzeichnis überführt.
Ob ggf. dem jeweiligen Benutzer noch eine Info zukommen kann (außer einer Logdatei) weiß ich (noch) nicht ... in Zweifelsfall sollte er es aber daran bemerken, daß eine übertragene Datei nicht ankommt/angezeigt wird.

Gruß
Gespeichert

Continuum Hierarchy Supervisor:
You have already been assimilated.
Seiten: [1]   Nach oben
  Drucken  
 
Gehe zu:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS
Seite erstellt in 0.06 Sekunden mit 15 Zugriffen.