#author("2019-10-28T08:58:19+09:00","","")
[[CentOS7]]

*メールサーバーでスパムメール送信元接続拒否(Postfix+milter-manager+milter-greylist) [#efe1e477]
''[[taRgrey(S25R+tarpitting+greylisting)>http://k2net.hakuba.jp/targrey/]]''という手法※を用いてメールサーバー側でスパムメール送信元からの接続を拒否してスパムメールを受信しないようにする。

ここでは、''[[milter-greylist>http://hcpnet.free.fr/milter-greylist/]]''を使用してスパムメール送信元からの接続を拒否する。[[メールサーバー(Postfix)>Postfix+Dovecotインストール]]と''milter-greylist''との連携は''[[milter-manager>https://milter-manager.osdn.jp/index.html.ja]]''を利用して行なう。

なお、本手法をすり抜けたスパムメールは他の手法で除去する。

&color(red){※''taRgrey''とは

スパムメール送信元の特徴(・動的IPアドレスであることが多い、・大量のサーバーへメールを送るため応答が遅い、または拒否するサーバーへの送信はあきらめる)を逆手にとり、接続元IPアドレスが動的IPアドレスの可能性がある場合(''S25R'')、わざと応答を一定時間遅延させ、接続を切断せずに待ち続けた場合のみメールを受信する(''tarpitting'')。接続を切断して再度接続してきた場合でも一旦接続を拒否し、再送要求を行い、再送してきた場合のみ受信する(''greylisting'')。

なお、通常のメールサーバーは応答が遅延しても待ち続け、接続が拒否されても再送要求が行われた場合は再度送信を試みるため、本手法による影響は受けない。''tarpitting''と''greylisting''を行う対象も''S25R''で動的IPアドレスの可能性がある場合のみのため、通常のメールサーバーからのメール受信が遅延することもない。

※[[メールサーバー>Postfix+Dovecotインストール]]を導入済であること};



*milter-greylistインストール [#daa451f4]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# yum -y install milter-greylist &color(lime){← ''milter-greylist''インストール};|



*milter-greylist設定 [#g9a8d9d2]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/mail/greylist.conf &color(lime){← ''milter-greylist''設定ファイル編集};|
|socket "/run/milter-greylist/milter-greylist.sock" 660 &color(lime){← グループにソケットへの書き込み権限付加}; &br;  &br; # Your own network, which should not suffer greylisting &br; #list "my network" addr { 127.0.0.1/8 10.0.0.0/8 192.0.2.0/24 } &color(lime){← 行頭に#を追加してコメントアウト}; &br; &color(lime){--追加(ここから)--}; &br; &color(lime){# 内部ネットワークアドレス}; &br; list "my network" addr { \ &br;         127.0.0.1/8      \ &br;         10.0.0.0/8       \ &br;         172.16.0.0/12    \ &br;         192.168.0.0/24   \ &br; } &br; &color(lime){--追加(ここまで)--}; &br;  &br; #racl greylist list "grey users" delay 30m autowhite 3d &color(lime){← 行頭に#を追加してコメントアウト}; &br; #racl whitelist default &color(lime){← 行頭に#を追加してコメントアウト}; &br; racl whitelist tarpit 125s &color(lime){← 追加(応答を125秒遅延させて接続が継続している場合は受信)}; &br; racl greylist default &color(lime){← 追加(125秒の遅延応答を待たずに切断後再接続してきた場合は一旦、受信拒否して再送要求)};|



*milter-greylist起動 [#q909c107]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# systemctl start milter-greylist &color(lime){← milter-greylist起動};|
|[root@localhost ~]# systemctl enable milter-greylist &color(lime){← milter-greylist自動起動設定};|



*Postfix設定 [#v8d2c923]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/postfix/main.cf &color(lime){← Postfix設定ファイル編集};|
|milter_command_timeout = 150 &color(lime){← 追加(milterアプリケーションの応答を150秒待つ)};|
|[root@localhost ~]# systemctl reload postfix &color(lime){← Postfix設定反映};|



*milter-managerインストール ※既に導入済の場合は不要 [#e9d8c428]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# curl -s https://packagecloud.io/install/repositories/milter-manager/repos/script.rpm.sh | bash &color(lime){← milter-manager_reposリポジトリ追加};|
|[root@localhost ~]# yum -y install milter-manager &color(lime){← milter-managerインストール};|



*milter-manager起動 ※既に導入済の場合は不要 [#o176d12d]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# systemctl start milter-manager &color(lime){← milter-manager起動};|
|[root@localhost ~]# systemctl enable milter-manager &color(lime){← milter-manager自動起動設定};|



*Postfix・milter-manager連携設定 ※既に導入済の場合は不要 [#l447148b]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/postfix/main.cf &color(lime){← ''Postfix''設定ファイル編集};|
|&color(lime){下記を追加}; &br; milter_protocol = 6 &br; milter_default_action = tempfail &br; milter_mail_macros = {auth_author} {auth_type} {auth_authen} &br; smtpd_milters = unix:/var/run/milter-manager/milter-manager.sock|
|[root@localhost ~]# usermod -G milter-manager -a postfix &color(lime){← ''milter-manager''グループに''postfix''ユーザーを追加};|
|[root@localhost ~]# systemctl reload postfix &color(lime){← ''Postfix''設定反映};|



**milter-manager・milter-greylist連携設定 [#jaabd12a]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# usermod -G grmilter -a milter-manager &color(lime){← grmilterグループにmilter-managerユーザーを追加};|
|[root@localhost ~]# usermod -G mail -a milter-manager &color(lime){← mailグループにmilter-managerユーザーを追加};|
|[root@localhost ~]# systemctl restart milter-manager &color(lime){← milter-manager再起動};|
|[root@localhost ~]# milter-manager --show-config | less &color(lime){← milter-manager設定確認};|
|・ &br; ・ &br; ・ &br; define_milter("milter-greylist") do |milter| &color(lime){← ''milter-manager・milter-greylist''連携設定}; &br;   # /usr/lib64/milter-manager/binding/lib/milter/manager/detector.rb:44 &br;   milter.connection_spec = "unix:/run/milter-greylist/milter-greylist.sock" &br;   # /usr/lib64/milter-manager/binding/lib/milter/manager/detector.rb:38 &br;   milter.description = "Grey listing filter for sendmail" &br;   # /usr/lib64/milter-manager/binding/lib/milter/manager/detector.rb:37 &br;   milter.enabled = true &br;   # default &br;   milter.fallback_status = "accept" &br;   # default &br;   milter.evaluation_mode = false &br;   milter.applicable_conditions = [ &br;     # default &br;     "Sendmail Compatible", &br;     # default &br;     "Stress Notify", &br;     # default &br;     "Trust", &br;     # default &br;     "Remote Network", &br;     # default &br;     "S25R", &color(lime){← ''milter-greylist''適用条件に''S25R''が設定されている※}; &br;     # default &br;     "Unauthenticated", &br;   ]|



&color(red){※''S25R''は''milter-greylist''側に設定するのではなく、''milter-manager''から初期提供されている''milter''の組み込み適用条件の''S25R''(''/etc/milter-manager/applicable-conditions/s25r.conf'')を利用する=''milter-manager''側にて''S25R''を実施して該当する場合(接続元IPアドレスが動的IPアドレスの可能性がある場合)のみ、''milter-greylist''に制御を渡す。''milter-greylist''側では''tarpitting''(遅延応答)と''greylisting''(再送要求)を行う。};


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS