Debian-etchへバージョンアップ

稼働中のwebサーバが未だにDebian-sargeであったことから、Debian-etchにバージョンアップすることにしました。このサーバには、Apache2だけでなく、dovecot、exim4、mysqlなどが稼働しています。バージョンアップ後に発生したトラブルと解決方法についてまとめてみます。

rootへsu時のエラー

一般ユーザからrootへsuする時にエラーが出るようになりました。エラーの内容は、次のとおり。

Security Events for su
=-=-=-=-=-=-=-=-=-=-=-
Oct 28 12:07:12 kuroboxfo su[3933]: unknown configuration item `QMAIL_DIR'
Oct 28 12:07:12 kuroboxfo su[3933]: unknown configuration item `FAIL_DELAY'
Oct 28 12:07:12 kuroboxfo su[3933]: unknown configuration item `QUOTAS_ENAB'
Oct 28 12:07:12 kuroboxfo su[3933]: unknown configuration item `NOLOGIN_STR'
Oct 28 12:07:12 kuroboxfo su[3933]: unknown configuration item `ENV_HZ'
Oct 28 12:07:12 kuroboxfo su[3933]: unknown configuration item `PASS_MAX_LEN'
Oct 28 12:07:12 kuroboxfo su[3933]: unknown configuration item `CHFN_AUTH'
Oct 28 12:07:12 kuroboxfo su[3933]: unknown configuration item `CLOSE_SESSIONS

エラーの原因は、shadowログイン機能の設定ファイル「/etc/login.defs」の設定項目がバージョンアップ後に不要になったためのようです。上記エラーの項目の設定箇所をコメントアウトすればエラーがでなくなりました

SquirrelMailが日本語にならない

sagreからetchへのバージョンアップでデフォルトの文字コードが「EUC-JP」から「UTF-8」に変わりました。そのため、「EUC-JP」のロケールがないために日本語の表示ができないようでした。次のコマンドを実行してロケールに「ja_JP.EUC-JP」を追加すれば日本語で表示するようになりました。

dpkg-reconfigure locales

Dovecotのインストール

sageとetchでは、Dovecotの構成が大きく変わったようです。「dovecot-imapd」パッケージと「dovecot-pop3d」パッケージに分割されてしまいました。使用するのは、imapなので「dovecot-imapd」パッケージのみをインストールしました。設定ファイルは、「/etc/dovecot/dovecot.conf」で以下の箇所を修正。

  • 「protocols =」を「protocols = imap imaps」に変更。
  • 「# disable_plaintext_auth = yes」の先頭の#を削除。
  • 「# ssl_cert_file = /etc/ssl/certs/dovecot.pem」の先頭の#を削除。
  • 「# ssl_key_file = /etc/ssl/private/dovecot.pem」の先頭の#を削除。
  • 「mail_location =」を「mail_location = maildir:~/Maildir」に変更。

mysqlでのメッセージ文字化け

sshでサーバにログイン後、ターミナルからmysqlにログイン。このときにメッセージが文字化けするようになりました。sshでサーバにログインするターミナルの文字コードを「EUC-JP」に変更すれば、mysqlのメッセージは、文字化けしません。原因は、mysqlのメッセージファイルが「EUC-JP」で作成されているためと判明。「UTF-8」で作りなおします。手順は、次のとおり。

  1. /usr/shar/mysql/errmsg.txtをUTF-8に変換。
  2. comp_errコマンドでerrmsg.sysを作成。「comp_err errmsg.txt errmsg.sys」でerrmsg.sysファイルを作成。
  3. 作成したerrmsg.sysを/usr/shar/mysql/japanese/に移動。

/var/log/auth.logにエラー情報

/var/log/auth.logに次のようなエラー情報が記録されるようになりました。

Nov  5 06:25:31 kuroboxfo su[24919]: (pam_unix) could not recover authentication token
Nov  5 06:25:31 kuroboxfo su[24919]: (pam_unix) authentication failure; logname= uid=0 euid=0 tty=??? ruser=root rhost=  user=nobody
Nov  5 06:25:33 kuroboxfo su[24919]: pam_authenticate: Permission denied
Nov  5 06:25:33 kuroboxfo su[24919]: FAILED su for nobody by root
Nov  5 06:25:33 kuroboxfo su[24919]: - ??? root:nobody

nobodyでrootにsuしようとしてエラーになったようです。suできるグループを制限していたのが原因のようです。「/etc/pam.d/su」ファイルの設定をコメントアウトすれば直りました。コメントアウトした設定は、以下の設定です。

auth       required   pam_wheel.so group=foo

この設定では、グループ「foo」に属しているユーザしか、suできません。nobodyをこのグループに追加するか、この設定自体をコメントアウトすればよいようです。

スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする