RHCE7 题库

RHCE7考试模拟题

RHCE部分

您在考试中将使用到两个系统的信息如下:

system1.group8.example.com : 作为服务器

system2.group8.example.com : 作为客户端

两个系统的root密码为redhat

系统的IP地址有DHCP提供,您可以视为正常,或者您可以按照一下信息重新设置未静态IP

system1.group8.example.com 172.24.8.11/24

system2.group8.example.com 172.24.8.12/24

两个系统均为DNSgroup8.example.com的成员。除非特别指名,不然所有要求配置的网络服务都必须能被该域的系统访问。

server.group8.example.com 提供了集中认证的服务器为group8.example.com。两个系统system1system2都已经预先配置成此域的客户端。

server.group8.example.com 提供了YUM软件仓库,URLhttp://server.group8.example.com/yum

防火墙是默认打开的,在您认为适当的时候可以关闭。其他防火墙的设置可能在单独的要求中。

my133.org(172.13.8.0/24)作为不可信网络。

 

第一题:设定SELinux

system1 system2 上要求 SELinux 的工作模式为 enforcing :

要求系统重启后依然生效。

vim /etc/selinux/config            #编辑seliunx配置文件

SELINUX=enforcing               #设置运行模式为强制执行

setenforce 1                     #设置当前模式为强制执行

getenforce                       #查看当前selinux运行模式

 

第二题:配置防火墙

请按下列要求在 system1 system2 上设定防火墙系统:

允许 group8.example.com 域的客户对 system1 system2 进行 ssh 访问。

禁止 my133t.org 域的客户对 system1 system2 进行 ssh 访问。

备注: my133t.org 是在 172.13.8.0/24 网络

方法1:命令行实现

systemctl mask iptables          #屏蔽iptables,不让它启动。

systemctl mask ip6tables         #屏蔽ip6tables,不让它启动。

systemctl enable firewalld       #设置开机自动启动firewall服务

systemctl start firewalld        #设置立即开启firewall服务

firewall-cmd --permanent --add-service=ssh     #设置永久开放ssh服务

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.13.8.0/24 service name=ssh  reject' #设置SSH服务拒绝某一网段的访问

firewall-cmd  --reload  #重读配置文件

firewall-cmd  --list-all  #防火墙规则列表

 

 

方法2:用firewall-config 图形工具

 

 

 

 

 

 

第三题:自定义用户环境

在系统system1system2上创建自定义命令为qstat ,要求:

此自定义命令将执行以下命令:/bin/ps -Ao pid,tt,user,fname,rsz

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

vim /etc/bashrc                  #设置为别名并且开机启动

alias qstat='/bin/ps -Ao pid,tt,user,fname,rsz'

. /etc/bashrc                     #让配置文件立即生效

qstat                            #检查

 

第四题:配置端口转发

在系统 system1 设定端口转发,要求:

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

此设置必须永久有效

方法1:命令行工具实现

#设置TCP协议 5423端口转发80端口

firewall-cmd --permanent  --add-rich-rule='rule family=ipv4 source address=172.24.8.0/24 forward-port port=5423 protocol=tcp to-port=80'

#设置UDP协议 5423端口转发80端口

firewall-cmd --permanent  --add-rich-rule='rule family=ipv4 source address=172.24.8.0/24 forward-port port=5423 protocol=udp to-port=80'

#更新防火墙规则

firewall-cmd  --reload

#查看防火墙规则列表

Firewall-cmd  --list-all

 

方法2:图形工具实现

运行firewall-config打开图形工具

 

第五题:配置链路聚合                          

system2system1之间按以下要求设定一个链路:

此链路使用接口eth1eth2

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

此链路在system1使用下面的地址172.16.3.40/255.255.255.0

此链路在system2使用下面的地址172.16.3.45/255.255.255.0

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

1)创建team类型的网卡,连接别名为team0,使用的模式为activebackup

activebackup 表示热备,loadbalance 表示负载均衡

nmcli connection add type team con-name team0 ifname team0

config  '{"runner":{"name":"activebackup"}}'  

2)根据题目要求给team0链路接口绑定指定的IP,并且把属性改为manual

nmcli  connection modify team0 ipv4.addresses  '172.16.3.40/24'  ipv4.method manual connection.autoconnect yes

3ens33以及ens37分别加入team0接口

nmcli  connection add type team-slave con-name team0-port1 ifname eth1 master team0

nmcli  connection add type team-slave con-name team0-port2 ifname eth2 master team0

 

4)启动接口中的网卡

nmcli connection up team0-port1

nmcli connection up team0-port2

nmcli connection up team0

 

 

5)验证

#查看网卡是否正常

nmcli device status

teamdctl team0 state     #查看聚合网卡中的主网卡

 

6)在system2上面也按照上面的步骤操作一遍

特别注释需要启动team0-port1 up team0-port2 team0才有高可用功能。

等会尝试一下将聚合网卡模式改为负载均衡

 

 

 

 

第六题:配置IPV6地址

在考试系统上设定接口eth0使用下列IPV6地址:

system1上的地址应该是2003:ac18::305/64

system2上的地址应该是2003:ac18::30a/64

两个系统必须能与网络2003:ac18/64内的系统通信

地址必须在重启后依然生效

两个系统必须保持当前的IPV4地址并能通信

方法1:命令行实现

nmcli connection modify eth0 ipv6.method manual ipv6.addresses 2003:ac18::305/64 connection.autoconnect yes          #设置IPV6地址  

nmcli connection up eth0            #重启网卡

Ifconfig                          #查看网卡信息

ping6 2003:ac18::305  #ping server1IPV6地址

ping6 2003:ac18::30a  #ping server2IPV6地址

 

方法2nm-connection-editor 图形配置实验

nmcli con reload            #重读配置文件

nmcli con down eth0        #关闭网卡

nmcli con up eth0           #启用网卡

ping6 2003:ac18::305  #ping server1IPV6地址

ping6 2003:ac18::30a  #ping server2IPV6地址

 

第七题:配置本地邮件服务

在系统 system2 system1 上配置邮件服务,要求:

这些系统不接受外部发送来的邮件

在这些系统上本地发送的任何邮件都会自动路由到mail.group8.example.com

从这些系统上发送的邮件显示来自于server.group8.example.com

您可以通过发送邮件到本地用户 dave 来测试您的配置,

系统 server.group8.example.com 已经配置把此用户的邮件转到URL

http://server.group8.example.com/pub/received_mail/8

1)安装

yum install postfix -y     cneots6 centos7默认安装 rpm -q postfix

systemctl enable postfix    cneots6 centos7默认自启  systemctl is-enabled postfix.service

2)修改配置

vim /etc/postfix/main.cf           #可以编辑配置文件修改,也可以使用命令修改

postconf  -e "inet_interfaces = loopback-only" #监听本地回环接口默认值,可不加

postconf  -e "myorigin = server.group8.example.com"    #设置本地邮件显示来源域

postconf  -e "relayhost = [mail.group8.example.com]"    #指定中继邮件服务器

postconf  -e "mydestination = "   #不接受任何邮件

postconf  -e "local_transport = error: local delivery disabled"  #默认值,可不加

postconf  -e "mynetworks = 127.0.0.0/8, [::1]/128"  #本地网络

3)修改配置就重启

systemctl restart postfix

postconf    #可查看设置         

4)配置完成,使用mail命令发送一封邮件测试

mail -s fuxk [email protected]

erwerwr

.

EOT

curl http://server.group8.example.com/pub/received_mail/8多试几次,可以看到邮件

 

第八题:通过 SMB 共享目录

system1 上配置SMB服务 ,要求:

您的 SMB 服务器必须是 STAFF 工作组的一个成员

共享 /common 目录,共享名必须为 common

只有 group8.example.com 域内的客户端可以访问common共享

common 必须是可以浏览的

用户 andy 必须能够读取共享中的内容,如果需要的话,验证密码是redhat

 

1)安装包和准备共享目录

yum -y install samba samba-client 

#立即启动服务

systemctl start smb nmb

systemctl status smb nmb

#设置开机自动启动服务

systemctl enable  smb nmb

systemctl is-enabled smb nmb

 

2)设置防火墙策略 

firewall-cmd --permanent --add-service=samba  #允许samba服务通过防火墙

firewall-cmd --reload    #刷新权限

Firewall-cmd --list-all    #查看防火墙策略

 

3)创建共享文件夹

mkdir /common  

 

4设置目录权限

1#设置ACL权限允许andy/common目录进行读写执行权限

setfacl –m u:andy:rwx /common

 

5)设置目录的SElinux标签

chcon -t  samba_share_t  /common

 

                

 

 

 

6)创建samba用户

#创建andy系统用户

useradd -s /sbin/nologin  andy

#创建samba用户

smbpasswd -a andy 

#输入密码

redhat

#再次输入密码

redhat

 

6)设置samba服务配置文件     #centos6里面有很多注释

vim /etc/samba/smb.conf         #centos7里面全部都是干货

 workgroup = STAFF   #按照题目要求修改工作组    不可省略

[common]       #共享名    不可省略

path = /common    #共享文件路径              不可省略

comment = redhat  #描述信息(可改可不改)

hosts allow= 172.24.8.  #允许访问的主机     不可省略

write list = andy       #写入权限的列表       不可省略

browseable = yes      #是否允许浏览         不可省略

 

#重启服务

systemctl restart  smb

 

7)测试

smbclient -L 172.24.8.11 查看到共享                成功!

touch /root/{a,b}

touch /common/{c,d}

smbclient  //172.24.8.11/common  -Uandy%redhat        成功!

smb: \> get c 成功

smb: \> put a 成功

smb: \> exit

 

 

 

 

第九题:配置多用户SMB挂载

system1 通过 SMB 共享目录 /devops ,并满足下列要求:

共享名为 devops

共享目录 devops 只能 group8.example.com 域中的客户端使用

共享目录 devops 必须可以被浏览

用户 silene 必须能以读的方式访问此共享,访问密码是redhat

用户 akira 必须能以读写的方式访问此共享,访问密码是redhat

此共享永久挂载在 system2.group8.example.com 上的 /mnt/dev 目录,

并使用用户 silene 作为认证任何用户,可以通过用户 akira 来临时获取写的权限

 

1)创建共享文件夹

mkdir /devops  

 

2)设置目录的SElinux标签

chcon -t  samba_share_t  /devops

3) 设置目录权限

设置ACL权限

setfacl -m u:silene:rx /devops

setfacl -m u:akira:rwx /devops

 

4)创建samba用户

#创建silene用户

smbpasswd -a silene 

#输入密码

redhat

#再次输入密码

redhat

 

#创建akira用户

smbpasswd -a akira 

#输入密码

redhat

#再次输入密码

redhat

 

5)设置samba服务配置文件     #centos6里面有很多注释

vim /etc/samba/smb.conf         #centos7里面全部都是干货

workgroup = STAFF   #按照题目要求修改工作组    不可省略

[devops]         #共享名    不可省略

path = /devops    #共享文件路径              不可省略

comment = redhat  #描述信息(可改可不改)

hosts allow= 172.24.8.  #允许访问的主机     不可省略

write list = akira       #写入权限的列表       不可省略

browseable = yes      #是否允许浏览

 

5) 重启服务

systemctl restart  smb

 

7)测试

smbclient -L 172.24.8.11 查看到共享              

touch /root/{a,b}

touch /common/{c,d}

smbclient //172.24.8.11/devops -Uakira%redhat      

smb: \> get c 成功

smb: \> put a 成功

smb: \> exit

smbclient //172.24.8.11/devops -Usilene%redhat            

smb: \> get d 成功

smb: \> put b 失败

smb: \> exit

#接下来在system2上面进行操作!!!!!

1) 安装包和准备挂载点

#安装软件

yum -y install cifs-utils 

yum -y install samba-client #必须安装否则显示没有smbclient命令,无法访问共享文件。

#创建挂载点

mkdir /mnt/dev

 

2) 实现多用户挂载

#silene用户写入文件里面(避免在fstab里面写入明文密码)

echo 'username=silene' >/root/smb-multiuser.txt

#brian用户密码写入文件里面(避免在fstab里面写入明文密码)

echo 'password=redhat' >>/root/smb-multiuser.txt

 

#把挂载信息写入文件,以后开机自动挂载

vim /etc/fstab

//172.24.8.11/devops /mnt/dev cifs credentials=/root/smb-multiuser.txt,multiuser,sec=ntlmssp  0  0

或者

//172.24.8.11/devops /mnt/dev cifs defaults,multiuser,username=silene,password=redhat,sec=ntlmssp 0 0

#重新加载挂载信息

mount  -a

 

3切换用户

su - akira

#授权

cifscreds add 172.24.8.11

#输入密码

redhat

echo "Multiuser" >/mnt/dev/akira.txt  成功写入

 

第十题:配置NFS服务

system1 配置NFS服务,要求如下:

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

以读写的方式共享目录 /protected ,同时只能被 group8.example.com 域中的系统访问

访问 /protected 需要通过Kerberos安全加密,您可以使用下面URL提供的密钥

     http://server.group8.example.com/pub/keytabs/system1.keytab

目录 /protected 应该包含名为 project 拥有人为 andres 的子目录

用户 andres 能以读写方式访问 /protected/project

yum install nfs-utils           #安装软件包     实验环境中这项忽略!!!(已安装)

systemctl start nfs-server     #立即启用该服务

systemctl enable nfs-server     #开机启用该服务

firewall-cmd --permanent --add-service=nfs       #设置防火墙允许该服务

firewall-cmd --permanent --add-service=rpc-bind   #设置防火墙允许该服务

firewall-cmd --permanent --add-service=mountd   #设置防火墙允许该服务

firewall-cmd –reload      #重读防火墙配置

firewall-cmd --list-all      #查看防火墙策略列表

mkdir /public            #创建共享文件夹

mkdir /protected/project –pv       #创建共享文件夹

chown andres /protected/project  #设置该目录所有人

chmod 770

 /protected/project     #修改该目录权限

chcon  -t  public_content_t /public/    #设置目录的SElinux标签   这个标签为什么是

chcon  -t  public_content_t /protected/  #设置目录的SElinux标签

chcon  -t  public_content_t /protected/project/ #设置目录的SElinux标签

wget -O /etc/krb5.keytab http://server.group8.example.com/pub/keytabs/system1.keytab

#下载密钥文件并且重命名

vim /etc/exports            #修改配置文件

/public   *.group8.example.com(ro)    #设置/public只读权限

/protected  *.group8.example.com(rw,sec=krb5p,sync)  #设置/protected 读写权限

 

vim /etc/sysconfig/nfs    #修改配置文件

# Optional arguments passed to rpc.nfsd. See rpc.nfsd(8)

RPCNFSDARGS="-V  4.2"#设置nfs的工作模式是4.2版本

 

systemctl restart nfs-server    nfs-secure-server  #重启该服务

systemctl enable nfs-server    nfs-secure-server  #开机启用该服务

 

exportfs -r   #生效

exportfs     #查看

 

第十一题:在 system2 上挂载一个来自 system1.group8.example.com NFS共享,

并符合下列要求:

/public 挂载在下面的目录上 /mnt/nfsmount

/protected挂载在下面的目录上 /mnt/nfssecure 并使用安全的方式,

密钥下载URL如下:

http://server.group8.example.com/pub/keytabs/system2.keytab

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

这些文件系统在系统启动时自动挂载    如果无法解析主机名可能是nmb服务未开启!!!

SYSTEM2

mkdir /mnt/nfsmount /mnt/nfssecure    #创建挂载点

wget -O /etc/krb5.keytab http://server.group8.example.com/pub/keytabs/system2.keytab

#下载密钥并且重命名

vim /etc/fstab          #编辑配置文件

172.24.8.11:/public    /mnt/nfsmount nfs defaults 0 0    #填写挂载信息

172.24.8.11:/protected /mnt/nfssecure nfs defaults,sec=krb5p,v4.2 0 0

 

systemctl start nfs-secure      #立即启用该服务

systemctl enable nfs-secure    #开机启用该服务

mount a                   #重读挂载信息

 

验证:

su  andres                  #切换到该用户

kinit                        #获取令牌

klist                         #查看令牌

cd /mnt/nfssecure/project       #进入目录

touch hello                     #创建一个文件

 

第十二题:实现一个 web 服务器

system1 上配置一个站点 http://system1.group8.example.com/,然后执行下述步骤:

http://server.group8.example.com/pub/system1.html 下载文件,并且将文件重名为 index.html 不要修改此文件的内容

将文件 index.html 拷贝到您的 web 服务器的 DocumentRoot 目录下

来自于 group8.example.com 域的客户端可以访问此web服务

来自于my133t.org域的客户端拒绝访问此web服务

1)安装包和防火墙配置

yum install httpd         #安装软件包

systemctl enable httpd    #开机启用该服务

systemctl start httpd      #立即启用该服务

 

2)防火墙配置

firewall-cmd --permanent --add-service=http    #设置防火墙允许该服务

firewall-cmd --reload     #设置防火墙重读配置文件

firewall-cmd --list-all     #查看防火墙策略列表

 

3) 配置httpd服务  

#拷贝模版文件        

cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/vhosts.conf

vim /etc/httpd/conf.d/vhosts.conf           #编辑配置文件

<VirtualHost *:80>                        #编辑端口

    ServerName system1.group8.example.com   #编辑站点名

    DocumentRoot "/var/www/html"

    <Directory "/var/www/html">

    <RequireAll>

        Require all granted

        Require  not host  .my133t.org         #编辑拒绝的域名

    </RequireAll>

    </Directory>

</VirtualHost>

 

 

wget -O /var/www/html/index.html http://server.group8.example.com/pub/system1.html

systemctl restart httpd                 #重启该服务

 

SYSTEM2 #system2主机上面操作

curl system1.group8.example.com       #访问服务器

Site:system1.group8.example.com       #得到提示信息

#查看目录的selinux

ll  -L -d /var/www/html

drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/

 

 

第十三题:配置安全web服务

为站点 http://system1.group8.example.com 配置TLS加密:

一个已签名证书从 http://server.group8.example.com/pub/tls/certs/system1.crt 获取

此证书的密钥从 http://server.group8.example.com/pub/tls/private/system1.key 获取

此证书的签名授权信息从 http://server.group8.example.com/pub/tls/certs/ssl-ca.crt 获取

1)安装包

yum -y install httpd mod_ssl

 

2)防火墙配置

firewall-cmd --permanent --add-service=https

firewall-cmd --reload

 

4) 下载相关证书文件

wget -O /etc/pki/tls/certs/system1.crt  http://server.group8.example.com/pub/tls/certs/system1.crt

wget -O /etc/pki/tls/private/system1.key

http://server.group8.example.com/pub/tls/private/system1.key 

wget -O /etc/pki/tls/certs/ssl-ca.crt

http://server.group8.example.com/pub/tls/certs/ssl-ca.crt

 

5) 配置https服务

cat /etc/httpd/conf.d/ssl.conf|grep -v "^#.*"   #模版文件

复制这几行作为模板修改

 

vim /etc/httpd/conf.d/vhosts.conf

<VirtualHost *:443>

    DocumentRoot "/var/www/html"

    ServerName system1.group8.example.com:443

    <Directory "/var/www/html">

        <RequireAll>

        Require all granted

        Require not host .my133t.org

        </RequireAll>

    </Directory>

    SSLEngine on

    SSLProtocol all -SSLv2

    SSLCertificateFile /etc/pki/tls/certs/system1.crt

    SSLCertificateKeyFile /etc/pki/tls/private/system1.key

SSLCACertificateFile /etc/pki/tls/certs/ssl-ca.crt

</VirtualHost>

 

 

 

systemctl restart httpd   #重启该服务

 

5)测试

SYSTEM2

curl -k https://system1.group8.example.com   #访问该站点

Site:system1.group8.example.com            #显示信息

 

 

第十四题:配置虚拟主机

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

设置 DocumentRoot /var/www/virtual

http://server.group8.example.com/pub/www8.html 下载文件重名为 index.html ,不要对文件 index.html 的内容做任何修改

将文件 index.html 放到虚拟主机的 DocumentRoot 目录下

确保 andy 用户能够在 /var/www/virtual 目录下创建文件

注意:原站点 http://system1.group8.example.com 必须仍然能够访问,名称服务器 server.group8.example.com 已经提供对主机名 www8.group8.example.com 的域名解析

1)安装包和配置防火墙

yum install httpd       #安装软件包

systemctl enable httpd   #开机启用该服务

firewall-cmd --permanent --add-service=http   #设置防火墙允许该服务

firewall-cmd --reload   #重读防火墙策略

 

2)准备虚拟网站的目录和网页文件

mkdir -p /var/www/virtual           #创建虚拟机文件夹

wget -O /var/www/virtual/index.html http://server.group8.example.com/pub/www8.html

 

3)设置SELinux

chcon -t  httpd_sys_content_t  /var/www/virtual     #编辑SELinux标签

或者

semanage fcontext -a -t httpd_sys_content_t '/var/www/virtual(/.*)?'

restorecon -R /var/www/virtual

 

4)实现用户的权限控制

id andy    #如果用户不存在就自己建立

setfacl  -m  u:andy:rwx  /var/www/virtual/      #编辑文件夹ACL权限

 

5)配置虚拟服务器

vim /etc/httpd/conf.d/vhosts.conf

<VirtualHost *:80>

    ServerName  www8.group8.example.com  #编辑站点名

    DocumentRoot "/var/www/virtual"  #编辑根目录

<Directory "/var/www/virtual">

    <RequireAll>

        Require all granted

        </RequireAll>

    </Directory>

</VirtualHost>

 

systemctl restart httpd

 

 

6)测试

SYSTEM2

curl www8.group8.example.com     #访问站点

Site:www8.group8.example.com     #显示信息

 

第十五题:配置 web 内容的访问

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

http://server.group8.example.com/pub/private.html 下载一个文件副本到这个目录,并且重命名为 index.html

不要对这个文件的内容做任何修改

system1 上,任何人都可以浏览 private 的内容,但是从其它系统不能访问这个目录的内容。备注:此题目是接着上一题,所以这里的DocumentRoot指的就是上面的/var/www/virtual/ !!!

1)准备相关目录和文件

mkdir -p /var/www/virtual/private           #创建文件夹

wget -O /var/www/virtual/private/index.html   #下载并重命令文件

http://server.group8.example.com/pub/private.html

 

2)配置httpd服务 

vim /etc/httpd/conf.d/vhosts.conf    #编辑配置

不需要全部新加,要在原来的基础上进行修改 !!!只需添加红色字

<VirtualHost *:80>                    #配给端口

    ServerName  www8.group8.example.com  #编辑站点名

    DocumentRoot "/var/www/virtual"    #编辑根目录地址

    <Directory "/var/www/virtual">

     <RequireAll>   

Require all granted

     </RequireAll>  

     </Directory>

     <Directory "/var/www/virtual/private">

        Require all denied

        Require local     #设置只允许本机访问

    </Directory>

 

</VirtualHost>

 

3systemctl restart httpd      #重启该服务

 

4)测试

SYSTEM1测试:

curl http://www8.group8.example.com/private/

This a private file,only for local access!

 

SYSTEM1测试:

curl http://www8.group8.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>

 

 

 

 

第十六题:实现动态WEB内容

system1 上配置提供动态web内容,要求:

动态内容由名为 wsgi.group8.example.com 的虚拟主机提供

虚拟主机侦听在端口 8909

http://server.group8.example.com/pub/webinfo.wsgi 下载一个脚本,然后放在适当的位置,无论如何不要求修改此文件的内容

客户端访问 http://wsgi.group8.example.com:8909/ 时,应该接收到动态生成的web页面

http://wsgi.group8.example.com:8909/ 必须能被 group8.example.com 域内的所有系统访问

1)安装包

yum -y install httpd mod_wsgi       #安装软件包 

systemctl is-enabled httpd || systemctl enable httpd    #设置该服务开机启用

 

2)准备httpd相关目录和文件

mkdir -p /var/www/wsgi.group8         #创建文件夹

wget -O /var/www/wsgi.group8/webinfo.wsgi http://server.group8.example.com/pub/webinfo.wsgi  #下载并重命名文件

 

3)设置SELinux

semanage port -a -t http_port_t -p tcp 8909     #设置SELinux标签

chcon -t httpd_sys_content_t  /var/www/wsgi.group8  [#默认设置,可不执行]

 

4)设置防火墙

firewall-cmd  --permanent  --add-port=8909/tcp   #设置防火墙开启该端口

firewall-cmd  --reload    #重读防火墙配置

firewall-cmd --list-all     #查看防火墙策略列表

 

5)设置httpd虚拟机

vim /etc/httpd/conf.d/vhosts.conf

Listen 8909

<VirtualHost *:8909>     #设置端口号

   WSGIScriptAlias  /  /var/www/wsgi.group8/webinfo.wsgi  #设置动态文件地址

</VirtualHost>

 

systemctl restart httpd       #重启该服务

 

6)测试

SYSTEM1

curl wsgi.group8.example.com:8909

This Dynamic WSGI Page Was Generated at:

Tue Jul  3 11:13:18 2018

 

Web总结

 

W

 

 

 

 

 

 

第十七题:

创建一个脚本

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

当运行 /root/foo.sh redhat ,输出为 fedora

当运行 /root/foo.sh fedora ,输出为 redhat

当没有任何参数或者参数不是 redhat 或者 fedora 时,其错误输出产生以下的信息:

 /root/foo.sh redhat | fedora

 

SYSTEM1

vim /root/foo.sh      #创建脚本文件

#!/bin/bash            #设置解释器为bash

if [ "$1" = "redhat" ];then   #如果输入值等于redhat

        echo "fedora"      #则打印 fedora

elif [ "$1" = "fedora" ];then    #反之如果输入的值等于fedo

        echo "redhat"        #则打印redhat

else                           #如果输入是其他值

        echo "/root/foo.sh redhat | fedora" 1>&2  #则输出该行

fi     

 

chmod 777 /root/foo.sh   #给脚本文件设置权限

 

测试:

[root@system1 ~]# /root/foo.sh redhat

fedora

[root@system1 ~]# /root/foo.sh fedora

redhat

[root@system1 ~]# /root/foo.sh > /dev/null

/root/foo.sh redhat | fedora     

 

 

 

 

第十八题:   创建一个添加用户的脚本

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

此脚本要求提供一个参数,此参数就是包含用户名列表的的文件

如果没有提供参数,此脚本应该给出下面的提示信息 Usage: /root/batchusers userfile 然后退出并返回相应的值

如果提供一个不存在的文件名,此脚本应该给出下面的提示信息 Input file not found 然后退出并返回相应的值

创建的用户登录shell/bin/false

此脚本不需要为用户设置密码

可以从下面的URL获取用户名列表作为测试http://server.group8.example.com/pub/userlist

#创建配置文件

vim /root/batchusers.sh     

#!/bin/bash

if [ $# -eq 1 ];then

       if [ -f "$1" ];then

            while read username ;do

            useradd -s /bin/false $username

    echo redhat|passwd  --stdin $username &>/dev/null  #需要密码才加入

                done < $1

        else

                echo "Input file not found"

                exit 1

        fi

else

        echo "Usage: /root/barchusers userfile"

        exit 2

fi

 

chmod  +x  /root/batchusers   #设置文件权限

 

wget -O /root/userlist http://server.group8.example.com/pub/userlist  #下载用户列表

 

#测试

 

/root/batchusers

Usage: /root/barchusers userfile

 

/root/batchusers haha

Input file not found

 

/root/batchusers  userlist   

 

 

第十九题:配置 ISCSI 服务端

配置 system1 提供一个 ISCSI 服务 磁盘名为 iqn.2014-08.com.example.group8:system1 ,并符合下列要求:

1服务端口为 3260

2使用 iscsi_store 作其后端逻辑卷名称,其大小为 3G

3此服务只能被 system2.group8.example.com 访问

SYSTEM1

yum install targetcli       #安装软件包

systemctl start target      #启用该服务

systemctl enable target     #开机启用该服务      

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address=172.24.8.12 port port=3260 protocol=tcp accept' #允许3260端口

firewall-cmd --reload      #重读配置文件

firewall-cmd --list-all      #查看防火墙策略列表

 

fdisk /dev/sda           #编辑/dev/sda设备

5G                     #增加一个分区,容量为5G

8e                      #设置类型为LVM逻辑卷

 

partprobe               #同步磁盘信息

pvcreate /dev/sda3        #创建物理卷

vgcreate  vg0  /dev/sda3     #创建卷组

lvcreate  -L 3G -n iscsi_store vg0  #创建逻辑卷 iscsi_store并指定其大小

 

targetcli             #配置iSCSi服务器

#定义了一个本地的块设备

/> backstores/block create name=iscsi_store dev=/dev/vg0/iscsi_store 

/> cd iscsi

/iscsi> create iqn.2014-08.com.example.group8:system1  #定义了一个iscsi target

/iscsi> cd iqn.2014-08.com.example.group8:system1/  

/iscsi/iqn.20...roup8:system1> cd tpg1/

#把定义好了的块设备通过该target共享出去

/iscsi/iqn.20...:system1/tpg1> luns/ create /backstores/block/iscsi_store

/iscsi/iqn.20...:system1/tpg1> acls/ create iqn.2014-08.com.example.group8:system2

#定义target的入口(客户使用什么IP和端口访问)

/iscsi/iqn.20...:system1/tpg1> portals/ create 172.24.8.11

创建基于iqnacl:允许该名字的客户端访问本iscsitagert

/iscsi/iqn.20...:system1/tpg1> set attribute authentication=0   

/iscsi/iqn.20...:system1/tpg1> set attribute generate_node_acls=0

/iscsi/iqn.20...:system1/tpg1> cd /

/> saveconfig

/> exit

 

 

第二十题:配置 iSCISI 的客户端

配置 system2 使其能连接在 system1 上提供的 iqn.2014-08.com.example.group8:system1,并符合以下要求:

1 iSCISI 设备在系统启动的期间自动加载

2 块设备 iSCISI 上包含一个大小为 2100 MiB 的分区,并格式化为 ext4

3 此分区挂载在 /mnt/data 上,同时在系统启动的期间自动挂载

1)安装客户端软件包

yum -y install iscsi-initiator-utils

 

2)设定服务开机启动和马上启动

systemctl start iscsi  iscsid

systemctl enable iscsi  iscsid

 

 

3)配置iscsi客户端的名字,根据题目要求修改

vim /etc/iscsi/initiatorname.iscsi

InitiatorName=iqn.2014-08.com.example.group8:system2   服务器上的ACL设置要保持一致

 

systemctl restart iscsi   iscsid

 

 

4)发现target

iscsiadm -m discovery  -t  st  -p  172.24.8.11

172.24.8.11:3260,1 iqn.2014-08.com.example.group8:system1  #显示信息

 

5)登陆target

iscsiadm -m node -l

# lsblk

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda      8:0    0  3G  0 disk   <----本地多了一个3G的硬盘

vda    253:0    0   10G  0 disk

└─vda1 253:1    0   10G  0 part /

vdb    253:16   0   10G  0 disk

 

6)分区并格式化

fdisk /dev/sdb

+2100M

mkfs.ext4 /dev/sdb1

blkid /dev/sdb1

/dev/sdb1: UUID="4e4dda09-6bca-4f9d-9477-843c110d856d" TYPE="ext4"

 

7) 创建挂载点

mkdir /mnt/data

 

 

 

 

7)配置开机自动挂载

mkdir /mnt/data

根据题目要求,挂载的时候需要添加_netdev参数

vim /etc/fstab  

UUID=4e4dda09-6bca-4f9d-9477-843c110d856d /mnt/data  ext4 defaults,_netdev 0 0

mount –a

 

8)删除iscsi客户端(考试不用执行)

Umount /mnt/data

iscsiadm -m node –u 注销

iscsiadm -m node -o delete 删除

 

第二十一题:配置一个数据库

system1上创建一个 Maria DB 数据库,名为 Contacts,要求:

1数据库应该包含来自数据库复制的内容,复制文件的URLhttp://server.group8.example.com/pub/users.mdb ,数据库只能被 localhost 访问

2除了 root 用户,此数据库只能被用户 Mary 查询,此用户密码为 redhat

3 root 用户的数据库密码为 redhat ,同时不允许空密码登录

1)安装包和启动服务

yum -y install mariadb-server

systemctl enable mariadb

systemctl start mariadb

 

2)配置防火墙

firewall-cmd  --permanent  --add-service=mysql

firewall-cmd  --reload

 

3)初始化安全设置

mysql_secure_installation

...

Disallow root login remotely? [Y/n] y  题目要求禁止root远程登陆

 

4)还原数据库

wget -O /root/users.mdb

http://server.group8.example.com/pub/users.mdb

mysql -predhat     #登录Mysql数据库

MariaDB [(none)]> create database Contacts;  #创建Contacts数据库

MariaDB [(none)]> use Contacts             #切换到Contacts数据库

MariaDB [Contacts]> source /root/users.mdb  #将备份导入Contacts数据库

MariaDB [Contacts]> show tables;     #查看Contacts数据库中的表格

 

6) 设置访问权限

MariaDB [Contacts]> grant select on Contacts.* to Mary@localhost identified by 'redhat';

 

 

 

 

 

 

 

第二十二题:数据库查询

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

密码是fadora 的人的名字是什么?

有多少人的姓名是 John ,同时居住在 Santa Clara

MariaDB [Contacts]> select * from u_name right join u_passwd on u_name.userid=u_passwd.uid where password='fadora';

或:

MariaDB [Contacts]> select * from u_name,u_passwd where u_name.userid=u_passwd.uid and  password='fadora';

 

 

MariaDB [Contacts]> select * from u_name right join u_loc on u_name.userid=u_loc.uid where firstname='John' and location='Santa Clara';

MariaDB [Contacts]> select * from u_name,u_loc where u_name.userid=u_loc.uid and firstname='John' and location='Santa Clara';

 

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自www.cnblogs.com/Yuopen/p/9360641.html