注意:您有一个不能用的DNS域ilt.example.com,这个域中所有172.25.254.0/255.255.255.0的子网都在这个域中。XX for locahost number
desktop - 10          server - 11
  • 1、配置SELinux。必须在两个系统desktopX和serverX中运行Enforcing模式,并且重启后依旧生效。
setenforce 1
  • 2、设置SSH访问控制
  • 用户能够在example.com这个域通过ssh远程访问您的两个虚拟机系统。
  • 客户端在ilt.example.com这个域名中的是不能登录你的两个虚拟机系统的。
vim /etc/hosts.deny     #拒绝名单
sshd:172.25.254.    ip段
vim /etc/hosts.allow     #允许名单(级别大于拒绝名单)
sshd:172.25.19.
systemctl restart sshd     #重启下服务e
  • 3、自定义用户环境
  • 在系统desktopX和serverX上创建自定义命令名为qstat。此自定义命令将执行以下命令
  • /bin/ps -Ao pid,tt,user.fname,rsz
  • 此命令队系统中的所有用户生效
export qstat="/bin/ps -Ao pid,tt,user,fname,rsz" >> /etc/bashrc
. /etc/bashrc
  • 4、配置端口转发
  • 在系统desktopX配置端口转发,要求如下
  • 在172.25.xx.0/24网络中的系统,访问desktopX的本地端口5423将被转发到80端口,此设置永久性生效。(xx for localhost number)
firewall-config
systemctl enable firewall
  • 5、配置聚合链路(xx for localhost number)
  • 在desktopX.example.com和serverX.example.com之间按以下要求配置
  • 此链路使用接口eth1和eth2
  • 此链路在desktopX使用下面的地址172.16.xx.25/255.255.255.0
  • 此链路在serverX使用下面的地址172.16.xx.35/255.255.255.0
  • 此链路在系统重启之后依然保持正常状态
/etc/sysconfig/network-scripts
cp /usr/share/doc/teamd-1.9/example_ifcfgs/3/* ./
修改 ifcfg-team_test0
-----------------------------------
DEVICE="team_test0"
DEVICETYPE="Team"
ONBOOT="yes"
BOOTPROTO=none
NETMASK=255.255.255.0
IPADDR=172.16.12.25
TEAM_CONFIG='{"runner": {"name": "activebackup"}}'
----------------------------------
systemctl restart network     #需要重启两次
teamdctl team_test0 sta     #查看状态
  • 6、配置IPv6地址。在您的考试系统上配置接口eth0使用下列IPv6地址:
  • desktopX上的地址应该是200e:ac18::e0a/64
  • serverX上的地址应该是200e:ac18::e14/64
  • 两个系统必须能与网络200e:ac18/64内的系统通信
  • 地址必须在重启后依旧生效
  • 两个系统必须保持当前的IPv4地址并能通信
vim ifcfg-eth0
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6ADDR=200e:ac18::e0a/64
  • 7、配置本地邮件服务
  • 在系统desktopX和serverX上配置邮件服务器,满足以下要求
  • 这些系统不接受外部发来的邮件
  • 在这些系统上本地发送的任何邮件都会自动路由到classroom.example.com
  • 从这些系统上发送的邮件显示来自于example.com
  • 你可以通过发送邮件到本地用户‘root’来测试你的配置,系统classroom.example.com已经配置把此用户的邮件转到下列URL http://classroom/received_mail/11/
vim /etc/postfix/main.cf
inet_interfaces = all
myorigin = example.com
local_transport = error:xx
relayhost = classroom.example.com
systenctk restart postfix
systemctl enable postfix
  • 8、desktopX用SMB服务器共享/common目录
  • 你的SMB服务器上的所有成员必须在SMBGROUP这个工作组中。
  • 共享名必须是common。
  • 这个common共享目录仅仅只能让example.com域中的客户端访问。
  • 这个共享名必须是可浏览的
  • natasha必须对这个共享文件有读的权限,如果有必要,可以设置用户访问密码为redhat
yum install samba* -y     #服务端
/etc/samba/smb.conf
workgroup = SMBGROUP     #设置工作组
[common]           #与文件路径同名
     comment = linhut     #描述
     path = /common     #共享资源名
     #read list= natasha        #读权限用户,添加这个名单就只有里面的可以读
     browseable = yes   #共享资源是否允许用户浏览
     hosts allow = 172.25.12.     #允许访问的(这里题目DNS域解析为这个段)
------------/common   所有人可读权限
cat /etc/samba/smb.conf | grep chcon
chcon -t samba_share_t /common -R    #修改selinux权限
useradd natasha
smbpasswd -a natasha
yum install samba-client -y     #客户端
smbclient //d19.example.com/common -U natasha
systemctl enable smb
firewall-cmd --add-service=samba --permanent
firewall-cmd --reload
  • 9、配置多用户SMB挂载。在desktopX共享通过SMB目录/miscellaneous满足一下要求
  • 共享名为miscellaneous
  • 共享目录只能被example.com域中的客户端使用
  • 共享目录miscellaneous必须可以被浏览
  • 用户silene必须能以读的方式访问此共享,密码是redhat
  • 用户akira必须能以读写的方式访问此共享,密码是redhat
  • 此共享目录永久挂载在serverX.example.com上的/mnt/multi目录下,并使用用户selene作为认证,任何用户可以通过用过akira来临时获取写的权限
yum install  samba-client     -y
/etc/samba/smb.conf
添加
[miscellaneous]           #与文件路径同名
     comment = linhut     #描述
     path = /miscellaneous     #共享资源名
     #read list= silene        #有读权限用户
     write list = akira       #读写权限用户
     browseable = yes   #共享资源是否允许用户浏览
     hosts allow = 172.25.12.     #允许访问的(这里题目DNS域解析为这个段)
chcon -t samba_share_t /miscellaneous -R    #修改selinux权限
useradd akira
useradd sliene
smbpasswd -a akira
smbpasswd -a silene
yum install cifs-utils -y
vim /etc/fstab
//d12/miscellaneous     /mnt/multi     cifs     defaults,user=silene,password=redhat,sec=ntlmssp,multiuser 0 0
yum install cifs-utils -y
su - student(需要在普通用vim 户下)
cifsiostat add d12.example.com -u akira     #到普通用户目录下授权
  • 10、配置nfs服务,在desktopX上配置nfs服务,要求如下
  • 以只读的方式共享目录/public,同时只能被example.com域中的系统访问。
  • 以读写的方式共享/protected需要通过Kerberos安全加密,您可以使用下面URL提供的密钥http://classroom.example.com/pub/keytabs/desktopXX.keytab(xx for localhost number)
  • 目录/protected应该包含名为confidential拥有人为deepak的子目录
  • 用户deepak能以读写方式访问/protected/confidential
systemctl enable nfs-server     #设置开机自启
netstat -tpln     #查看111端口是否打开
mkdir /public
vim /etc/exports
/public     172.25.12.0/255.255.255.0(ro,sync)
systemcl restart nfs-server
exportfs -v
cat /var/lib/nfs/etab
打开程序:
     mountd     ntp     rpc-bind
  • 11、挂载一个NFS共享。在serverX上挂载一个来自desktopX.example.com的NFS共享,并符合下列要求
  • /public挂载在下面的目录上/mnt/nfsmount
  • /protected挂载在下面的目录上/mnt/nfssecure并使用安全的方式,密钥下载URL如下:http://classroom.example.com/pub/keytabs/serverXX.keytab
  • 用户deepak能够在/mnt/nfssecure/confidential上创建文件
  • 这些文件系统在系统启动时自动挂载
vim /etc/fstab
172.25.12.10:/public /mnt/nfsmount     nfs     default    0 0
mount -a
  • 12、架设一个web服务器。在serverX上配置一个站点:http://serverX.example.com,然后执行下面步骤
  • 从服务器上下载://classroom.example.com/pub/web/server.html
  • 将下载的文件更名为index.html
  • 拷贝这个index.html的去你的web服务器的DocumentRoot
  • 不能修改index.html中的任何内容
  • 要求来自example.com这个域的成员可以访问stationX.example.com站点。
  • 来自于ilt.example.com域的客户端拒绝访问此web
<VirtualHost *:80>
     DocumentRoot "/var/www/html"
     ServerName server19.example.com
     <Directory /var/www/html>
     <RequireAll>
     Require all granted
     Require not ip 172.25.254.
     </RequireAll>
     </Directory>
     <Directory /var/www/html/secret>
                require local
                require all denied
     </Directory>
</VirtualHost>
  • 13、配置安全web服务
  • 为站点http://serverX.example.com配置TLS加密,一个已经签名证书从http://classroom.example.com/pub/tls/certs/serverX.crt获取,此证书的密钥从http://classroom.example.com/pub/tls/private/serverX.key获取,此证书的签名授权信息从http://classroom/pub/example-ca.crt获取
<VirtualHost *:443>
    DocumentRoot /var/www/html
    ServerName server12.example.com
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/serevr12.crt
    SSLCertificateKeyFile /etc/pki/tls/certs/server12.key
    SSLCertificateChainFile /etc/pki/tls/certs/example-ca.crt
</VirtualHost>
cd /etc/pki/tls/certs
wget -c http://classroom/pub/example-ca.crt
  • 14、配置虚拟主机。在serverX上扩展您的web服务器,为站点http://wwwX.example.com创建一个虚拟主机,然后执行下述步骤
  • 设置 DocumentRoot为/var/www/virtual
  • 从http://classroom.example.com/pub/web/www.html
  • 将下载的文件更名为index.html
  • 这个index.html文件是在你的DocumentRoot中
  • 确保用户natasha可以在/var/www/virtual的文件中创建内容
  • 注意:原始站点http://serverX.example.com必须仍然能够访问,名称服务器example.com提供对主机名wwwX.example.com的域名解析。
useradd natasha
<VirtualHost *:80>
    DocumentRoot "/var/www/virtual"
    ServerName www12.example.com
</VirtualHost>
setfacl -m u:natasha:rwx virtual
setfacl -m d:natasha:rwx virtual
  • 15、配置web内容的访问。在您的serverX上的web服务器的DocumentRoot目录下创建一个名为secret的目录,要求如下
  • 从http://classroom/pub/web/private.html下载此网页
  • 不要对这个文件的内容做任何修改
  • 从serverX上,任何人都可以浏览secret的内容,但是从其他系统不能访问这个目录内容
<VirtualHost *:80>
    DocumentRoot "/var/www/virtual"
    ServerName www12.example.com
    <Directory /var/www/virtual/secret>
                require local
                require all denied
    </Directory>
</VirtualHost>
  • 16、实现动态web内容,在serverX上配置提供动态web内容,要求如下:
  • 动态内容由名为webappX.example.com的虚拟主机提供
  • 虚拟主机侦听端口8899
  • 从http://classroom.example.com/pub/web/webapp.wsgi下载一个脚本,然后放在适当的位置,无论如何不要修改此文件内容
  • 客户点访问http://webappX.example.com:8899时,应该接收到动态生成的web页面
  • 此http://webaapX.example.com:8899必须能被example.com域内的所有系统访问
Listen 8899
<VirtualHost *:8899>
    DocumentRoot "/var/www/webapp"
    ServerName webapp12.example.com
    WSGIscriptalias / /var/www/webapp/webapp.wsgi
     <Directory /var/www/webapp>
                require ip 172.25.12.
                require all denied
        </Directory>
</VirtualHost>
semanage port -l | grep http
semanage port -at http_port_t 8899 -p tcp
firewall-cmd --add-port=8899/tcp --permanent
  • 17、写一个脚本/root/program,要求当个脚本输入参数kernel时,脚本返回user,当给脚本输入参数user时,脚本返回kernel。当脚本没有参数或者参数错误时,从标准错误输出中输出“usage:/root/program kernel|user”
 
#/bin/bash
if [  "$1" == "kernel" ];then
     echo "user"
elif [  "$1" == "user" ];then
     echo "kernel"
else
     echo "usage:/root/program kernel|user"
fi
 
  • 18、创建一个添加用户脚本。在desktopX上创建一个脚本,名为/root/mkusers,此脚本能实现为系统desktopX创建本地用户,并且这些用户的用户名来自一个包含用户列表的文件。同时满足以下要求:
  • 此脚本要求提供一个参数,此参数就是包含用户列表的文件
  • 如果没有提供参数,此脚本应该给出下面的提示信息Usage:/root/mkusers,然后退出并返回相应的值
  • 如果提供一个不存在的文件名,此脚本应该给出下面的提示信息 Input file not found,然后退出并返回相应的值
  • 创建用户登录shell为/bin/false
  • 此脚本不需要为用户设置密码
  • 你可以从下面的URL获取用户名列表作为测试用http://classroom.example.com/pub/web/userlist
#/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 line
do
  useradd -s /sbin/nologin $line
  echo "成功创建user:"$line
done < $1
下面没符合题意不过代码更加流畅
#/bin/bash
if [ $# -eq 0 ];then
     echo "Usage:/root/mkusers"
elif [ ! -f $1 ];then
     echo "input file not found"
else
     while read line #读行
     do
          useradd -s /sbin/nologin $line
          echo "成功创建user:"$line
     done < $1
fi
  • 19、配置iscsi服务。配置desktopX提供一个iscsi服务,磁盘名为iqn.2014-11.com.example:desktopX,并符合下列要求:
  • 服务端口为3260
  • 使用iscsi_vol作其后端卷,大小为3G
  • 此服务职能被serverX.example.com访问
fdisk /dev/sdb
yum install targetcli* -y
systemctl enable target
targetcli
/backstores> block/ create iscsi_vol /dev/sdb3
/iscsi>create iqn.2014-11.com.example:desktop12
/iscsi> cd iqn.2014-11.com.example:172.25.12.10
cd tpg1/
/iscsi/iqn.20...25.11.10/tpg1> acls/ create iqn.2014-11.com.example:server12
/iscsi/iqn.20...25.11.10/tpg1> luns/ create  /backstores/block/iscsi_vol
/iscsi/iqn.20...25.11.10/tpg1> portals/ create 172.25.12.10
/iscsi/iqn.20...25.11.10/tpg1> set attribute demo_mode_write_protect=0
/iscsi/iqn.20...25.11.10/tpg1> set attribute authentication=0
/iscsi/iqn.20...25.11.10/tpg1> set attribute generate_node_acls=1
/iscsi/iqn.20...25.11.10/tpg1> exit
firewall-cmd --add-port=3260/tcp --permanent
 
firewall-config
  • 20、配置iscsi的客户端。配置serverX使其能建立连接在system1上提供的iqn.2014-11.com.example:desktopX并符合以下要求:
  • iscsi设备在系统启动期间自动加载
  • 块设备iscsi上包含一个大小为1700M的分区,并且格式化为xfs.
  • 分区挂载在/mnt/data上,同时开机重启后依旧生效。
man iscsi
/exampie
yum install iscsi-initiator-utils -y
iscsiadm -m discovery -t st -p 172.25.12.10 -l
ldkid
fdisk /dev/sda               --分一个1700M分区
mkfs.xfs /dev/sda1
vim /etc/fstab
UUID="adaSDASDdsdjasdmalDSDSAFSDF"     /mnt/data     xfs     defaults,_netdev     0 0
  • 21、配置一个数据库。在desktopX上创建MariaDB数据库,名为Contacts,并符合以下条件:
  • 数据库应该包含来自数据库复制的内容,复制文件的URL为http://classroom.example.com/pub/web/users.mdb
  • 数据库只能本地主机访问
  • 除了root用户,此数据库只能被用户Luigi查询。此用户密码为redhat。
  • root用户密码为redhat,同时不允许空密码登陆
yum install mariadb* -y
cd /root && wget -c http://classroom.example.com/pub/web/users.mdb
mysql_secure_installation     #设置root密码
>mysql -uroot -predhat
create database Contacts;
use Contacts;
show tables;
source /root/users.mdb; 
grant select on Contacts.* to Luigi@'localhost' identified by'redhat';
select Host,User,Password,Select_priv from mysql.user;
  • 22、数据库查询。在系统desktopX上使用Contacts,并使用相应的SQL查询以下回答以下问题:
  • 密码是tangerine的人的名字?
  • 有多少人的姓名是John同时居住在Santa Clara?
use Contacts;
select firstname,lastname from name where aid in (select bid from pass where password="tangerine");
select count(firstname) from name where firestname="John" and aid in (select cid from loc where loction="Santa Clara");
 

 视频分享

链接: https://pan.baidu.com/s/1c2TtIQO 密码: e3jz