Zum Hauptinhalt wechseln

Virenschutz für hochgeladene Dateien (via APEX) via C-ICAP und ClamAV für ORDS

Mittels ORDS kann man via ICAP und ClamAV Dateien beim Upload z.B. via APEX auf Viren überprüfen.  Es wird wohl mindestens ORDS 19.2 benötigt, aufgrund Bug 29711406.

Anbei die Installation & Konfiguration für Oracle Linux 8 - als root.

# Clam AV
ROOT> yum install clamav clamd clamav-update clamav-devel clamav-lib gcc make -y

# Dienst für freshclam einrichten  
ROOT> nano /usr/lib/systemd/system/freshclam.service

# Folgendes eintragen
[Unit]
Description = ClamAV Scanner
After = network.target

[Service]
Type = forking
ExecStart = /usr/bin/freshclam -d -c 1
Restart = on-failure
PrivateTmp =true

[Install]
WantedBy=multi-user.target

ROOT> systemctl start freshclam
ROOT> systemctl enable freshclam	
ROOT> systemctl status freshclam

# ClamAV als Dienst einrichten  
ROOT> nano /etc/clamd.d/scan.conf

# Folgendes anpassen - die entsprechenden Rechte samt Pfade müssen natürlich korrekt sein
# Bei mir lies sich der Dienst nur starten bei Auskommentiertem LogFile (?!)

	LogFile /tmp/clamd.scan
	PidFile /run/clamd.scan/clamd.pid
	TemporaryDirectory /var/tmp
	LocalSocket /run/clamd.scan/clamd.sock
	LocalSocketGroup root
	TCPSocket 3310
	User root

ROOT> nano /etc/tmpfiles.d/clamd.scan.conf
# Folgendes eintragen
d /run/clamd.scan 0770 root root -

ROOT> systemctl start clamd@scan
ROOT> systemctl enable clamd@scan
ROOT> systemctl status clamd@scan
# C-ICAP
ROOT> cd /tmp/
ROOT> wget https://downloads.sourceforge.net/project/c-icap/c-icap/0.5.x/c_icap-0.5.10.tar.gz
ROOT> tar -xvf c_icap-0.5.10.tar.gz
ROOT> cd c_icap-0.5.10

ROOT> ./configure --prefix=/usr/local/c-icap
ROOT> make
ROOT> make install

ROOT> wget https://sourceforge.net/projects/c-icap/files/c-icap-modules/0.5.x/c_icap_modules-0.5.5.tar.gz
ROOT> tar zxvf c_icap_modules-0.5.5.tar.gz
ROOT> cd c_icap_modules-0.5.5

ROOT> ./configure --with-c-icap=/usr/local/c-icap/ --prefix=/usr/local/c-icap/
ROOT> make
ROOT> make install

ROOT> cp /usr/local/c-icap/etc/c-icap.conf /etc
ROOT> nano /etc/tmpfiles.d/c-icap.conf
# Folgendes eintragen
d /var/run/c-icap 0755 root root -

ROOT> nano /etc/c-icap.conf
# Folgendes eintragen (z.B. ganz am Ende)
Include virus_scan.conf
Include clamav_mod.conf
virus_scan.DefaultEngine clamav
virus_scan.ScanFileTypes TEXT DATA EXECUTABLE ARCHIVE GRAPHICS STREAM DOCUMENT
ServiceAlias AVSCAN virus_scan?allow204=on&sizelimit=off&mode=simple

ROOT> nano /usr/lib/systemd/system/c-icap.service
# Folgendes eintragen
[Unit]
Description=c-icap service
After=network.target

[Service]
Type=forking
PIDFile=/var/run/c-icap/c-icap.pid
ExecStart=/usr/local/c-icap/bin/c-icap -f /etc/c-icap.conf
KillMode=process

[Install]
WantedBy=multi-user.target	

ROOT> systemctl start c-icap
ROOT> systemctl enable c-icap
ROOT> systemctl status c-icap
# ORDS Konfiguration anpassen
ROOT> ords --config /opt/oracle/ords22_conf config set icap.port 1344 	
ROOT> ords --config /opt/oracle/ords22_conf config set icap.server MEINE_IP / MEIN_HOSTNAME 
ROOT> systemctl restart tomcat
ROOT> systemctl restart httpd

# Port in Firewall berücksichtigen
ROOT> firewall-cmd --zone=public --add-port=1344/tcp --permanent
ROOT> firewall-cmd --reload

# Logs
ROOT> nano /usr/local/c-icap/var/log/access.log 
ROOT> nano /usr/local/c-icap/var/log/server.log

Auf eigene Gefahr kann man den Virenscanner dann mit Testdateien von www.eicar.org ausprobieren.

Bitte zwingend die Anweisungen lesen, bevor man die Testdateien herunterlädt.

Lädt man die Virus-Testdatei hoch, so erscheint ein “Error 400”, im entsprechenden Log steht:

Mon Jan 23 12:45:04 2023, 17581/3477735168, VIRUS DETECTED: Eicar-Signature , http client ip: -, http user: -, http url: notarealurl.com//opt/tomcat/temp/virusScanning3162736147569882894.tmp

 

Ein Parser des Log-Files und eine entsprechende Fehlermeldung in der App können dann ganz einfach implementiert werden.

Kommentare

Noch keine Kommentare zu diesem Beitrag.