前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【红帽认证系列笔记之RHCE】RHCE 认证考试题库(上)

【红帽认证系列笔记之RHCE】RHCE 认证考试题库(上)

作者头像
小土豆Yuki
发布2020-06-15 17:43:17
9K1
发布2020-06-15 17:43:17
举报
文章被收录于专栏:洁癖是一只狗

RHCE的考试相对RHCSA来说要难很多,主要考网络配置,各种文件系统的挂载,web的配置,防火墙策略,数据库查找,脚本编写等等。一共20道题左右。rhce考试一般在下午,时长3.5个小时,考试环境是一台装有redhat7操作系统的物理机,上面虚拟了两台主机,一台当做服务器主机配置各种服务,另一台虚拟机当做客户端对服务器的各种配置进行验证。考试开始时你会以普通用户登录物理主机,同样物理主机的桌面上有一个控制台,用来控制两个虚拟机。rhce考试两台虚拟机的root密码是已经提供好的,网络环境也是配置好的。

RHCE考试参考试题及答案(上):

1、配置SeLinux

在server0和desktop0上要求SeLinux的状态为enforcing。要求系统重启后依然生效。

注意:(一定要将上午考试用到的机器关机 init 5 切换到图形化界面)

回答:

代码语言:javascript
复制
server0 :
vim /etc/sysconfig/selinux
setenforce 1
getenforce

desktop0:
vim /etc/sysconfig/selinux
setenforce 1
getenforce

2、配置防火墙对SSH的限制

在server0和desktop0上设置防火墙,对SSH实现访问限制:

允许example.com (172.25.0.0/16)域的客户对server0和desktop0进行ssh访问。

禁止my133t.org (172.17.10.0/24 )域的客户对server0和desktop0进行ssh访问。

备注:my133t.org是在172.17.10.0/24网络。(根据考试实际提供的网段配置)

回答:

firewall-config

注意:在防火墙规则设置完成后,一定要点击"reload firewalled", 使设置生效。

3、配置IPv6地址

在你的考试系统上配置接口eth0使用以下IPv6地址:

server0 上的地址应该是

fddb:fe2a:ab1e::c0a8:1/64 (根据考试实际提供的地址配置)

desktop0 上的地址应该是

fddb:fe2a:ab1e::c0a8:2/64

两个系统必须能够与网络fddb:fe2a:ab1e/64内的系统通信。地址必须在重启后依旧生效。两个系统必须保持当前的IPv4地址并能通信

回答:

代码语言:javascript
复制
nmcli connection show
nmcli connection modify eth0 +ipv6.addresses "fddb:fe2a:ab1e::c0a8:1/64"  ipv6.method manual       
nmcli connnection reload
nmcli connection up eth0
ping6 fddb:fe2a:ab1e::c0a8:    ## 使用此命令去查看网卡eth0 的ipv6 的地址配置是否正确, 也可用下面两个命令来实现同样的功能
####ip6 fddb:fe2a:ab1e::c0a8:1%eth0   
###ip -6 route

desktop0:
nmcli connection modify eth0 +ipv6.addresses "fddb:fe2a:ab1e::c0a8:2/64" ipv6.method manual
nmcli connection reload
nmcli connection up eth0
ping6 fddb:fe2a:ab1e::c0a8:
####ip6 fddb:fe2a:ab1e::c0a8:1%eth0
####ip -6 route

4、配置链路聚合

在server0和desktop0之间按一下要求配置:此链路使用接口eth1和eth2

此链路在一个接口失效时仍然能工作

此链路在server0使用下面的地址 192.168.0.101/255.255.255.0

此链路在desktop0使用下面的地址 192.168.0.102/255.255.255.0

此链路在系统重启之后依然保持正常状态

回答:

代码语言:javascript
复制
server0:
nmcli device      ###查看当前有几个网卡
创建team1 网卡,同时指定模式:
nmcli connection add con-name team1 ifname team1 type team autoconnect yes config ‘{“runner”:{“name”:“activebackup”}}’
nmcli connection show             ## 查看team1 是否配置正确
为team1 配置IP:
nmcli connection modify team1 ipv4.address 192.168.0.101/
nmcli connection modify team1 ipv4.method manual
将eth1 和 eth2 加入到 team1 网卡组中:
nmcli connection add con-name team1-eth1 ifname eth1 type team-slave master team1 autoconnect yes
nmcli connection add con-name team1-eth2 ifname eth2 type team-slave master team1 autoconnect yes
nmcli connection up team1
nmcli connection show
ip addr   ( 检验配置是否正确 )

desktop0 和 server0 的配置方式一样

5、自定义用户环境

在系统server0和desktop0上创建自定义命令为qstat ,此自定义命令将执行以下命令:

/bin/ps Ao pid,tt,user,fname,rsz

此命令对系统中的所有用户有效

回答:

代码语言:javascript
复制
ps Ao pid,tt,user,fname,rsz  (先运行一下,看命令是否正确)
vim /etc/profile    ###添加以下内容到/etc/profile
alias qstat='ps Ao pid,tt,user,fname,rsz'
vim /etc/bashrc     ###添加以下内容到/etc/bashrcalias qstat='ps Ao pid,tt,user,fname,rsz'

验证:
source /etc/profile
qstat
source /etc/bashrc
qstat

6、配置本地邮件服务

在系统server0和desktop0上配置邮件服务,满足以下要求:

这些系统不接收外部发送来的邮件。这些系统上本地发送的任何邮件都会自动路由到classroom.example.com。从这些系统上发送的邮件都显示来自example.com。

你可以通过发送邮件到本地用户student来测试你的配置,classroom.example.com已经配置好。把此用户的邮件转到下列URL:http://classroom.example.com/cgi-bin/recevied_mail(注意:这个实验不需要开启防火墙, 因为我只是发送邮件, 没有接收别人的邮件。

form root@example.com to student@classroom.example.com

回答:

代码语言:javascript
复制
[root@localhost services]# yum -y install postfix
[root@localhost services]# systemctl enable postfix
[root@localhost services]# vim /etc/postfix/main.cf
mail_owner = postfix # 服务账号
myhostname = server0.example.com
mydomain = example.com
myorigin = example.com   # 邮件的后缀
inet_interfaces = loopback-only  # 仅本地可用
inet_protocols = all
mydestination =    #不接收任何邮件
local_transport = error: denied transport   #本地发送 ,报错
unknown_local_recipient_reject_code = 550
mynetworks_style = subnet
mynetworks = 127.0.0.0/8  # 可信网络,不做认证
relayhost = [classroom.example.com]  #中继服务器地址。因为classroom.example.cpm 可以连接外网, 所以设置中继服务器去发邮件给外网的邮箱, 如:qq ,  163 邮箱。。
alias_maps = hash:/etc/aliases   # 邮件地址别名 

[root@localhost services]# systemctl start postfix
[root@localhost services]# systemctl status postfix

测试发送邮件:
[root@localhost services]# echo "hello" | mail -s test student@classroom.example.com

验证:
firefox http://classroom.example.com/cgi-bin/recevied_mail

7、配置端口转发

在server0上配置端口转发,要求如下:

在172.25.0.0/24网络中的系统,访问server0的本地端口5423将被转发到端口80

此设置必须永久有效。

回答:

firewall-config

(配完富规则后别忘记reload)

8、通过SMB共享目录

在server0上配置SMB服务。

您的SMB服务器必须是STAFF工作组的一个成员,共享/common目录,共享名必须为common,只有example.com域内的客户端可以访问common共享 (配置文件里面要填 网段而不是域名) ,Common必须是可以浏览的,

用户rob,samba密码为redhat , 只读权限访问common共享。 r-x

用户brian,samba密码为redhat ,读写权限访问common共享。 rwx

备注:考试的时候,用户和密码请根据题目实际情况进行设定,有的时候,

题目简单一些,测试用户早已建立,有的时候,题目较难一些,用户和密码都必须自己设定。

回答:

代码语言:javascript
复制
server0:
[root@server0 /]# yum -y install samba samba-client cifs-utils
[root@server0 /]# systemctl enable smb  #SAMB服务
[root@server0 /]# systemctl enable nmb
[root@server0 /]# firewall-cmd --add-service=samba --permanent
success
[root@server0 /]# firewall-cmd --reload
[root@server0 /]# mkdir /common
[root@server0 /]# semanage fcontext -a -t samba_share_t '/common(/.*)?'
[root@server0 /]# restorecon -Rvv /common
[root@server0 /]# ll-Zd /common
[root@server0 /]# useradd rob
[root@server0 /]# useradd brian
[root@server0 /]# setfacl -m u:rob:r-x /common
[root@server0 /]# setfacl -m u:brian:rwx /common
[root@server0 /]# smbpasswd -a rob    ###密码为redhat , -a 表示添加一个samba 用户
New SMB password:
Retype new SMB password:
Added user andy.
[root@server0 /]# smbpasswd -a brian
New SMB password:
Retype new SMB password:
Added user mary.
[root@server0 /]# vim /etc/samba/smb.conf
[global]
workgroup = STAFF  #工作组
server string = Windows Server R2
interfaces = lo eth0 172.25.0.11  #监听   (172.25.0.11 是本地网卡地址)
[common]  #共享名
path=/common #共享目录
writable=yes
browseable=yes   #可浏览
hosts allow=172.25.0.0/   #白名单 172.25.0.0/24 是example 域的网段地址
[root@server0 /]#
[root@server0 /]# systemctl enable smb  #SAMB服务
[root@server0 /]# systemctl enable nmb
[root@server0 /]# systemctl restart smb
[root@server0 /]# systemctl restart nmb  # netbios服务
[root@server0 /]# firewall-cmd --add-service=samba --permanent
success
[root@server0 /]# firewall-cmd --reload

9、配置多用户SMB挂载

在desktop0上完成以下要求的配置:

desktop0把server0的common共享通过多用户的方式挂载到本地的/mnt/multiuser (实际的共享和挂载点请根据考试题目设定) ,

用户rob,samba密码为redhat , 只读权限访问common共享。 rx

用户brian,samba密码为redhat ,读写权限访问common共享。 rwx

该共享要求在系统启动时自动挂载。

回答:

代码语言:javascript
复制
desktop0:
[root@desktop0 ~]# yum -y install samba-client cifs-utils
[root@desktop0 ~]# smbclient -L //172.25.0.11     ## 查看 172.25.0.11的smaba 共享
Enter root's password:  #密码为空
[root@desktop0 ~]cd /mnt
[root@desktop0 ~]mkdir multiuser
[root@desktop0 ~]# vim /etc/fstab
//172.25.0.11/common     /mnt/multiuser   cifs   defaults,_netdev,username=brain,password=redhat,sec=ntlmssp,multiuser   0 0
mount -a 

或是:
[root@desktop0 ~]# touch smbuser.txt
[root@desktop0 ~]# vim smbuser.txt
[root@desktop0 ~]# cat smbuser.txt
username=brian
password=redhat
[root@desktop0 ~]# vim /etc/fstab
//172.25.0.11/common     /mnt/multiuser   cifs   defaults,_netdev,credenticals=/root/smbuser.txt,sec=ntlmssp,multiuser   0 0 
[root@desktop0 ~]# mount -a

10、配置NFS服务

在server0配置NFS服务,要求如下:

以只读的形式共享目录/public同时只能被example.com域中的系统访问。

以读写的形式共享目录/protected同时只能被example.com域中的系统访问。访问/protected需要通过Kerberos安全加密,您可以使用下面提供的密钥:http://classroom.example.com/pub/keytabs/server0.keytab目录/protected应该包含名为project 拥有人为ldapuser0的子目录,用户ldapuser0能以读写形式访问/protected/project。

回答:

代码语言:javascript
复制
server0:
yum -y install nfs-utils
systemctl enable nfs-server
systemctl enable nfs-secure-server
mkdir /public
ll -Zd /public
semanage fcontext -a -t public_content_t '/public(/.*)?'
restore -Rvv /public
mkdir /protected
semanage fcontext -a -t public_content_t '/protected(/.*)?'
restore -Rvv /protected
wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/server0.keytab
vim /etc/exports     ###将以下两行内容添加到/etc/exports文件
/public  172.25.0.0/(ro,sync)
/protected 172.25.0.0/(rw,sync,sec=krb5p)

systemctl start nfs-server    ### 先启动
systemctl start nfs-secure-server    ###再启动
firewall-cmd --add-service=nfs --permanent
firewall-cmd --add-service=rpc-bind --permanent
firewall-cmd --add-service=mountd --permanent
cd /protected
mkdir project
chown ldapuser0 /protected/project
chmod u+rwx  /protected/project

11、挂载一个NFS共享

在desktop0上挂载一个来自server0上的NFS共享,并符合下列要求:

/pulbic共享挂载到本地的/mnt/nfsmount。

/protected挂载到本地的/mnt/nfssecure,并使用安全的方式,

密钥下载地址:

http://classroom.example.com/pub/keytabs/desktop0.keytab

用户ldapuser0能够在/mnt/nfssecure/project上创建文件。

这些文件系统在系统启动时自动挂载。

回答:

代码语言:javascript
复制
desktop0:
yum -y install nfs-utils
wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/desktop0.keytab
systemcetl enable nfs-secure
systemctl start nfs-secure        ### 起不来可能是秘钥文件不对
mkdir /mnt/nfsmount
mkdir /mnt/nfssecure
vim /etc/fstab   ###将以下两行内容添加到/etc/fstab 
172.25.0.11:/pulbic /mnt/nfsmount  nfs   defaults,_netdev       
172.25.0.11:protected  /mnt/nfssecure   nfs   defaults,sec=krb5p,_netdev       

mount -a

使用 df -hT 查看挂载情况

12、实现一个web服务器

在server0上配置一个站点http://server0.example.com,然后执行以下步骤:

从http://classroom.example.com/materials/station.html下载文件,

并且将文件重命名为index.html,绝对不能修改此文件的内容。将index.html拷贝到你的web服务器的DocumentRoot目录下。来自example.com域的客户端可以访问此web站点。来自my133t.org域的客户端拒绝访问此web站点。备注:网站的DocumentRoot如果题目没有指定,那么随意。

(server name 是 server0.example.com ,也就是网站的url)

回答:

代码语言:javascript
复制
server0:
yum -y install httpd httpd-manual
systemctl enable httpd
rpm -qd httpd | grep vhost  或是 rpm -ql httpd   查看配置web 服务器相关的官方参考文档
网页打开/usr/share/httpd/manual/.......里面有很多guide
配置域名的虚拟主机参考这个文档:/usr/share/httpd/manual/vhost/...
代码语言:javascript
复制
cd /var/www/html
wget -O index.html http://classroom.example.com/materials/station.hcd /etc/httpd/conf.d
touch server0.conf
vim server0.conf

[root@server0 conf.d]# cat server0.conf   ###配置文件server0.conf的内容如下:
<VirtualHost *:>
    # This first-listed virtual host is also the default for *:80
    ServerName server0.example.com

    DocumentRoot /var/www/html
<directory "/var/www/html">
                <RequireAll>
                   Require all granted
                   Require not host .my133t.org   ##### host 和 my133t.org之间有空格
                </RequireAll>
</directory>
</VirtualHost>

systemctl start httpd
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

测试:
desktop0:
curl http://server0.example.com

13、配置安全web服务

站点http://server0.example.com配置TLS加密。

一个已经签名证书从

http://classroom.example.com/pub/tls/certs/server0.crt获取

此证书的密钥从

http://classroom.example.com/pub/tls/private/server0.key获取

此证书的授权信息从

http://classroom.example.com/pub/example-ca.crt获取

回答:

代码语言:javascript
复制
server0:
yum -y install mod_ssl
cd /etc/pki/tls     ####一定要放到此目录下面*******
wget http://classroom.example.com/pub/tls/certs/server0.crt
wget http://classroom.example.com/pub/tls/private/server0.key
wget http://classroom.example.com/pub/example-ca.crt
cd /etc/httpd/conf.d
vim ssl.conf

root@server0 conf.d]# cat ssl.conf  (一下部分是我们要在ssl.conf 里面配置的内容)
<VirtualHost _default_:>
SSLCertificateFile /etc/pki/tls/server0.crt 
SSLCertificateKeyFile /etc/pki/tls/server0.key
SSLCACertificateFile /etc/pki/tls/example-ca.crt
ServerName server0.example.com 

    DocumentRoot /var/www/html
<directory "/var/www/html"> 
                <RequireAll> 
                        Require all granted 
                        Require not host .my133t.org 
                </RequireAll> 
</directory>
</VirtualHost>                                 
[root@server0 conf.d]#

systemctl restart httpd
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

测试:
desktop0:
curl https://server0.example.com

14、配置虚拟主机

在server0上扩展你的web服务器,为站点http://www0.example.com创建一个虚拟主机,然后执行以下步骤:

设置DocumentRoot为/var/www/virtual,从http://classroom.example.com/materials/www.html下载文件并重命名为index.html,不要对文件index.html内容做任何修改。将index.htm文件放到虚拟主机的DocumentRoot目录下,确保floyd用户能够在/var/www/virtual目录下创建文件 。

注意:原始站点http://server0.example.com必须仍然能够访问。站点的所用的域名网络中已有DNS服务器解析。

回答:

代码语言:javascript
复制
cd /var/www
mkdir virtual
cd  /var/www/virtual
wget -O index.html http://classroom.example.com/materials/www.html
cd /etc/httpd/conf.d
cp server0.conf www0.conf

[root@server0 conf.d]# vim www0.conf
[root@server0 conf.d]# cat www0.conf
<VirtualHost *:>
    # This first-listed virtual host is also the default for *:80
    ServerName www0.example.com      ### 网址名字, 网站url 为   http://www0.example.com

    DocumentRoot /var/www/virtual
<directory "/var/www/virtual">
               <RequireAll>
                       Require all granted
               </RequireAll>
</directory>
</VirtualHost>
[root@server0 conf.d]#

systemctl restart httpd
id floyd
useradd floyd
setfacl -m u:floyd:rwx /var/www/virtual

测试:
[root@desktop0 etc]# curl http://www0.example.com
<h1 style="color:blue"> Mr Lee , QQ:</h1>
[root@desktop0 etc]#

15、配置web内容的访问

在你的server0上的web服务器的DocumentRoot目录下创建一个名为private的目录,

要求如下:

http://classroom.example.com/materials/private.html下载一个文件副本到这个目录,并且重命名为index.html。不要对这个文件的内容作任何修改。从system1上,任何人都可以浏览private的内容,但是从其他系统就不能访问这个目录的内容。(注意题目要求谁可以访问,灵活变化)

备注:此题目是接着上一题,所以这里的DocumentRoot指的就是上面的

/var/www/virtual/。

配置:

代码语言:javascript
复制
cd /var/www/virtual
mkdir private
cd /var/www/virtual/private
wget -O index.html http://classroom.example.com/materials/private.html
cd /etc/httpd/conf.d

[root@server0 conf.d]# vim www0.conf
[root@server0 conf.d]# cat www0.conf
<VirtualHost *:80>
    # This first-listed virtual host is also the default for *:80
    ServerName www0.example.com

    DocumentRoot /var/www/virtual
<directory "/var/www/virtual">
              <RequireAll>
                     Require all granted
               </RequireAll>
</directory>
<directory "/var/www/virtual/private">
require local
</directory>
</VirtualHost>
[root@server0 conf.d]#

[root@server0 conf.d]# systemctl restart httpd

测试:
[root@desktop0 Desktop]# curl http://www0.example.com/private
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /private
on this server.</p>
</body></html>
[root@desktop0 Desktop]#

16、实现动态Web内容

在server0上配置提供动态web内容,要求如下:

动态内容由名为webapp0.example.com的虚拟主机提供,虚拟主机监听在端口8908。

http://classroom.example.com/materials/webinfo.wsgi下载一个脚本,然后放在适当的位置,无论如何不要修改此文件的内容。客户端访问http://webapp0.example.com:8908/时应该接收到动态生成的web页面。此站点http://webapp0.example.com:8908/。必须能够被example.com域内的所有系统访问。

回答:

注意: 可以参考系统提供的参考文档:

代码语言:javascript
复制
[root@server0 www0]# rpm -ql mod_wsgi
/etc/httpd/conf.modules.d/-wsgi.conf
/usr/lib64/httpd/modules/mod_wsgi.so
/usr/share/doc/mod_wsgi-3.4
/usr/share/doc/mod_wsgi-3.4/LICENCE
/usr/share/doc/mod_wsgi-3.4/README
[root@server0 www0]#
代码语言:javascript
复制
[root@server0 www]#yum -y install mod_wsgi
[root@server0 www]#mkdir  app
[root@server0 www]#ls
app  cgi-bin  html  virtual
[root@server0 conf.d]# cd /var/www/app/
[root@server0 app]# wget http://classroom.example.com/materials/webinfo.wsgi
[root@server0 app]# ls
webinfo.wsgi
[root@server0 app]# pwd
/var/www/app
[root@server0 app]#

[root@server0 conf.d]# vim app0.conf
[root@server0 conf.d]# cat app0.conf
listen 
<VirtualHost *:>
    ServerName webapp0.example.com
    DocumentRoot /var/www/app
<directory "/var/www/app">
<RequireAll>
    Require all granted
</RequireAll>
</directory>
WSGIScriptAlias /  /var/www/app/webinfo.wsgi
</VirtualHost>

[root@server0 conf.d]# semanage port -a -t http_port_t -p tcp 8908 
Full path required for exclude: net:[].
Full path required for exclude: net:[].
[root@server0 conf.d]# semanage port -l |grep http
http_cache_port_t              tcp      , , , 10001-10010
http_cache_port_t              udp      
http_port_t                    tcp      , , , , , , , , 
pegasus_http_port_t            tcp      
pegasus_https_port_t           tcp      
[root@server0 conf.d]#
[root@server0 conf.d]# systemctl restart httpd
[root@server0 conf.d]# netstat -natp |grep :8908
tcp6              :::                 :::*                    LISTEN      /httpd        
[root@server0 conf.d]# firewall-cmd --add-port=8908/tcp --permanent
success
[root@server0 conf.d]# firewall-cmd --reload
success
[root@server0 conf.d]#

测试:
desktop0:
http://webapp0.example.com:

因为RHCE考试题目较多所以我分了两篇来写。剩下的题目及答案请参见下篇 【红帽认证系列笔记之RHCE】RHCE 认证考试题库(下)。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 洁癖是一只狗 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
轻量应用服务器
轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档