22.2.3. 暗号化パスワード
暗号化パスワードはより安全であるため、デフォルトで有効になっています。暗号化したパスワードが使用されていない場合は、プレーンテキストのパスワードが使用されます。これは、ネットワークパケットスニファーを使用して傍受できます。暗号化されたパスワードを使用することが推奨されます。
Microsoft SMB Protocol は、当初はプレーンテキストのパスワードを使用していました。ただし、Windows NT 4.0 と Service Pack 3 以降、Windows 98、Windows 2000、Windows ME、および Windows XP には暗号化された Samba パスワードが必要です。Linux システムと、これらの Windows オペレーティングシステムのいずれかを実行しているシステム間で Samba を使用するには、Windows レジストリーを編集してプレーンテキストのパスワードを使用するか、暗号化されたパスワードを使用するように Linux システムで Samba を設定します。レジストリーの変更を選択した場合は、すべての Windows マシンについてこれを実行する必要があります。これはリスクであり、さらに競合が生じる可能性があります。セキュリティーの強化には、暗号化されたパスワードを使用することが推奨されます。
Samba が暗号化パスワードを使用するように設定するには、以下の手順に従います。
- Samba 用に別のパスワードファイルを作成します。既存の
/etc/passwdファイルに基づいてシェルプロンプトでこれを作成するには、以下のコマンドを入力します。cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswdCopy to Clipboard Copied! Toggle word wrap Toggle overflow システムが NIS を使用する場合は、以下のコマンドを入力します。ypcat passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
ypcat passwd | mksmbpasswd.sh > /etc/samba/smbpasswdCopy to Clipboard Copied! Toggle word wrap Toggle overflow mksmbpasswd.shスクリプトは、sambaパッケージで/usr/binディレクトリーにインストールされます。 - root のみに読み取りおよび書き込み権限が割り当てられるように、Samba パスワードファイルのパーミッションを変更します。
chmod 600 /etc/samba/smbpasswd
chmod 600 /etc/samba/smbpasswdCopy to Clipboard Copied! Toggle word wrap Toggle overflow - このスクリプトは、ユーザーパスワードを新しいファイルにはコピーされず、Samba ユーザーアカウントはパスワードが設定されるまでアクティブになりません。セキュリティーを強化する場合は、ユーザーの Samba パスワードをユーザーのシステムパスワードとは異なることが推奨されます。各 Samba ユーザーのパスワードを設定するには、以下のコマンドを使用します( username を各ユーザーのユーザー名に置き換えます)。
smbpasswd username
smbpasswd usernameCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 暗号化パスワードを有効にする必要があります。これらはデフォルトで有効にされているので、設定ファイルで明示的に有効にする必要はありません。ただし、設定ファイルで無効にすることはできません。
/etc/samba/smb.confファイルで、以下の行が存在しないことを確認します。encrypt passwords = no
encrypt passwords = noCopy to Clipboard Copied! Toggle word wrap Toggle overflow 行の先頭にあるセミコロン(;)でコメントアウトされていても、その行は無視され、暗号化されたパスワードが有効になります。この行が存在していてもコメントアウトされていない場合は、削除するか、コメントアウトします。設定ファイルで暗号化されたパスワードを有効にするには、以下の行をetc/samba/smb.confに追加します。encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd
encrypt passwords = yes smb passwd file = /etc/samba/smbpasswdCopy to Clipboard Copied! Toggle word wrap Toggle overflow - シェルプロンプトで command service smb restart を入力し、smb サービスが起動していることを確認します。
- smb サービスが自動的に起動するようにするには、ntsysv、chkconfig、または Services Configuration Tool を使用してランタイム時に有効にします。詳細は、19章 を参照してください。
pam_smbpass PAM モジュールを使用して、passwd コマンドの使用時に、ユーザーの Samba パスワードをシステムパスワードと同期できます。ユーザーが passwd コマンドを呼び出すと、Red Hat Enterprise Linux システムへのログインに使用するパスワードと、Samba 共有への接続に必要なパスワードが変更されます。
この機能を有効にするには、
pam_cracklib.so 呼び出しの下にある /etc/pam.d/system-auth に次の行を追加します。
password required /lib/security/pam_smbpass.so nullok use_authtok try_first_pass
password required /lib/security/pam_smbpass.so nullok use_authtok try_first_pass