系统环境说明:
修改主机名:
hostnamectl set-hostname server15.example.com
配置网络环境:
nm-connection-editor(配置网络环境的方法有很多,可挑选自己喜欢的)
或者
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
IPADDR0=172.25.15.11
PREFIX0=24
ONBOOT=yes
GATEWAY=172.25.15.254
DNS1=172.25.254.254
systemctl restart network
配置yum源:
cd/etc/yum.repos.d/(配置yum源的时候要修改本地解析文件,正式考试时候是不用的)
rm -fr *
vim exam.repo
[exam]
name=exam
baseurl=http://content.example.com/rhel7
gpgcheck=0
开启防火墙服务,设置开机自动开启
systemctl start firewalld
systemctl enable firewalld
修改内核防火墙的状态
getenforce
vim /etc/sysconfig/selinux
将selinux=disable修改为selinux=enforcing
reboot
第一题:(我这一题是跟配置环境变量一起设置的,也可以不一起,看自己)
开机时按上下键 ——>按e
删除initrd16到ro前所有东西,修改ro——>rw rd.break
ctrl+x
chroot /sysroot/
echo westosexam | passwd --stdin root (怕麻烦可以进入系统的话,可以直接使用这个命令)
touch /.autorelabel
exit两次
进入系统后:
systemctl set-default multi-user.target
先将两台虚拟机reset
设置的desktop主机:
重启之后,会成为以下模式:
设置的server主机
无图形修改root密码:
第二题:
先添加两块网卡
nmcli connection add con-name team0 ifname team0 type team config '{"runner":{"name":"activebackup"}}' ip4 172.25.15.100/24
nmcli connection add con-name eth1 ifname eth1 type team-slave master team0
nmcli connection add con-name eth2 ifname eth2 type team-slave master team0
teamdctl team0 stat
第三题:
<a>
yum install targetcli
systemctl start target
systemctl enable target
firewall-cmd --permanent --add-port=3260/tcp
firewall-cmd --reload
firewall-cmd --list-all
<b>
fdisk /dev/vdb
pvcreate /dev/vdb1
vgcreate iSCSI_vg /dev/vdb1
lvcreate -L 100M -n disk1_lv iSCSI_vg
<c,d,e>
targetcli
/backstores/block create server15.disk1 /dev/iSCSI_vg/disk1_lv create 新块设备 使用的设备
iscsi/ create iqn.2015-01.com.example:server15
iscsi/iqn.2015-01.com.example:server15/tpg1/luns create /backstores/block/server15.disk1 将之前创建的块设备与配置ISCSI文件关联
iscsi/iqn.2015-01.com.example:server15/tpg1/acls create iqn.2018-01.com.example:desktop15 配置访问规则(谁可以访问)
iscsi/iqn.2015-01.com.example:server15/tpg1/portals create 172.25.15.11 target端ip及端口
exit 退出
<f>
在客户端:
yum search iscsi
yum install iscsi-initiator-utils.x86_64 -y
vim /etc/iscsi/initiatorname.iscsi
在里面修改为以下内容:
InitiatorName=iqn.2018-01.com.example:desktop15
systemctl restart iscsid.service
iscsiadm -m discovery -t st -p 172.25.15.11 -t是--type,-p是--portal 发现设备
iscsiadm -m node -T iqn.2015-01.com.example:server15 -p 172.25.15.11 -l 连接(登陆)设备
fdisk -l
mkfs.xfs /dev/sda 格式化
mkdir /iscsidisk
vim /etc/fstab 开机自动挂载
在里面写入:
/dev/sda /iscsidisk xfs defaults,_netdev 0 0
mount -a
df
在客户端:
第四题:
在服务端
yum install nfs-utils -y
systemctl start nfs-server
systemctl enable nfs-server
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=ntp
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload
mkdir /nfsshare
mkdir /autonfs
vim /etc/exports
在里面写入
/nfsshare 172.25.15.0/24(rw,sync)
/autonfs 172.25.15.0/24(rw,sync)
exportfs -rv
exporting 172.25.15.0/24:/autonfs
exporting 172.25.15.0/24:/nfsshare
在客户端:
yum install nfs-utils autofs -y
systemctl start autofs
systemctl enable autofs
[root@desktop15 ~]# showmount -e 172.25.15.11
Export list for 172.25.15.11:
/autonfs 172.25.15.0/24
/nfsshare 172.25.15.0/24
mkdir /mnt/nfsshare
vim /etc/fstab
在里面写入
172.25.15.11:/nfsshare /mnt/nfsshare nfs defaults 0 0
mount -a
df
vim /etc/auto.master
在里面写入
/nfsauto /etc/auto.nfs
vim /etc/auto.nfs
在里面写入
server15 -rw 172.25.15.11:/autonfs
systemctl restart autofs.service
cd /nfsauto/
cd server15/
mount
在服务端:
在客户端:
第五题:
在服务端:
《a》:
[root@server15 ~]#yum install samba samba-common samba-client -y
[root@server15 ~]# systemctl start smb
[root@server15 ~]# systemctl enable smb
[root@server15 ~]# firewall-cmd --permanent --add-service=samba
success
[root@server15 ~]# firewall-cmd --permanent --add-port=139/tcp 基于smb协议对外提供共享服务,该端口在你通过网上邻居访问局域网的共享文件或共享打印机的时候就能地发挥作用
success
[root@server15 ~]# firewall-cmd --permanent --add-port=445/tcp 该端口与139端口的作用是完全相同的,不同的是445端口是基于cifs协议
success
[root@server15 ~]# firewall-cmd --reload
success
《b》:
[root@server15 ~]# mkdir /smbshare
[root@server15 ~]# vim /etc/samba/smb.conf 修改配置文件
89行 workgroup = WESTOS
321 [smbshare]
322 comment = dir share
323 path = /smbshare
324 write list = +marketing
《C》
[root@server15 ~]# groupadd marketing
[root@server15 ~]# chgrp marketing /smbshare/
[root@server15 ~]# chmod 2775 /smbshare/
[root@server15 ~]# semanage fcontext -a -t samba_share_t '/smbshare(/.*)?'
[root@server15 ~]# restorecon -RvvF /smbshare/
[root@server15 ~]# useradd -s /sbin/nologin brain
[root@server15 ~]# useradd -s /sbin/nologin rob
[root@server15 ~]# usermod -g marketing brain
[root@server15 ~]# smbpasswd -a brain
New SMB password:(密码输入westos)
Retype new SMB password:
Added user brain.
[root@server15 ~]# smbpasswd -a rob
New SMB password:(密码输入westos)
Retype new SMB password:
Added user rob.
[root@server15 ~]# pdbedit -L(查看smb用户)
brain:1001:
rob:1002:
[root@server15 ~]# systemctl restart smb
《d》:
在客户端:
[root@desktop15 ~]# yum install samba-client.x86_64 cifs-utils.x86_64 -y
[root@desktop15 ~]# mkdir /mnt/multiuser
[root@desktop15 ~]# smbclient //172.25.15.11/smbshare -U brain 看brain用户是否能登陆
[root@desktop15 ~]# smbclient //172.25.15.11/smbshare -U rob 看rob用户是否能登陆
[root@desktop15 ~]# vim /root/smbauth 在里面写入
username=brain
password=westos
[root@desktop15 ~]# chmod 600 /root/smbauth
[root@desktop15 ~]# cifscreds add -u brian 172.25.15.11 建立认证
Password:
[root@desktop15 ~]# vim /etc/fstab 自动挂载
//172.25.15.11/smbshare /mnt/multiuser cifs defaults,credentials=/root/smbauth,sec=ntlmssp,multiuser 0 0
[root@desktop15 ~]# mount -a
[root@desktop15 ~]# df 查看是否挂载上了
在服务端:
在客户端:
第六题:
在服务端:
《a》:
[root@server15 ~]#yum install mariadb-server.x86_64 -y
[root@server15 ~]# systemctl start mariadb
[root@server15 ~]# systemctl enable mariadb
ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service'
[root@server15 ~]# firewall-cmd --permanent --add-service=mysql
success
[root@server15 ~]# firewall-cmd --reload
success
《b》:
[root@server15 ~]# netstat -antlupe | grep mysql
[root@server15 ~]# mysql_secure_installation
[root@server15 ~]# systemctl restart mariadb
《c》:
[root@server15 ~]# mysql -uroot -pwestos -e "CREATE database redhat;"
[root@server15 ~]# cd /mnt
[root@server15 mnt]# wget http://classroom.example.com/pub/materials/mariadb/mariadb.dump
[root@server15 mnt]# mysql -uroot -pwestos redhat < /mnt/mariadb.dump
《d》:
mysql -uroot -pwestos 进入数据库
SHOW DATABASES;
CREATE USER mary@'localhost'identified by 'mary_passwd'; 建立本地可以的登陆的用户marymary
GRANT SELECT,INSERT,UPDATE,DROP on redhat.* TO mary@localhost; 给mary查询、插入、更新、删除权限
CREATE USER natasha@'172.25.15.10'identified by 'natasha_passwd'; 建立一个172.25.15.10登陆数据库的用户natasha
GRANT SELECT on redhat.* TO natasha@'172.25.15.10'; 给natasha一个查询的权限
SELECT Host,User FROM mysql.user;
SHOW GRANTS FOR mary@localhost;
SHOW GRANTS FOR natasha@'172.25.15.10';
在服务端测试mary(发现mary可以查询也可以删除):
mysql -umary -pmary_passwd
SHOW DATABASES;
USE redhat;
SHOW TABLES;
DROP TABLE product;
SELECT * FROM category;
在客户端测试natasha(发现natasha只能查询,不能删除):
yum install mariadb-server -y
[root@desktop15 ~]# systemctl start mariadb
[root@desktop15 ~]# systemctl enable mariadb
[root@desktop15 ~]# mysql -unatasha -pnatasha_passwd -h 172.25.15.11
SHOW DATABASES;
USE redhat;
SHOW TABLES;
SELECT * FROM category;
DROP TABLE category;
在服务端测试:
在客户端测试:
第七题:
《a》:
yum install httpd -y
systemctl start httpd
systemctl enable httpd
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
《b》:
cd /etc/httpd/conf.d
vim vhost.conf 在里面写入
<VirtualHost _default_:80>
DocumentRoot /var/www/html
CustomLog "logs/default-vhost.log" combined
</VirtualHost>
vim /var/www/html/index.html 在里面写入,便于观看实验效果
<h1>mengmeng</h1>
systemctl restart httpd
《c》:
vim www15.conf 在里面写入
<VirtualHost *:80>
ServerName www15.example.com
DocumentRoot /srv/www15.example.com/www
CustomLog "logs/www15.example.com.log" combined
</VirtualHost>
<Directory /srv/www15.example.com/www>
Require all granted
</Directory>
mkdir /srv/www15.example.com/www -p
cd /srv/www15.example.com/www
vim index.html
<h1>www15.example.com</h1>
ls -Zd /var/www/html
semanage fcontext -a -t httpd_sys_content_t '/srv(/.*)?'
restorecon -RvvF /srv
systemctl restart httpd
测试的时候在浏览器里输入www15.example.com 在哪个主机的浏览器里测试,就在哪台的/etc/hosts配置解析。
《d》:
yum install mod_ssl.x86_64 crypto-utils.x86_64 -y
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
wget http://classroom.example.com/pub/example-ca.crt
cd /etc/pki/tls/certs/
wget http://classroom.example.com/pub/tls/certs/webapp15.crt
cd /etc/pki/tls/private/
wget http://classroom.example.com/pub/tls/private/webapp15.key
chmod 0600 /etc/pki/tls/private/webapp15.key
vim /etc/httpd/conf.d/ssl.conf(修改掉100和107,将其修改为自己的)
SSLCertificateFile /etc/pki/tls/certs/webapp15.crt
SSLCertificateKeyFile /etc/pki/tls/private/webapp15.key
cd /etc/httpd/conf.d
vim webapp15.conf 在里面写入:
<VirtualHost *:443>
ServerName webapp15.example.com
DocumentRoot /srv/webapp15.example.com/www
CustomLog "logs/webapp15.example.com.log" combined
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/webapp15.crt
SSLCertificateKeyFile /etc/pki/tls/private/webapp15.key
</VirtualHost>
<VirtualHost *:80>
ServerName webapp15.example.com
RewriteEngine on
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</VirtualHost>
<Directory /srv/webapp15.example.com/www>
Require all granted
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>
vim /etc/httpd/conf/httpd.conf 修改http的主配置文件里面的默认发布文件
163 <IfModule dir_module>
164 DirectoryIndex webopp.cgi index.html 将webopp.cgi添加进去
165 </IfModule>
mkdir /srv/webapp15.example.com/www -p
vim /srv/webapp15.example.com/www/webopp.cgi 在里面写入(因为这一题我的环境里没有webopp.cgi这个脚本,所以我自己写的。如果有的话,可以利用wget命令下载到/srv/webapp15.example.com/www/这个目录里)
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date`;
chmod 755 /srv/webapp15.example.com/www/webopp.cgi
semanage fcontext -a -t httpd_sys_script_exec_t '/srv/webapp15.example.com(/.*)?'
restorecon -RvvF /srv/webapp15.example.com
systemctl restart httpd
在浏览器里测试,依旧是做解析,看输入的字符是否会自动转换https:这个格式,添加的认证证书信息,看cgi脚本是否执行了。
在服务端:
测试:(记得做解析)
在服务端:
测试:
在服务端:
测试:
关于这个wget不到cgi脚本(cgi是perl高级语言),我的电脑上只有wsgi脚本,但是这个是python的,所以我写了一个。
如图所示没有cgi脚本:
第八题:
#!/bin/bash
if [ "$1" == "dog" ]
then
echo "cat";
exit 0;
fi
if [ "$1" == "cat" ]
then
echo "dog";
exit 0;
fi
echo "error";
第九题:
#!/bin/bash
cat > /usr/bin/usercmd <<-EOF
echo hello
ls -l
EOF
chmod 755 /usr/bin/usercmd
id $1 $&> /dev/null
SHELL=`grep -E "^$1\>" /etc/passwd | awk -F : '{print $7}'`
if [ "$?" = "0" -a "$SHELL" = "/bin/bash" ]
then
echo user ok
elif [ -z "$1" ]
then
echo "ERROR : Please input a username"
elif [ "$?" != "0" -a -z "$SHELL" ]
then
useradd $1
echo "user not exist,but create it"
elif [ "$?" != "0" -a "$SHELL" != "/bin/bash" ]
then
echo "user exist,but it\'s shell not /bin/bash"
fi