这个月的RHCE考试是结束了,就考试本身谈一下心得。
1. 通知都是早上九点开考,但是北京红帽公司的考点其实是10点开考,别去太早
2. 中午休息一段时间,下午大概是2:00到3:00开考,这个时间有考官灵活掌握,考场环境不算太严肃紧张,不用太担心。
考试内容和网上的接近,但是有几处是需要注意的,因为我下午是满分,上午不是,这里只说下午考试的几个需要注意的知识点,上午的考试很简单,不用太担心,还要注意甄别,大部分复习材料上的题的解答不是全部正确的,有错误和遗漏的地方,不要当那些是标准答案。
1. 拒绝域方面
有的材料建议直接清空iptables,然后用一条命令
iptables -A INPUT -s XX.拒绝域IP.XX -j REJECT
或者
iptables -A INPUT ! -s XX.本域IP.XX -j REJECT
请在考试过程中注意,有些题是要求不能拒绝域访问,有些题是要求只能本域访问,综合起来,因为第三方域的行为未定,用第二条确实可能可以达到目的,但会引起某些服务启动和响应速度很慢比如NFS,但是我的建议是,不要这样做,不要全体拒绝,针对每项服务单独对它控制,不会多花几分钟的时间,而且有保障,并且每个服务都可以通过好几个手段来控制,选择余地很大。原则上几乎每个服务都可以有下面三个手段来控制访问:
- 使用/etc/hosts.deny和/etc/hosts.allow
- 使用iptables控制端口
- 使用配置文件里本身提供的选项
我从RHCE考试的经验来说,建议如下:
对于只允许本域的,建议用hosts文件,hosts.deny里面写ALL,hosts.allow里面写本域IP
而对于拒绝某域的,用iptables。
<1> ftp 服务
ftp我推荐用host文件来做
<<HOSTS文件>>
如果是要求只对本域172.55.10.0/24开放:
/etc/hosts.deny
vsftpd:ALL
/etc/hosts.allow
vsftpd172.55.10.0/24
<<iptables>>
<2> ssh 服务
iptables -A INPUT ! -s 172.55.10.0/24 -t tcp –dport 21 -j REJECT
iptables -A INPUT ! -s 172.55.10.0/24 -t udp –dport 21 -j REJECT
ftp我推荐用host文件来做
<<HOSTS文件>>
<<iptables>>
如果是要求拒绝域172.55.20.0/24不能访问:
/etc/hosts.deny
sshd:172.55.20.0/24
iptables -A INPUT -s 172.55.20.0/24 -t tcp –dport 22 -j REJECT
iptables -A INPUT -s 172.55.20.0/24 -t udp –dport 22 -j REJECT
值得注意的事,在ssh服务里面,一定要认真读题,看清楚是要求某一用户可以访问,某一用户不能访问,还是只可以某一用户访问,还是对组的控制
这时候需要使用配置文件/etc/ssh/sshd_config里面的选项AllowUsers或者AllowGroups,man sshd_config会看到详细介绍。
<3> samba 服务
这个真的很好办,你可以用hosts如上面两个做,也可以在配置文件smb.conf里面写:
[common]
path = /common
hosts allow = 172.55.10.0/24
<4> httpd服务
一般如果是拒绝某个域使用全部httpd的服务,那么就用iptables,但是也可能是针对服务器上的某个虚拟主机或者某个目录,这时候就要配置httpd.conf里面的目录访问控制。
/etc/httpd/conf/httpd.conf
<Directory “/var/www/html”>
Order allow,deny
allow from all
deny from 172.55.20.0/24
</Directory>
注意order里的allow和deny的顺序,顺序在前的规则,假如下面没有给具体from的定义,那么就是默认为all
<5>postfix 服务
这个用配置文件/etc/postfix/main.cf里面的mynetwork项配置即可
也许是我考试的时候没有涉及,所以只用了postfix,根本没用到dovecot
<6>nfs 服务
这个直接把允许的域在配置文件写就行了,如果还有别的域也允许,多写一行就是了
/etc/exports
/common *.xxx.com(rw,sync)
好吧,拒绝域就先说这些。
2. 脚本方面
注意题目的要求,有的输出时要求输出到标准输出,有的是要求到标准错误输出,需要知道默认情况下,是输出到标准输出,比如
echo “Hello”
如果是要求标准错误输出,那么:
echo “Hello stderr”>&2
还有就是一些小陷阱了,只要细心就可以对付,熟悉系统本身是最重要的,有问题去看/var/log/message,实在不行了现场看man手册,怎么也能搞懂的,时间也足够。
声明: 本文只是梳理知识点,没有违法和红帽的保密协议。