در قسمت قبلی طریقۀ نصب و پیکربندی آنتی ویروس ClamAV روی نسخه ۶ سیستم عامل CentOS را خدمت شما آموزش دادم. اما در CentOS 7 روال تقریباً متفاوت از CentOS 6 میباشد. به همین دلیل تصمیم بر آن شد که این آموزش هم تولید شده و در سایت وبنولوژی منتشر شود که قسمت ۹۸ از مجموعۀ آموزش مدیریت سرور لینوکس محسوب میگردد. همانطور که باید بدانید ClamAV یکی از بهترین ضدویروس های موجود در بین بسته های نرم افزاری رایگان برای لینوکس است که شما روی توزیع CentOS 7 هم میتوانید از آن استفاده کنید. در ادامه طریق نصب و کانفیگ ClamAV را در CentOS 7 تقدیم شما می کنیم.
برای نصب ClamAV شما به احتیاجات خاصی نیاز ندارید. همین که یک سرور با سیستم عامل CentOS 7 داشته باشید و دسترسی ریشه هم داشت باشید، کفایت می کند. البته پیشنهاد ما مطالعه قسمت های قبلیِ آموزش مدیریت سرور لینوکس و در ادامه طی مراحل موجود در این آموزش است.
نصب ClamAV
قبل از هر کاری هسته و تمامی بسته های نرم افزاری لینوکس را به روز می کنیم.
yum -y update
سپس مخازن نرم افزاری EPEL را روی سرور نصب می کنیم.
yum -y install epel-release
حالا آنتی ویروس ClamAV را نصب می کنیم.
yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
همانطور که شاهد هستید، این آنتی ویروس شامل بسته های مختلفی است که باید همۀ آنها را با هم روی سرور نصب کنید. البته اگر کاربر حرفه ای باشید، خودتان می توانید تصمیم بگیرید که به کدامیک نیازی ندارید و از نصب آن صرف نظر کنید.
پیکربندی SELinux
قبل از اینکه بخواهیم آنتی ویروس را اجرا کنیم، اول باید پیکربندی های لازم را انجام دهیم. برخلاف CentOS 6، در اینجا ما با یک فرآیند کمی پیچیده مواجه هستیم. اول از همه باید به SELinux لینوکس بفهمانیم که اجازه دسترسی به اسناد لازم را به آنتی ویروس بدهد. برای این منظور هم می توانید SELinux را به صورت کامل غیرفعال کنید.
setenforce 0
یا می توانید پیکربندی کنید که SELinux کاری به کارِ ClamAV نداشته باشد.
setsebool -P antivirus_can_scan_system 1 setsebool -P clamd_use_jit 1
برای اینکه SELinux را بررسی کنید که آیا دسترسیِ لازم را به ClamAV داده یا خیر، دستور زیر به کار ما می آید.
getsebool -a | grep antivirus
نتیجۀ دستور باید به صورت زیر باشد.
antivirus_can_scan_system --> on antivirus_use_jit --> on
اگر شما کارهای بالا را انجام ندهید، هشدارهایی که برای آنتی ویروس در سند گزارش ها ذخیره می شوند، به این صورت خواهند بود.
During database load : LibClamAV Warning: RWX mapping denied: Can't allocate RWX Memory: Permission denied
پیکربندی ClamAV
بعد از اینکه کار پیکربندیِ SELinux را انجام دادیم، نوبت به این می رسد که اسناد پیکربندیِ پویشگر ClamAV را ویرایش کنیم. به صورت پیش فرض سند پیکربندی آنتی ویروس در مسیر /etc/clamd.d/scan.conf واقع شده است. کاری که ما انجام می دهیم، تهیۀ یک نسخۀ پشتیبان از این سند، سپس حذف عبارت Example از ابتدای این سند که منجر به عملیاتی شدن این سند می گردد.
cp /etc/clamd.d/scan.conf /etc/clamd.d/scan.conf.backup sed -i -e "s/^Example/#Example/" /etc/clamd.d/scan.conf
اگر دستور sed برای شما کار نکرد و همراه با خطا بود، با ویرایشگر nano این سند را باز کنید و عبارت Example را از خط هشتم پاک کنید.
شما حق این انتخاب را دارید که تعیین کنید کدام کاربر در سرور شما بتوانید ClamAV را اجرا کند. این کاربر می تواند کاربر ریشه یا root باشد، یا اینکه کاربری مثل clamscan باشد. خود آنتی ویروس در زمان نصب یک کاربر برای انجام پویش سرور می سازد که برای پیدا کردن نام این کاربر، دستورات زیر به کار می روند.
cat /etc/passwd | grep clam
نتیجه دستور بالا احتمالاً دو خط به صورت زیر است که نشان می دهد یک کاربر با نام clamupdate و یک کاربری دیگر با نام clamscan از قبل ساخته شده است.
clamupdate:x:997:995:Clamav database update user:/var/lib/clamav:/sbin/nologin clamscan:x:996:993:Clamav scanner user:/:/sbin/nologin
پس ما می توانیم از کاربری clamscan برای اجرای پویشگر ClamAV استفاده کنیم. پس سند پیکربندیِ پویش آنتی ویروس را باز می کنیم.
nano /etc/clamd.d/scan.conf
انقدر به پایین بیاید، تا خط زیر را پیدا کنید. از دکمه های ترکیبیِ Ctrl + W هم می توانید برای جستجو استفاده کنید.
#Run as another user (clamd must be started by root for this option to work)
#Default: don't drop privileges
User clamscan
اگر شما از همان کاربری clamscan استفاده کنید، برای اجرای شبح (daemon) آنتی ویروس ClamAV باید با کاربر ریشه این کار را انجام دهید. از آنجایی که ما با کاربری root وارد حساب خود شدیم، می توانیم این تنظیم را روی همان clamscan بگذاریم باشد. اما اگر خواسته باشید قادرید به جای آن مقدار root را جایگزین نمایید.
حالا باید نوع سرور را در تنظیمات پیکربندی تعیین کنید. به پایین آمده و خطوط زیر را پیدا می کنیم.
#The daemon can work in local mode, network mode or both.
#Due to security reasons we recommend the local mode.
#Path to a local socket file the daemon will listen on.
#Default: disabled (must be specified by a user)
#LocalSocket /var/run/clamd.scan/clamd.sock
دستور LocalSocket را از حالت توضیحات خارج می کنیم (علامت # را از ابتدای آن حذف میکنیم).
کار ویرایش سند scan.conf در اینجا به اتمام می رسد. می توانم این سند را ذخیره و سپس آن را ببندیم. اما قبل از اینکه سرویس پویشگر را که چند لحظه پیش تنظیماتش را انجام دادیم را اجرا کنیم، سرویس به روز کردن پایگاه دادۀ آنتی ویروس (Freshclam) را هم بهتر است پیکربندی کنیم.
Freshclam به جهت به روز کردن پایگاه دادۀ مشخصات ویروس ها روی سرور شما به کار می رود. سند پیکربندیِ آن در مسیر زیر قرار گرفته است.
/etc/freshclam.conf
اول از همه یک نسخۀ پشتیبان از این سند می گیریم و مثل سند scan.conf عبارت Example را از ابتدای آن حذف می کنیم.
cp /etc/freshclam.conf /etc/freshclam.conf.backup sed -i -e "s/^Example/#Example/" /etc/freshclam.conf
حالا با دستور زیر، عمل به روز کردن آنتی ویروس را انجام دهید.
freshclam
شما احتمالاً خروجی مثل خطوط زیر را دریافت خواهید کرد. البته مدت زمانی به طور خواهد انجامید تا مراحل کامل ۱۰۰ درصد گردد.
ClamAV update process started at Tue Nov 1 08:44:10 2016 main.cvd is up to date (version: 57, sigs: 4218790, f-level: 60, builder: amishhammer) Trying host database.clamav.net (27.96.54.66)... Downloading daily.cvd [100%] daily.cvd updated (version: 22463, sigs: 804704, f-level: 63, builder: neo) Downloading bytecode-279.cdiff [100%] Downloading bytecode-280.cdiff [100%] Downloading bytecode-281.cdiff [100%] Downloading bytecode-282.cdiff [100%] Downloading bytecode-283.cdiff [100%] bytecode.cld updated (version: 283, sigs: 53, f-level: 63, builder: neo) Database updated (5023547 signatures) from database.clamav.net (IP: 27.96.54.66)
ما الان در اینجا به صورت دستی آنتی ویروس را به روز کردیم که از آخرین تهدیدهای امنیتی مطلع شود و آخرین ویروس ها را شناسایی کند. اما این دستور باید هر روز تکرار شود. پس چه کاری بهتر از اینکه از Cron ها استفاده کنیم.
سند ویرایش Cron ها را باز می کنیم.
crontab -e
با زدن کلید i از صفحه کلید وارد محیط ویرایشی می شویم و خط زیر را در انتهای آن اضافه می کنیم.
۰۰ ۰۱,۱۳ * * * /usr/bin/freshclam --quiet
کلیک Esc را از صفحه کلید زده و wq: را تایپ می کنیم و Enter را می زنیم تا سند ذخیره گردد. خط بالا دستور freshclam را روزی دو بار در ساعت های ۱ صبح و ۱ ظهر به صورت خودکار اجرا می کند.
ساخت سرویس systemd برای freshclam
به جای استفاده از Cron برای راحتی کار برای اینکه بتوانید از دستور systemctl هم برای راه اندازی خودکار سرویس freshclam استفاده کنید، می توانید سرویس systemd آن را بسازید. برای این منظور یک سند خالی با دستور nano برای این سرویس ایجاد می کنیم.
nano /usr/lib/systemd/system/freshclam.service
خطوط زیر را درون آن قرار دهید.
[Unit] Description = freshclam scanner After = network.target [Service] Type = forking ExecStart = /usr/bin/freshclam -d -c 2 Restart = on-failure PrivateTmp = true [Install] WantedBy=multi-user.target
سند را ذخیره کنید و برای اینکه همین الان و همچنین در زمان بالا آمدن سرور، شبح freshclam هم اجرا شود، از دستورات زیر استفاده می کنیم.
systemctl start freshclam systemctl enable freshclam
حالا systemd خودکار دو بار دستور freshclam را اجرا می کند. حتی به مانند هر سرویس دیگر می توانید وضعیت شبح freshclam را مشاهده کنید.
systemctl status freshclam
دقت داشته باشید که اگر از Cron برای این منظور استفاده کردید، دیگر نیازی به ساخت سرویس systemd آن وجود ندارد.
اجرای پویشگر سرویس ClamAV
حال که آنتی ویروس سرور را هم به روز کردیم، برای روشن کردن سرویس پویش گر (scanner service) دستور زیر را می زنیم.
systemctl start clamd@scan
سرویس پویشگر یا همان clamd@scan را در همان ابتدای بالا آمدن سرور فعال می کنیم.
systemctl enable clamd@scan
هر زمان که خواسته باشیم می توانیم وضعیت این سرویس را بررسی کنیم.
systemctl status clamd@scan
اگر مشکلی نداشته باشد، روبروی عبارت Active به رنگ سبز active (running) زده شده.
بررسی تنظیمات آنتی ویروس ClamAV
دستور مختص نمایش تنظیمات آنتی ویروس ClamAV دستور clamconf می باشد. با زدن این دستور تمامی تنظیمات ریز و درشت آنتی ویروس که درون اسناد پیکربندیِ clam.conf و freshclam.confاعمال شدند، نمایش داده می شوند.
clamconf
خروجی این دستور بسیار بلند خواهد بود. چون تمامی اطلاعات راجع به تنظیمات، پایگاه دادۀ ویروس ها، پلتفرم و نسخۀ آنتی ویروس خروجی داده می شوند.
انجام پویش توسط ClamAV
تمامی کارهای بالا را انجام دادیم، تا به این مرحله برسیم که همان دادن دستور به ClamAV برای پویش کردن فضای سرور ماست. برای این منظور می توان از دستور clamscan بهره برد. به عنوان مثال ما الان می خواهیم مسیر home/ از سرور را پویش کنیم.
clamscan --infected --remove --recursive /home /root
دستور بالا مسیر home/ را پویش می کرد. مشخصۀ infected فهرستی از فایل های آلوده را نمایش می داد. مشخصۀ remove پرونده های آلوده را پاک می کرد. و مشخصۀ recursive به صورت برگشتی اقدام به پویش کردن می کرد؛ یعنی تمامیِ زیر پوشه ها هم پویش می شدند.
----------- SCAN SUMMARY ----------- Known viruses: 6427996 Engine version: 0.99.3 Scanned directories: 4 Scanned files: 7 Infected files: 0 Data scanned: 0.02 MB Data read: 0.01 MB (ratio 2.00:1) Time: 7.959 sec (0 m 7 s)
امتحان کردن آنتی ویروس ClamAV
برای اینکه بررسی کنید که ببینید آیا آنتی ویروس به درستی پرونده های مخرب را شناسایی و پاکسازی می کند، می توانید از سند نمونه EICAR استفاده کنید. اول از همه به مسیر root می رویم و این سند را دانلود می کنیم.
cd /root
wget http://www.eicar.org/download/eicar_com.zip
حالا مسیر جاری را پویش می کنیم.
clamscan --infected --remove --recursive
----------- SCAN SUMMARY ----------- Known viruses: 6427996 Engine version: 0.99.3 Scanned directories: 3 Scanned files: 8 Infected files: 1 Data scanned: 0.02 MB Data read: 0.01 MB (ratio 2.00:1) Time: 8.455 sec (0 m 8 s)
نتیجه ای که به ما نشان داده خواهد شد، خبر از وجود و پاکسازی یک سند مخرب می دهد.
دقت کنید که اگر خواسته باشید به صورت خودکار پویش روی سرور شما انجام گیرد، باید به آموزش قسمت قبلی، یعنی ۹۷ مراجعه کنید و طبق مراحلی که در آخرهای مقاله گفته شده، اقدام به ساخت Cron برای اجرای خودکار دستور clamscan کنید.
برای اینکه کل سیستم را پویش کنید، دستور زیر می تواند موثر باشد.
clamscan --infected --recursive --exclude-dir="^/sys" /
این دستور مسیر هایی که در نامشان عنوان sys وجود دارد را مستثنی می شود. به این دلیل که سرعت پویش افزایش پیدا کند. همچنین از پاک کردن اسناد مهم سیستمی هم جلوگیری شود. به شما پیشنهاد می شود این دستور را با مشخصۀ remove هرگز استفاده نکنید که مبادا در همان مرتبۀ اول اگر ی سندی را به اشتباه به عنوان سند مخرب شناسایی کرد، حذفش کند.
خوب، پس ما در این نوشتار که به دلیل کامل و جامع بودن آموزش نصب و کانفیگ ClamAV در CentOS 7 خیلی هم طولانی شد، یاد گرفتیم که چطور سرور لینوکس خود را با استفاده از این آنتی ویروس امن کنیم. البته با استفاده از خط فرمان و محیط دستورات متنی، که به عنوان مدیر سرور باید نحوۀ انجام آن را یاد می داشتیم.
۰ دیدگاه