Step 5 :PAM 的設定檔
PAM (Pluggable Authentication Modules)
主要可以讓程式設計者直接取用函數庫來對身份密碼做驗證機制,而程式設計者不需再對身份密碼再做額外的處理
PAM 其主要有三項功能
1.可動態載入函數庫( libraries )
2.安全機制集中管理
3.配置檔在載入時才生效
所有的函數庫( libraries )存在 /lib/sercurity 目錄下
而設定檔存放在 /etc/pam.d 目錄下
函數庫 libraries 也有相對應的參考檔存放在 /etc/security 目錄下
也因此我們可以直接修改 PAM 的設定檔,讓服務能支援 winbind 的身份驗證,下面我們針對不同的服務加以說明
如果剛才加入網域使用 setup 方式來設定 kerberos.那系統會修改 /etc/pam.d/system-auth 檔,如下
[root@benjr ~]#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 /lib/security/$ISA/pam_env.so auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok auth sufficient /lib/security/$ISA/pam_krb5.so use_first_pass auth required /lib/security/$ISA/pam_deny.so account required /lib/security/$ISA/pam_unix.so account [default=bad success=ok user_unknown=ignore service_err=ignore system_err=ignore] /lib/security/$ISA/pam_krb5.so password required /lib/security/$ISA/pam_cracklib.so retry=3 type= password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow password sufficient /lib/security/$ISA/pam_krb5.so use_authtok password required /lib/security/$ISA/pam_deny.so session required /lib/security/$ISA/pam_limits.so session required /lib/security/$ISA/pam_unix.so session optional /lib/security/$ISA/pam_krb5.so
你會發現多出一些使用 pam_krb5.so 的驗證方式.也就是說身份驗證亦可以通過 kerberos 來做.
而 system-auth 是其他服務必須呼叫的.所以此時你的其他服務都可以透過 winbind 向 Windows 的 kerberos 做身份驗證.如果你不想讓每種服務都用 kerberos 的方式驗證,那你必須標記(#)這些設定.也就是上面標成紅色的部分.接下來就只須將個別的服務加上 winbind.so 的支援即可. 如下一步驟所示.
I.Telnet
與 Telnet 相關的 PAM 為 /etc/pam.d/login
[root@benjr ~]#vi /etc/pam.d/login #%PAM-1.0 auth required pam_securetty.so auth sufficient pam_winbind.so auth required pam_stack.so service=system-auth auth required pam_nologin.so account sufficient pam_winbind.so account required pam_stack.so service=system-auth password required pam_stack.so service=system-auth session required pam_stack.so service=system-auth session optional pam_console.so
此時 telnet 與 本機端登入就可以向 Windows 的 kerberos 來做身份驗證了.
II.SSH
與 SSH 相關的 PAM 為 /etc/pam.d/sshd
[root@benjr ~]#vi /etc/pam.d/sshd #%PAM-1.0 auth sufficient pam_winbind.so auth required pam_stack.so service=system-auth auth required pam_nologin.so account sufficient pam_winbind.so account required pam_stack.so service=system-auth password required pam_stack.so service=system-auth session required pam_stack.so service=system-auth session required pam_limits.so session optional pam_console.so
此時 SSH 就可以用 Windows 的 kerberos 來做身份驗證了.
III.X Windows
[root@benjr ~]#vi /etc/pam.d/gdm #%PAM-1.0 auth sufficient pam_winbind.so auth required pam_env.so auth required pam_stack.so service=system-auth auth required pam_nologin.so account sufficient pam_winbind.so account required pam_stack.so service=system-auth password required pam_stack.so service=system-auth session required pam_stack.so service=system-auth session optional pam_console.so
此時 X-Window 就可以用 Windows 的 kerberos 來做身份驗證了.
IV.FTP
[root@benjr ~]#vi /etc/pam.d/vsftpd #%PAM-1.0 auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed auth sufficient pam_winbind.so auth required pam_stack.so service=system-auth auth required pam_shells.so account sufficient pam_winbind.so account required pam_stack.so service=system-auth session required pam_stack.so service=system-auth
此時 FTP 就可以用 Windows 的 kerberos 來做身份驗證了.
5 thoughts on “Linux – samba winbind”