|
||
|
直接インターネットへ配信するメールサーバ他のパターンはPostfixでメールサーバを構築する(解説)も参照してください。最近の大手ISPではほとんど規制されているタイプです。 最上位のメールサーバや、大容量のビジネス回線を保持している企業ではこのタイプです。 地域の二種事業者など、ビジネス回線を提供していないISPでも許可されているところがあるかもしれません。 検証で使う場合は十分な注意が必要です。 条件 メールサーバ自身がMXレコードを解決して、グローバルメールサーバへ配送します。 最近のISPでは規制されているタイプで、最上位のメールサーバが行う仕事です。 十分な設定と調整を加えないままインターネットに晒すのは危険です。 ・Postfixをインストールする ・Postfixを設定する ・Telnetでメールの転送を確かめる Postfixをインストールするpostfixがインストールされているか確かめ、見つからなければPostfixをインストールします。#rpm -q postfix (Postfixとバージョン番号が表示されるか?) 表示されなければ #yum install postfix としてインストールします。リポジトリへ接続できることが条件です。 インストールしても、Postfixは起動しません。一見起動したように見えますが、statusを見ると起動してません。 これはデフォルトでSendmailが起動しているので、すでに25番ポートが使用されているからです。 sendmailを止めてPostfixを起動させます。 #service sendmail stop (Sendmailを止めます) #chkconfig sendmain off (自動起動を止めます) #service postfix start (Postfixを起動させます) #chkconfig postfix on (自動起動を有効にします) #service postfix status (動作を確認します) 「telnet localhost 25」などとして25番ポートのPostfixへアクセスできるか確認します。 ファイアウォールも確認しておきましょう。 Postfixを設定する次にPostfixの設定ファイルを編集します。/etc/postfix/main.cfを次のように編集します。 設定するのはとりあえず2つだけで動作します。 inet_interface どのIPアドレスへサービスをバインドするかです。 デフォルトはlocalhostへバインドされていますので、メールサーバ自身しかPostfixへアクセスできません。 とりあえず全てのIPアドレスへサービスを提供しましょう。 inet_interface = all mynetworks これはメールを外部へ中継することを許す送信元を指定します。なにも指定されていなければ、サーバと同一セグメント内からは全許可です。誰のメールでも中継するようになります。気を付けましょう。 通常、これは信用できるLAN内のセグメントを記述します。 mynetworks = 192.168.1.0/24 ※なお、よく似た値にmynetworks_styleがあります。 mynetworks_style = class/subnet/hostの三種類があります。 classを設定した場合は、Postfixの持つアドレスクラスと同じセグメントが与えられます(サーバアドレスが172.16.1.10ならmynetworksに172.16.0.0/16を指定したのと同じ効果) subnetを設定した場合は、Postfixの所属するサブネットが与えられます(サーバアドレスが172.16.1.10/24ならmynetworksに172.16.1.0/24を指定したのと同じ効果) hostを設定した場合は、mynetworksにlocalhostを指定したのと同じ効果 mynetworks_styleを使用してもmynetworksを使用しても同じ動作をしますが、一見して内容が理解できるmynetworksを使うほうが勘違いが少ないでしょう。 ただし、これだけでは安定的に動作しません。現代でも、メールの世界は意外とルールが定まっていないのです。 逆引きDNSで解決できないホストからは受け取らないサーバ、ホスト名とメールの送信元ドメインが一致しないと受け取らないサーバもあります。 逆引き辺りに至っては、もはや回線環境にも依存してくる話ですが、以下のパラメータも設定することをお勧めします。 myhostname 転送先メールサーバに対して名乗るホストネームです。 指定しない場合、自分で自分の名前を調べて使用されます。 指定しておくのが礼儀でしょう。 myhostname = mail.example.local mydomain メールをマシンから送信した場合、@以降に現れるドメインです。 通常は、myhostnameのドメイン部分だけを指定します。 さまざまな箇所で用いられます。 mydomain = example.local ここまで設定したら、Postfixにコンフィグを読み込ませます。 #service postfix restart Telnetでメールの転送を確かめるTelnetでSMTPの挙動を確認します。メールサーバ上でメールのログを監視します。 #tail -f /var/log/maillog 「telnet localhost 25」として直接SMTPサービスにログインし、SMTPコマンドを実行します。 太字部分が入力内容です。 宛先のメールは、外部のインターネットメールを使用します。 220 localhost.localdomain ESMTP Postfix helo localhost 250 localhost.localdomain mail from: user1@example.local 250 2.1.0 Ok rcpt to: user@hogehoge.net 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> helo postfix . 250 2.0.0 Ok: queued as 0625633CC90 quit 221 2.0.0 Bye tailで監視している/var/log/maillogの内容で Jan 29 18:43:24 localhost postfix/smtp[3075]: D420533CC90: to=<user@hogehoge.net>, rely=[宛先のメールサーバ:25], delay=1.4, delays=1/0.03/0.18/0.2, dsn=2.0.0, status=sen (250 OK) という内容が出れば成功です。 もし「reject」というログが出力されれば、転送が禁止されています。 Telnet、あるいはメールクライアントのセグメントがmynetworksに含まれているかを確認します。 |
|