SSブログ

Postfixでメール送れたけど、宛先サーバに拒否られたw。 [Linux]

UbuntuでオレオレSMTPサーバを立てて、メーラーから送れたはいいけど、やっぱりお外のメールサーバーに拒絶された話。まぁ道理を考えれば当然の話しなんだろうけど…。そうじゃなきゃ、他のサーバを踏み台にしてスパムメールを出す意味があまりない。

 
そんなこんなで手順を書いておく。大したことしてないんだけど、書かないと忘れそうだし。Postfixはおろかメールサーバなんて立てたことがない俺。一応クライアントは改造したことはあるんだが、SMTP関係無かったしなぁ。


まずLinuxサーバをセッティング。最近全然使ってなかったProxmoxでサーバを作る。仮想化サーバはお気楽に環境を作れていいもんだ。でも、Dockerとかだと、一回作ってからそこからコピーとかできるんだよね、たぶん。とりあえず、Ubuntu 14.04を使ってみました。

んで動くようになったらSSHでつないで(インスコの時に入れようね)、設定開始。

sudo aptitude install postfix


で基本的に完了。デーモンも上げてくれるしすごく楽。Linuxも楽になったもんだよね。

インストール時に、サーバの状態をいくつか選択する所があったんだけど、一番上のインターネットサイトとかにした気がした。試行錯誤の時に何回か変えたけど、結局LANの中で使えるだけじゃ困るし、サテライトサイトとか意味分からないし、普通にSMTPを使えるものにしたいと思ったので、恐らく普通のサーバ設定であろうものにした。

エラーは
tail -f /var/log/mail.log

で見る。操作とは別窓にして、変更部分を見ていく。




あとWindows7でメーラーを探したんだけど、昔みたいにOutlook Expressが付いてないのはわかった。OfficeのOutlookもないし、Thunderbirdはメールサーバに通信が通らないとサーバへの設定が残らない。

簡単に使えそうなのがnPOPQでした。解凍せずにWindowsで中身のexeを叩くだけで使えて、今回の利用としては最適でした。普通にローカルのサーバのIPアドレスを設定すればそれでOK。なんてお手軽なんだ。ソフトにしても山道具にしても質実剛健なのは好き。



いろいろ問題が出たんだけど間違えた部分を説明せずにショートカットで設定します。本当はいつもは失敗したところも書くし、使えない人はそういうのがあった方がググる時にいいのだろうけど、今回は全然ログを取ってなかったので割愛。あれ/var/log/mail.logにあるかなぁ。

454 4.7.1 Relay access denied;

とか色々出てきたけど、設定中に出てきたのは何度もアンインストールしたこともあり、手がかりがなくなってしまっていた。結局、色々いじったけど、受けられる場所(クライアントのIPアドレス)をローカルアドレスで設定すればいいだけでした。Relayサーバ云々は全く関係ない。よくありがちなんだけど、デフォルトの設定が期待する状態とは違うために出るエラー。

451 4.3.5 Server configuration error;

とかはただ単に/etc/postfix/main.cf の書き方が間違ってただけ、ってことだからあんまりためにならないかな。ただ、#で行の途中でコメントアウトしても、コメントアウトになってないみたい。何かうまくいかないことが多かった。

結局、main.cfを設定すれだけでいいのです。そもそもがRelayサーバとして動くのがデフォルト設定なので、そこをどうにかすればいいだけだったりする。Relayアクセスが出来ないって言われているのは、大体必要な設定がされてないだけみたい。

http://server-setting.info/centos/postfix-relay-error-point.html

ここを読んでだいたいわかった。
main.cfを設定した後は再起動しないといけませんよ、ということで

sudo /etc/init.d/postfix restart


上のリンクだと普通のユーザーでやっとるけど、ルート権限でやらないといけない。どこが肝かというと
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

とデフォルトで書いてあるんだけど、そこにメールクライアントがあるサーバのIPの設定をしてあげればいいだけでした。なのでスペースの後に
192.168.0.0/24
とか、自分のLANのアドレスの範囲を指定してあげれば、LANのどこにクライアントがあっても使えるようになる。少なくともこれをやらないと、ずっとRelay accessうんぬんとか意味の分からないエラーが出てしまう。

あと、
RelayHost =
にしてブランクにしたみたい。それと

mydomain = foo.com


ってのは入れてあるね。これは普通はDynamicDNSとかで取得したURLを入れないといけないのでしょう。試しサーバにDDNSを導入するまで必要だと思っていないのでやっていません。

フリーのDDNSを取得しないといけないし、取ったところでファイヤーウォールとプロキシとルーターに阻まれた企業内では使えなかったりする。いちいち、システム部に届け出したところで却下されるのは目に見えているしね。そもそも、そこまでの技術を持った人がサポートしかしてないような人達にできるはずがない。開発とかは恐らく他社に投げているのだろうし、保守管理にしてもリモートでSIerとかにやってもらっているのだろう。というか、シングルサインオンにしてくれないのかなぁ。非常に業務アプリが使いにくい。





んで、送る時にPostfix側からエラーが出ることはなくなるんですが、どこかの特定のメールサーバにメールを送ろうとすると、サーバ側に拒否られてしまう。でも、それがまかり通ってしまうと、スパムメールを簡単に出せてしまう。なので踏み台にされるメールサーバ自体の意味合いがなくなってしまう。恐らく、踏み台にされるサーバはきちんと名前がDNSで付いているので、送っているサーバが何物か分からないことはないから、踏み台にされて問題が出るまでは問題なく使えるはずですね。

そんなわけで、メールを送れるようになったものの、恐らくFQDNがないサーバはどのサーバに送るにしても拒否られてしまうのは間違いなさそうだ。ん~面倒くさいなぁ。LAN内での運用なので、送り先を考えたくないんだけど、外のフリーメールを使うにしても、ルーター越えにプロキシ通過という問題がガッツリあるので仕事に使えるかどうかは微妙な線です。

仕事場でFQDNをDDNSで得るとかは間違いなくできなさそうだし、オレオレサーバでローカルアドレスならOKとかなってくれればいいんだけど、送るサーバが企業の外に委託しているので難しいだろうね。プロキシもあるからproxy_interfacesも設定しなくちゃダメだろうし。

http://www.postfix-jp.info/trans-2.3/jhtml/postconf.5.html#proxy_interfaces

ん?送り出す前の話かな? 何かめんどくさい。

コメント(0) 
共通テーマ:パソコン・インターネット

コメント 0