INFOINFO
MAILMAIL

2010年 6月 5日(土)

* Ubuntu 10.04 LTSサーバ: 導入メモ(サービス関連)    [  Linux  ]

 先月23日にUbuntuサーバに乗り換えてから約2週間。通常サービスに加えて、Weekly/Monthlyの定期実行も走って、一応なんとか表面上は問題なく動作している、と。
 もっとも、導入前にはテストサーバなどで一通り動作チェックはしていたんだけども、実稼働させるといろいろ新しい問題が見えてきたりして、そういうのをログをチェックして、その都度潰していくという作業を繰り返しているわけだけどね(^^;)。

 ま、それでも、なんとかそのあたりも一段落した感がある(そうあって欲しい(笑))ところで、今回の移行に際してやったことを忘備録的にメモにしておこうかな、と。

 ということで、↓はおもにサービス関連について。

 で、実稼働サーバの乗り換えということで、外部から見たサービスは変更しないのが基本方針。まぁ、OSがVine Linux 4.2からUbuntu 10.04 LTSサーバに切り替わるということで、内部的にはいろいろ変わるんだけども。
 あと、従来のサーバではベースサービス類はソースからビルドして利用していたんだけど、今回導入するのがLTS(Long Term Support)版ということもあって、極力Ubuntuの公開パッケージを利用する方針に変更。

 さて、外向けのサービスは、DNSサーバがbind9、MailサーバがPostfix+CourierIMAP、WebサーバがApache2、その他ntp/samba/sshを利用していたんだけど、Ubuntu化に合わせてIMAPサーバをDovecotに変えた以外は変更なし。Dovecotに変更した理由は、UbuntuのMailタスクパッケージに組み込まれていたからという軽い理由(笑)。

 DNSサーバに関しては、Ubuntuのタスクパッケージでインストール。設定ファイルの置き方が変わってたのでそれに合わせて書き直したくらい。設定内容は従来のものをそのまま流用しているのでとくに問題なし。あと、いまだ外向けにはIPv4なので、オプション設定でIPv6を殺す用に設定(/etc/default/bind9内でOPTIONS="-u bind -4"に変更)。

 Mailサーバもタスクパッケージを利用。その後、SPF(Sender Policy Framework)導入のためにpostfix-policyd-spf-perlパッケージをインストール。設定などもとくに従来と変わる部分はなく、DovecotでPOP3/POP3Sを殺してIMAP/IMAPSのみにしたくらいか(これも従来通り)。設定後に「第三者中継チェック」で不正中継のチェック。
 その後、内部的にprocmailによるメール振り分けを設定。ここも従来と同じ設定のままで、とくに問題ないはずだったんだけど、設定ファイルをうっかりWindowsで作成してからコピーした関係で想定通りに動作せず。実はこの問題が最後まで残って悩んでたんだよねぇ(^^;)。結局、原因は設定ファイルの改行コードがCR/LFになってただけだったという…(ご存じのようにUnix系はLFのみ)。

 Webサーバは個別パッケージでインストール。設定ファイルが結構うまく分割されていて、追加モジュールやサイトの登録なども個別のコマンド(a2enmod/a2ensite)で処理するようになってるのは、うまいやり方だなと。設定部分で唯一ハマったのはLogFormatの設定。デフォルトで送受信バイト数が%O(ヘッダを含む総バイト数)で設定されてたんだけど、これまでウチでは%b(ヘッダーを取り除いた総バイト数)を使ってたんだよね。これは、ログ解析ツール(Webalizer)で利用するので、前サーバに合わせることに。
 あとはオレオレ証明書を作って、疑似的にSSLも動作するようにしたくらいかな。あ、そうそう、システムアカウントがwww-dataになるので、その関連部分の修正もあったか。

 ntpは標準インストールされているものをそのまま利用、親サーバには接続先のOCNの公開サーバに設定、あとはLAN向けにntpサーバとして利用できるようにしただけ(下流はないので外には公開せず)。
 sambaもタスクパッケージでインストール。サービスエントリ名がsambaじゃなくてsmbdになってることと、一部設定ミスしてて繋がらなくて焦ったけども、比較的すぐに対処できたので問題なし。
 sshもタスクパッケージでインストール。今回は最初からカギ認証方式による接続にして、平文パスワードは流さないように。Windows端末からはputtyを利用して接続。ま、このあたりは従来からこの方法だったので、とくに問題なし、と。なお、sshのLAN内だけでの公開で、外部には遮断。

 システムログの解析用にはLogwatchを個別パッケージでインストール。設定はほぼデフォルトのまま(一部不要なサービスをカットしただけ)。
 またシステムの動作チェック用にMRTG+snmpを導入(全部個別パッケージで)。基本的なサービス設定は従来のものを流用したのでとくに問題なかったんだけど、snmpのログ設定でかなりてこずる羽目に。標準だとrsyslog経由でdaemon.logにNOTICEメッセージが記録されるんだけど、これが抑制できない。結局、snmpの設定ではなく、rsyslog側の設定でログ出力を抑止(LOG_WARNING以上のみ記録)することに。これは結構苦労した(^^;)。

 Webサーバのアクセス解析には、AWStatを使うのも考えたものの、従来のデータを移行したかったので従来通りWebalizerを利用することに。当初、これもパッケージを使ってインストールしたんだけども、Ubuntu化でデータフォーマットがオリジナルから変更されていることが判明。従来のデータファイルをフォーマット変換することも考えたんだけど、それ以外にもいろいろと細かな部分に手が入ってることが分かったので、パッケージによるインストールは諦めて、これのみソースからビルドして利用することに。
 ビルド環境の準備には、パッケージ版の環境をそのまま流用するのが楽ということで“apt-get build-dep webalizer”コマンドで環境設定。もっとも、これで別の部分に問題が出るんだけど(^^;)、それはまた別に対応することに。あ、あと「webalizerの検索語の日本語対応の話」を参考にして一部ソースを修正してるんだっけな。これで予定通りに、旧サーバのデータをそのまま移行して運用。

 WebでのサーバサイドスクリプトはPHPを利用するので、パッケージでPHP5をインストール。同時に、自前スクリプトで利用するgd/xmlrpc/recode/curlあたりのモジュールもインストール。設定では日本語処理周り(mbstring)を変更して、ついでにログ出力がDEPRECATED以上になってたものをNOTICE以上に修正。
 ただ、スクリプト関連では最後までいろいろと悩むことになるんだけど、それに関しては別項で。

 バックエンドのデータベースにはMySQLではなく、PostgreSQLを利用。これは従来システムがこれで構築されていたからという理由から。インストールはタスクパッケージを利用。設定はautovacuumをonにしたくらいで、あとはデフォルトのまま。

 セキュリティ周りでは、iptablesを利用してファイアウォールを構築。従来もiptablesは利用していたんだけども、これまでは単純にポート制限くらいだったので、今回は「ファイアウォール構築(iptables) - Fedoraで自宅サーバー構築」や「iptablesでサーバーのファイアウォールを構築する - Hatena::Diary::Ubuntu」を参考にして、もうちょっと厳しく設定。なお、Ubuntuにはufw(Uncomplicated Firewall)というiptables用のフロントエンドがあるんだけ、自前でiptablesを制御しているので、このufwは利用せず。
 あとはTripwireをパケージで導入。設定は「ファイル改竄検知システム導入(Tripwire) - Fedoraで自宅サーバー構築」などを参考に。


 とりあえず、サービス関連はこんなものかな? 今後も適宜ログファイルなんかをチェックして、怪しげなそぶりがあればその都度対応するって感じで。まぁ、個人使用の零細サイトなので、外向けに大ポカをしない限りは細かくちくちくとやるのでも問題ないだろうと(^^;)。

Posted by “Lupin” on 2010/06/05 16:47:47
コメント
コメントはありません。
●コメント投稿
このエントリーにはコメント投稿できません。