Roads to Linux - Sambaのパスワード暗号化
■とりあえずバージョンアップ
Sambaがsamba-1.9.18p7.tar.gzとなっていました。最近のバージョンのほうがスピードが速い等という話も聞きますので、さっそくバージョンアップしておきました。
手順は以前とまったく同じで、展開し、MakefileのFLAGSMを修正し、make; make installで終わりです。smb.confは以前のものがそのまま使えます。
■暗号化パスワードの導入
Windows NT 4.0はService Pack 3になって、パスワードのやり取りを常に暗号化して行うようになりました。これは逆に言えば、パスワードを平文でやり取りするサーバを常に拒否するようになったという事です。案の定、メインマシンのWindows NT 4.0 SP3の環境からは、Sambaのサービスを受ける事ができませんでした。
Samba付属のドキュメントでも述べられている通り、これには2つの対処法があります。ひとつはNTのレジストリに手を加えて、パスワードを平文でやり取りするように設定する方法で、もうひとつは、Samba側で暗号化パスワードを扱うようにする方法です。
Sambaで暗号化パスワードを扱うためには、若干の(管理上の)面倒くささがありますが、どうせ個人ユースですし、何より今後NT(そしてWindows 98)側でいらない苦労をしたくないので、Samba側で対処したほうがましでしょう。
導入作業自体はいたって簡単です。まずsmb.confのグローバルセクションに以下の定義を追加します。
encrypt passwords = yes
次に、暗号化されたパスワードそのものを準備しなければなりません。ENCRYPTION.txtにしたがって、Sambaのソースを展開したディレクトリへ移動し、
cd source
chmod 500 mksmbpasswd
mkdir /usr/local/samba/private
cat /etc/passwd | mksmbpasswd.sh > /usr/local/samba/private/smbpasswd
chown -R root /usr/local/samba/private
chmod 500 /usr/local/samba/private
chmod 600 /usr/local/samba/private/smbpasswd
とします。後は(smbd/nmbdを殺すなりリブートするなりして)Sambaを再起動すれば、暗号化パスワードを扱うようになります。
ただし今後は、ユーザがパスワードを変更する場合、これまで必要だったクライアント(Windows等)とLinux(passwdコマンド)の他に、/usr/local/samba/smbpasswdコマンドによる暗号化パスワードの変更も行わなければなりません。