Postfix + Clamav + Amavisd2016/06/29 |
Postfix と Clamav を連携させて 送受信メールをリアルタイムスキャンできるように設定します。
|
|
[1] | |
[2] | Amavisd および Clamav Server をインストールして Clamav Server を起動します。 |
[root@mail ~]#
[root@mail ~]# dnf -y install amavisd-new clamav-server clamav-server-systemd cp /usr/share/doc/clamav-server*/clamd.sysconfig /etc/sysconfig/clamd.amavisd
[root@mail ~]#
vi /etc/sysconfig/clamd.amavisd # 1, 2行目:コメント解除し変更 CLAMD_CONFIGFILE=/etc/clamd.d/ amavisd.conf CLAMD_SOCKET=/var/run/ clamd.amavisd /clamd.sock
[root@mail ~]#
vi /etc/tmpfiles.d/clamd.amavisd.conf # 新規作成 d /var/run/clamd.amavisd 0755 amavis amavis -
[root@mail ~]#
vi /usr/lib/systemd/system/clamd@.service # 最終行に追記 [Install] WantedBy=multi-user.target systemctl start clamd@amavisd [root@mail ~]# systemctl enable clamd@amavisd |
[3] | SELinux を有効にしている場合、Amavisd や Clamscan を起動/動作させるには許可ルールの追加が必要です。 |
[root@mail ~]#
dnf -y install checkpolicy policycoreutils-python-utils
[root@mail ~]#
vi amavisd.te # 以下の内容で新規作成 module amavisd 1.0; require { type antivirus_exec_t; type init_t; type razor_port_t; type antivirus_var_run_t; type amavisd_send_port_t; type antivirus_db_t; class file { append create getattr execute_no_trans ioctl link open read rename setattr unlink write }; class dir { add_name create read remove_name setattr write rmdir }; class tcp_socket name_connect; class sock_file write; class process execmem; } #============= init_t ============== allow init_t antivirus_exec_t:file { execute_no_trans ioctl }; allow init_t amavisd_send_port_t:tcp_socket name_connect; allow init_t antivirus_db_t:dir { add_name create read remove_name setattr write rmdir }; allow init_t antivirus_db_t:file { append create getattr ioctl link open read rename setattr unlink write }; allow init_t antivirus_var_run_t:file { create write }; allow init_t antivirus_var_run_t:sock_file write; allow init_t razor_port_t:tcp_socket name_connect; allow init_t self:process execmem; # 中間ファイル生成 [root@mail ~]# checkmodule -m -M -o amavisd.mod amavisd.te checkmodule: loading policy configuration from amavisd.te checkmodule: policy configuration loaded checkmodule: writing binary representation (version 17) to amavisd.te # 中間ファイルからモジュール生成 [root@mail ~]# semodule_package --outfile amavisd.pp --module amavisd.mod # モジュールインストール [root@mail ~]# semodule -i amavisd.pp |
[4] | Amavisd を設定して起動します。 |
[root@mail ~]#
vi /etc/amavisd/amavisd.conf # 20行目:自ドメイン名に変更 $mydomain = ' srv.world ';
# 152行目:自ホスト名に変更 $myhostname = ' mail.srv.world ';
# 154行目:コメント解除 $notify_method = 'smtp:[127.0.0.1]:10025'; $forward_method = 'smtp:[127.0.0.1]:10025'; systemctl start amavisd spamassassin [root@mail ~]# systemctl enable amavisd spamassassin |
[5] | Postfix の設定です。 |
[root@mail ~]#
vi /etc/postfix/main.cf # 最終行に追記 content_filter=smtp-amavis:[127.0.0.1]:10024
[root@mail ~]#
vi /etc/postfix/master.cf # 最終行に追記 smtp-amavis unix - - n - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes 127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 systemctl restart postfix |
[6] | 以上で設定完了です。 送受信メールには以下のようなヘッダが付加されます。もしウィルスが検知された場合は削除され、クライアントには配送されません。 |
Sponsored Link |