اطلاعیه

بستن
هنوز اعلام نشده است.

آموزش نصب Amavisd، Spamassassin و آنتی ویروس ClamAV

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

  • آموزش نصب Amavisd، Spamassassin و آنتی ویروس ClamAV

    این مجموعه نرم افزاری (Amavisd, Spamassassin and Clamav) برای مقابله با پیغام های spam و ایمیل های حاوی virus میباشد، Amavisd به عنوان یک واسط بین postfix به عنوان MTA (مخفف Mail Transfer Agent)‌ و چک کننده محتوا (spamassassin و clamav) مورد استفاده قرار میگیرد.


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

    آموزش نصب و راه اندازی میل سرور با Postfix و Dovecot

    آموزش فعال کردن TLS و SSL در Postfix و Dovecot

    آموزش نصب Roundcube IMAP Webmail

    آموزش نصب LAMP Stack در Ubuntu 18.04

    آموزش نصب LAMP در Ubuntu 16.10

    آموزش نصب LAMP در CentOS 7.0


    به محض اینکه شما amavisd-new را نصب میکنید پکیج های clamav و spamassassin نیز به صورت اتوماتیک نصب میشوند.
    کد PHP:
    yum install amavisd-new
    yum install clamav-udpate 
    به منظور ارسال/دریافت ایمیل ها با استفاده از یک کلاینت وب، شما میتوانید Roundcube را استفاده کنید. ابتدا، amavisd را کانفیگ میکنیم. فایل کانفیگ آن /etc/amavisd/amavisd.conf میباشد. این فایل را ویرایش کنید و مطمئن باشید که مقادیر درست هستند.
    کد PHP:
    # @bypass_virus_checks_maps = (1);  # controls running of anti-virus code
    # @bypass_spam_checks_maps  = (1);  # controls running of anti-spam code
    # $bypass_decode_parts = 1;         # controls running of decoders&dearchivers
    $daemon_user  'amavis';     # (no default;  customary: vscan or amavis), -u
    $daemon_group 'amavis';     # (no default;  customary: vscan or amavis), -g
    $mydomain 'example.com';   # a convenient default for other settings (change it)
    $MYHOME '/var/spool/amavisd';   # a convenient default for other settings, -H (remove the comment in front)
    @local_domains_maps = ( [".$mydomain","myotherdomain.net"] );  # list of all local domains. If you have multiple domains, add the here.
    $myhostname 'host.example.com';  # must be a fully-qualified domain name! (remove the comment in front) 
    موارد زیادی هستند که شما میتوانید تغییر دهید اما مورد های بالا در حقیقت تنظیمات پایه میباشند. برای اطلاعات بیشتر صفحه رسمی آنرا بررسی کنید. در نهایت مطمئن شوید که amavisd و clamav درباره همدیگر میدانند. به خط 383 بروید و مطمئن شوید که این مورد درست است.

    نکته مهم : clamav میزان زیادی از مموری را مصرف میکند، شما نمیتوانید آنرا روی سروری با میزان رم کمتر از 2 گیگ اجرا کنید. اگر راحت هستید میتوانید آنرا غیرفعال کنید. خط های زیر را از کامنت در نیاورید و تنها خط # @bypass_virus_checks_maps = (1); # controls running of anti-virus code and را از کامنت خارج کنید.
    کد PHP:
    # ### http://www.clamav.net/
    ['ClamAV-clamd',
      \&
    ask_daemon, ["CONTSCAN {}\n""/var/run/clamav/clamd.sock.sock"],
      
    qr/\bOK$/mqr/\bFOUND$/m,
      
    qr/^.*?: (?!Infected Archive)(.*) FOUND$/],
    # # NOTE: run clamd under the same user as amavisd - or run it under its own
    # #   uid such as clamav, add user clamav to the amavis group, and then add
    # #   AllowSupplementaryGroups to clamd.conf;
    # # NOTE: match socket name (LocalSocket) in clamav.conf to the socket name in
    # #   this entry; when running chrooted one may prefer a socket under $MYHOME. 
    اکنون، همه چیز را با هم در postfix کانفیگ کنید. فایل /etc/postfix/master.cf را ویرایش و خط های زیر را به انتهای آن اضافه کنید.
    کد PHP:
    # Amavisd
    amavisfeed unix - - 2 lmtp
            
    -o lmtp_data_done_timeout=1200
            
    -o lmtp_send_xforward_command=yes
    127.0.0.1
    :10025 inet n - - smtpd
            
    -o content_filter=
            -
    o smtpd_delay_reject=no
            
    -o smtpd_client_restrictions=permit_mynetworks,reject
            
    -o smtpd_helo_restrictions=
            -
    o smtpd_sender_restrictions=
            -
    o smtpd_recipient_restrictions=permit_mynetworks,reject
            
    -o smtpd_data_restrictions=reject_unauth_pipelining
            
    -o smtpd_end_of_data_restrictions=
            -
    o smtpd_restriction_classes=
            -
    o mynetworks=127.0.0.0/8
            
    -o smtpd_error_sleep_time=0
            
    -o smtpd_soft_error_limit=1001
            
    -o smtpd_hard_error_limit=1000
            
    -o smtpd_client_connection_count_limit=0
            
    -o smtpd_client_connection_rate_limit=0
            
    -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters,no_address_mappings
            
    -o local_header_rewrite_clients=
            -
    o smtpd_milters=
            -
    o local_recipient_maps=
            -
    o relay_recipient_maps
    فایل /usr/local/etc/postfix/main.cf را ویرایش و این خط ها را به انتهای آن اضافه کنید.
    کد PHP:
    # Amavisd
    content_filter amavisfeed:[127.0.0.1]:10024 
    قبل از اینکه سه سرویس را start کنیم یکسری تغییرات اعمال میکنیم. ابتدا فایل /etc/freshclam.conf را ویرایش و خط Example را حذف یا کامنت میکنیم.
    کد PHP:
    # Comment or remove the line below.
    Example 
    سپس فایل /etc/sysconfig/freshclam را ویرایش و چهار خط آخر آنرا حذف یا کامنت میکنیم.
    کد PHP:
    ### !!!!! REMOVE ME !!!!!!
    ### REMOVE ME: By default, the freshclam update is disabled to avoid
    ### REMOVE ME: network access without prior activation
    FRESHCLAM_DELAY=disabled-warn   # REMOVE ME 
    به محض اینکه موارد بالا را انجام دادید آنتی ویروس clamav را با اجرا کردن دستور زیر update کنید.
    کد PHP:
    freshclam 
    سپس امضاء های spamassassin را آپدیت کنید.
    کد PHP:
    sa-update -
    آپشن -D برای اجرا کردن در مد Debug است بنابراین شما میتوانید ببینید که چه اتفاقی در حال رخ دادن است. اگر آپدیتی موجود باشد spamassassin کد 0 را برمیگرداند در غیر اینصورت exit code برابر با 1 است. در صورتی که آپدیتی موجود باشد شما باید سرویس spamassassin را restart کنید.

    پوشه cron را بررسی کنید و مطمئن شوید که فایل های calamav-update و sa-update را ببینید.
    کد PHP:
    cd /etc/cron.d
    ls 
    -l clamav-update sa-update 
    اکنون میتوانیم همه سرویس ها را start کنیم.
    کد PHP:
    systemctl start amavisd
    systemctl enable amavisd
    systemctl start spamassassin
    systemctl enable spamassassin 
    به محض اینکه شما amavisd را start کنید سرویس clamd نیز start میشود. در نهایت سرویس postfix را restart کنید.
    کد PHP:
    systemctl restart postfix 
    ارتباط بین amavisd و postfix را با اجرای مراحل زیر بررسی کنید.
    کد PHP:
    telnet localhost 10024 
    عبارت ehlo localhost را تایپ کنید و خروجی را بررسی کنید. باید شبیه به زیر باشد.
    کد PHP:
    250-[127.0.0.1]
    250-VRFY
    250
    -PIPELINING
    250
    -SIZE
    250
    -ENHANCEDSTATUSCODES
    250
    -8BITMIME
    250
    -DSN
    250 XFORWARD NAME ADDR PORT PROTO HELO IDENT SOURCE 
    سپس دستور زیر را اجرا کنید.
    کد PHP:
    telnet localhost 10025 
    مجدد عبارت ehlo localhost را تایپ کنید و خروجی را بررسی کنید. باید شبیه به زیر باشد.
    کد PHP:
    250-www.testcloudserver.org
    250
    -PIPELINING
    250
    -SIZE 10240000
    250
    -VRFY
    250
    -ETRN
    250
    -STARTTLS
    250
    -ENHANCEDSTATUSCODES
    250
    -8BITMIME
    250 DSN 
    و در نهایت یکسری تست های واقعی را میگیریم، ابتدا فایل log mail را بررسی کنید.
    کد PHP:
    tail -/var/log/maillog 
    سپس از اکانت ایمیل دیگری یک فایل text (که HTML نباشد) با متن زیر در body ارسال کنید.
    کد PHP:
    X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H
    شما باید چیزی شبیه به زیر در لاگ ها ببینید.
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: clamav-postfix-dovecot-1.PNG مشاهده: 1 حجم: 292.2 کیلو بایت



    فایل log را باز بگذارید و ایمیل تست دیگری ارسال کنید اما اینبار در body آن پیغام زیر را قرار دهید.
    کد PHP:
    XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X 
    شما باید چیزی شبیه به زیر در لاگ ها مشاهده کنید.
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: clamav-postfix-dovecot.PNG مشاهده: 1 حجم: 333.6 کیلو بایت





    Stress Test

    از سرور دیگری که postfix روی آن نصب است دستور زیر را اجرا کنید.
    کد PHP:
    time /usr/sbin/smtp-source -s 40 -l 10120 -m 5000 --f user@whatsup.com -t joe@domain-one.com mail.domain-one.com:25 
    روی سرور خود :
    کد PHP:
    tail -/var/log/maillog 
    مشاهده کنید که چگونه فایل log با انبوه message ها بمباران میشود. شما میتوانید همچنین صف ها را به صورت real time با دستور زیر مشاهده کنید.
    کد PHP:
    postqueue -
    بعد از گذشت 5 الی 10 دقیقه که از نتایج راضی بودید میتوانید صف postfix را با دستور زیر خالی کنید.
    کد PHP:
    postsuper -d ALL 
    ویرایش توسط Habili : http://linux-zone.org/forums/member/5-habili در ساعت 08-08-2018, 12:15 PM
پردازش ...
X
کانال تلگرام منطقه لینوکسی ها