Linuxで Postfix Dovecot clamd clamsmtpを使い SMTPs+IMAP4s,POP3sの対応する方法

サーバを確認するコンソール画面です

メールサーバの役割として送信メールサーバ、受信メールサーバがあります。
送受信するメールの中身にウイルスが含まれていた場合はclamdにて
ウイルス判定するため、clamsmtpを使用します。(定義ファイルに無いウイルスは判定できませんが対策は実施します。)
送信メールサーバはPostfixを使用します。
受信メールサーバはDovecotを使用します。

送信メールサーバの仕様
メールサーバ宛の通信はTCP 25
クライアントソフトからの通信はsubmissionport TCP 587,submissionport STARTTLS TCP 587,SSL/TLS TCP 465

受信メールサーバの仕様
クライアントソフトからの通信はPOP3 TCP 110,POP3s TCP 995,IMAP4 TCP 143,IMAP4s TCP 993

メール送受信のユーザ認証のユーザ名、パスワードはログインIDと同じものを使用する。

Postfix,SMTP-Authの設定

/etc/postfix/main.cfを編集します。

myhostname = [ホスト名]
mydomain = [ドメイン名]
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8, [::1]
alias_maps = hash:/etc/aliases
home_mailbox = Maildir/
smtpd_helo_restrictions =
        reject_invalid_hostname
        reject_non_fqdn_hostname
smtpd_sender_restrictions =
        reject_unknown_sender_domain
        reject_non_fqdn_sender
        check_sender_mx_access hash:$config_directory/reject_mx
smtpd_recipient_restrictions =
        permit_mynetworks
        permit_sasl_authenticated
        reject_unknown_recipient_domain
        reject_unauth_destination
        check_client_access regexp:$config_directory/white-list.txt
        check_client_access regexp:$config_directory/permit_client_nots25r
        reject_unknown_client
        permit
allow_mail_to_commands = alias,forward,include
smtpd_recipient_limit = 12000
unknown_address_reject_code = 550
strict_rfc821_envelopes = yes
smtpd_helo_required = yes
smtpd_error_sleep_time = 25s
message_size_limit = 20480000
smtpd_sasl_local_domain = [ドメイン名]
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_tls_CAfile = /etc/letsencrypt/live/[証明書取得したドメイン名]/chain.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/[証明書取得したドメイン名]/cert.pem
smtpd_tls_key_file = /etc/letsencrypt/live/[証明書取得したドメイン名]/privkey.pem
smtpd_use_tls = yes
delay_warning_time = 6h
bounce_template_file = $config_directory/bounce.cf
smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3
disable_vrfy_command = yes
smtpd_client_message_rate_limit = 10
content_filter = scan:127.0.0.1:10025
receive_override_options = no_address_mappings
mailbox_size_limit = 102400000
virtual_mailbox_limit = 102400000

/etc/postfix/master.cfの編集

submission inet n      –       n       –       –       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=may
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_helo_restrictions=
smtps     inet  n       –       n       –       –       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_helo_restrictions=
maildrop  unix  –       n       n       –       –       pipe
  flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
old-cyrus unix  –       n       n       –       –       pipe
  flags=R user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -m ${extension} ${user}
cyrus     unix  –       n       n       –       –       pipe
  user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user}
uucp      unix  –       n       n       –       –       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender – $nexthop!rmail ($recipient)
ifmail    unix  –       n       n       –       –       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  –       n       n       –       –       pipe
  flags=Fq. user=bsmtp argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
# AV scan filter (used by content_filter)
scan unix – – n – 16 smtp
  -o smtp_send_xforward_command=yes
# For injecting mail back into postfix from the filter
127.0.0.1:10026 inet n – n – 16 smtpd
  -o content_filter=
  -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
  -o smtpd_helo_restrictions=
  -o smtpd_client_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_recipient_restrictions=permit_mynetworks,reject
  -o mynetworks_style=host
  -o smtpd_authorized_xforward_hosts=127.0.0.0/8

etc/postfix/master.cfを編集します。

submission inet n      –       n       –       –       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=may
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_helo_restrictions=
smtps     inet  n       –       n       –       –       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_helo_restrictions=
maildrop  unix  –       n       n       –       –       pipe
  flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
old-cyrus unix  –       n       n       –       –       pipe
  flags=R user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -m ${extension} ${user}
cyrus     unix  –       n       n       –       –       pipe
  user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user}
uucp      unix  –       n       n       –       –       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender – $nexthop!rmail ($recipient)
ifmail    unix  –       n       n       –       –       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  –       n       n       –       –       pipe
  flags=Fq. user=bsmtp argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
# AV scan filter (used by content_filter)
scan unix – – n – 16 smtp
  -o smtp_send_xforward_command=yes
# For injecting mail back into postfix from the filter
127.0.0.1:10026 inet n – n – 16 smtpd
  -o content_filter=
  -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
  -o smtpd_helo_restrictions=
  -o smtpd_client_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_recipient_restrictions=permit_mynetworks,reject
  -o mynetworks_style=host
  -o smtpd_authorized_xforward_hosts=127.0.0.0/8

Dovecotの設定

/etc/dovecot/conf.d/10-auth.confを編集します。

disable_plaintext_auth = yes
auth_mechanisms = plain login

/etc/dovecot/conf.d/10-mail.confを編集します。

mail_location = maildir:~/Maildir

/etc/dovecot/conf.d/10-master.confを編集します。

  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }

/etc/dovecot/conf.d/10-ssl.confを編集します。

ssl = yes
ssl_cert = </etc/letsencrypt/live/[証明書取得したドメイン名]/cert.pem
ssl_key = </etc/letsencrypt/live/[証明書取得したドメイン名]/privkey.pem

clamdの設定の編集

/etc/clamd.confを編集します。

LocalSocket /var/run/clamd.clamsmtp/clamd.sock
User clam

clamsmtpの設定の編集

/etc/clamsmtpd.confを編集します。

Listen: 0.0.0.0:10025
Header: X-Virus-Scanned: ClamAV using ClamSMTP
Action: drop

設定が完了したら、サービスの再起動を実施することでSMTPs+IMAP4s,POP3sに対応できます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA