RHCE试题解析

环境准备

yum-config-manager --add-repo=ADDREPO
vim /etc/yum.conf
gpgcheck=0(1=on,0=off)

  增加指定repo源,关闭签名合法性检查。

试题及答案

一、配置SELINUX

试题概述:
  确保两个虚拟机的 SELinux 处于强制启用模式。

vim /etc/selinux/config
SELINUX=enforcing
setenforce 1 (usage:  setenforce [ Enforcing | Permissive | 1 | 0 ])

二、配置SSH访问

试题概述:
按以下要求配置 SSH 访问:

  • 用户能够从域内example.com的客户端SSH远程访问您的两个虚拟机系统;
  • 在域my133t.org内的客户端不能访问您的两个虚拟机系统。
vim /etc/ssh/sshd_config
DenyUsers *@*.my133t.org *@172.25.0.*

  也可以使用防火墙规则进行限制,后面会提到。

三、自定义用户环境(别名设置)

试题概述:
  在系统system1 和 system2上创建自定义命令为 qstat,此自定义命令将执行以下命令: /bin/ps -Ao pid,tt,user,fname,rsz;
  此命令对系统中所有用户有效。

vim /etc/profile
qstat='/bin/ps -Ao pid,tt,user,fname,rsz'
source /etc/profile

四、配置防火墙端口转发

试题概述:
  在系统 system1 配置端口转发,要求如下:

  • 在 172.25.0.0/24 网络中的客户机,访问 server0 的本地端口 5423 将被转发到 80
  • 此设置必须永久有效。
firewall-cmd --set-default-zone=trusted (将默认区域设置为默认模式)
firewall-cmd --permanent --add-source=172.25.0.0/24 --zone=block (防火墙拒绝my133t.org访问)
firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.24.0.0/24 forward-port port=5423 protocol=tcp to-port=80'
firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.24.0.0/24 forward-port port=5423 protocol=udp to-port=80'

五、配置链路聚合

试题概述:
  在system1.example.com 和 system2.example.com 之间配置一个链路 team0:  此链路使用接口 eth1和eth2:

  • 此链路在一个接口失效时仍然能工作;
  • 此链路在system1使用下面的地址172.24.4.30/255.255.255.0;
  • 此链路在system2使用下面的地址172.24.4.40/255.255.255.0;
  • 此链路在系统重启之后依然保持正常状态。
nmcli connection add type team con-name team0 ifname team0 connection.autoconnect yes config '{"runner":{"name":"activebackup"}}'
nmcli connection add type team-slave con-name eth1 ifname eth1 connection.autoconnect yes master team0
nmcli connection add type team-slave con-name eth2 ifname eth2 connection.autoconnect yes master team0
nmcli connection modify team0 ipv4.method manual ipv4.address "172.24.4.30/24" connection.autoconnect yes  
nmcli connection up team0
teamdctl team0 state 

  接口启动后测试本机到新增IP是否可以正常通信,如果不通可以重启网络服务后再次测试systemctl restart network

六、配置IPv6地址

试题概述:
  在您的考试系统上配置接口 eth0 使用下列 IPv6 地址:

  • system1上的地址应该是 2003:ac18::305/64:
  • system2上的地址应该是 2003:ac18::306/64;
  • 两个系统必须能与网络 2003:ac18/64 内的系统通信 ;
  • 地址必须在重启后依旧生效;
  • 两个系统必须保持当前的 IPv4 地址并能通信。
nmcli connection modify eth0 ipv6.method manual ipv6.address "2003:ac18::305/64"
nmcli connection up eth0

  如果不能ping通同上所述。

七、配置本地邮件服务器

试题概述:
  在系统system1上配置邮件服务,满足以下要求:

  • 这些系统不接收外部发送来的邮件;
  • 在这些系统上本地发送的任何邮件都会自动路由到smtp0.example.com;
  • 从这些系统上发送的邮件显示来自于system1.example.com;
      您可以通过在system1上发送邮件到本地用户 student 来测试您的配置,系统system2.example.com 上的用户 student 将会收到这封邮件。
:配置文件修改
vim /etc/postfix/main.cf
relayhost = smtp0.example.com  //自动路由配置
inet_interfaces = loopback-only  //监听在回环网卡
myorigin = system1.example.com //邮件显示
mynetworks = 127.0.0.0/8 [::1]/28
local_transport = error:local

:启动服务
systemctl restart postfix 
systemctl enalbe postfix 

:测试
echo 'test' | mail -s 'Test1' student

  如果防火墙默认域非trusted需要开启smtp服务访问权限。

八、通过SMB发布共享目录

试题概述:
  在system1上通过 SMB 共享/common 目录:

  • 您的 SMB 服务器必须是 STAFF 工作组的一个成员;
  • 共享名必须为 common;
  • 只有 example.com 域内的客户端可以访问 common 共享;
  • common 必须是可以浏览的;
  • 用户 harry 必须能够读取共享中的内容,如果需要的话,验证的密码是 migwhisk。
:安装及基本设置
yum -y install samba
mkdir /common
setsebool -P samba_export_all_rw=on
smbpasswd -a harry

:修改配置文件
vim /etc/samba/smb.conf
[global]
    workgroup = STAFF
[common]
       path = /common
       hosts allow = 172.24.0.0/24
       browseable = yes

:重启并设置开机自启
systemctl restart smb nmb 
systemctl enable smb nmb 

九、配置多用户Samba挂载

试题概述:
  在system1通过 SMB 共享目录/devops,并满足以下要求:

  • 共享名为 devops;
  • 共享目录 devops 只能被 example.com 域中的客户端使用;
  • 共享目录 devops 必须可以被浏览;
  • 用户 kenji 必须能以读的方式访问此共享,该问密码是 atenorth;
  • 用户 chihiro 必须能以读写的方式访问此共享,访问密码是 atenorth;
  • 此共享永久挂载在 system2.example.com 上的/mnt/dev 目录,并使用用户 kenji 作为认证,任何用户可以通过用户 chihiro 来临时获取写的权限。
:基本准备
mkdir /devops
smbpasswd -a kenji
smbpasswd -a chihiro 
setfacl -m u:chihiro:rwx /devops

:修改配置文件
vim /etc/samba/smb.conf
[devops]
    path = /devops
    hosts allow = 172.24.0.0/24
    write list = chihiro

:重启服务
systemctl restart smb nmb 

:system2操作
:准备基本环境
yum -y install samba-client cifs-utils 
smbclient -L system1.example.com -U chihiro
mkdir /mnt/dev

:修改配置文件
vim /etc/fstab
//system1.example.com/devops /mnt/dev cifs defaults,multiuser,username=kenji,password=atenorth,sec=ntlmssp,_netdev 0 0 

:挂载配置
mount -a 

:验证临时权限
su - other
cifscreds add -u chihiro system1.example.com 
touch /mnt/dev/1.txt

十、配置NFS共享服务

试题概述:
  在system1配置 NFS 服务,要求如下:

  • 以只读的方式共享目录/public,同时只能被 example.com 域中的系统访问;
  • 以读写的方式共享目录/protected,能被 example.com 域中的系统访问;
  • 访问/protected 需要通过 Kerberos 安全加密,您可以使用下面 URL 提供的密钥:http://classroom.example.com/pub/keytabs/system1.keytab;
  • 目录/protected 应该包含名为 project 拥有人为 ldapuser0 的子目录;
  • 用户 ldapuser0 能以读写方式访问/protected/project。
:环境准备
mkdir -p /public /protected/project 
chown ldapuser0 /protected/project
wget -O /etc/krb5.keytab http://classroom/pub/keytabs/system1.keytab

:修改配置
vim /etc/exports 
/public 172.24.4.0/24(ro)
/protected 172.24.4.0/24(rw,sec=krb5p)

:启动服务并设置为开机自启
systemctl start nfs-secure-server nfs-server
systemctl enable nfs-secure-server nfs-server

十一、挂载NFS共享

试题概述:
  在system2上挂载一个来自 system1.exmaple.com 的共享,并符合下列要求:

  • /public 挂载在下面的目录上/mnt/nfsmount;
  • /protected挂载在下面的目录上/mnt/nfssecure 并使用安全的方式,密钥下载 URL:http://classroom.example.com/pub/keytabs/system2.keytab;
  • 用户 ldapuser0 能够在/mnt/nfssecure/project 上创建文件;
  • 这些文件系统在系统启动时自动挂载。
:环境准备
mkdir -p /mnt/nfsmount /mnt/nfssecure
wget -O /etc/krb5.keytab http://classroom/pub/keytabs/system1.keytab
systemctl start nfs-secure 
systemctl enable nfs-secure
showmount -e system1.example.com

:修改配置文件
vim /etc/fstab
system1.example.com:/public /mnt/nfsmount nfs _netdev 0 0 
system1.example.com:/protected /mnt/nfssecure nfs sec=krb5p,_netdev 0 0

:挂载
mount -a

十二、实现一个web服务器

试题概述:
  为 http://system1.example.com 配置 Web 服务器:

  • http://classroom.example.com/pub/materials/station.html 下载一个主页文件,并将该文件重命名为 index.html;
  • 将文件 index.html 拷贝到您的 web 服务器的 DocumentRoot 目录下;
  • 不要对文件 index.html 的内容进行任何修改;
  • 来自于 example.com 域的客户端可以访问此 Web 服务;
  • 来自于 my133t.org 域的客户端拒绝访问此 Web 服务。
:安装Apache服务
yum -y install httpd 
:修改配置文件
vim /etc/httpd/conf.d/rhce.conf
<VirtualHost *:80>
    ServerName system1.example.com
    DocumentRoot /var/www/html
</VirtualHost>
:下载网页文件
wget -O /var/www/html/index.html http://classroom.example.com/pub/materials/station.html
:重启Apache服务并设置为开机自启
systemctl restart httpd 
systemctl enable httpd 

十三、配置安全web服务

试题概述:
  为站点 http://server0.example.com 配置 TLS 加密:

  • 已签名证书从http://classroom.example.com/pub/tls/certs/system1.crt 获取 ;
  • 证书的密钥从http://classroom.example.com/pub/tls/private/system1.key获取;
  • 证书的签名授权信息从http://classroom.example.com/pub/example-ca.crt获取。
:安装所需认证模块
yum -y install mod_ssl 

:下载所需文件
cd /etc/pki/tls/certs/ 
wget http://classroom.example.com/pub/example-ca.crt
http://classroom.example.com/pub/tls/certs/system1.crt
cd etc/pki/tls/private/
wget http://classroom.example.com/pub/tls/private/system1.key

:修改配置文件
vim /etc/httpd/conf.d/ssl.conf
<VirtualHost _default_:443>
    DocumentRoot /var/www/html
    ServerName system1.example.com:443
    SSLCertificateFile          /etc/pki/tls/certs/system1.crt
    SSLCertificateKeyFile       /etc/pki/tls/private/system1.key
    SSLCACertificateFile        /etc/pki/tls/certs/example-ca.crt
</VirtualHost>

:重启Apache服务
systemclt restart httpd 

十四、配置虚拟主机

试题概述:
  在system1上扩展您的 web 服务器,为站点 http://www0.example.com创建一个虚拟主机,然后执行下述步骤:

  • 设置 DocumentRoot 为/var/www/virtual;
  • http://classroom.example.com/pub/materials/www.html 下载文件并重命名为index.html;
  • 不要对文件 index.html 的内容做任何修改;
  • 将文件 index.html 放到虚拟主机的 DocumentRoot 目录下;
  • 确保 student 用户能够在/var/www/virtual 目录下创建文件;
:环境准备
mkdir /var/www/virtual
setfacl -m u:student:rwx /var/www/virtual
wget -O /var/www/virtual/index.html  http://classroom.example.com/pub/materials/www.html 

:修改配置文件
vim /etc/httpd/conf.d/rhce.conf
<VirtualHost *:80>
    ServerName www0.example.com
    DocumentRoot /var/www/virtual
</VirtualHost>

:重启Apache服务
systemctl restart httpd

十五、配置web内容访问

试题概述:
  在您的system1上的 web 服务器的 DocumentRoot 目录下创建一个名为private 的目录,要求如下:

  • http://classroom.example.com/pub/materails/private.html 下载一个文件副本到这个目录,并且得命名为 index.html;
  • 不要对这个文件的内容做任何修改;
  • 从 server0 上,任何人都可以浏览 private 的内容,但是从其他系统不能访问这个目录的内容。
:环境准备
mkdir /var/www/html/private
wget -O /var/www/html/private/index.html http://classroom.example.com/pub/materails/private.html 

:修改配置
vim /etc/httpd/conf.d/rhce.conf
<Directory /var/www/html/private>
    Require ip 127.0.0.1 
</Directory>

十六、实现动态web访问

试题概述:
  在system1上配置提供动态 Web 内容,要求如下:

:安装所需模块
yum -y install mod_wsgi 

:准备环境
cd /var/www/html
wget http://classroom.example.com/pub/materials/webinfo.wsgi 
semanage port -a -t http_port_t -p tcp 8909

:修改配置
vim /etc/httpd/conf.d/rhce.conf
Listen 8909
<VirtualHost *:8909>
    ServerName webapp0.example.com:8909
    DocumentRoot /var/www/html
    WSGIScriptAlias / /var/www/html/webinfo.wsgi
</VirtualHost>

:重启Apache服务
systemctl restart httpd

十七、创建一个脚本

试题概述:
  在 system1上创建一个名为/root/foo.sh 的脚本,让其提供下列特性:

  • 当运行/root/foo.sh redhat,输出为 fedora;
  • 当运行/root/foo.sh fedora,输出为 redhat;
  • 当没有任何参数或者参数不是 redhat 或者 fedora 时,其错误输出产生以下的信息:/root/foo.sh redhat|fedora。
vim /root/foo.sh
#!/bin/bash
if [ "$1" = "redhat" ] ; then
    echo "fedora"
elif [ "$1" = "fedora" ] ; then
    echo "redhat"
else
    echo "/root/foo.sh redhat|fedora" 
fi

chmod +x /root/foo.sh

十八、创建一个添加用户的脚本

试题概述:
  在 system1上创建一个脚本,名为/root/batchusers,此脚本能实现为系统system1创建本地用户,并且这些用户的用户名来自一个包含用户名的文件,同时满足下列要求:

  • 此脚本要求提供一个参数,此参数就是包含用户名列表的文件;
  • 如果没有提供参数,此脚本应该给出下面的提示信息 Usage: /root/batchusers 然后退出并返回相应的值;
  • 如果提供一个不存在的文件名,此脚本应该给出下面的提示信息 Input file not found 然后退出并返回相应的值;
  • 创建的用户登陆 Shell 为/bin/false,此脚本不需要为用户设置密码;
  • 您可以从下面的 URL 获取用户名列表作为测试用:http://classroom.example.com/pub/materials/userlist。
vim /root/batchusers
#!/bin/bash
if [ $# -eq 0 ] ; then
echo "Usage: /root/batchusers <userfile>"
exit 1 
fi
if [ ! -f $1 ] ; then
echo "Input file not found" 
exit 2
fi
for name in $(cat $1)
do
useradd -s /bin/false $name
done

chmod +x /root/batchusers

十九、配置iSCSI服务端

试题概述:
  配置 server0 提供 iSCSI服务,磁盘名为 iqn.2016-02.com.example:system1,并符合下列要求:

  • 服务端口为 3260;
  • 使用iscsi_store作其后端卷,其大小为 3GiB 访问;
  • 此服务只能被system2.example.com访问。
:准备磁盘空间
fdisk /dev/vda
Command (m for help): n
Partition number (1-128, default 1): First sector (34-20971486, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971486, default 20971486): +3G 
Command (m for help): w 

partprobe /dev/vda

:安装并配置iSCSI
yum -y install targetcli
targetcli
/> backstores/block create block1  /dev/vda1
/> /iscsi create iqn.2016-02.com.example:system1
/> /iscsi/iqn.2016-02.com.example:system1/tpg1/acls create iqn.2016-02.com.example:system2
/> /iscsi/iqn.2016-02.com.example:system1/tpg1/luns create /backstores/block/block1
/> /iscsi/iqn.2016-02.com.example:system1/tpg1/portals create 172.24.4.30 3260
/> saveconfig
/> exit

:重启并设置开机自启
systemctl restart target 
systemctl enable target 

二十、配置iSCSI客户端

试题概述:
  配置system2使其能连接 system1上提供的 iqn.2016-02.com.example:system1,并符合以下要求:

  • iSCSI 设备在系统启动的期间自动加载;
  • 块设备 iSCSI 上包含一个大小为 2100MiB 的分区,并格式化为 ext4 文件系统  此分区挂载在/mnt/data 上,同时在系统启动的期间自动挂载。
:安装iSCSI客户端
yum -y install iscsi-initiator-utils 

:修改iSCSI本机iqn名称
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2016-02.com.example:system2

:重启服务
systemctl restart iscsid
systemctl enalbe iscsid 


:查找、连接磁盘
 iscsiadm -m discovery -t st -p system1
 iscsiadm -m node -L all

 :分区设置
 lsblk (查看新磁盘)
 fdisk /dev/sda 
 Command (m for help): n
Partition number (1-128, default 1): First sector (34-20971486, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971486, default 20971486): +2100M  
Command (m for help): w 

partprobe /dev/sda
mkfs.ext4 /dev/sda1 

:挂载设置
mkdir /mnt/data

vim /etc/fstab
/dev/sda1 /mnt/data ext4 defaults,_netdev 0 0 
mount - a

二十一、配置一个数据库

试题概述:
  在system1上创建一个 MariaDB 数据库,名为 Contacts,并符合以下条件:  数据库应该包含来自数据库复制的内容,复制文件的 URL 为:http://classroom.example.com/pub/materials/users.sql:

  • 数据库只能被 localhost 访问;
  • 除了 root 用户,此数据库只能被用户 Raikon 查询,此用户密码为 atenorth  root 用户的密码为 atenorth,同时不允许空密码登陆。
:安装、配置、启动MariaDB
yum -y install mariadb mariadb-server
vim /etc/my.cnf
[mysqld]
skip-networking

systemctl restart mariadb 
systemctl enable mariadb 

:数据库基本操作
wget http://classroom.example.com/pub/materials/users.sql
mysqladmin -u root password 'atenorth'
mysql -u root -patenorth

CREATE DATABASE Contacts;
USE Contacts;
SOURCE /root/users.sql
GRANT select ON Contacts.* to Raikon@localhost IDENTIFIED BY 'atenorth';
DELETE FROM mysql.user WHERE Password='';

二十二、数据库查询

试题概述:
  在系统 system1上使用数据库 Contacts,并使用相应的 SQL 查询以回答下列问题:

  • 密码是 solicitous 的人的名字?
  • 有多少人的姓名是 Barbara 同时居住在 Sunnyvale?
SELECT name FROM base WHERE password='solicitous';
SELECT count(*) FROM base,location WHERE base.name='Barbara' AND location.city='Sunnyvale' AND base.id=location.id ;
posted @ 2019-06-22 13:40  Federico  阅读(2192)  评论(0编辑  收藏  举报