rhce7 考题
2台服务器设置yum源
[aa]
name=aa
baesurl=ftp://server.rhce.cc/dvd
enabled=1
gpgcheck=0
cd /etc/yum.repos.d/
vim aa.repo
scp aa.repo system2:/etc/yum.reposd.d/
1、配置selinux
selinux必须在两个系统system1和system2中运行与enforcing模式
system1和system2中:vim /etc/selinux/config 将文件中selinux=后面改成enforcing
2、配置ssh访问:
按照以下要求配置ssh访问:
用户能够从域rhce.cc内的客户端通过ssh远程访问您的两个虚拟机系统
在域my133t.org内的客户端不能访问另外2个虚拟机系统
先解析本机域网段地址:host rhce.cc
vim /etc/hosts.allow 添加行:sshd : 192.168.122.0/255.255.255.0
vim /etc/hosts.deny 添加行: sshd : .my133t.org
将编辑好的文版复制到另外一台机器:scp /etc/ hosts.allow /etc/hosts.deny system2:/etc/
退出后在ssh,验证文本正确性。
3、自定义用户环境
在系统system1和system2上创建自定义命名为qstat此自定义命令将执行以下命令:/bin/ps -ao pid,tt,user,fname,rsz 此命令对系统中所有用户有效
system1和system2:vim /etc/bashrc 最后一行,添加:alias qstat=’/bin/ps -ao pid,tt,user,fname,rsz’
source /etc/bashrc
执行qstat检测
4、配置端口转发:
在系统system1配置端口转发,要求如下:
在192.168.122.0/24网络中的系统,访问system1的本地端口5423将被转发到80此设置必须永久有效
firewall-cmd –-add–rich-rule ‘rule family=”ipv4” source address=”192.168.122.0/24” forward-port to port=”80”protocol=”tcp” port=”5423”’
firewall-cmd –-add–rich-rule ‘rule family=”ipv4” source address=”192.168.122.0/24” forward-port to port=”80”protocol=”tcp” port=”5423”–permanent
可在家目录里面创建个文本,做复制模板:man –k firewall man
man firewall.richlanguage 找/Example,然后复制到创建的文本里面修改。
5、配置聚合链路
在system1.rhce.cc 和system2.rhce.cc 之间按以下要求配置一个链路:
此链路使用接口eth1 和eth2
此链路在一个接口失效时仍然能工作
此链路在system1 使用下面的地址172.16.11.25/255.255.255.0
此链路在system2 使用下面的地址172.16.11.35/255.255.255.0
此链路在系统重启之后依然保持正常状态
cd /usr/share/doc/teamd-1.9/example_ifcfgs/1/
cp * /etc/sysconfig/network-scripts/
cd /etc/sysconfig/network-scripts
scp * system2:/etc/sysconfig/network-scripts/
device=” team_test0”
name=” team_test0”
devicetype=”team”
onboot=”yes”
bootproto=none
netmask=255.255.255.0
ipaddr=172.16.11.35
team_config=’{“runner”:{“name”:”activebackup”}}’
device=”eth1”
name=”eth1”
devicetype=”teamport”
onboot=”yes”
team_master=”team_test0”
device=”eth2”
name=”eth2”
devicetype=”teamport”
onboot=”yes”
team_master=”team_test0”
配置完成后systemctl restart network
scp team_test0 ifcfg-ifcfg-eth0 ifcfg-eth1 system2:/etc/sysconfig/network-scripts/(最后修改system2:team_test文本ip,重启服务,在用ping和ifconfig检测结果)
6、配置ipv6 地址
在您的考试系统上配置接口eth0 使用下列ipv6 地址:
system1 上的地址应该是200e:ac18::e0a/64
system2 上的地址应该是200e:ac18::e14/64
两个系统必须能与网络200e:ac18/64 内的系统通信。
地址必须在重启后依旧生效。
两个系统必须保持当前的ipv4 地址并能通信。
system1:先查看eth0设备对应连接名:nmcli connection
nmcli connection modify eth0 ipv6.method auto
nmcli connection modify eth0 ipv6.address 200e:ac18::e0a/64
nmcli connection modify eth0 ipv6.method manual
重启服务后ping 自己及system2的ipv6
system2:先查看eth0设备对应连接名:nmcli connection
nmcli connection modify eth0 ipv6.method auto
nmcli connection modify eth0 ipv6.address 200e:ac18::e14/64
nmcli connection modify eth0 ipv6.method manual
重启服务后ping 自己及system1的ipv6
7、配置本地邮件服务
在系统system1 和system2 上配置邮件服务,满足以下要求:
这些系统不接收外部发送来的邮件
在这些系统上本地发送的任何邮件都会自动路由到rhgls.rhce.cc
从这些系统上发送的邮件显示来自于rhce.cc
您可以通过发送邮件到本地用户'dave' 来测试您的配置,系统rhgls.rhce.cc 已经配置此
用户的邮件转到下列url http://rhgls.rhce.cc/received_mail/11
system1:
firewall-cmd –-add-service=smtp
firewall-cmd –-add-service=smtp --permanent
cd /etc/postfix
vim main.cf中 复制一行mydestination,编辑mydestination=后面不写任何字符
vim main.cf 中复制一行relayhost,编辑relayhost=[rhgls.rhce.cc]
vim main.cf 中复制一行myorigin,编辑myorigin=rhce.cc
systemctl restart postfix 后打开浏览器测试发邮件
yum install mailx
echo aaaaa | mail –s ‘aaa’dave
浏览器中打开http://rhgls.rhce.cc/received_mail/11,打开邮件
scp main.cf system2:/etc/postfix/
system2:yum install mailx
firewall-cmd –-add-service=smtp
firewall-cmd –-add-service=smtp --permanent
systemctl restart postfix
echo bbbb | mail –s ‘bbb’ dave
8、通过smb 共享目录
在system1 上配置smb 服务
您的smb 服务器必须是staff 工作组的一个成员
共享/common 目录共享名必须为common
只有rhce.cc 域内的客户端可以访问common 共享
common 必须是可以浏览的
用户andy 必须能够读取共享中的内容,如果需要的话,验证的密码是redhat
yum install samba –y
cd /etc/samba
vim smb.conf 中workgroup=staff
mkdir /common
chcon –R –t samba_share_t /common
vim smb.conf 切到最后行:
[common]
path = /common
hosts allow = 192.168.122.0/24
firewall-cmd -–add-service=samba
firewall-cmd –-add-service=samba -permanent
id andy (查看用户,没有就新建用户)
yum whatprovides */smbpasswd
yum install samba-client –y(system2上也要装)
pdbedit –L
smbpasswd –a andy (添加smb用户)
systemctl start smb
systemctl enable smb
在system2上测试:
smbclient //system1/common –U andy%redhat
smbclient -L //system1/common –U andy%redhat
9、配置多用户smb 挂载
在system1 共享通过smb 目录/miscellaneous 满足以下要求:
共享名为miscellaneous
共享目录miscellaneous 只能被rhce.cc 域中的客户端使用
共享目录miscellaneous 必须可以被浏览
用户silene 必须能以读的方式访问此共享,访问密码是redhat
用户akira 必须能以读写的方式访问此共享,访问密码是redhat
此共享永久挂载在system2.rhce.cc 上的/mnt/multi 目录, 并使用用户silene 作为认
证任何用户可以通过用户akira 来临时获取写的权限
创建目录:mkdir /miscellaneous
chcon –R –t samba_share_t /miscellaneous
cd /etc/samba
vim smb.conf 最后行添加
[miscellaneous]
path = /miscellaneous
hosts allow = 192.168.122.0/24
writable = no
write list = akira
chmod o+w /miscellaneous
检查访用户:silene akira 没有就创建及设置密码
smbpasswd –a silene
smbpasswd –a akira
systemctl restart smb
system2上测试:
smbclient //system1/miscellaneous -U silene%redhat测试读写
smbclient //system1/miscellaneous -U akira%redhat测试读写
mkdir /mnt/multi
smbclient –l //system1/miscellaneous–u andy%redhat
vim /etc/fstab中添加一行
//system1/miscellaneous /mnt/multi cifs defaults,username=silene,password=redhat,multiuser,sec=ntlmssp 0 0
mount –a(如下提示是没安装cifs)
yum install cifs-u* -y
再mount –a
在创建用户tom1 tom2 tom3用于测试
su –tom1
cd / mnt/multi
cifscreds add system1 –u silene 然后测试无读写权限
su –tom2
cd / mnt/multi
cifscreds add system1 –u akira测试读写权限
10、配置nfs 服务
在system1 配置nfs 服务,要求如下:
以只读的方式共享目录/public 同时只能被rhce.cc 域中的系统访问
以读写的方式共享目录/protected 能被rhce.cc 域中的系统访问
访问/protected 需要通过kerberos 安全加密,您可以使用下面url 提供的密钥
http://host.rhce.cc/materials/nfs_server.keytab.
目录/protected 应该包含名为confidential 拥有人为ldapuser11 的子目录
用户ldapuser11 能以读写方式访问/protected/confidential
systemctl start nfs-server
systemctl enable nfs-server
firewall-cmd –-add-rich-rule‘rule family=”ipv4” source address=”192.168.122.0/24” service name=”nfs” accept’
firewall-cmd –-add-rich-rule ‘rule family=”ipv4” source address=”192.168.122.0/24” service name=”nfs” accept’ --permanet
firewall-cmd –-add-rich-rule ‘rule family=”ipv4” source address=”192.168.122.0/24” service name=”rpc-bind” accept’
firewall-cmd –-add-rich-rule ‘rule family=”ipv4” source address=”192.168.122.0/24” service name=”rpc-bind” accept’ --permanet
firewall-cmd –-add-rich-rule ‘rule family=”ipv4” source address=”192.168.122.0/24” service name=”mountd” accept’
firewall-cmd –-add-rich-rule ‘rule family=”ipv4” source address=”192.168.122.0/24” service name=”mountd” accept’–permanet
mkdir /public
vim /etc/exports中添加 /public *(ro,sync)
exportfs -arv
在system2上测试:showmount –e system1
mount system1:/public /mnt确认没问题后再卸载掉 umount /mnt
system1:
mkdir /protected
vim /etc/exports 中添加 /protected *(rw,sync,sec=krb5p)
exportfs -arv
wget –o(大写)/etc/krb5.keytab http://host.rhce.cc/materials/nfs_server.keytab
vim /etc/sysconfig/nfs 找到rpcnfsdargs=”-V 4.2”
chcon –R –t public_content_t /protected
mkdir /protected/confidential
chcon –R –t public_content_t /protected
chown ldapuser11 /protected/confidential
systemctl restart nfs-server
systemctl restart nfs-secure-server
systemctl enable nfs-server
systemctl enable nfs-secure-server
11、挂载一个nfs 共享
在system2 上挂载一个来自system1.rhce.cc 的nfs 共享,并符合下列要求:
/public 挂载在下面的目录上/mnt/nfsmount
/protected 挂载在下面的目录上/mnt/nfssecure 并使用安全的方式,密钥下载url 如
下:http://host.rhce.cc/materials/nfs_client.keytab.
用户ldapusre11 能够在/mnt/nfssecure/confidential 上创建文件
这些文件系统在系统启动时自动挂载
showmount –e system1
mkdir mnt/nfsmount
vim /etc/fstab 中添加system1.rhce.cc:/public /mnt/nfsmount nfs defaults 0 0
mount –a(检查挂着是否成功)
mkdir /mnt/nfssecure
wget –O /etc/krb5.keytab http://host.rhce.cc/materials/nfs_client.keytab
systemctl restart nfs-secure
systemctl enable nfs-secure
vim /etc/fstab system1.rhce.cc:/protected /mnt/nfssecure nfs defaults,v4.2,sec=krb5p 0 0
ssh [email protected] 验证touch aa
12、配置web 站点
system1 上配置一个站点http://system1.rhce.cc 然后执行下述步骤:
从http://rhgls.rhce.cc/materials/station.html
下载文件,并且将文件重命名为index.html 不要修改此文件的内容
将文件index.html 拷贝到您的web 服务器的documentroot 目录下
来自于rhce.cc 域的客户端可以访问此web 服务
来自于my133t.org 域的客户端拒绝访问此web 服务
yum groupinstall web* -y
systemctl start httpd
systemctl enable httpd
cd /etc/httpd/conf中vim httpd.com中找到/servername行并激活,system1.rhce.cc:80
wget –O /var/www/html/index.html http://rhgls.rhce.cc/materials/station.html
firewall-cmd –-add-rich-rule ‘rule family=”ipv4” source address=”192.168.122.0/24” service name=”http” accept’
firewall-cmd –-add-rich-rule ‘rule family=”ipv4” source address=”192.168.122.0/24” service name=”http” accept’ –permanent
systemctl restart httpd
打开浏览器访问:system1.rhce.cc看结果
ping system1.rhce.cc获取地址,写入/etc/hosts 192.168.122.100 system1.rhce.cc
13、配置安全web 服务
为站点http://system1.rhce.cc 配置TLS 加密一个已签名证书从
http://host.rhce.cc/materials/system1.crt 获取此证书的密钥从
http://host.rhce.cc/materials/system1.key 获取此证书的签名授权信息从
http://host.rhce.cc/materials/domain11.crt 获取
cd /etc/httpd/conf路径下下载
wget http://host.rhce.cc/materials/system1.crt
wget http://host.rhce.cc/materials/system1.key
wget http://host.rhce.cc/materials/domain11.cr
在打开一个终端然后ssh root@system1
cd /etc/httpd/conf.d/ 中vim ssl.conf
找到sslcertificatefile将值修改成/etc/httpd/conf/system1.crt
找到sslcertificatekeyfile将值修改成 /etc/httpd/conf/system1.key
找到sslcerttificatechainfile将值修改成 /etc/httpd/conf/domain11.crt
systemctl restart httpd
修改防火墙规则:
firewall-cmd –-add-rich-rule ‘rule family=”ipv4” source address=”192.168.122.0/24” service name=”https” accept’
firewall-cmd –-add-rich-rule ‘rule family=”ipv4” source address=”192.168.122.0/24” service name=”https” accept’ –permanent
在浏览器中浏览结果system1.rhce.cc
14、配置虚拟主机
在system1 上扩展您的web 服务器,为站点http://www..rhce.cc 创建一个虚拟主机,然后
执行下述步骤:
设置documentroot 为/var/www/virtual
从http://rhgls.rhce.cc/materials/www.html
下载文件并重命名为index.html 不要对文件index.html 的内容做任何修改
将文件index.html 放到虚拟主机的documentroot 目录下
确保andy 用户能够在/var/www/virtual 目录下创建文件
注意:原始站点http://system1.rhce.cc 必须仍然能够访问,名称服务器rhce.cc 提供对主机名www.rhce.cc 的域名解析
ping www.rhce.cc获取ip地址
vim /etc/hosts 写入解析
mkdir /var/www/virtual
wget –O /var/www/virtual/index.html http://rhgls.rhce.cc/materials/www.html
setfacl –m u:andy:rwx /var/www/virtual
在/etc/httpd/conf.d 目录下cp /usr/share/doc/http-2.4.6/httpd-vhosts.conf vhost.conf
vim vhost.conf删除不要的行,只留
documentroot /var/www/virtual
servername www.rhce.cc
documentroot /var/www/html
servername system1.rhce.cc
systemctl restart httpd
浏览器中验证:system1.rhce.cc
https://system1.rhce.cc
www.rhce.cc
15、配置web 内容的访问
在您的system1 上的web 服务器的documentroot 目录下创建一个名为secret 的目录,
要求如下:
从http://rhgls.rhce.cc/materials/private.html 下载一个文件副本到这个目录,并且重命名为index.html。不要对这个文件的内容做任何修改。
从system1 上,任何人都可以浏览secret 的内容,但是从其它系统不能访问这个目
录的内容
mkdir /var/www/html/secret /var/www/virtual/secret
vim /etc/httpd/conf.d/vhost.conf
wget –O /var/www/html/secret/index.html http://rhgls.rhce.cc/materials/private.html
wget –O /var/www/html/virtual/index.html
格式参考vim httpd.conf 复制
vim vhost.conf
allowoverride none
require local
allowoverride none
require local
systemctl restart httpd
curl –s www.rhce.cc/secret/index.html 显示private显示正常访问
curl –s system1.rhce.cc/secret/index.html 显示private显示正常访问
在到system2及实体机上测试访问
16、实现动态web 内容
在system1 上配置提供动态web 内容,要求如下:
动态内容由名为dynamic.rhce.cc 的虚拟主机提供
虚拟主机侦听在端口8998
从http://rhgls.rhce.cc/materials/webapp.wsgi 下载一个脚本,然后放在适当的位置,无
论如何不要求修改此文件的内容
客户端访问http://dynamic.rhce.cc:8998/ 时应该接收到动态生成的web 页面
此http://dynamic.rhce.cc:8998/ 必须能被rhce.cc 域内的所有系统访问
解析dynammic.rhce.cc地址,解析后将ip、长、短主机名写入hosts
firewall-cmd –-add-rich-rule ‘rule family=”ipv4” source ipaddress=”192.168.122.0/24” port port=“8998” protocol=”tcp” accept’
firewall-cmd -–add-rich-rule ‘rule family=”ipv4” source ipaddress=”192.168.122.0/24” port port=“8998” protocol=”tcp” accept’—permanent
192.168.122.100 system1.rhce.cc system1
192.168.122.100 www.rhce.cc www
192.168.122.100 dynamic.rhce.cc dynamic
vim httpd.conf开放端口 添加listen 8998
修改端口上下文:在vim /etc/ssh/sshd_config中找到模板
然后再semanage port –a –t http_port_t –p tcp 8998
vim vhost.conf
添加
DocumentRoot /var/www/html/yy (创建mkdir /var/www/html/yy)
ServerName dynamic.rhce.cc
yum install mod_wsgi -y
wget –P /var/www/html/yy/ http://rhgls.rhce.cc/materials/webapp.wsgi
vim vhost.conf在
添加一行WSGIScriptAlias / /var/www/html/yy/webapp.wsgi
systemctl restart httpd
浏览器检查结果
17、创建一个脚本
在system1 上创建一个名为/root/script 的脚本,让其提供下列特性:
当运行/root/script foo,输出为bar
当运行/root/script bar,输出为foo
当没有任何参数或者参数不是foo 或者bar 时,其错误输出产生以下的信息:
/root/script foo|bar
vim /root/script中写入:
#!/bin/bash
case $1 in
foo)
echo bar
;;
bar)
echo foo
;;
*)
echo ‘/root/script foo|bar’ ;;
esac
给脚本执行权限chmod +x script
执行脚本./script
检查结果:./script bar
./script foo
18、创建一个添加用户的脚本
在system1 上创建一个脚本,名为/root/mkusers , 此脚本能实现为系统system1 创建本地
用户, 并且这些用户的用户名来自一个包含用户名列表的文件。同时满足下列要求:
此脚本要求提供一个参数,此参数就是包含用户名列表的文件
如果没有提供参数,此脚本应该给出下面的提示信息usage: /root/mkusers 然后退出并
返回相应的值
如果提供一个不存在的文件名,此脚本应该给出下面的提示信息input file not found 然
后退出并返回相应的值
创建的用户登录shell 为/bin/false
此脚本不需要为用户设置密码您可以从下面的url 获取用户名列表作为测试用http://rhgls.rhce.cc/materials/userlist
system1编辑脚本:vim /root/mkusers
#!/bin/bash
if [ $# -eq 0 ]; then
echo “usage:/root/mkusers”
exit 1
fi
if [ ! –f $1 ] ; then
echo “input file not found”
exit 1
fi
while read aa
do
useradd –s /bin/false $aa
done <$1
wget http://rhgls.rhce.cc/materials/userlist
cat userlist
id lisi id wang
chmod +x /root/mkusers
检查结果./mkusers
./mkusers afafsfsad
./mkusers userlist
id lisi id wangw
19、配置iscsi 服务端
配置system1 提供一个iscsi 服务磁盘名为iqn.2014-09.com.example.domain11:system1 ,
并符合下列要求:
服务端口为3260
使用iscsi_vol 作其后端卷其大小为3g
此服务只能被system2.rhce.cc 访问
yum install target* -y
systemctl start target
systemctl enable target
fdisk /dev/vda创建3G分区
partprobe /dev/vda
targetcli后 ls/
/backstores/block create iscsi_vol /dev/vda4
/iscsi create iqn.2014-09.com.example.domain11:system1
cd /iscsi/iqn.2014-09.com.example.domain11:system1/tpg1/
acls/ create iqn.2014-09.com.example.domain11:xx
luns/ create /backstores/block/iscsi_vol ls /
portals/ create 0.0.0.0 3260 exit
设置防火墙(如下图),设置好后重启服务(systemctl restart firewalld)
20、配置iscsi 的客户端
配置system2 使其能连接在system1 的上提供的iqn.2014-09.com.example.domain11:system1
并符合以下要求:
iscsi 设备在系统启动的期间自动加载
块设备iscsi 上包含一个大小为1700 mib 的分区,并格式化为xfs
此分区挂载在/mnt/data 上同时在系统启动的期间自动挂载
yum install iscsi* -y
vim /etc/iscsi/initiatorname.iscsi中将 = 后面值修改成iqn.2014-09.com.example.domain11:xx
systemctl start iscsid
systemctl enable iscsid
iscsiadm –m discovery –t st –p system1.rhce.cc - l
创建一个1700m的分区,格式化mkfs.xfs /dev/vda?
自动挂载 vim /etc/fstab 中添加一行
/dev/sda? /mnt/data xfs defaults,_netdev 0 0
mkdir /mnt/data
mount –a检查结果
21、配置一个数据库
在system1 上创建一个mariadb 数据库, 名为contacts ,并符合以下条件:
数据库应该包含来自数据库复制的内容,复制文件的url 为
http://rhgls.rhce.cc/materials/users.mdb 。
数据库只能被localhost 访问。
除了root 用户, 此数据库只能被用户luigi 查询。此用户密码为redhat。
root 用户的密码为redhat ,同时不允许空密码登录。
yum install mariadb-server mariadb –y
systemctl start mariadb
systecmctl enable mariadb
进入mysql show databases;
create database contacts;
show databases;
退出后wget http://rhgls.rhce.cc/materials/users.mdb
登陆数据库mysql
use contacts;
source /root/users.mdb(下载的文件路径)
show tables; 查看
grant select on contacts.* to luigi@’localhost’ identified by ‘redhat’;
set password=password(‘redhat’)
退出后在连接数据库:quit mysql
22、数据库查询
在系统system1 上使用数据库contacts ,并使用相应的sql 查询以回答下列问题:
密码是tangerine 的人的名字?
有多少人的姓名是John 同时居住在Santa Clara?
mysql –uroot –predhat
use contacts;
show tables;
desc loc;
desc name;
desc pass;
select * from name join pass where name.aid=pass.bid;
select * from name join pass where name.aid=pass.bid and password=’ tangerine ’;
注意:是选择firstname 还是lastname。先将题目变成英文,看清是firstname还是lastname后在变成中文
select * from name join loc where name.aid=loc.cid;
select * from name join loc where name.aid=loc.cid and firstname= ’John’ and loction=’Santa Clara’;
select count(*) from name join loc where name.aid=loc.cid and firstname=’John’ and loction=’ santa clara’;