RHEL3复习点和RHEL4知识点补充(以RHEL4为基础)
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=<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模块来限定www.linuxidc.com。
这些服务也可以由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控制。
如果只要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.