2012年3月19日月曜日

kerberos認証で Authentication failure (KDC reply did not match expectations)

Authentication failure (KDC reply did not match expectations)

/etc/krb5.conf 内のドメイン指定を間違えると、上記エラーになる。

[libdefaults]
 default_realm =

に、大文字でドメインを記述する必要あり。

2012年2月20日月曜日

apache(httpd-2.2.22)のビルドでundefined reference to `apr_array_clear'

新しいサーバを作って、httpd-2.2.22をいつも通りrpmbuildしていたら以下のエラー。

/usr/lib64/apr-1/build/libtool --silent --mode=link gcc -pthread   -pie  -L/usr/kerberos/lib64   -o httpd  modules.lo buildmark.o -export-dynamic server/libmain.la modules/http/libmod_http.la modules/mappers/libmod_so.la server/mpm/prefork/libprefork.la os/unix/libos.la -lm -lpcre /usr/lib64/libaprutil-1.la -lldap -llber -ldb-4.3 -lexpat /usr/lib64/libapr-1.la -lpthread -ldl
modules/http/.libs/libmod_http.a(byterange_filter.o): In function `ap_set_byterange':

byterange_filter.c:(.text+0x130d): undefined reference to `apr_array_clear'
collect2: ld returned 1 exit status

make[1]: *** [httpd] Error 1
make[1]: Leaving directory `/usr/src/redhat/BUILD/httpd-2.2.22/prefork'
make: *** [all-recursive] Error 1
エラー: /var/tmp/rpm-tmp.2174 の不正な終了ステータス (%build)


RPM ビルドエラー:
    /var/tmp/rpm-tmp.2174 の不正な終了ステータス (%build)

どうもインストールされているapr-devel-1.2.7だと定義が不足しているようなので、aprの最新版をダウンロードしてきてインストール。apr-develとapr-util-develのバージョンは指定されてないのに。

うまくいったと思ったら、今度は別のエラー。

RPM ビルドエラー:
    ファイルが見つかりません (by glob): /var/tmp/httpd-2.2.22-1-root/usr/share/man/man8/ab*
    ファイルが見つかりません (by glob): /var/tmp/httpd-2.2.22-1-root/usr/share/man/man8/logresolve*
    ファイルが見つかりません (by glob): /var/tmp/httpd-2.2.22-1-root/usr/share/man/man8/apxs.8*

どうもspecファイルのバグっぽい。先ほどの件といい、2.2.22のspecファイルは微妙かも。
でもrpmで管理したいので結局2.2.21をビルドしてインストールすることに。なんだかなあ。

ちなみにCentOS5.7の64bit環境です。

2011年12月19日月曜日

apacheのrpmbuildでconfigure: error: distcache support failed: can't include distcache headers

httpdをrpmbuildするとよく怒られる。
configure: error: distcache support failed: can't include distcache headers
distcacheのライブラリがないと言ってるだけなので、
yum -y install distcache-devel
 で解決。

2011年10月14日金曜日

gpg を利用したLinuxでのファイル暗号化

GnuPG(gpg)をインストール後、鍵のペアを生成。

# gpg --gen-key

パスフレーズを紛失した時のために、破棄証明書を作成しておく

# gpg -o revcert.asc --gen-revoke user

他のサーバーでimportするための、公開鍵をexport(やる場合)

# gpg -a -o userpub.key --export user

作った公開鍵でファイルを暗号化

# gpg -a -o myfile.enc -e -r user myfile

gpg で失効証明書作ったんだけど

日本語訳がひどいのか原文がひどいのか、ちょっと面白いことに

# gpg -o revcert.asc --gen-revoke test
この鍵にたいする失効証明書を作成しますか? (y/N) y
失効の理由を選択してください:
0 = 理由は指定されていません
1 = 鍵がパクられました
2 = 鍵がとりかわっています
3 = 鍵はもう不用です
Q = キャンセル
(ここではたぶん1を選びます)
あなたの決定は? 3
予備の説明を入力。空行で終了:
>
失効理由: 鍵はもう不用です
(説明はありません)
よろしいですか? (y/N) y

次のユーザーの秘密鍵のロックを解除するには
パスフレーズがいります:“xxxxxxxxxxxxx”
1024ビットDSA鍵, ID 2C114969作成日付は2011-10-14

ASCII包装出力を強制します。
失効証明書を作成しました。

見つからないような媒体に移動してください。もしワルがこの証明書への
アクセスを得ると、そいつはあなたの鍵を使えなくすることができます。
媒体が読出し不能になった場合に備えて、この証明書を印刷して保管するの
が賢明です。しかし、ご注意ください。あなたのマシンの印字システムは、
だれでも見える場所にデータをおくことがあります!

マジか

2011年10月5日水曜日

icmp Destination Host Prohibited

pingで

icmp_seq=1 Destination Host Prohibited
icmp_seq=2 Destination Host Prohibited
icmp_seq=3 Destination Host Prohibited
icmp_seq=4 Destination Host Prohibited
icmp_seq=5 Destination Host Prohibited
...

とか出る場合は、だいたい相手に落とされてる場合が多い。
iptablesの確認をしてもらうのがよいかも。

2011年9月30日金曜日

pamとは

Linuxで認証系の設定をしようとすると避けては通れないPAMのメモ。
PAM:Pluggable Authentication Modulesということくらいは知っていたが、設定がよくわからなかった。

# cat /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_fprintd.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
...

上記は、system-authの抜粋。

左から、
type control module module-arguments
という感じで記述する。
typeは、
auth, account, password, session
の4種類あって、
auth はその名の通り認証系の設定
account は、アカウントの有効期限が正しいか、有効か、などのチェック
password は、チャレンジレスポンス認証などの際に、トークンを更新するのに使う
session は、ロギング等に使う。

controlは、
required, requisite, sufficient, optional, include
の5種類。
required に設定されていると、モジュールを必ず通る
requisite は、requiredに似ているが、失敗するとそこで止まる。
sufficient は、成功するとそこで認証を終わる。