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
两个系统均为DNS域group8.example.com的成员。除非特别指名,不然所有要求配置的网络服务都必须能被该域的系统访问。
server.group8.example.com 提供了集中认证的服务器为group8.example.com。两个系统system1和system2都已经预先配置成此域的客户端。
server.group8.example.com 提供了YUM软件仓库,URL是 http://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 图形工具
第三题:自定义用户环境
在系统system1和system2上创建自定义命令为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打开图形工具
第五题:配置链路聚合
在system2和system1之间按以下要求设定一个链路:
此链路使用接口eth1和eth2
此链路在一个接口失效时仍然能工作
此链路在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
3)将ens33以及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 server1的IPV6地址
ping6 2003:ac18::30a #ping server2的IPV6地址
方法2:nm-connection-editor 图形配置实验
nmcli con reload #重读配置文件
nmcli con down eth0 #关闭网卡
nmcli con up eth0 #启用网卡
ping6 2003:ac18::305 #ping server1的IPV6地址
ping6 2003:ac18::30a #ping server2的IPV6地址
第七题:配置本地邮件服务
在系统 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>
3)systemctl 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 #给脚本文件设置权限
测试:
[[email protected] ~]# /root/foo.sh redhat
fedora
[[email protected] ~]# /root/foo.sh fedora
redhat
[[email protected] ~]# /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
创建基于iqn的acl:允许该名字的客户端访问本iscsi的tagert
/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数据库应该包含来自数据库复制的内容,复制文件的URL为 http://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 [email protected] 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‘;
原文地址:https://www.cnblogs.com/Yuopen/p/9360641.html