المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : شرح تركيب Clam AntiVirus للسيرفرات



ASDELY-ScOrPiOn
12-30-2009, 09:45 AM
السلام عليكم ورحمة الله وبركاته

برنامج clamav هو مضاد فيروسات يستخدم علي Linux




wget -c http://downloads.sourceforge.net/clamav/clamav-0.93rc1.tar.gz



tar −xvzf clamav-0.93rc1.tar.gzcd clamav−0.93 #groupadd clamavuseradd clamav −g clamav −c "Clam AntiVirus" −s /nonexistent ../configuremakemake installcd ..

نقوم بالتعديل علي /etc/crontab لعمل تحديث كل 12 ساعه للـ Clam عن طريق الامر التالي :



pico /etc/crontab

اضف في نهايته هذا السطر :


0 12 * * * root /usr/local/bin/clamscan

لتنفيذ التحديث استخدم الاوامر التاليه :



touch /var/log/clam-update.logchmod 600 /var/log/clamupdate.logchown clamav /var/log/clamupdate.log

نقوم بعمل تحديث للـ freshclam



freshclam -d -c 6 -l /var/log/clam-update.log

لاعداد البرنامج اتبع الخطوات التاليه :



pico /etc/clamd.conf

قم بتنفيذ المتغيرات التاليه :


Uncomment "LogSyslog"
Uncomment "StreamSaveToDisk"
Uncomment "MaxThreads" and change value to "30"
Uncomment "User" and change value to "qscand"
Uncomment "Foreground"
Uncomment "ScanMail"

نفذ امر انشاء الملف التالي :



mkdir -p /usr/local/clamav/bin

ونقوم بعمل سكربت صغير لتشغيل و اغلاق البرنامج :



pico /usr/local/clamav/bin/clamdctl


#!/bin/sh

# For Red Hat chkconfig
# chkconfig: - 80 30
# description: the ClamAV clamd daemon

PATH=/usr/local/clamav/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH

case "$1" in
start)
echo "Starting clamd"
if svok /service/clamd ; then
svc -u /service/clamd
else
echo clamd supervise not running
fi
if [ -d /var/lock/subsys ]; then
touch /var/lock/subsys/clamd
fi
;;
stop)
echo "Stopping clamd..."
echo " clamd"
svc -d /service/clamd
if [ -f /var/lock/subsys/clamd ]; then
rm /var/lock/subsys/clamd
fi
;;
stat)
svstat /service/clamd
svstat /service/clamd/log
;;
restart)
echo "Restarting clamd:"
echo "* Stopping clamd."
svc -d /service/clamd
echo "* Sending clamd SIGTERM and restarting."
svc -t /service/clamd
echo "* Restarting clamd."
svc -u /service/clamd
;;
hup)
echo "Sending HUP signal to clamd."
svc -h /service/clamd
;;
help)
cat <<HELP
stop -- stops clamd service (smtp connections refused, nothing goes out)
start -- starts clamd service (smtp connection accepted, mail can go out)
stat -- displays status of clamd service
restart -- stops and restarts the clamd service
hup -- same as reload
HELP
;;
*)
echo "Usage: $0 {start|stop|stat|restart|hup|help}"
exit 1
;;
esac

exit 0

نقوم بأضافه التصريحات التاليه :


chmod 755 /usr/local/clamav/bin/clamdctl



chown clamav /usr/local/clamav/bin/clamdctl



ln -s /usr/local/clamav/bin/clamdctl /usr/local/bin

انشأ المجلد التالي :



mkdir -p /usr/local/clamav/supervise/clamd/log

حرر الملف :



pico /usr/local/clamav/supervise/clamd/run

قم بأضافه التالي في الملف :


#!/bin/sh
#
# --------------------------------------------------
# run
#
# Purpose - Start the clamd daemon/service.
#
# Author - Jesse D. Guardiani
# Created - 09/10/03
# Modified - 09/25/03
# --------------------------------------------------
# This script is designed to be run under DJB's
# daemontools package.
#
# ChangeLog
# ---------
#
# 09/25/03 - JDG
# --------------
# - Changed clamd user to qscand in compliance with
# the change to qmail-scanner-1.20rc3
#
# 09/10/03 - JDG
# --------------
# - Created
# --------------------------------------------------
# Copyright (C) 2003 WingNET Internet Services
# Contact: Jesse D. Guardiani (jesse at wingnet dot net)
# --------------------------------------------------

lockfile="/tmp/clamd" # ******** of clamd lock file
path_to_clamd="/usr/local/sbin/clamd"
# ******** of the clamd binary
BAD_EXIT_CODE=1 # The exit code we use to announce that something bad has happened

# The following pipeline is designed to return the pid of each
# clamd process currently running.
get_clam_pids_pipeline=`ps -ax | grep -E "${path_to_clamd}\$" | grep -v grep | awk '{print $1}'`


# --------------------------------------------------
# Generic helper functions
# --------------------------------------------------

# Basic return code error message function
die_rcode() {
EXIT_CODE=$1
ERROR_MSG=$2

if [ $EXIT_CODE -ne '0' ]; then
echo "$ERROR_MSG" 1>&2
echo "Exiting!" 1>&2
exit "$BAD_EXIT_CODE"
fi
}


# --------------------------------------------------
# Main
# --------------------------------------------------

ps_clamd=""
ps_clamd="$get_clam_pids_pipeline"

if [ -n "$ps_clamd" ]; then
pid_count="0"
for pid in $ps_clamd
do
pid_count=`expr $pid_count + 1`
done

die_rcode $BAD_EXIT_CODE "Error: $pid_count clamd process(es) already running!"

fi

if [ -e "$lockfile" ]; then
rm "$lockfile"
exit_code="$?"
die_rcode $exit_code "Error: 'rm $lockfile' call failed."
fi

exec /usr/local/bin/setuidgid qscand $path_to_clamd

# --
# END /usr/local/clamav/supervise/clamd/run file.
# --

Create the /usr/local/clamav/supervise/clamd/log/run file:

#vi /usr/local/clamav/supervise/clamd/log/run

#!/bin/sh
exec /usr/local/bin/setuidgid qscand /usr/local/bin/multilog t /var/log/clamd

قم بعمل التصريحات التاليه :



chmod 755 /usr/local/clamav/supervise/clamd/run



chmod 755 /usr/local/clamav/supervise/clamd/log/run

نقوم بعمل مجلد الـ log



mkdir -p /var/log/clamd



chown qscand /var/log/clamd

نقوم بأضافه supervise فى service



ln -s /usr/local/clamav/supervise/clamd /service

لايقاف البرنامج عن طريق الامر التالي :



clamdctl stop

لتشغيل البرنامج عن طريق الامر التالي :



clamdctl start

اذا اصبت فمن الله و ان اخطأت فمن نفسي و من الشيطان ...

تم تجربه البرنامج علي جهازي الشخصي و علي سيرفري ...وتحياتي لكم جميعكم

Dr.R00T
12-31-2009, 12:48 PM
مشكوووووووووووووووور اسدلي على الشرح الوافي

تسلم يمينك .. وبارك الله فيك

تقبل مروري
-^-
Fox HaCk