RHEL3複習點和RHEL4知識點補充(轉)

roninwei發表於2006-08-21
RHEL3複習點和RHEL4知識點補充(以RHEL4為基礎)
補充部分是參考JACKSON兄和SUDDENLY5171兄的總結大作!連結在此:

===========[ TROUBLESHOOTING ]=================
1.各重要命令與檔案的RPM包出處表。(RHEL4版)
程式碼:
1. initscripts-7.93.11.EL-1 : /etc/inittab, /etc/rc*, /etc/sysconfig/*, /sbin/ifup,/sbin/ifdown,/sbin/redhat-support-check,/sbin/initlog, etc. 2.util-linux-2.12a-16.EL4.6 : /bin/mount, /bin/login, /bin/umount,/bin/kill, /etc/pam.d/login,/sbin/fdisk, etc. 3.filesystem-2.3.0-1 : /initrd, /proc, /root, etc. All filesystem related. 4.SysVinit-2.85-34 : /sbin/halt, /sbin/init, /sbin/poweroff, /sbin/reboot, /sbin/shutdown, /sbin/telinit, etc. 5.kernel-utils-2.4-13.1.48, kernel-devel-2.6.9-5.EL, kernel-2.6.9-5.EL, etc. All kernel related packages contain RHEL4 kernel and tools. 6.Setup-2.5.37-1.1 : /etc/aliases, /etc/bashrc, /etc/environment, /etc/exports, /etc/filesystems, /etc/group, /etc/passwd, /etc/hosts.allow, /etc/hosts.deny, /etc/profile, /etc/services, /etc/securetty, /etc/shells, /etc/printcap, /etc/inputrc, etc. 7.bash-3.0-19.2 : /bin/bash, /bin/sh, /etc/skel/*, etc. 8.rpm-4.3.3-7_nonptl and all rpm related packages contain rpm related binaries. 9.Grub-0.95-3.1 : /boot/grub/*, /sbin/grub*, /usr/share/grub/*, etc. 10. /etc/fstab 和 /boot/grub/grub.conf 或 menu.lst不屬於任何一個包,是系統安裝後產生的,所以必須手動修復!!


2.Troubleshooting 補充:

1. MBR損壞。 實驗可以將頭446位元組mess up掉,然後練習修復。(注:請不要在自己的機子上實驗這個!!!後果自負!!!
程式碼:
dd if=/dev/zero of=/dev/hda bs=446 count=1
然後rescue修復。主引導扇區一共512位元組,剩下的是分割槽表。我曾經把分割槽表都刪過,修復方法似乎只有一個,就是你得記得你上次分割槽的大小和次序,重新分割槽,不格式化!!還能找回原來的東西。

2. 補充幾個出錯資訊:
1.當/etc/passwd丟失時,將會看到大量的服務無法啟動,因為大多數的服務都有自己的UID。可以看到LOGIN 介面,但無法LOGIN。從RESCUE模式修復,但是無法完全修復,因為許多UID是伺服器安裝時加入的,最初的/etc/passwd並沒有那些UID。
2.當ifup, ifdown丟失時,將給出execvp錯誤,方法是進RESCUE, 重灌initscripts包。

3.QUOTA
程式碼:
edquota -t
改變quota的寬限時限。

4.LVM,RAID (這個在RHEL4中有很大的改動!)
e2fsadm命令取消,改為ext2online. 只能無損增加,無法減少。有個ext2resize命令,但RHEL4預設沒有安裝,而且不再binary包中,要自己從src中編譯。
增加的方法是:
程式碼:
lvextend -L +sizes lvname; ext2online /path/to/lvname
無須解除安裝檔案系統。

RAIDTOOLS包被取消,改為mdadm. 建立方法為:
程式碼:
mdadm -C /dev/md0 -l5 --raid-devices= /dev/xx /dev/yy /dev/zz ... --spare-device= /dev/qq -v
這裡的例子是建立一個RAID5,所以-l5,要建立其他形式的RAID,參見mdadm的manpage. -v表示verbose mode.
建立mdadm.conf檔案:
程式碼:
mdadm –--detail –--scan >/etc/mdadm.conf
編輯/etc/mdadm.conf檔案,將device行改為以space分割,也就是說將=,和“,”都去掉,變為space。因為如果直接使用,重啟後會報語法錯誤。
管理RAID:
程式碼:
mdadm /dev/md0 -f /dev/xx -r /dev/xx -a /dev/nn -f set faulty, -r hot remove device, -a hot add device

============[ Installation and Configuration ] =========

5.Apache
RHEL4中Apache加了mysql和ldap模組。其中如果mysql模組被選中安裝後將自動生效,也就是說apache將以mysql為backend資料庫進行授權的管理,.htaccess的功能被替代,而不能生效。

6.Samba
補充幾個有用的samba命令。
#從samba伺服器上備份共享下的目錄。
程式碼:
smbtar -s host -x share -d dir -u user -p passwd -t tarfile
#從備份的機器上還原備份。
程式碼:
smbtar -r -s host -x share -d dir -u user -p passwd -t tarfile
#Login samba伺服器
程式碼:
smbclient //host/share -U user
#List
程式碼:
smbclient -L host -N (驗證samba是否起了); smbtree
#check if a host/ip has access to a samba server.
程式碼:
testparm /etc/samba/smb.conf host/ip
#smbpasswd
程式碼:
smbpasswd -a|-e|-d|-x user -a add -e enable -d disable -x delete

7.POP3, POP3S, IMAP, IMAPS
In RHEL4, dovecot提供了這些服務,具體配置:
編輯/etc/dovecot.conf檔案,在protocals=一行,加入你需要的(或是考試要求的服務)。預設的ports:
imap: 143
imaps: 993
pop3: 110
pop3s: 995
ssl_cert_file and ssl_key_file,可以看到dovecot是拿什麼檔案來做ssl認證的,可以自己建立新的pem檔案。
我將disable_plaintext_auth 配置為 no
我將auth_mechanisms配置為plain.
auth_userdb=passwd. 也就是說預設為所有local user 都能登入。
在auth_passdb=pam項後可增加對pop3配置檔案。(預設沒有,要自己建立)
/etc/pam.d/pop3檔案內容如:
程式碼:
auth required /lib/security/pam_stack.so service=system-auth auth required pam_unix.so auth required pam_listfile.so item=user sense=deny file=/etc/security/dovecot.deny onerr=fail account required /lib/security/pam_stack.so service=system-auth #account required pam_access.so account required pam_unix.so
我用了pam_listfile.so模組,當然也可以用pam_access.so模組來限定。
這些服務也可以由inetd和xinetd來守護,具體做法請看:

測試: telnet host 110
然後輸入: user username
pass password
如果LOGIN成功,會有提示。

8.各種服務的user base和host base 安全配置補充:
NIS: 可以實現userbase和hostbase,方法:
userbase - 在/etc/pam.d/system-auth中加入:
程式碼:
auth required pam_listfile.so item=user sense=deny file=/path/to/nis.deny onerr=fail
然後在nis.deny檔案中加入你要block的使用者,一行一個。
Hostbase - 將securenets檔案由/usr/share/doc/ypserv-2.13考到/var/yp目錄下,編輯。格式為: netmask network

portmap: 得用iptables或tcp_wrapper做hostbase, userbase應該是沒有了。

NFS: Don't use “no_root_squash”. Use root_squash or all_squash.

Telnet: hosts.deny和hosts.allow做hostbase。或用xinetd做superserver控制。RHEL4上的telnet無法配合pam_access.so做userbase控制,懷疑是沒有將pam編譯進去?!

Apache: 如果要做userdir, 可以在httpd.conf中加入directives:
程式碼:
UserDir enabled user_list UserDir disabled user_list
user_list 是space 分隔的使用者列表,控制哪些使用者可以有自己的userdir,哪些不行。

FTP: upload的目錄chmod為730,也就是說可以上傳,不能瀏覽目錄。

samba: RHEL4中samba除了可以用smb.conf和hosts.allow, hosts.deny只外,還可以用pam。

squid: RHEL4中squid已經可以透過pam做userbase級控制了。

sshd: RHEL4中還可以用pam來做userbase控制。

另外增加su和sudo的userbase級配置方法:
如果只要root和wheel組的成員才能su或是sudo, 在各自的pam檔案中加入:
#root 永遠都能。
程式碼:
auth sufficient pam_rootok.so
#檢查使用者是不是在wheel組中。
程式碼:
auth required pam_wheel.so
#檢查其他要求。
程式碼:
auth required pam_unix.so
不過sudo我還是更偏向於在sudoers中配置。

9.GPG
#生成密匙
程式碼:
gpg –gen-key
#顯示密匙,公匙,私匙
程式碼:
gpg --list-keys gpg --list-public-keys gpg –list-secret-keys
#以ascii形式dump出公匙,私匙。
程式碼:
gpg --export -a userID >public.key gpg --export-secret-key -a userID>secret.key
#匯入key.file
程式碼:
gpg --import key.file
# 加密生成signaure和公匙加密的檔案。
程式碼:
gpg -se -r userID file
#加密生成沒有signaure的加密檔案。
程式碼:
gpg -e -r userID file
#加密生成signaure和symmetric形式的加密檔案。
程式碼:
gpg -sc -r userID file
#加密生成沒有signaure的symmetric加密檔案。
程式碼:
gpg -c -r userID file
#加密生成sig式的detachable檔案。
程式碼:
gpg -b -r userID file
#解密檔案
程式碼:
gpg [--decrypt] file
#複核sig檔案。
程式碼:
gpg --verify sig.file
#刪除密匙,私匙,私匙和公匙。
程式碼:
gpg --delete-key userID gpg --delete-secret-key userID gpg --delete-secret-and-public-key userID
更多的用法請參看manpage.
[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7507082/viewspace-859011/,如需轉載,請註明出處,否則將追究法律責任。

相關文章