mailをファイヤーウォール内に転送する

 Linuxサーバにルータの代わりをさせている時、メールまで非武装地帯(DMZ)に置くと、受信メールまでも外部にさらしたままになります。
そこで、受信メールはファイヤーウォール内に入れたいと考えました。

手法は、内部にメールサーバを構築し、受信メールをルータより転送させることにしました。
図式
              ||     +-- client
              ||     |
intnet ---- router --+-- smtp server
______________||
      DMZ     ||  Fier wall

PC名
router = dmz.hogehoge.nu                外側のメールサーバ
smtp server = mail.intra.hogehoge.nu    内側のメールサーバ


Vine Linux2.6r1はPostfixというメールサーバソフト(MAT)が標準でセットされています。今回はPostfix-1.1.12でやってみます。

Postfixの設定
 Postfixは標準でいろいろと設定されており、ほとんど手を加えることなく動作します。しかし、さらにセキュアを高めたい場合はいろいろといじくってください。今回は簡単なセキュアだけにとどめておきます。

1:main.cfの設定 for router
デフォルトから変更した点だけを書き出します。

---- /etc/postfix/mail.cf ----
myhostname = dmz.hogehoge.nu
mydomain = hogehoge.nu
myorigin = $mydomain
mydestination = $mydomain, intra.$mydomain, localhost.$mydomain
(標準で、$mydomainがかかれているのは3行目だけだが、よけいなものが多いので1行目を改良する)
transport_maps = hash:/etc/postfix/transport (これだけは新規で追加)
---- EOF ----


2:transportの設定 for router
transportに記述した内容が今回のミソです。受信者のドメインを確認して、転送するかやめるかを判断させます。

---- /etc/postfix/transport ----
hogehoge.com smtp:mail.intra.hogehoge.nu
.hogehoge.com smtp:mail.intra.hogehoge.nu
---- EOF ----
2行目に書いてあるのは、サブドメインも転送することを意味しています。
サブドメインクライアントからサブドメインクライアントに送るときにはこの指定が必要なときがあります。

記述が終わると、Postfixが使えるようにします。

postmap /etc/postfix/transport

これで、transport.dbに読み込まれてPostfixでつかる形になりました。

起動します
/etc/rc,d/init.d/postfix start


以上で、転送はできますがセキュアという意味では弱いので、少し強化します。
下記のおまじないを main.cfに追加してください。

---- main.cf 追加内容 ----
smtpd_recipient_restrictions = regexp:/etc/postfix/550error.txt, permit_mynetworks, check_relay_domains
notify_classes = resource,software,policy
allow_percent_hack = yes(この行だけデフォルトである。値は No になっているので変更する)
swap_bangpath = yes
---- EOF ----

regxpに指定したファイルを作成
---- 550error.txt ----
/[@!%].*[@!%]/ 550 Please use user@domain address forms only.
---- EOF ----
これで、メールアドレス形式から外れたメールは来なくなります。

spamメール対策
近年、spamメールが横行しています。そういったドメインを集めておいて着信拒否にしたいのですが、なかなか一人では難しいのが現状です。
そこで、そういったデータを持っているところに聞いて、そのデータを使うという方法があります。

---- main.cf に追加 ----
## Vs Spam
maps_rbl_domains = relays.ordb.org
relays.osirusoft.com

smtpd_client_restrictions = permit_mynetworks, reject_maps_rbl, permit
---- EOF ----

ただし、取引先などでこのデータベースに掲載されてしまうと、着信拒否になりますのでご注意ください。
(先に宣言しておけば問題はないです。また、解除も簡単にできますから)


>>>>>>>>>>>>>>>>>>>>>>>>>>>
参考資料
spamデータベース「ORDB」 http://ordb.org/
常時接続で自宅サーバを立ち上げようより http://browncat.org/jitakuserver/postfix.html
有限会社長崎ネットワークサービス http://www.nanet.co.jp/rlytest/index.html
TELNETでSMTPを利用する http://yen.cse.kyutech.ac.jp/~yoshioka/teltp.htm
Postfixのぺーじより transport(5) http://www.kobitosan.net/postfix/jman/transport.5.html
書籍 「実践 postfix メールサーバー構築」
<<<<<<<<<<<<<<<<<<<<<<<<<<<

完了!             2003/04/24記述

Let's PC の Topに戻る
ホームページのTopに戻る