RHCE考试在下午,也就是考完CSA之后。题目多是环境配置,难度还是有一些的,很多配置需要记住。但是在实际运维过程中,这tm是不现实的,都必须经过各种方案论证,最后拿着定稿的配置文档去操作。
0、预先配置两台机子的yum
system1和system2都配置并导入秘钥。后续需要安装很多包
方法与csa考试一致,记得验证是否正确
1、设定selinux为enforcing,重启后依然生效
两台机子getenforce 看看目前状态,如果已经是开启的,那么就不用修改了
如果不是,vim /etc/sysconfig/selinux
SELINUX=enforcing (修改成 enforcing) 记得小写
保存退出
2、配置防火墙
两台机子均需要配置
首先设置开机启动防火墙:systemctrl enable firewalld
设置策略:例如允许xxxx.server.com 域的客户对system1、2进行ssh访问
禁止yyyyy.server.com域的客户对system1、2ssh访问 yyyyy.server.com在172.13.8.0/24网络
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address=172.13.8.0/24 service name="ssh" reject'
firewall-cmd --reload
firewall-cmd --list-all 查看一下
3、自定义用户环境
就是创建一个自定义命令
vim /etc/bashrc最后一行添加
alias qstst='/bin/ps -Ao pid,tt,user,fname,rsz'
保存退出
bash
which qstat 查看一下
4、配置端口转发
在172.24.8.0/24网络中的系统,访问system1中的2345端口将被转发至80端口。设置永久生效
还是在防火墙中配置
firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="172.24.8.0/24" forward port port="2345" protocol="tcp" to-port="80"'
firewall-cmd --reload
5、配置链路聚合
要求system1&ststem2均配置一个team0,并相互ping通
ip a 可以看到每台机子上都有eth1 \eth2两张网卡
我们需要新建一个team类型 命名为team0
配置为json类型
config'{"runner":{"name":"activebackup"}}'
全部配置仅需5行命令,是不是so easy
nmcli connection add con‐name team0 type team ifname team0 config'{"runner":{"name":"activebackup"}}'
nmcli connection modify team0 ipv4.addresses "172.16.3.40/24" connection.autoconnect yes ipv4.method manual (第二台需要换对应的ip)
nmcli con add type team-slave con-name team-slave1 ifname eth1 master team0
nmcli con add type team-slave con-name team-slave2 ifname eth2 master team0
nmcli con reload
nmcli con up team0
检查一下是否能 双向ping ……
如配错,需删除team0 team-slave1 teamslave2
nmcli con delete xxxxx
nmcli con reload
6、配置ipv6地址
两台服务器均需要配置
配制方法与IPv4一样,把IPv4.address改为ipv6.address 即可
nmcli con modify eth0 ipv6.address "2003:ac18::30a/64" connect.autoconnect yes ipv6.method m
nmcli con reload
nmcli con down eht0 && nmcli con up eth0
ping6 2003:ac18::30a
7、配置本地邮件服务
配置文件地址:/etc/postfix/main.cf
写在最后面即可,默认只读最后的配置
请分别在 system1 和 system2 上执行:
[root@system1 ~]# postconf ‐e inet_interfaces=loopback‐only 不接受外部邮件
[root@system1 ~]# postconf ‐e mydestindation= 空着就行
[root@system1 ~]# postconf ‐e local_transport=error:err 错误提示:
[root@system1 ~]# postconf ‐e relayhost=[mail.group8.example.com] 转发至xxx服务器
[root@system1 ~]# postconf ‐e myorigin=server.group8.example.com 邮件伪装,发件时显示邮件来自于xxxx,题目会提供
[root@system1 ~]# systemctl enable postfix
[root@system1 ~]# systemctl restart postfix
8、smb共享目录
要求在一台机子上配置smb服务,
指定了所在的工作组为STAFF
共享目录/common 名称common 可浏览
只有group8.example.com域的客户端可访问
用户Andy可读取共享内容,密码redhat
首先遵循原则,第一步安装
yum install -y samb samb-client
第二步配置
vim /etc/samba/smb.conf
找到 workgroup 改为
workgroup = STAFF
切换到最后一行
添加
[common]
path = /common
hosts allow = 172.24.8.
browsebale = yes
保存退出
mkdir /common
开启服务添加开机启动
systemctl enable /start smb nmb
第三步,设置防火墙、selinux上下文
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
semanage fontext -a -t samba_share_t '/common(/.*)?'
restorecon ‐Rv /common/
第四步创建用户测试
由于用户已经存在,所以直接
smbpasswd -a Andy
xxxxx
xxxxx
重启smb nmb
在第二台机子上安装
yum install -y samba-client
然后验证服务是否可以访问
smbclient ‐L //172.24.8.11/ ‐U Andy
smbclient //172.24.8.11/ common ‐U Andy
完成
9、配置多用户Samba挂载
system1通过SMB共享目录/devops
目录名 devops 只能被group8.example.com域中的客户端使用
该目录必须能被浏览,用户silene可以读写,用户akira可以读写
此目录永久挂载system2 /mnt/dev目录,用户silene 认证任何用户,可以通过akira来临时获取写的权限
解题思路:
1、添加smb.conf配置
[devops] 共享名称
path =/devops 共享路径
hosts allow = 172.24.8. 允许的域
writebale = no 对用户不可写
write list = akira 该用户可写
browseable = yes 能被浏览
2、创建目录、设置selinux上下文、对用户akira 的acl权限
mkdir /devops
semanage fcontext -a -t samba_share_t '/devops(/.*)?' 设置上下文
restorecon -Rv /devops 刷新上下文权限
setfacl -m u:akira:rwx /devops/ 设置akira用户对目录的权限
3、创建用户
smbpasswd -a akira
smbpasswd -a silene
重启smb nmb 服务
4、system2 安装cifs-utils
yum install -y cifs-utils
mkdir /mnt/dev 创建挂载目录
查看共享:smbclient -L //172.24.8.11/ -U silene
5、添加持久挂载
vim /etc/fstab
//172.24.8.11/ /mnt/dev cifs defaults,multiuser,username=silene,password=redhat,sec=ntlmssp 0 0
mount -a
df -h
测试:完成
10、配置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
1、检查 nfs-utils 包是否安装。 rpm -qa | grep nfs-utils
2、设置服务开机启动 systemctrl enable nfs-server nfs-secure-server 由于用到krb5认证,所以secure服务也要启动
3、设置防火墙规则
永久添加nfs 、rpc-bind、mountd 3项服务
4、设置目录及selinux上下文
mkdir /public
mkdir /protected/project
semanage -fcontext -a -t 'public_content_t' '/protected(/.*)?'
semanage -fcontext -a -t 'public_content_rw_t' '/protected/project(/.*)?'
restorecon -Rv /protected/
5、下载证书保存并命名 为 /etc/krb5.keytab
wget -O /etc/krb5.keytab http://server.group8.example.com/pub/keytabs/system1.keytab
6、编辑 nfs 资源导出配置文件
vim /etc/exports
/public *.group8.example.com(ro,sec=sys,sync) /protected *.group8.example.com(rw,sec=krb5p,sync)
7、修改 nfs 启动参数,并重启服务[root@system1 ~]# vim /etc/sysconfig/nfs....
RPCNFSDARGS="‐V 4.2"
[root@system1 ~]# systemctl
restart
nfs‐server.service
nfs‐secure‐server.service
8、刷新并验证导出资源[root@system1 ~]# exportfs ‐ra[root@system1 ~]# exportfs
/public *.group8.example.com /protected *.group8.example.com
11、挂载NFS共享
在 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 上创建文件
这些文件系统在系统启动时自动挂载
1、新建目录:mkdir /mnt/nfsmount /mnt/nfssecure
2、下载秘钥:wget -O /etc/krb5.keytab5 http://server.group8.example.com/pub/keytabs/system2.keytab
3、添加持久化挂载
vim /etc/fsatb
system1:/public /mnt/nfsmount nfs defaults,sec=sys 0 0
system2:/protected /mnt/nfscecure nfs defaults,sec=krb5p,v 4.2 0 0
保存退出
4、重启nfs-secure服务
systemctel restart nfs-secure.service
systemctrl enable nfs-secure.service
5、检查
mount -a
df -h
如挂载失败,可能是时间服务器不同步导致
12、实现web服务器
13、配置web安全服务
14、配置虚拟主机
15、配置web内容的访问
16、实现动态web内容
这4道题可以一起来做,首先来看需要安装的包有哪些
(1)安装软件包
yum install -y httpd mod_ssl mod_wsgi
(2)创建网站目录,有题目可知,需要创建3个网站目录
第一个默认Documentroot目录 /var/www/html/ 不用创建
第二个 virtual 目录 /var/www/virtual/ 虚拟主机的目录
第三个 访问内容控制 需要在Documentroot 目录下创建 /private
/var/www/html/private
/var/www/virtual/private
(3)网页文件从服务器下载至对应网站目录
wget -O /var/www/html/index.html http://server.group8.example.com/pub/system1.html
wget -O /var/www/virtual/index.html
http://server.group8.example.com/pub/www8.html
wget -O /var/www/html/private/index.html http://server.group8.example.com/pub/private.html
wgte -O /var/www/virtual/private/index.html http://server.group8.example.com/pub/private.html
wget ‐O /var/www/html/webinfo.wsgi http://server.group8.example.com/pub/webinfo.wsgi
(4)编辑配置文件
<virtualhost *:80>
servername 网址
documentroot "/var/www/html"
<directory "/var/www/html">
<requireall>
reauire all granted
require not host 域名
</requireall>
</directory>
SSL engineer on #这部分的配置可参考同目录下的ssl.conf
</virtualhost>
基本这种格式,按要求详细改一下
(5)防火墙添加端口、selinux上下文
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-rich-rule 'rule famliy="ipv4" port port = 8909 protocol=tcp accept'
。。。。。太麻烦了,自己写吧
需要写入权限的目目录,要加selinux上下文、设置acl权限
(6)下载证书(下载位置需要与配置文件中的一致)
(7)重启http服务,然后验证即可
17、创建按要求输出脚本
vim /root/foo.sh
#!/bin/bash
case $1 in
redhat)
echo"fedroa"
;;
fedroa)
echo"redhat"
;;
*)
echo "/root/foo.sh redhat|fedora"
esac
chmod 755 /root/foo.sh
18、批量添加用户脚本
#!/bin/bash
if [$# - eq 1];then
if [-f "$1"];then
while read username ;do
useradd -s /bin/false $username &>/dev/null
done < $1
else echo "input file not found"
exit
fi
else
echo "usage:/root/bashusers userfile"
exit
fi
19、配置iscsi服务端
配置 system1 提供一个 ISCSI 服务 磁盘名为 iqn.2014-08.com.example.group8:system1 ,并符合下列要求:
服务端口为 3260
使用 iscsi_store 作其后端逻辑卷名称,其大小为 3G
此服务只能被 system2.group8.example.com 访问
1、首先安装targetcli ,设置开机启动并启动该服务
2、添加防火墙规则
firewall-cmd --per --add-rich-rule 'rule family="ipv4" source address="172.24.8.12/32" port port=3260 protoclo=tcp accept'
firewall-cmd --reload
3、创dev建逻辑卷作为后端存储
fdisk -/dev/vda
n --> p--回车--回车--+3G--t--回车--8e--w
partbrobe
pvcreate /dev/vda3
vgcreate iscsi_vg /dev/vda3
lvcreate -n iscsi_store -l 100%VG iscsi_vg
4、配置iscsi
targetcli
backstores/block create name=iscsi_store dev=/dev/iscsi_vg/iscsi_store //定义一个本地的块设备
cd iscsi
create iqn.2014-08.com.example.group8:system1 //定义一个iscsi(名称由题目提供)
cd iqn.2014-08.com.example.group8:system1/tpg1
luns/ create /backstores/block/iscsi_store 把定义好的块设备通过target共享出去
acls/ create iqn.2014-08.com.example.group8:system2 创建基于iqn的acl:允许改名字的客户端访问本iscsi的target
portals/ create 172.24.8.11 3260 定义target的入口
set attribute authintication =0 该tgp关闭账号验证
set attribute generate_node_acls =0 该tgp使用自定义的acl实现节点访问限制
save config
exit
20 、配置iscsi客户端
1、yum install -y iscsi-intiator-utils
2、配置iSCSI客户端名称
vim /etc/iscsi/initiatorname.iscsi
initiatorname = iqn.2014-08.com.example.group8:system2
3、设置服务开机启动、启动服务
systemctrl enable iscsid
systemctrl start iscsid
4、发现target
iSCSIadm -m discovery -t st -p 172.24.8.11
172.24.8.11:3260 iqn.2014-08.com.example.group8:system1
5、登陆target
iSCSIadm -m node -l
lsblk
6、分区并格式化
fdisk /dev/sdb
n--p---回车--回车---+2100M---w
pareprobe
mkfs.ext4 /dev/sdb1
7、配置开机自动挂载
mkdir /mnt/date
blkid /dev/sdb1
vim /etc/fstab
uuid /mnt/date ext4 defaults,_netdev 0 0
mount -a
df -h
21、配置数据库
在 system1上创建一个 Maria DB 数据库,名为 Contacts,要求:
数据库应该包含来自数据库复制的内容,复制文件的URL为 http://server.group8.example.com/pub/users.mdb ,数据库只能被 localhost 访问
除了 root 用户,此数据库只能被用户 Mary 查询,此用户密码为 redhat
root 用户的数据库密码为 redhat ,同时不允许空密码登录
解题:
1、首先安装MariaDB:yum install -y Mariadb*
2、添加开机启动、启动数据库
systemctrl enable mariadb
systemctrl start mariadb
3、设置数据库 安全配置向导
mysql_secure_installation
第一项默认没有root密码,直接回车
设置密码
Set root password? [Y/n] y
New password: redhat
Re‐enter new password: redhat
Remove anonymous users? [Y/n] y 剩余的其他步骤都是直接回车
4、导入数据、建立用户并授权
先下载users.mdb :wget -O http://server.group8.example.com/pub/users.mdb
登录数据库:mysql -u root -predhat
创建Contacts库:create database Contacts;
使用库:use Contacts;
导入表:source /root/users.mdb;
授权:grant select on Contacts.* to Mary@localhost identified by 'redhat';
退出
22、数据查询
最后一个题考数据库联表查询
首先进入题目中要求的数据库,use Contacts;
先看看表名称,表结构,找相同数据
1、查找密码为xxxxx的人名字是什么?
select u_name.firstname from u_name,u_passwd where u_mane.userid = u_passwd.uid and u_passwd.password = 'xxxxx';
2、查找姓xxxxx的,还住在xxxx的人有几个?
select count(*) from u_name,u_loc where u_name.userid=u_loc.uid and u_loc.location ='xxxxx' and u_name.firstname = 'xxxxx' ;
如果太长记不住,可以分开查,
select * from u_name where firstname = 'xxxxx';
select * from u_loc where location = 'xxxxx';
然后自己数uid相同的有几个。(此方法不适合大量数据,仅供考试投机)
网友评论