Google Code Prettify

2007年11月10日

Leopard はサーバが無くともKerberos認証つかってるらしい?

ふと、sudo klist -k とかすると、サーバでも無いのにサービス鍵が登録されている。

Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   3 afpserver/LKDC:SHA1.####@LKDC:SHA1.#### (Triple DES cbc mode with HMAC/sha1)
   3 afpserver/LKDC:SHA1.####@LKDC:SHA1.#### (ArcFour with HMAC/md5)
   3 afpserver/LKDC:SHA1.####@LKDC:SHA1.#### (DES cbc mode with CRC-32)
   3 cifs/LKDC:SHA1.####@LKDC:SHA1.#### (Triple DES cbc mode with HMAC/sha1)
   3 cifs/LKDC:SHA1.####@LKDC:SHA1.#### (ArcFour with HMAC/md5)
   3 cifs/LKDC:SHA1.####@LKDC:SHA1.#### (DES cbc mode with CRC-32)
   3 vnc/LKDC:SHA1.####@LKDC:SHA1.#### (Triple DES cbc mode with HMAC/sha1)
   3 vnc/LKDC:SHA1.####@LKDC:SHA1.#### (ArcFour with HMAC/md5)
   3 vnc/LKDC:SHA1.####@LKDC:SHA1.#### (DES cbc mode with CRC-32)

ファイル共有や画面共有とかのスタンドアーロンな認証でも、Kerberos 認証に移行するらしい。AFP/SAMBA/VNCとかは、パスワード認証不可なのか??

まぁ、セキュリティ的には安全性の高い方向への舵取りなんだろうな。

Kerberosのセキュリティ情報とかは、Leopard では結構重要な悪い知らせになるのだろうなぁ。

ローカルのKDCのレルム名はどう算出するのだろう? Bonjour ? 、、、そのうち情報が出てくるのかなぁ。

追記 (2007/11/30)

専門家では、peer-to-peer Kerberos とか呼ばれているらしい。本当か!?

ローカルKDCのレルム名は、システムキーチェーン /Library/Keychains の中にあるカスタム証明書「com.apple.kerberos.kdc」の Fingerprint のSHA1の値を使っているらしい。

LKDC:SHA1.<証明書com.apple.kerberos.kdcのfingerprintのsha1値>

秘密鍵とか公開鍵とかがなんか使ってるのかなぁ。

Leopard では、KDCデーモン krb5kdc を生成する kdcmond がレルム名やサーバ名等々をBonjour に登録するらしい(manを見る限り)が、、、、どうも取り方がわからん。

追記 (2008/08/28)

LKDC の レルム名は、次のように特殊な名前のTXTレコードの問い合わせを使うらしい。

# dns-sd -Q _kerberos.hostname.local txt

avahiではこの形の問い合わせや通知が出来ないので、もうひねり加えないと使えない模様である。

2007年11月7日

Leopard が netatalk サーバを自動的に見つられる設定

Leopard は、いい意味でも悪い意味でも、過去の遺産をばっさり切り捨てたツンなOSである。

SLP によるサービス検索機能がなくなってしまったらしく、 netatalk は AFPサーバ機能を SLP 通知しているので見つけられなくなってしまったらしい。

そんな人は、avahi を使えとか言われるが、設定方法があまり載っていない。。。

Debian/etch だと avahi-daemon は設定が何もなく?困るし。。。

avahi でサービスを通知する方法

ドキュメントを読めばよく、sshサービスのサンプルもついてくる。

/etc/avahi/services/ssh.services

<?xml version="1.0" standalone='no'?>
<service-group>
<name replace-wildcards="yes">Remote Terminal on %h</name>
    <service>
        <type>_ssh._tcp</type>
        <port>22</port>
    </service>
</service-group>

avahi-daemon を再起動させると、Leopard の「ターミナル」の「新規リモート接続」のリストに自動的に追加される。

netatalk を通知するには、AFPのサービスタイプ(http://www.dns-sd.org/ServiceTypes.html を参考)を指定して、

/etc/avahi/services/afp.services

<?xml version="1.0" standalone='no'?>
<service-group>
<name replace-wildcards="yes">%h</name>
    <service>
        <type>_afpovertcp._tcp</type>
        <port>548</port>
    </service>
</service-group>

ついでに Samba と区別ができなくなるので、

/etc/avahi/services/smb.services

<?xml version="1.0" standalone='no'?>
<service-group>
<name replace-wildcards="yes">Samba on %h</name>
    <service>
        <type>_smb._tcp</type>
        <port>139</port>
    </service>
</service-group>

Finder のサイドバーの共有のリストに、samba/netatalk のエントリが追加され、ちょっといい感じになります。

追記

Open Directory の設定のまとめ 2008Q1

OpenDirectory で Feodra/CentOSを 認証

Open Directory を立ち上げるのは非常に簡単である。 例えば、インストールするとき標準構成とかを選べば、勝手に OpenDirectory のマスターが出来上がるし、それ以外の構成でもGUIのツールを使い、LDAPの基本DNやKerberosのrealm名を指定して数クリックで完了する。

これだけで、LDAPサーバとKerberosサーバ群が直に使える状態になるのは、なんというか、、、楽だ。

CentOS5/Fedora7 の認証

authconfig を使えば、簡単にできる。同様なGUIの管理ツールauthconfig-gtk があるのでこっちを使ってよいかも。

  • ユーザ情報には、LDAPサポートを有効にして、LDAPの設定情報に OpenDirectory の検索ベースとIPアドレスを指定する。
  • 認証には、Kerberosサポートを有効にして、Realm /KDC/管理サーバに、OpenDirectoryのKerberos領域とIPアドレスとポート番号(KDCは88/管理サーバ749)を指定する。

上記に設定で書き換わるのは、次のファイル群なので面倒な問題が起きた場合これらのファイルを眺めればいい。

  • /etc/nsswitch.conf
  • /etc/krb5.conf
  • /etc/pam.d/system-auth
  • /etc/ldap.conf

大体、RedHat7くらいから同様な設定で行けたみたいだ。。。知らんかった。。。(RedHat6.2とかだともう一捻りが必要だ、、、多分知らんでもいいと思う。)

2つ問題点

Open Directory から提供されるうち基本的な部類の情報に プラットホーム依存なものがある。

  • ログインシェル
  • ホームディレクトリ

どのプラットホームに共通してあるシェルは、/bin/sh と /bin/csh くらいだが、bash がなければ別途パッケージをいれ、/bin/bash にシンボリックリンクを張れば、/bin/bash を指定できるので、大した問題では無い。

残るのは、ホームディレクトリをどうするねん。。。 ネットワークファイルシステムはどれにするとか、 オートマウントを使うか使わないかとか、、、それはプラットホーム依存ばりばりなんだなぁ。。。

で、Leopard で実装された autofs がLDAPからマップ情報をとれるので、これは面白いことになってきたって話。。。。(続く)

追記

Open Directory の設定のまとめ 2008Q1

久しぶりの投稿

かなり期間が空いてしまったが、ブログを再開してみようと思う。 2013年3月が直前の投稿だったが、頻繁に更新していた時期が 2011年11月までなので、8年間ぶりとなる。 8年間なにをしていたのかと言えば、2回転職して未だにIT技術者の職を得ている。 その...