اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

نحوه افزودن Antivirus و Spam Protection به میل سرور Postfix با استفاده از ClamAV و SpamAssassin

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    نحوه افزودن Antivirus و Spam Protection به میل سرور Postfix با استفاده از ClamAV و SpamAssassin

    از آنجایی که نصب و راه اندازی هیچ ایمیل سروری بدون اعمال تنظیمات در مقابل virus و spam ها کامل نخواهد بود ما قصد داریم که در این پست درباره نصب و راه اندازی SpamAssassin و آنتی ویروس ClamAV صحبت کنیم. در دو پست قبل از سری پست های Postfix شما نحوه نصب و راه اندازی و مدیریت دیتابیس میل سرور از طریق phpmyadmin و همچنین نحوه کانفیگ postfix و dovecot برای کنترل میل ورودی و خروجی را آموختید، علاوه بر این نحوه تنظیم یک میل کلاینت همچون Thunderbird برای virtual account هایی که قبلا ایجاد کردیم را شرح دادیم.


    همچنین توصیه میشود مطالعه کنید.

    Part 1 : نصب و راه اندازی میل سرور Postfix و Dovecot به همراه دیتابیس MariaDB

    Part 2 : آموزش تنظیمات Postfix و Dovecot به همراه Virtual Domain Users در Linux

    Part 3 : نحوه افزودن Antivirus و Spam Protection به میل سرور Postfix با استفاده از ClamAV و SpamAssassin

    Part 4 : نحوه نصب و راه اندازی RoundCube (کلاینت وب میل) با Virtual Users در Postfix



    لطفا در خاطر داشته باشید که حتی اگر چه سیستم عامل های لینوکسی عموما عاری از ویروس (بدون ویروس) بررسی شده اند احتمال اینکه کلاینت هایی که با سیستم عامل های دیگری به میل سرور شما متصل میشوند هم وجود دارد.

    به همین خاطر شما باید تمهیداتی را به منظور محافظت سرورتان از این چنین تهدیدات ممکنی بیاندیشید.



    تنظیمات SpamAssassin برای Postfix

    در عملیات دریافت ایمیل ابزار spamassassin بین دنیای بیرون و سرویس های ایمیل در حال کار روی سرور شما قرار خواهد گرفت اگر این ابزار مطابق با رول ها و تنظیمات تعریف شده خودش بفهمد که یک پیام ورودی در حقیقت یک spam است خط subject را به گونه ای که کاملا مشخص باشد تغییر خواهد داد. و اما چگونه ...

    در صورت نصب نبودن برنامه از طریق دستور زیر آنرا نصب می کنیم:

    کد:
    yum install spamassassin
    فایل کانفیگ اصلی فایل /etc/mail/spamassassin/local.cf میباشد و ما باید مطمئن شویم که آپشن های زیر موجود باشند. (اگر وجود نداشتند آنها را اضافه کنید و یا در صورت نیاز اگر کامنت بودند از کامنت در بیاورید) :
    کد:
    report_safe 0
    required_score 8.0
    rewrite_header Subject [SPAM]
    • زمانی که report_safe برابر با 0 تنظیم شده (مقدار توصیه شده) اسپم ورودی تنها با تغییر هدر های ایمیل و با توجه به rewrite_header تغییر خواهد کرد اگر مقدار آن برابر با 1 باشد پیام کلا حذف خواهد شد.
    • برای تعریف میزان حساسیت spam filter (فیلتر اسپم) از اپشن required_score استفاده میشود که به همراه آن از یک عدد integer یا decimal میآید. هرچه این عدد کوچکتر باشد حساسیت فیلتر بالاتر میرود تعریف یک مقدار مابین 8.0 و 10.0 برای یکی سیستم بزرگ که تعداد زیادی اکانت ایمیل (حدود 100 اکانت) دارد توصیه میشود.


    بعد از ذخیره این تغییرات سرویس spam filter را فعال و استارت میکنیم و سپس رول های اسپم را آپدیت مینماییم :
    کد:
    # systemctl enable spamassassin
    # systemctl start spamassassin
    # sa-update
    برای آپشن های تنظیماتی بیشتر شما باید به داکیومنت های آن و با اجرای دستور perldoc Mail::SpamAssassin::Conf رجوع کنید.




    برقراری ارتباط Postfix و SpamAssassin

    به منظور برقراری ارتباط موثر postfix و spamassassin ما نیاز داریم تا یک یوزر و گروه اختصاصی برای اجرای سرویس spam filter ایجاد کنیم :
    کد:
    # useradd spamd -s /bin/false -d /var/log/spamassassin
    سپس خط زیر را در پایان فایل /etc/postfix/master.cf اضافه کنید :
    کد:
    spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
    و مشخص کردن (در بالای فایل) اینکه spam assassin به عنوان content_filter عمل خواهد کرد :
    کد:
    -o content_filter=spamassassin
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Integrate-Postfix-with-SpamAssassin.png مشاهده: 1 حجم: 8.3 کیلو بایت




    نهایتا برای اعمال تغییرات postfix را ریستارت کنید :
    کد:
    # systemctl restart postfix

    برای بررسی اینکه آیا spam assassin به درستی کار میکند و اسپم های ورودی را تشخیص میدهد تستی با عنوان GTUBE یا
    Generic Test for Unsolicited Bulk Email موجود است.

    برای اجرای این تست یک ایمیل از دامین خارج از شبکه خود (مانند Yahoo , Hotmail و یا Gamil) به یک اکانت موجود در ایمیل سرورتان ارسال کنید. subject را هر چی که میخواهید تعریف کنید و در متن ایمیل از پیغام زیر استفاده کنید :
    کد:
    XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
    برای مثال من پیغام بالا را از جیمیل خودم به یکی از اکانت های میل سرور ارسال کردم :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Verify-SpamAssassin-Detecting-Spam-Mails.png مشاهده: 1 حجم: 9.9 کیلو بایت





    و لاگ های مربوطه هشدار spam را به من نمایش میدهند :
    کد:
    # journalctl | grep spam
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Monitor-SpamAssassin-Mail-Logs.png مشاهده: 1 حجم: 9.8 کیلو بایت




    همانطور که در تصویر بالا میبینید این پیغام یک spam score برابر با 1002.3 دارد. علاوه بر این شما میتوانید spam assassin را مستقیما از طریق command line تست کنید :
    کد:
    # spamassassin -D < /usr/share/doc/spamassassin-3.4.0/sample-spam.txt
    دستور بالا یکسری خروجی نمایش خواهد داد که شامل موارد زیر خواهد بود :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Check-SpamAssassin-Spam-Mail.png مشاهده: 1 حجم: 10.0 کیلو بایت




    اگر این تست ها موفقیت آمیز نباشند شما میتوانید به راهنمای spamassassin integrations رجوع کنید.




    استارت کردن ClamAV و آپدیت کردن تعاریف Virus

    در ابتدا ما نیاز خواهیم داشت که فایل /etc/clamd.d/scan.conf ویرایش کنیم و خط زیر را از کامنت در بیآوریم :
    کد:
    LocalSocket /var/run/clamd.scan/clamd.sock
    و خط زیر را کامنت کنیم یا حذف نماییم :
    کد:
    Example
    سپس سرویس clamav scanner را فعال و استارت میکنیم :
    کد:
    # systemctl enable clamd@scan.service
    # systemctl start clamd@scan.service
    و فراموش نکنید که antivirus_can_scan_system SELinux boolean را برابر با مقدار 1 تعریف کنید :
    کد:
    # setsebool -P antivirus_can_scan_system 1
    در این لحظه زمان بررسی وضعیت سرویس ها میباشد :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Start-and-Update-ClamAV-Virus-Definitions.png مشاهده: 1 حجم: 14.7 کیلو بایت




    همانطور که در تصویر بالا میبینید signature های ویروس بزرگتر از 7 روز هستند برای آپدیت کردن آنها ما از ابزاری به نام freshclam استفاده میکنیم که به عنوان بخشی از پکیج clamav-update نصب شده است.

    آسانترین راه برای آپدیت تعاریف ویروس از طریق یک cron job میباشد که در زمان های دلخواه اجرا خواهد شد (برای مثال یک بار در روز در ساعت 13:00 که از طریق نمونه زیر انجام خواهد شد) :
    کد:
    00 01 * * * root /usr/share/clamav/freshclam-sleep
    شما همچنین میتوانید تعاریف ویروس را به صورت دستی آپدیت کنید اما قبل از آن باید خط زیر را در فایل /etc/freshclam.conf حذف یا کامنت کنید :
    کد:
    Example
    اکنون باید بتوانید دستور زیر را اجرا کنید :
    کد:
    # freshclam
    که تعاریف ویروس را به دلخواه شما آپدیت خواهد کرد :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: FreshClam-Update-ClamAV-Virus-Database.png مشاهده: 1 حجم: 15.7 کیلو بایت






    تست کردن ClamAV برای Virus در Email ها

    برای بررسی این که آیا ClamAV به درستی کار میکند بیاید یک virus تستی به دایرکتوری Maildir اکانت tecmint@linuxnewz.com (که در مسیر /home/vmail/linuxnewz.com/tecmint/Maildir قرار گرفته) برای شبیه سازی این که مثلا 1 فایل virus به عنوان یک mail attachment دریافت شده را دانلود کنید (که میتوانید از این لینک دریافت کنید http://www.eicar.org/download/eicar.com) :
    کد:
    # cd /home/vmail/linuxnewz.com/tecmint/Maildir
    # wget http://www.eicar.org/download/eicar.com
    و سپس با استفاده از دستور زیر دایرکتوری /home/vmail/linuxnewz.com را scan کنید :
    کد:
    # clamscan --infected --remove --recursive /home/vmail/linuxnewz.com
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: ClamAV-Scan-For-Email-Virus.png مشاهده: 1 حجم: 11.0 کیلو بایت




    سپس این scan را از طریق یک cronjob اجرا کنید. یک فایلی با نام /etc/cron.daily/dailyclamscan ایجاد کنید و خط های زیر را در آن قرار دهید :
    کد:
    #!/bin/bash
    SCAN_DIR="/home/vmail/linuxnewz.com"
    LOG_FILE="/var/log/clamav/dailyclamscan.log"
    touch $LOG_FILE
    /usr/bin/clamscan --infected --remove --recursive $SCAN_DIR >> $LOG_FILE
    سپس به آن پرمیژن اجرایی بدهید :
    کد:
    # chmod +x /etc/cron.daily/dailyclamscan
    فایل cronjob بالا دایرکتوری میل سرور را به صورت کامل با تمام زیر شاخه هایش (recursively) اسکن خواهد کرد و یک لاگ برای عملیات خود در فایل /var/log/clamav/dailyclamscan.log به جای میگذارد (مطمئن شوید که دایرکتوری
    /var/log/clamav وجود داشته باشد).

    اکنون ببینیم هنگامی که فایل eicar.com را از اکانت tecmint@linuxnewz.com به linuxsay@linuxnewz.com ارسال کنیم چه اتفاقی خواهد افتاد :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Test-and-Find-Virus-in-Emails.png مشاهده: 1 حجم: 20.6 کیلو بایت





    خلاصه :
    اگر شما مراحل دیگر این سری پست ها را دنبال کرده باشید اکنون یک میل سرور postfix به همراه anti virus و spam protection دارید.

    توجه داشته باشید که مباحث امنیتی سرور یک موضوع گسترده است و نمیتوان آن را در پست های کوچکی همچون این پست گنجاند.

    به همین دلیل به شما اکیدا پیشنهاد میکنم که با ابزارهای مورد استفاده در این سری پست ها با استفاده از صفحه man آنها بیشتر آشنا شوید. اگر چه تمام تلاشم را کردم تا مفاهیم اصلی مرتبط با موضوع را پوشش دهم فرض نکنید که بعد از تنها پیشرفتن از طریق این پست ها شما به صورت کامل قادر به تنظیم و نگهداری یک ایمیل سرور در یک محیط عملی خواهید بود.

    این سری پست ها تنها با عنوان نقطه آغاز اشاره میکند و راهنمای کاملی برای مدیریت میل سرور در لینوکس نمیباشد. اگر شما مطالب مرتبطی در این زمینه دارید که میتواند که این سری پست های مربوط به میل سرور را تکمیل کند میتوانید با ما به اشتراک بگذارید.

    همچنان با ما باشید ....


    موفق باشید
    محمد هابیلی
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 11-01-2021, 12:52 AM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X