
第12回 qmail導入・運用関連トラブルシューティング集
本連載もいよいよ大詰めを迎えるに至った。今回は、qmailの導入や運用時にありがちなトラブルとその解決方法を解説する。あらゆるケースを網羅するのは不可能だが、この記事が何らかの糸口になれば幸いである。
鶴長 鎮一
2002/9/21
今回は、qmail関係で遭遇するであろうトラブルと、その解決策を紹介します。
この連載で何回も繰り返してきた言葉ですが、qmailのインストールは簡単なものの、ちょっとしたことを実現させたい場合はアドインツールを導入せざるを得ない状況が多々あります。アドインツールの組み合わせが何通りも存在するように、トラブルもさまざまです。また、トラブルの発生頻度もqmail単体に比べて増えてしまいます。qmail自体はMTAのメジャーになりつつあるものの、アドインツールの組み合わせによっては、過去の対策事例が見つからないこともしばしばです。
ここですべてを紹介することはできませんが、私の経験やLinux Square会議室に書き込まれた事例を基に、いくつか紹介します。
導入時&設定関連のトラブル
当連載のとおりにやってみたものの、うまく機能しないということもあるかと思います。原因はさまざまで、皆さんのインストール環境と筆者の環境との差異によるものや、記事の中で重要な手順を省略してしまったといった提供側の問題もあるかもしれません。あってはいけないことですが、記事が間違っていることもあるでしょう(注)。
| 注:本連載では、この点を猛省しております。ご指摘を受けたものに関しては、こちらで確認し反映させていただきました。ご指摘くださった皆さま、ありがとうございました。そして、間違いのために時間を無駄にしてしまった皆さま、本当に申し訳ありません。 |
Linux Square会議室に寄せられた書き込みの多くが「インストールはできたもののサービスが正常に機能しない」というものでした。その対応策を見ていきましょう。
■qmail関連のサービスが開始できない
●ログに「fatal: unable to bind: address already used」と記録される
/var/log/maillogや/va/log/qmailなどに「fatal: unable to bind: address already used」と記録される場合は、すでに同様のサービスが起動していないかどうかを確認します。Linuxディストリビーションによっては、デフォルトでsendmailやimap4がインストールされ、場合によっては自動起動の状態になっている場合があります。最近はspamに対する意識やDoS攻撃の踏み台にされることに対する防御から、インストール時に意図的に選択しなければ起動しないようになっていますが、古いバージョンのディストリビューションは、自動起動が選択されている可能性があります。
まず、現在の状況を確認します。Turbolinuxであればturboserviceコマンド、Red Hat Linuxであればntsysvコマンドでサービスの状態を確認し、もし起動されているようなら自動起動しないように設定します。
# ntsysv |
![]() |
| netsysvコマンドの例。[スペース]キーで選択/選択解除することにより、起動するサービスをコントロール可能 |
そのほかのディストリビューションでも同様のコマンドが用意されているはずですが、手っ取り早く確認するにはtelnetコマンドを使用します。SMTPが起動されているかどうかを確認する場合は25番ポートに対して、POP3の起動を確認するには110番ポートに対して以下のように実行します。
$ telnet localhost 25 |
| SMPTサービスが起動されていない場合(注) |
| 注:接続制限がかけられている場合も同様のメッセージが表示されます。その場合は後述の「クライアント側でメールの送受信ができない」を参照してください。 |
$ telnet localhost 25 |
| sendmailが起動している場合 |
$ telnet localhost
110 |
| POP3が起動している場合 |
確認作業を終了するには、
quit |
とタイプします。
Nmapがインストールされているのであれば、これを使用します。
# nmap localhost |
既存のSMTP/POP3サービスの存在が確認されたら、これらのサービスを停止して二度と起動しないようにします。先ほどはntsysvを紹介しましたが、今度はディストリビューションに依存しないchkconfigコマンドを使ってみます。
まず、サーバマシンの起動とともに実行されるサービスを確認します。
# /sbin/chkconfig --list |
0〜6の数字はランレベル(Linux Tips:ランレベルとは)です。「on」になっているランレベルを「off」にして起動しないようにします。
# chkconfig --level
ランレベル sendmail off |
chkconfigの使用については「Linux Tips:システムサービスのランレベルを調べたり変更するには」を参照してください。
POP3がxinetd経由で起動されている場合は、/etc/xinetd.d/pop-3などの設定ファイルを見つけて下記のように編集し、xinetdサービスを再起動します。
# vi /etc/xinetd.d/pop-3 |
●設定が正しくない場合
qmailは、/var/qmail/controlディレクトリにあるmeファイルを環境に合わせて用意すれば、取りあえずは起動できます。/var/qmail/controlにあるファイルの正当性を確認するには、/var/qmail/bin/qmail-showctlコマンドを使用します。
# /var/qmail/bin/qmail-showctl |
これで不備が見つかるようであれば、再度/var/qmail/control/下のファイルを作り直します。/var/qmail/control/下のファイルについては、「第1回 qmailによるSMTPサーバの構築」を参照ください。
■クライアント側でメールの送受信ができない その1
サービスが起動できても、メールの送受信がうまくいかない場合があります。tcpserverを導入している場合は、cdbファイルにクライアントのIPが含まれているかどうかを確認します。もし含まれていなければ、/etc/tcp.smtpファイルを修正してcdbファイルを再構築します。
# vi /etc/tcp.smtp |
| 参考:「第1回 qmailによるSMTPサーバの構築」 |
■クライアント側でメールの送受信ができない その2
最近のLinuxディストリビューションは、デフォルトインストールでセキュリティレベルを設定できます。「中」レベルを選択すると最小限のサービスのみを自動起動するように設定されますが、「高」レベルではipchainsを有効にするケースもあるようです。ipchainsはカーネル2.2から実装されたもの(注)で、自作ファイアウォールを構築された方にはなじみの深いものでしょう。ipchainsのパケットフィルタリング機能でホストのセキュリティを高めようというものですが、そのために追加サービスを開始する際の手順が増えます。
| 注:カーネル2.2より前はipfwadmコマンドでしたが、2.2からipchainsに置き換わりました。カーネル2.4ではiptablesコマンドが用意されています。カーネルの進化とともに、パケットフィルタリングの方法も少しずつ変わっています。 |
まず、ipchainsが有効かどうかを確認します。
# /sbin/ipchains -L |
ipchainsが有効でなければアクセスリストは表示されません。逆に、ipchainsをインストールしたつもりがなくても、Linuxの導入時にセキュリティレベルを「高」にしたことでインストールされている場合もあります。この状態では、各種のサービスを起動してもipchainsのパケットフィルタに引っ掛かり、クライアントとの接続が確立できません。
ipchainsを無効にするには、前述のturboserviceやnetsysv、chkconfigコマンドを使用してipchainsサービスを停止します。ipchainsを有効にしたままでSMTPやPOP3のサービスを解放する場合は、次の手順で行います。
SMTPやPOP3が使用するポートを双方向で解放するために、ipchainsを次のように実行します。ここではtcpserverで接続を制限するため、ipchainsでは発信元やあて先による制限は行いません。
# /sbin/ipchains -A
input -p tcp -b -d 0.0.0.0/0 25 -j ACCEPT |
上記のコマンドが有効になっているかどうかを確認します。
# /sbin/ipchains -L |
| この例では、「/sbin/ipchains -P input DENY」も有効になっています |
このままではマシンを再起動すると設定が消えてしまうため、再起動後も設定が有効になるように/etc/sysconfig/ipchainsファイルに書き出します。
# ipchains-save >
/etc/sysconfig/ipchains |
サーバに必要なサービスは、これだけではありません。管理のためのsshやDNSサービス、HTTPサービスもあります。また、発信元やあて先のIPアドレスで制限をかける必要もあります。必要に応じて、「ゼロから始めるLinuxセキュリティ 第2回 ホストレベルセキュリティの総仕上げ」を参考にフィルタリングルールを追加しましょう。
ちなみに、Red Hat Linuxにはipchainsの設定を対話式で行うLokkitツールがあります。
# /sbin/lokkit |
![]() |
| lokkitの画面 |
■設定を簡単に行いたい
qmail単体であれば設定は至って簡単ですが、svcのためのdaemontoolsやtcpserverのためのucspi-tcpと、アドインツールをインストールするにつれて設定ファイルを準備する手間も増えてきます。そこで、qmail-confツールを使用するという方法もあります。
qmail-confはTetsu Ushijima氏によってhttp://www.din.or.jp/~ushijima/qmail-conf.htmlで公開されています。日本語の説明はhttp://www.y-min.or.jp/~nob/qmail/qmail-conf.htmlにあります。
大変便利なツールですが、できれば一度は自分で設定ファイルを1つ1つ確認しながらインストールすることをお勧めします。
|
1/2
|
|
||||
|
||||
| 連載 実用qmailサーバ運用・管理術 |
| Linux Squareフォーラム サーバ構築・運用関連記事 |
| 連載:Heartbeatでかんたんクラスタリング(連載中) オープンソースソフトウェアの「Heartbeat」を使ってHAクラスタを実現し、サービスを「落とさない」仕組みを実現します |
|
| 特集:Apache 2.2でWebサイトをパフォーマンスアップ! 最新安定版Apache 2.2は、何が変わったのか? 最新のApacheを新機能の使い方とともに解説する |
|
| 連載:実用 Apache 2.0運用・管理術(全8回) 本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える |
|
| 連載:実用
BIND 9で作るDNSサーバ(全15回) 本連載では、BIND 9の構築/運用方法を解説していく。実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく |
|
| 連載:実用qmailサーバ運用・管理術(全14回) 本連載を通して、qmailによるメールサーバの高度な構築・運用・管理術を紹介。SPAM対策やML管理からサーバでのウイルスチェックなどまで |
|
| 特集:Samba
3.0の全貌 改訂版 Samba 3.0リリースから8カ月。ここであらためて、Samba 3.0系列の新機能、インストール方法、国際化の現状を解説する |
|
|
TechTargetジャパン
- OSSライセンスの採用傾向に「変化」あり (2012/5/21)
OSS普及の一翼を担ってきたライセンス、GPLファミリー採用の割合が減少傾向にあるそうです。いったいどうして? - ここからFirefoxの反撃が始まる (2012/3/12)
2月のLinux SquareのランキングではFirefoxの記事がダントツのページビューを集め、トップに立ちました - CMakeでMySQLをビルドしてみる (2012/3/8)
ここまでの作業でCMakeを使う準備が整いました。今回はひとまずMySQLをビルドしてみます - MySQLのビルドに欠かせないCMakeを準備する (2012/3/2)
今回は、MySQLをビルドするために欠かせないツール「CMake」をインストールし、使う準備をします
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


