Movatterモバイル変換


[0]ホーム

URL:


BLOGTIMES

cles::blog

平常心是道
« :: »
2017/01/21

milter-manager を使って特定の IP からの接続時に milters を適用しないようにする

  ruby  postfix  milter 
このエントリーをはてなブックマークに追加

Postfix + milter-manager 環境にメールサーバーを移行したのですが、特定の IP のサーバをホワイトリストに入れて milter を適用しないようにしたかったのでいろいろ調べてみたら「how to bypass milters, whitelist hosts」という掲示板のスレッドを見つけたので、これを参考にちょっと Ruby でコーディングしてみました。

netaddr をインストール

ホワイトリストは単一の IP ではなく CIDR を使った指定がしたかったので、IP アドレスのレンジを自動的に計算してくれるnetaddr を使うことにしました。モジュールは以下のように gem を使って一撃で導入することができます。

gem install netaddr

設定は milter-manager.local.conf で

まず、ホワイトリストを用意します。CIDR で1行に1つずつ記述しておいてください。
ファイルの場所は以下の Ruby 内のホワイトリストのパスと合せてください。

/etc/milter-manager/whitelist

192.168.1.0/24192.168.100.10010.0.0.0/8

あとは以下の内容を milter-manager.local.conf に追加(ファイルがない場合は作成してください)して、milter-manager を restart すれば OK。
ホワイトリストの IP からアクセスすると[stop] というログが残るのが確認できると思います。

/etc/milter-manager/milter-manager.local.conf

# IP-based Whitelist# Based on http://postfix.1071664.n5.nabble.com/how-to-bypass-milters-whitelist-hosts-td35207.htmlrequire 'netaddr'whitelist = NetAddr::Tree.new()File.read("/etc/milter-manager/whitelist").each_line do |line| next if /^#/ =~ line whitelist.add!(line.strip)end# Check host ip with whitelist.define_applicable_condition("Whitelist") do |condition| condition.description = "Whitelist" condition.define_connect_stopper do |context, host, address| return false unless address.to_ip_address whitelist.longest_match(address.address).to_i != 0 endend# Apply whitelist to all defined milters.defined_milters.each do |name| define_milter(name) do |milter| milter.add_applicable_condition("Whitelist") endend

意外と milter-manager の拡張は簡単にできることが分かったのでいろいろと工夫のし甲斐がありそうです。


    byhsur at 22:01[5年前][4年前][3年前][2年前][1年前][1年後][2年後][3年後][4年後][5年後] |
    こんな記事もあります 「milter Postfix whitelist
    2024 年の人気エントリ Top 100
    2023 年の人気エントリ Top 100
    firewalld を使って Docer で公開したポートをアクセス制限
    firewalld + ipset で IP ブラックリスト(+ホワイトリストも)設定(改)
    Successful Mail Delivery Report というメール
    CentOS 8 へのブルートフォースアタックを SSHGuard で防御
    grep でマッチした部分だけを取り出す
    メールサーバを Office 365 の IP ブロックリストから削除してもらう
    Linuxでも「ブラックリスト」「スレーブ」などの用語を変更へ
    CentOS 7 の Postfix に DKIM を導入する
    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/9093
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL:Yahoo! JAPAN IDでログイン

    « :: »
    Copyright © 2004-2023 by CLES All Rights Reserved.
    サイト内検索
    検索ワードランキング
    へぇが多いエントリ
    閲覧数が多いエントリ
    1 .アーロンチェアのポスチャーフィットを修理(99673)
    2 .年次の人間ドックへ(99086)
    3 .福岡銀がデマの投稿者への刑事告訴を検討中(99076)
    4 .三菱鉛筆がラミーを買収(98686)
    5 .2023 年分の確定申告完了!(1つめ)(98655)
    最新のエントリ
    cles::blogについて
    誰が書いてる?
    最近行った場所
    サイトポリシー
    タグ一覧
    検索ワードランキング

    Referrers

      Powered by CLES
      Nucleus CMS v3.31SP3/w memcached
      21375328(W:5953 Y:1545 T:1147)
      cles::blogのはてなブックマーク数
      benchmark


      [8]ページ先頭

      ©2009-2025 Movatter.jp