︿
Top

Lab 1. 設定 NIS Client 配合 autofs 設定

本實作為設定 NIS Client 並且配合 autofs 設定使 NIS Client 使用者登入時能自動 Mount 到 NIS Server 分享的資源並順利登入使用者家目錄, NIS Client 所需用到的套件為 portmap、ypbind、yp-tools、authconfig、authconfig-gtk 因此在安裝前請先確定系統是否已安裝相關套件。


rpm -qa portmap ypbind yp-tools authconfig authconfig-gtk
 ypbind-1.19-11.el5
 authconfig-gtk-5.3.21-5.el5
 portmap-4.0-65.2.2.1
 yp-tools-2.9-0.1
 authconfig-5.3.21-5.el5

相關套件安裝完畢後可執行 authconfig-tui 指令來設定 NIS Server 資訊,下述 NIS Server 資訊設定完成後按下 OK 後系統會自動啟動相關服務,利用 getent 指令來查看是否能順利與 NIS Server 溝通。
authconfig-tui         //準備設定 NIS Server 資訊
 [*] Use NIS              //選擇此項
 Domain: notexample       //指定 NIS Domain 資訊
 Server: 192.168.0.254    //指定 NIS Server IP
getent passwd          //設定正確會顯示一些非本機帳號 (例如 nisusers*)

順利與 NIS Server 溝通後若此時登入後會發生找不到使用者家目錄的問題? 因為使用者登入後會找使用者家目錄 (但家目錄在 NIS Server 上不在 NIS Client 上),因此在 NIS Client 上設定 autofs 當 NIS 使用者登入時會自動 Mount NIS Server 資源順利登入家目錄,所以 下述的 autofs 設定為將 NIS Client 本機上的 /home/nisusers/* 目錄對應到遠端 NIS Server 上的 /home/nisusers/nisusers* 使用者帳號資料夾。
showmount –e 192.168.1.1    //查詢 NIS Server 是否把 nisusers* 家目錄分享出來
vi /etc/auto.master         //設定 autofs 主設定檔
 /home/nisusers     /etc/auto.nisusers             //增加此行設定
vi /etc/auto.guests         //設定 autofs 副設定檔
 *  -rw,soft  192.168.0.254:/home/nisusers/&       //自動對應 nisusers 下所有家目錄
chkconfig autofs on ; chkconfig --list autofs  //設定開機自動啟動 autofs 服務
 autofs          0:off   1:off   2:on    3:on    4:on    5:on    6:off
service autofs restart      //重新啟動 autofs 服務
su – nisusers2001           //試試能不能使用 NIS User 帳號登入 NIS Client 並順利找到家目錄 (第一次會失敗,第二次之後就會成功)




Lab 2. 設定 LDAP Client 配合 autofs 設定

本實作為設定 LDAP Client 並且配合 autofs 設定使 LDAP Client 使用者登入時能自動 Mount 到 LDAP Server 分享的資源並順利登入使用者家目錄, LDAP Client 所需用到的套件為 authconfig、authconfig-gtk、openldap、openldap-clients、nss_ldap 因此在安裝前請先確定系統是否已安裝相關套件。
rpm -qa authconfig authconfig-gtk openldap openldap-clients nss_ldap
 openldap-2.3.43-3.el5
 openldap-clients-2.3.43-3.el5
 authconfig-5.3.21-5.el5
 authconfig-gtk-5.3.21-5.el5
 nss_ldap-253-17.el5

相關套件安裝完畢後可執行 authconfig-tui 指令來設定 LDAP Server 資訊,下述 LDAP Server 資訊設定完成後按下 OK 後系統會自動啟動相關服務,利用 getent 指令來查看是否能順利與 LDAP Server 溝通。
authconfig-tui                             //準備設定 LDAP Server 資訊
 [*] Use LDAP                                //選擇此項
 [*] Use LDAP Authentication                 //選擇此項
 [*] Use TLS                                 //選擇此項
 Server: ldap://server1.example.com/         //指定 LDAP Server 資訊
 Base DN: dc=example,dc=com                  //指定 LDAP Domain 資訊
cd /etc/openldap/cacerts                  //切換到憑證路徑
wget ftp://server1/pub/EXAMPLE-CA-CERT  //從 LDAP Server 下載用於 TLS 加密憑證到本機
getent passwd                              //設定正確會顯示一些非本機帳號 (例如 ldapusers*)

順利與 LDAP Server 溝通後若此時登入後會發生找不到使用者家目錄的問題? 因為使用者登入後會找使用者家目錄 (但家目錄在 LDAP Server 上不在 LDAP Client 上),因此在 LDAP Client 上設定 autofs 當 LDAP 使用者登入時會自動 Mount LDAP Server 資源順利登入家目錄,所以 下述的 autofs 設定為將 LDAP Client 本機上的 /home/ldapusers/* 目錄對應到遠端 LDAP Server 上的 /home/ldapusers/ldapusers* 使用者帳號資料夾
showmount –e 192.168.1.1   //查詢 NIS Server 是否把 ldapusers* 家目錄分享出來
vi /etc/auto.master        //設定 autofs 主設定檔
 /home/ldapusers     /etc/auto.ldapusers   //增加此行設定
vi /etc/auto.guests        //設定 autofs 副設定檔
 *  -rw,soft  192.168.0.254:/home/ldapusers/&      //自動對應 nisusers 下所有家目錄
chkconfig autofs on ; chkconfig --list autofs   //設定開機自動啟動 autofs 服務
 autofs          0:off   1:off   2:on    3:on    4:on    5:on    6:off
service autofs restart     //重新啟動 autofs 服務
su – ldapusers2001         //試試能不能使用 LDAP User 帳號登入 LDAP Client 並順利找到家目錄 (第一次會失敗,第二次之後就會成功)




Lab 3. ACLs 權限設定

為何需要設定 ACL? 因為雖然有 Owner、Group、Other 來設定權限但在企業環境中常常會有某個部門的某個人需要存取資源,但您又希望只是暫時的開放存取權限,即可使用 ACL 來達成此一目的。
chmod 1777 /opt
getfacl /opt     //查看 opt 資料夾目前 ACLs 設定
 # file: opt
 # owner: root
 # group: root
 user::rwx
 group::rwx
 other::rwx

下列設定使用者帳號 weithenn 可對於 /opt 資料夾有讀取、寫入、執行的權限,至於加上 default 參數為, /opt 資料夾下所有的檔案及資料夾都會繼承上層的ACLs 設定。
setfacl -m u:weithenn:rwx /opt    //設定 ACLs
setfacl -m d:u:weithenn:rwx /opt  //加上 default (也就是其下所有檔案及資料夾都繼承上層的 ACLs 設定)
getfacl /opt            //查看 opt 資料夾目前 ACLs 設定
 # file: opt
 # owner: root
 # group: root
 user::rwx
 user:weithenn:rwx       //可發現使用者帳號 weithenn 被加入
 group::rwx
 mask::rwx
 other::rwx
vi /etc/fstab           //修改 File System Table 設定檔
 LABEL=/opt  /opt  ext3  default,acl  1 2  //加上 acl 參數
mount –o remount /opt   //重新掛載該掛載點
mount
 /dev/hda5 on /opt type ext3 (rw,acl)      //查看掛載資訊 (opt 出現 acl 代表 ACL 機制生效)




Lab 4. Disk Quota 設定

簡單來說設定硬碟磁碟配額 (Disk Quota) 的用意就是避免因為使用者無止盡的存放檔案而系統的規劃又不良好時將造成系統硬碟空間被吃光,此時我們便可利用 Quota 來強制管理硬碟空間。

Quota 管理使用對象
  • UserQuota:針對 使用者 硬碟空間做限制。
  • GroupQuota:針對 群組 硬碟空間做限制。

Quota 管理資料類別
  • 磁碟空間 (kbytes):針對 硬碟空間 作管理 (單位為 kbytes,所以 10 MB = 10240 kbytes)。
  • 檔案數量 (inode):針對 檔案數量 作管理。

Quota 管理配額方式
  • 非強制性限制 (Soft limit):超過指定大小但未超過 Hard limit 時系統會警告,直到 超過警示的時間 (grace time,預設七天)未降低使用量便會禁止寫入資料。
  • 強制限制 (Hard limit):超過這個大小,系統會馬上 禁止 寫入資料。

Quota 資訊我們大概可以分成三個部份來看,如下所示


useradd weithenn        //新增使用者帳號 weithenn
vi /etc/fstab           //修改 File System Table 設定檔
 LABEL=/home   /home      ext3    defaults,usrquota        1 2  //再要設定 Quota 的掛載區加上 usrquota 參數
mount –o remount /home  //重新掛載該掛載點
mount                   //查看掛載資訊 (home 出現 usrquota 代表 Quota 機制生效)
 /dev/hda5 on /home type ext3 (rw,usrquota)
quotacheck –a           //產生 Quota 資料檔
quotaon –a              //啟用 Quota 機制
edquota weithenn        //設定 Quota 資訊 (當您離開編輯器後所定義的磁碟配額設定就會馬上生效)
quota -u weithenn       //查看指定後的 Quota 資訊如下 (指定非強制 0.9 MB,強制 1MB )
 Disk quotas for user weithenn (uid 501):
 Filesystem   usage   quota   limit   grace   files   quota   limit   grace
     /home    60      921     1024            30      0       0          
repquota -a             //列出所有使用者的 Quota  資訊   

設定完成後切換成使用者帳號 weithenn 來進行 Quota 測試
su – weithenn           //切換為使用者 weithenn
dd if=/dev/zero of=/home/weithenn/f1 bs=1M count=4  //新增一個 4MB 的檔案 (應該會被拒絕,代表 Quota 機制生效)
quota                   //使用者 weithenn 查看自已的 quota 狀態


Lab 5. 設定檔案的 SELinux

本次實作為了解 SELinux 的設計理念及概念,可以發現 cron 檔案在 /var/log 及被搬移到 /root 下時 SELinux 的權限設定不同所造成的影響。
setenforce 1          //設定 SELinux 為 Enforce (強制)
sestatus              //查看系統目前 SELinux 狀態
 SELinux status:         enabled
 SELinuxfs mount:        /selinux
 Current mode:            enforcing
 Mode from config file: enforcing
 Policy version:         21
 Policy from config file: targeted
mv /var/log/cron /root   //將 cron 檔案搬到 root 家目錄
restorecon ~/cron         //將 root 家目錄的 SELinux 權限套用至 cron 檔案上
mv ~/cron /var/log/       //再把 cron 檔案搬回 /var/log 下
ls -Z /var/log/cron*     //查看 cron* 的 SELinux 設定
 -rw-------  root root root:object_r:var_log_t      cron      //SELinux 為 root
 -rw-------  root root system_u:object_r:var_log_t  cron.1
 -rw-------  root root system_u:object_r:var_log_t  cron.2

此時若您重新啟動 cron 服務可以發現會有錯誤訊息,因為 cron 的 SELinux 權限不對!! 還原 cron 的 SELinux 權限方法如下,請依個人喜好擇一即可。
restorecon /var/log/cron                    //方法一 還原 cron 的 SELinux 權限
chcon --reference /var/log/cron.1 cron   //方法二 還原 cron 的 SELinux 權限
ls -Z cron*
 -rw-------  root root system_u:object_r:var_log_t   cron      //SELinux 為 system
 -rw-------  root root system_u:object_r:var_log_t   cron.1
 -rw-------  root root system_u:object_r:var_log_t   cron.2
文章標籤: