|
RHEL3复习点和RHEL4知识点补充(以RHEL4为基础)
补充部分是参考JACKSON兄和SUDDENLY5171兄的总结大作!链接在此:
http://www.linuxsir.cn/bbs/showthread.php?t=200208
同时感谢kevin的三篇经典实验帖!
还有什么没有覆盖到的,或是错误的地方,或是新发现的基于RHEL4的特点,请大家加以补充和修正。谢谢!
===========[ TROUBLESHOOTING ]=================
1.各重要命令与文件的RPM包出处表。(RHEL4版)
- [/b]
- 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.
- [b]10. /etc/fstab 和 /boot/grub/grub.conf 或 menu.lst不属于任何一个包,是系统安装后产生的,所以必须手动修复!![/b]
复制代码
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
改变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=<num> /dev/xx /dev/yy /dev/zz ... --spare-device=<num> /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来守护,具体做法请看:
http://wiki.dovecot.org/moin.cgi/InetdInstall
测试: 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 --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
# 加密生成signaure和公匙加密的文件。
#加密生成没有signaure的加密文件。
#加密生成signaure和symmetric形式的加密文件。
#加密生成没有signaure的symmetric加密文件。
#加密生成sig式的detachable文件。
#解密文件
#复核sig文件。
#删除密匙,私匙,私匙和公匙。
- gpg --delete-key userID
- gpg --delete-secret-key userID
- gpg --delete-secret-and-public-key userID
复制代码
更多的用法请参看manpage. |
|