- ベストアンサー
メールサーバが外部から利用出来ない
sendmailサーバを設定し、dnsも浸透したのですが、 WANからLAN内のメールサーバを見つけることが出来ない ようです。 ルータ(バッファローWHR2-A54G54)からサーバへは アドレス変換で25,53,80,110ポートをサーバへ転送する 設定にしています。 このルータ設定で既にwebサーバは公開しているのですが メールサーバを外部から利用できません。 ファイアウォールは設定のため停止しています。 LAN内でdnsを立てないと外部からsvr.○○.jpにはアクセ ス出来ないのでしょうか。 確認が必要な事項をアドバイス頂けばと思います。 よろしくお願いします。 サーバredhat9 /etc/hosts 127.0.0.1 localhost.localdomain localhost 192.168.1.2 svr.○○.jp svr /etc/sysconfig/network NETWORKING=yes HOSTNAME=svr GATEWAY=192.168.1.1 【簡単な機器構成】 WAN | ルータ(192.168.1.1) |_________________________________ web・mailサーバ PC1 PC2 PC3 (redhat9) 192.168.1.2 192.168.1.3~5
- みんなの回答 (11)
- 専門家の回答
質問者が選んだベストアンサー
>まだrootの受信でパスワード認証出来ないのが気になりますが、 何度も説明していますが、ログを確認されましたか? うちのサーバはqpopperを動かしていますが、rootでpopにログインしようとすると Mar 27 01:19:49 ns in.qpopper[13212]: root at ####.jp (999.999.999.999): -ERR [AUTH] Access is blocked for UIDs below 10 [pop_pass.c:1340] とロギンクされます。 ユーザIDが10番以下(rootは0番)は、AUTH認証でアクセスを拒否する様になっています。 この仕組みはPAMライブラリで定義されています。(/etc/pam.d/qpopper) #3で回答した通り、/etc/aliasでroot宛のメールは一般ユーザに逃がして下さい。 ちなみにRedHat9の/etc/aliases の最後は以下の様に用意されています。 # Person who should get root's mail #root: marc aliasesファイルを修正した後は、newaliasesコマンドの実行をお忘れ無く。
その他の回答 (10)
- yosi_yosi
- ベストアンサー率35% (165/468)
ほぼ完成ですね。 逃げの方法ですが... 私はrootのログインはリモート端末からはいかなるプロトコルも拒否しています。それはrootのパスワードがネット上に流れ、盗まれる危険性を考慮しているからです。 それでaliasで root: hogehoge と設定しています。これでroot宛てのメールをhogehogeに転送させて、メールを読むのはhogehogeユーザーです。 rootではアクセス禁止にしておくことが望ましいのではと考えます。 それでは良い週末を!!
お礼
ありがとうございました。 rootでログインできなかったのは、クライアント側のメーラーが原因でした。 outlookのアカウントがおかしかったらしく、ログイン不能でした。アカウントを全て作り直してOKとなりました。 rootのパスをクライアントメーラーで使うのはやはりよろしくないのですね。何となく不安に思ってました。 この設定を修正して、この問題を完結したいと思います。 丁寧なフォローでおつきあいいただき、ありがとうございました。途中で挫折しそうになりましたが、yosi_yosiさんとxjdさんのおかげで何とか立ち上がりました。本当に助かりました。
- xjd
- ベストアンサー率63% (1021/1612)
おつかれさまです。なかなか順調ですね。 うちの自宅サーバ(Debian)のsendmailでは、以下の様なセキュリティの設定も しています。よろしかったら参考にして下さい。 FEATURE(`nouucp', `reject')dnl UUCP形式のメールは受け取らない define(`confPRIVACY_FLAGS', `goaway')dnl プライバシーフラグの解除 define(`confSMTP_LOGIN_MSG', `unknown')dnl telnetなどで接続時にバージョンなどバナーを表示させない。 define(`confTO_IDENT', `0s')dnl IDENT認証は行なわない。 define(`confTO_AUTH', `0s')dnl AUTH認証のタイムアウトなし。 FEATURE(`smrsh')dnl sendmailから実行できるプログラムを制限 define(`confMAX_DAEMON_CHILDREN', `20')dnl sendmailプロセス数の制限 define(`confCONNECTION_RATE_THROTTLE', `20')dnl コネクション数の制限 define(`confMAX_MESSAGE_SIZE', `バイト数')dnl 受信可能なメールサイズ define(`confMAX_HEADERS_LENGTH'), `16384')dnl ヘッダサイズの制限 などです。 そのうち、cyrus-SASL などsendmailに組み込んで、smtp認証など に挑戦して下さい。 最近sendmailは、postfixやqmailに評判負けしていますが、 LPIやRHCEといった、Linuxの試験にはたくさんsendmailの問題がでています。 メールサーバの基本なんで、頑張って下さい。
補足
重ねて貴重な情報をありがとうございます。 プライバシーフラグ解除とtelnetバージョン非表示は設定しましたが(書籍からの引用です)、それ以外は運用が落ち着いたら参考にさせて頂きます。 qmailの方が楽と聞きましたがsendmailが標準ということでやってみました。 なかなか大変ですね。 まだrootの受信でパスワード認証出来ないのが気になりますが、週末を迎える気分が少し楽になりました。
- yosi_yosi
- ベストアンサー率35% (165/468)
LAN内部からの接続に関しては、内部用のDNSがない限り名前解決が出来ないので名前指定でのアクセスは不可能(IPアドレスで指定するならば大丈夫のはずですが)でしょう。(LAN内部からのグローバルアドレス(ルータ)へのアクセスがアドレス変換されているかどうかは、ブラウザーで80番ポートをアクセスすれば分かるはずです。一般的なルータならば、ルータの設定用のページが表示されるはずです。) 送信時のエラーは、SPAMなどを防ぐ目的でつけられたリレーアクセスの拒否の設定です。 通常は、ローカルはリレーアクセスを許可、外部からは拒否になっていると思います。外部からリレーアクセスの必要がある場合には、SMTP AuthやPOP before SMTPなどを利用するのが一般的だと思います。間違っても外部からのリレーアクセスを許可にしないでください。SPAMerの格好の餌食になるばかりか、最悪被害者から訴えられるorISPから接続を切られる、などされる場合があります。 もうほとんどゴールが見えてますね!! もう少しです、がんばってください。
補足
確かに、ルータの設定画面が表示されました。 ローカルdnsを立ち上げてクライアント側からアクセスすることで送受信とも可能になりました。 と、書いてる途中でrootからのメールが受信出来ないことに気づきました。(急遽、お礼から補足に変えました_(._.)_) メール サーバーにログオンできませんでした。 パスワードが拒否されました。 アカウント : 'pop.ii4.jp', サーバー : 'pop.ii4.jp', プロトコル : POP3, サーバーの応答 : '-ERR Bad login', ポート : 110, セキュリティ (SSL): なし, サーバー エラー : 0x800CCC90, エラー番号 : 0x800CCC92 調べるとmicrosoft側の問題のような気もしますが、rootなのでユーザ名とパスワードに変化があるのかと考えてます。ほぼ出来たのですが、rootのメールが読めないのも気持ち悪いので、ほんともう少しです。^_^;
- xjd
- ベストアンサー率63% (1021/1612)
おつかれさまです。 >qpopper: 192.168.1 :allow ところで、qpopperは、RedHat9には標準でついていないのですが、自分でコンパイル・ インストールしたんですね? また、どうせなら内部の名前解決用のDNS(Bind9)を動かしてみてはいかがでしょう? 内部用ですから、自由に名前を設定できますし、forwarderで外部プロバイダのDNSを 指定しておけば、外部の名前解決もできます。
お礼
ローカル用dnsを立ち上げました。何度かテストしたところクライアントからoutlookにて送受信とも可能となりました。 dns立ち上げ直後は、1つ目のdnsサーバをlan内に変えてもクライアント側の名前解決が不安定でした。(端末はwin2000です)再起動してpingでメールサーバをローカルへ見に行っているのを確認して送受信してOKとなりました。 また、別件で助言頂いた、不正中継チェックのサイト3つも試して全てOKでした。これで何とかメールサーバ運用を開始できます。ありがとうございました。 貴重なご意見、またお時間を割いていただいたことに感謝します。 phpの設定もがんばります。
補足
お世話になってます。 すみません、説明を省いてましたが、以下も追加しました。 ipop3: 192.168.1 :allow ipop3d: 192.168.1 :allow pop3: 192.168.1 :allow popが何で動いてるか、どれが正式名か分からなかったので3つ指定しました。先ほど、ダイアルアップで外部よりアクセスしたところ、pop.ドメイン.jpより受信に成功しました。 送信は、受信者の 1 人がサーバーによって拒否されたため、メッセージを送信できませんでした。 拒否された電子メール アドレス : 外部@メールアドレス 件名 'test', アカウント : 'ユーザ@ドメイン.jp', サーバー : 'mail.ドメイン.jp', プロトコル : SMTP, サーバーの応答 : '550 5.7.1 <外部@メールアドレス>... Relaying denied', ポート : 25, セキュリティ (SSL): なし, サーバー エラー : 550, エラー番号 : 0x800CCC79 のエラーで不可でした。送信部分でサーバにもまだ問題があるようです。エラーメッセージから調べてみます。 内部dnsですが、ちょうど昨日amazonからdnsの書籍が届いたところで、mail問題が片づいたら挑戦しようと思ってましたが、内部アクセス不能なのはdnsの問題のようなのでこちらもやってみます。
- yosi_yosi
- ベストアンサー率35% (165/468)
#5さんの回答もチェックして見てください。 それで、ひとつ気になったのですが、 >ですが、lan内にdnsがなくlan外のdnsを参照してから、 >telnet接続は出来ないのではと考えてますが間違っているでしょうか?(lan外からのtelnetはルータで禁止してます)もちろん、ローカルipでは接続可能でした。 とのことですが、LAN内からだと mail.ドメイン.jpやpop.ドメイン.jpなどのアドレスが192.168.1.2と引けなくてはいけないはずです。外部からはもちろんグローバルなIPアドレスですが。 LAN内のクライアントがグローバルなIP=ルーターのIPアドレスにアクセスしているので、ルーターはそれをアドレス変換しないので、結局のところルーターにアクセスしていませんか? LAN内部からのアクセスにはアドレス変換しないルータが一般的だと思います。 あと今回telnetで試していますが、ポート番号を25や110番で試していますので、telnetを禁止しているかどうかは関係有りません。ただ単純にメーラーがしている作業を手で作業していることになります。 無事に問題が解決するといいですね。
補足
ありがとうございます。 >telnetを禁止しているかどうかは関係有りません。 そのとおりですね。かなり混乱してました。 lan内でmail.ドメイン.jpは引けません。dnsがなくても引けるのでしょうか? どうもおっしゃる通りの症状のようです。 この解決方法がピンと来ません。 pingをmail.ドメイン.jpへ打つとグローバルipで帰って来ます。 nslookupをmail.ドメイン.jpとしてもグローバルipです。 Server: air.rooter Address: 192.168.11.1 Non-authoritative answer: Name: サーバ.ドメイン.jp Address: xxx.xxx.xxx.xxx←グローバルip Aliases: mail.ドメイン.jp lan内でサーバが見られない症状が分かりましたが、lan内アドレス変換は出来ませんし、とりあえす外部から接続する環境でアクセス可能か試してみようと思ってます。
- xjd
- ベストアンサー率63% (1021/1612)
>ただ、クライアントからの利用がまだ出来ません。 >ポートはもちろん25,110でいずれもソケットエラー /etc/mail/accessファイルでRelayの許可は設定されましたか? (accessファイルを修正後はmakemapコマンドでaccess.dbを作成の事) また、popの場合、(何を使っているかわかりませんが)たいてい tcpwrapperが組み込まれているので/etc/hosts.allow で接続許可の 指定が必要だと思います。 /etc/hosts.allow qpopper : 192.168.0.1/255.255.255.0 みたいな設定が必要かも?
補足
ありがとうございます。 accessファイル設定は問題なさそうでしたが、 念のためaccess.dbを再作成しました。 hosts.allowの接続許可はftpしか設定してなかったので追加しました。 qpopper: 192.168.1 :allow 念のためサーバ再起動しましたが症状は変わりませんでした。送信時メッセージです。 サーバーへの接続は失敗しました。 アカウント : 'ユーザ@ドメイン.jp', サーバー : 'mail.ドメイン.jp', プロトコル : SMTP, ポート : 25, セキュリティ (SSL): なし, ソケット エラー : 10061, エラー番号 : 0x800CCC0E サーバログに何も残ってなかったのでルータ設定を疑ってます。lan内アクセスに問題あるのか?調べてみます。
- yosi_yosi
- ベストアンサー率35% (165/468)
#2です。私からの回答は見当違いでしたね、すみません。 また見当違いでなければいいのですが... Outlookは使わないのですが、エラーメッセージを出来るだけ正確に記載されると、ヒントが導き出せるかもしれません。(もちろんドメイン部分のみは伏字で...) 念のためにnslookupなどで nslookup svr.ドメイン.jp nslookup mail.ドメイン.jp nslookup pop.ドメイン.jp も一応確認してみてください。もしかすると思わぬところでヒントが見つかるかもしれません。 あとは、 telnet svr.ドメイン.jp 25 telnet svr.ドメイン.jp 110 telnet mail.ドメイン.jp 25 telnet pop.ドメイン.jp 110 は大丈夫でしょうか?(大丈夫だとは思いますが...) ほかのメーラーは試して見ましたか? Outlookで別のサーバーで試せますか?(サーバー名だけを書き換えて)
補足
いえいえ、問題の切り分けは大切ですよね。 漠然と悩んでたのを行動に移せました。 nslookup ドメイン.jp Server: air.rooter Address: 192.168.1.1 Non-authoritative answer: Name: ドメイン.jp Address: xxx.xxx.xxx.xxx nslookup mail.ドメイン.jp Server: air.rooter Address: 192.168.1.1 Non-authoritative answer: Name: サーバ.ドメイン.jp Address: xxx.xxx.xxx.xxx Aliases: mail.ドメイン.jp nslookup pop.ドメイン.jp Server: air.rooter Address: 192.168.1.1 Non-authoritative answer: Name: サーバ.ドメイン.jp Address: xxx.xxx.xxx.xxx Aliases: pop.ドメイン.jp nslookup サーバ.ドメイン.jp Server: air.rooter Address: 192.168.1.1 Non-authoritative answer: Name: サーバ.ドメイン.jp Address: xxx.xxx.xxx.xxx と、nslookupは問題なさそうでした。 telnetは、全てつながりませんでした。 ですが、lan内にdnsがなくlan外のdnsを参照してから、 telnet接続は出来ないのではと考えてますが間違っているでしょうか?(lan外からのtelnetはルータで禁止してます)もちろん、ローカルipでは接続可能でした。 どうもサーバ側の問題な気がするので調べてみます。
- xjd
- ベストアンサー率63% (1021/1612)
>その後、ユーザ@サーバ名.ドメイン名.jpで送った所、 >サーバ側で受信が確認出来ました。 ここまでできてるなら、あとは「@ドメイン名.jp」宛も受け取れるように するだけです。 sendmailの基本設定なのですぐ解決するでしょう。 >再起動時にaliasesdbが作れなかったようですが、 これは、newaliasesコマンドですね。 # ls -l /etc/aliases* -rw-r--r-- 1 root root 1343 9月 18 2003 /etc/alises -rw-r----- 1 smmsp smmsp 12288 3月 24 15:34 /etc/aliases.db
補足
ありがとうございます。 sendmail.mcの LOCAL_DOMAINにドメイン名.jpを追加して、無事メールを 送信出来、サーバ側で確認できました。 aliasesdbも削除して再生成出来ました。 ただ、クライアントからの利用がまだ出来ません。 outlookにてサーバ接続に失敗します。 ポートはもちろん25,110でいずれもソケットエラー 10061です。エラー番号から調べて見ましたが、 インターネットセキュリティを外してもだめで、 手詰まり中です。 受信サーバ・送信サーバともdnsに設定した mail.ドメイン.jpとpop.ドメイン.jpを指定しています。 dns設定は以下です。 ドメイン.jp. IN MX 10 svr.ドメイン.jp. mail IN CNAME svr pop IN CNAME svr とりあえず、メールサーバとして稼働出来たのは嬉しいです。あと一歩だとは思うのですが、ヒントを頂けないでしょうか。よろしくお願いします。
- yosi_yosi
- ベストアンサー率35% (165/468)
まずは、localhost内からtelnetなどで25番ポートに接続して、接続できるかチェックしましょう。それで問題なければ、次はLAN上の別のPCから、その次はWANからと順番に接続できるかどうかを実験すれば、問題の切り分けができると思います。 それで、telnetでの接続が出来る(sendmailからの応答リクエストが確認できる)のであれば、あとはsendmailの設定の問題だと思います。sendmailからのログ出力をチェックして、何が問題なのかを調べましょう。 とにかく、今の質問内容からはどの時点での問題なのかがはっきりしませんので、問題を切り分けてみてください。
お礼
お答えありがとうございます。 原因の切り分けすら出来ず、申し訳ありませんでした。 ログを確認して思いの外、ちょっとした修正で直り そうです。 ですがそのあと一歩に苦しんでます。(;^_^A よろしくお願いします。
- xjd
- ベストアンサー率63% (1021/1612)
メールサーバの動作確認をするときは必ずログファイルを監視しま しょう。 sendmailサーバにsmtp接続があったら、 /var/log/messages /var/log/mail.log などに必ず出力されます。 # tail -f /var/log/messages /var/log/mail.log など実行しておくと、リアルタイムでログを監視できます。 外部のネットワークから、 telnet あなたのメールサーバ 25 telnet あなたのメールサーバのIPアドレス 25 など実行してみて、ログに何も出力されなかったら、sendmail まで届いていない、ということです。 redhatのiptablesで25番は開いているか?などは確認しましたか?
補足
いつもお答えありがとうございます。 lan内からipでtelnet接続が確認できました。 外部からのメール受信をLOGを確認した所、maillogで サーバまでの到着は確認出来ました。 Mar 24 10:10:15 サーバ名 sendmail[19151]: i2O1AFAW019151: ruleset=check_rcpt, arg1=<root@ドメイン.jp>, relay=mail.ms.so-net.ne.jp [202.238.82.30], reject=550 5.7.1 <root@ドメイン.jp>... Relaying denied Mar 24 10:10:15 サーバ名 sendmail[19151]: i2O1AFAW019151: from=<テスト@so-net.ne.jp>, size=609, class=0, nrcpts=0, proto=ESMTP, daemon=MTA, relay=mail.ms.so-net.ne.jp [202.238.82.30] sendmail設定らしいとは分かりました。 その後、ユーザ@サーバ名.ドメイン名.jpで送った所、 サーバ側で受信が確認出来ました。 マスカレード設定を見直して見ます。 また、 Mar 24 13:06:14 サーバ名 sendmail[678]: NOQUEUE: SYSERR(root): hash map "Alias0": unsafe map file /etc/aliases.db: Permission denied Mar 24 13:06:14 サーバ名 sendmail[678]: NOQUEUE: SYSERR(root): Cannot create database for alias file /etc/aliases のエラーを見つけました。 再起動時にaliasesdbが作れなかったようですが、/etc/aliasesを編集したことありませんし、パーミッションも変えてませんのでこれが原因かと考えてます。
お礼
ありがとうございました。 maillogも見ましたが、クライアントメーラーの問題でした。何とか、メールサーバ立ち上げまでこぎ着ける事が出来ました。 rootメールも送受信出来るようになりましたが、ご指摘通り一般ユーザに逃がしました。この設定を終えてひとくぎり付きました。 最後まで助言頂き、本当にありがとうございました。