承接上一篇RHCSA,下面我们继续分享RHCE的相关内容
以下是我的成绩,险过,自认为复习应该算是很充分了,但是没有发挥好,下面跑下题展开讲讲。
下午的RHCE是13:30开始,真的是很倒霉,考试环境全部出现问题,老师开始排查,我们所有人陷入焦急的等待,经过1.5小时尝试多次无果之后,老师就开始重装所有考试环境,这一等又是1个小时,4点钟才开始正式考试。由于我不在北京工作,本来打算当天返程,买的18点的高铁票,最后没办法改签到19点(19点以后的都没票了),考点到车站1个小时左右,所以我最多只有2个小时完成考试,所以当时压力有点大。一个多小时做完后,检查时发现了点问题,排查花了不少时间,最终没完全检查一遍,提前半小时离开也能赶上火车。
首先找下自身的原因:1、心里承受能力不行,当事情发生后,没能做好最坏的打算,当过程超出计划后,乱了阵脚。2、对于某些知识点,掌握还不够透彻,排查问题不够迅速。
顺便也吐槽下红帽公司,我也准备走官方渠道去投诉。1、考试环境出现问题,本应提前发现并解决,而不是在开考后;2、考试环境恢复太慢,监考老师应该尽快恢复考试环境,让大家开考,而不是排查原因,耽误大家时间;3、在影响了考生的心态,产生了不必要的费用,红帽公司并没有给出任何解释和补偿。
吐槽完毕,言归正传,总结下RHCE考题中的经验教训,主要是难点和易错的题目。
题目本身不难,可以采用tcp_wrappers方式配置,注意域名对应的IP段别弄错就行(在考前说明里会写明,或者自己ping下域名)
tcp_wrappers简介和工作原理
tcp_wrappers是一个工作在第四层(传输层)的的安全工具,对有状态连接的特定服务进行安全检测并实现访问控制,凡是包含有libwrap.so库文件的的程序就可以受tcp_wrappers的安全控制。它的主要功能就是控制谁可以访问,常见的程序有rpcbind、vsftpd、sshd,telnet。
tcp_wrappers有一个tcp的守护进程叫作tcpd。以ssh为例,每当有ssh的连接请求时,tcpd即会截获请求,先读取系统管理员所设置的访问控制文件,符合要求,则会把这次连接原封不动的转给真正的ssh进程,由ssh完成后续工作;如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供ssh服务。
图片来自于:https://www.cnblogs.com/duzhaoqi/p/7607801.html
tcp_wrappers的使用主要是依靠两个配置文件/etc/hosts.allow, /etc/hosts.deny,用于拒绝和接受具有tcp_wrappers控制全的程序,详细信息具体可以查看man帮助(man hosts_access, man hosts_options)
配置文件格式遵循如下规则:
daemon_list@host: client_list [:options :option…]
daemon_list: 是程序的列表,可以是多个,是多个时,使用,
隔开
@host:可以没有,没有就代表全部。
client_list:是访问者的地址,如果需要控制的用户较多,可以使用空格或,隔开,格式如下:
基于IP地址: 192.168.10.1 192.168.1.
基于主机名: www.magedu.com .magedu.com 较少用
基于网络/掩码: 192.168.0.0/255.255.255.0
基于net/prefixlen: 192.168.1.0/24(CentOS7)
基于网络组(NIS 域): @mynetwork
内置ACL: ALL, LOCAL, KNOWN, UNKNOWN,PARANOID
ALL:所有主机
LOCAL:本地主机
KNOWN:主机名可解析成ip的
UNKNOWN:主机名无法解析成IP的
PARANOID:正向解析与反向解析不对应的主机
这三题,采用图形化方式配置会比较好,容易掌握,不用记复杂的命令,配置过程也不容易出错(!!!切记要按照题中要求来配置,比如IP,端口号)。当然这只是对于考试来说,工作中当然是命令行用的更多,再复杂的命令行也得理解&背熟。
可以采用以下的套路做,不会漏
安装包---建目录(权限配置)---修改配置文件---配置防火墙---配置selinux---重启服务,开机自启
Server端
#安装包
[root@system1 ~]# yum install samba samba-client
#建目录
[root@system1 ~]# mkdir /sambatest
[root@system1 ~]# chmod -R 777 /sambatest/
#修改配置文件
[root@system1 ~]# smbpasswd -a user1
[root@system1 ~]# smbpasswd -a user2
[root@system1 ~]# vim /etc/samba/smb.conf
[sambatest]
path=/sambatest
hosts allow = 172.24.1.
browseable = yes
writable = no
write list = user2
#配置防火墙
[root@system1 ~]# firewall-cmd --permanent --add-service=samba
[root@system1 ~]# firewall-cmd --permanent --add-service=mountd
[root@system1 ~]# firewall-cmd --permanent --add-service=rpc_bind
[root@system1 ~]# firewall-cmd --reload
#配置selinux
[root@system1 ~]# semanage fcontext –a –t samba_share_t /sambatest
[root@system1 ~]# restorecon –Rv /sambatest
#重启服务,设置开机自启
[root@system1 ~]# systemctl restart smb nmb
[root@system1 ~]# systemctl status smb nmb
#检查
[root@system2 ~]# smbclient -L //172.24.1.5 -U user1
#显示server端提供的文件系统,则表示环境OK
#安装包
[root@system2 ~]# yum install cifs*
#建目录
[root@system2 ~]# mkdir /mnt/multi
#配置,man mount.cifs可以查看这些所有的参数
[root@system2 ~]# vim /etc/fstab
//172.24.1.5/sambatest /mnt/multi cifs defaults,multiuser,username=user1,password=1234,sec=ntlmssp 0 0
[root@system2 ~]# mount -a
如果执行smbclient -L //172.24.1.5 -U user1,报错:protocol negotiation failed: NT_STATUS_IO_TIMEOUT,在/etc/hosts中添加server的解析即可
不加密的方式很简单,用Kerberos加密的方式很容易出错,拿出来讲一下
#安装包,默认OK,略过
#建目录
[root@system1~]# mkdir -p /private/test
[root@system1~]# chown deepak /private/test
[root@system1~]# setfacl -m u:deepak:rwx /private/test
#配置文件
[root@system1~]# vim /etc/exports
/protected 172.24.1.0/24(rw,sec=krb5p)
[root@system1~]# vim/etc/sysconfig/nfs
RPCNFSDARGS="-V4.2"
[root@system1~]# wget -O /etc/krb5.keytab http://host.domain1.example.com/materials/nfs_server.keytab
#配置防火墙
[root@system1~]# firewall-cmd --permanent --add-service=nfs
[root@system1~]# firewall-cmd --permanent --add-service=rpc-bind
[root@system1~]# firewall-cmd --reload
#配置selinux
[root@system1~]# semanage fcontext –a –t public_content_t /private
[root@system1~]# restorecon –Rv /protected
#重启服务,开机自启
[root@system1~]# systemctl start nfs-server nfs-secure-server
[root@system1~]# systemctl enable nfs-server nfs-secure-server
#共享出去
[root@system1~]# exportfs-r
#检查
[root@system2 ~]# showmount -e 172.24.1.5
#建目录
[root@system2 ~]# mkdir /mnt/nfssecure
#配置文件
[root@system2 ~]# wget -O /etc/krb5.keytab http://host.domain1.example.com/materials/nfs_client.keytab
[root@system2 ~]# vim /etc/fstab
172.24.1.5:/private /mnt/nfssecure nfs defaults,sec=krb5p,v4.2 0 0
#重启服务,开机自启
[root@system2 ~]# systemctl start nfs-secure
[root@system2 ~]# systemctl enable nfs-secure
#挂载
[root@system2 ~]# mount -a
第十二题:完成 实现一个 web 服务器,第十三题:配置虚拟主机,第十四题:配置 web 内容的访问,第十五题:实现动态Web内容,配置安全web服务(本次没考)
web服务的相关内容,多练习就好,配置文件中的参数都可以在配置模版文件中找到
[root@system1 ~]# yum -y install mod_ssl
模版文件:/etc/httpd/conf.d/ssl.conf
[root@system1 ~]# yum install mod_wsgi
模版文件:/usr/share/doc/mod_wsgi-3.4/README
[root@system1 ~]# vim /etc/fstab
UUID="dcc4858f-bcf5-4029-add4-067b953c6aa5" /mnt/data xfs default,_netdev 0 0
用分区的uuid挂载,通过blkid查询,一定要加上_netdev参数!!!否则机器会起不来。
我主要在Network services、Samba和NFS那丢了一些分,所以一定得注意网路服务,IP地址有没有配错,符不符合要求,防火墙&selinux是不是都配了等,做完了以后多重启几次,检查环境是否OK。
希望对准备参加RHCE考试的同学有帮助,有任何问题都可以联系我。