yum-config-manager --add-repo=ADDREPO vim /etc/yum.conf gpgcheck=0(1=on,0=off)
增长指定repo源,关闭签名合法性检查。html
试题概述:
确保两个虚拟机的 SELinux 处于强制启用模式。node
vim /etc/selinux/config SELINUX=enforcing setenforce 1 (usage: setenforce [ Enforcing | Permissive | 1 | 0 ])
试题概述:
按如下要求配置 SSH 访问:mysql
- 用户可以从域内example.com的客户端SSH远程访问您的两个虚拟机系统;
- 在域my133t.org内的客户端不能访问您的两个虚拟机系统。
vim /etc/ssh/sshd_config DenyUsers *@*.my133t.org *@172.25.0.*
也可使用防火墙规则进行限制,后面会提到。linux
试题概述:
在系统system1 和 system2上建立自定义命令为 qstat,此自定义命令将执行如下命令: /bin/ps -Ao pid,tt,user,fname,rsz;
此命令对系统中全部用户有效。web
vim /etc/profile qstat='/bin/ps -Ao pid,tt,user,fname,rsz' source /etc/profile
试题概述:
在系统 system1 配置端口转发,要求以下:sql
- 在 172.25.0.0/24 网络中的客户机,访问 server0 的本地端口 5423 将被转发到 80
- 此设置必须永久有效。
firewall-cmd --set-default-zone=trusted (将默认区域设置为默认模式) firewall-cmd --permanent --add-source=172.25.0.0/24 --zone=block (防火墙拒绝my133t.org访问) firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.24.0.0/24 forward-port port=5423 protocol=tcp to-port=80' firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.24.0.0/24 forward-port port=5423 protocol=udp to-port=80'
试题概述:
在system1.example.com 和 system2.example.com 之间配置一个链路 team0: 此链路使用接口 eth1和eth2:数据库
- 此链路在一个接口失效时仍然能工做;
- 此链路在system1使用下面的地址172.24.4.30/255.255.255.0;
- 此链路在system2使用下面的地址172.24.4.40/255.255.255.0;
- 此链路在系统重启以后依然保持正常状态。
nmcli connection add type team con-name team0 ifname team0 connection.autoconnect yes config '{"runner":{"name":"activebackup"}}' nmcli connection add type team-slave con-name eth1 ifname eth1 connection.autoconnect yes master team0 nmcli connection add type team-slave con-name eth2 ifname eth2 connection.autoconnect yes master team0 nmcli connection modify team0 ipv4.method manual ipv4.address "172.24.4.30/24" connection.autoconnect yes nmcli connection up team0 teamdctl team0 state
接口启动后测试本机到新增IP是否能够正常通讯,若是不通能够重启网络服务后再次测试systemctl restart network
。vim
试题概述:
在您的考试系统上配置接口 eth0 使用下列 IPv6 地址:后端
- system1上的地址应该是 2003:ac18::305/64:
- system2上的地址应该是 2003:ac18::306/64;
- 两个系统必须能与网络 2003:ac18/64 内的系统通讯 ;
- 地址必须在重启后依旧生效;
- 两个系统必须保持当前的 IPv4 地址并能通讯。
nmcli connection modify eth0 ipv6.method manual ipv6.address "2003:ac18::305/64" nmcli connection up eth0
若是不能ping通同上所述。安全
试题概述:
在系统system1上配置邮件服务,知足如下要求:
- 这些系统不接收外部发送来的邮件;
- 在这些系统上本地发送的任何邮件都会自动路由到smtp0.example.com;
- 从这些系统上发送的邮件显示来自于system1.example.com;
您能够经过在system1上发送邮件到本地用户 student 来测试您的配置,系统system2.example.com 上的用户 student 将会收到这封邮件。
:配置文件修改 vim /etc/postfix/main.cf relayhost = smtp0.example.com //自动路由配置 inet_interfaces = loopback-only //监听在回环网卡 myorigin = system1.example.com //邮件显示 mynetworks = 127.0.0.0/8 [::1]/28 local_transport = error:local :启动服务 systemctl restart postfix systemctl enalbe postfix :测试 echo 'test' | mail -s 'Test1' student
若是防火墙默认域非trusted须要开启smtp服务访问权限。
试题概述:
在system1上经过 SMB 共享/common 目录:
- 您的 SMB 服务器必须是 STAFF 工做组的一个成员;
- 共享名必须为 common;
- 只有 example.com 域内的客户端能够访问 common 共享;
- common 必须是能够浏览的;
- 用户 harry 必须可以读取共享中的内容,若是须要的话,验证的密码是 migwhisk。
:安装及基本设置 yum -y install samba mkdir /common setsebool -P samba_export_all_rw=on smbpasswd -a harry :修改配置文件 vim /etc/samba/smb.conf [global] workgroup = STAFF [common] path = /common hosts allow = 172.24.0.0/24 browseable = yes :重启并设置开机自启 systemctl restart smb nmb systemctl enable smb nmb
试题概述:
在system1经过 SMB 共享目录/devops,并知足如下要求:
- 共享名为 devops;
- 共享目录 devops 只能被 example.com 域中的客户端使用;
- 共享目录 devops 必须能够被浏览;
- 用户 kenji 必须能以读的方式访问此共享,该问密码是 atenorth;
- 用户 chihiro 必须能以读写的方式访问此共享,访问密码是 atenorth;
- 此共享永久挂载在 system2.example.com 上的/mnt/dev 目录,并使用用户 kenji 做为认证,任何用户能够经过用户 chihiro 来临时获取写的权限。
:基本准备 mkdir /devops smbpasswd -a kenji smbpasswd -a chihiro setfacl -m u:chihiro:rwx /devops :修改配置文件 vim /etc/samba/smb.conf [devops] path = /devops hosts allow = 172.24.0.0/24 write list = chihiro :重启服务 systemctl restart smb nmb :system2操做 :准备基本环境 yum -y install samba-client cifs-utils smbclient -L system1.example.com -U chihiro mkdir /mnt/dev :修改配置文件 vim /etc/fstab //system1.example.com/devops /mnt/dev cifs defaults,multiuser,username=kenji,password=atenorth,sec=ntlmssp,_netdev 0 0 :挂载配置 mount -a :验证临时权限 su - other cifscreds add -u chihiro system1.example.com touch /mnt/dev/1.txt
试题概述:
在system1配置 NFS 服务,要求以下:
- 以只读的方式共享目录/public,同时只能被 example.com 域中的系统访问;
- 以读写的方式共享目录/protected,能被 example.com 域中的系统访问;
- 访问/protected 须要经过 Kerberos 安全加密,您可使用下面 URL 提供的密钥:http://classroom.example.com/pub/keytabs/system1.keytab;
- 目录/protected 应该包含名为 project 拥有人为 ldapuser0 的子目录;
- 用户 ldapuser0 能以读写方式访问/protected/project。
:环境准备 mkdir -p /public /protected/project chown ldapuser0 /protected/project wget -O /etc/krb5.keytab http://classroom/pub/keytabs/system1.keytab :修改配置 vim /etc/exports /public 172.24.4.0/24(ro) /protected 172.24.4.0/24(rw,sec=krb5p) :启动服务并设置为开机自启 systemctl start nfs-secure-server nfs-server systemctl enable nfs-secure-server nfs-server
试题概述:
在system2上挂载一个来自 system1.exmaple.com 的共享,并符合下列要求:
- /public 挂载在下面的目录上/mnt/nfsmount;
- /protected挂载在下面的目录上/mnt/nfssecure 并使用安全的方式,密钥下载 URL:http://classroom.example.com/pub/keytabs/system2.keytab;
- 用户 ldapuser0 可以在/mnt/nfssecure/project 上建立文件;
- 这些文件系统在系统启动时自动挂载。
:环境准备 mkdir -p /mnt/nfsmount /mnt/nfssecure wget -O /etc/krb5.keytab http://classroom/pub/keytabs/system1.keytab systemctl start nfs-secure systemctl enable nfs-secure showmount -e system1.example.com :修改配置文件 vim /etc/fstab system1.example.com:/public /mnt/nfsmount nfs _netdev 0 0 system1.example.com:/protected /mnt/nfssecure nfs sec=krb5p,_netdev 0 0 :挂载 mount -a
试题概述:
为 http://system1.example.com 配置 Web 服务器:
- 从 http://classroom.example.com/pub/materials/station.html 下载一个主页文件,并将该文件重命名为 index.html;
- 将文件 index.html 拷贝到您的 web 服务器的 DocumentRoot 目录下;
- 不要对文件 index.html 的内容进行任何修改;
- 来自于 example.com 域的客户端能够访问此 Web 服务;
- 来自于 my133t.org 域的客户端拒绝访问此 Web 服务。
:安装Apache服务 yum -y install httpd :修改配置文件 vim /etc/httpd/conf.d/rhce.conf <VirtualHost *:80> ServerName system1.example.com DocumentRoot /var/www/html </VirtualHost> :下载网页文件 wget -O /var/www/html/index.html http://classroom.example.com/pub/materials/station.html :重启Apache服务并设置为开机自启 systemctl restart httpd systemctl enable httpd
试题概述:
为站点 http://server0.example.com 配置 TLS 加密:
- 已签名证书从http://classroom.example.com/pub/tls/certs/system1.crt 获取 ;
- 证书的密钥从http://classroom.example.com/pub/tls/private/system1.key获取;
- 证书的签名受权信息从http://classroom.example.com/pub/example-ca.crt获取。
:安装所需认证模块 yum -y install mod_ssl :下载所需文件 cd /etc/pki/tls/certs/ wget http://classroom.example.com/pub/example-ca.crt http://classroom.example.com/pub/tls/certs/system1.crt cd etc/pki/tls/private/ wget http://classroom.example.com/pub/tls/private/system1.key :修改配置文件 vim /etc/httpd/conf.d/ssl.conf <VirtualHost _default_:443> DocumentRoot /var/www/html ServerName system1.example.com:443 SSLCertificateFile /etc/pki/tls/certs/system1.crt SSLCertificateKeyFile /etc/pki/tls/private/system1.key SSLCACertificateFile /etc/pki/tls/certs/example-ca.crt </VirtualHost> :重启Apache服务 systemclt restart httpd
试题概述:
在system1上扩展您的 web 服务器,为站点 http://www0.example.com建立一个虚拟主机,而后执行下述步骤:
- 设置 DocumentRoot 为/var/www/virtual;
- 从 http://classroom.example.com/pub/materials/www.html 下载文件并重命名为index.html;
- 不要对文件 index.html 的内容作任何修改;
- 将文件 index.html 放到虚拟主机的 DocumentRoot 目录下;
- 确保 student 用户可以在/var/www/virtual 目录下建立文件;
:环境准备 mkdir /var/www/virtual setfacl -m u:student:rwx /var/www/virtual wget -O /var/www/virtual/index.html http://classroom.example.com/pub/materials/www.html :修改配置文件 vim /etc/httpd/conf.d/rhce.conf <VirtualHost *:80> ServerName www0.example.com DocumentRoot /var/www/virtual </VirtualHost> :重启Apache服务 systemctl restart httpd
试题概述:
在您的system1上的 web 服务器的 DocumentRoot 目录下建立一个名为private 的目录,要求以下:
- 从 http://classroom.example.com/pub/materails/private.html 下载一个文件副本到这个目录,而且得命名为 index.html;
- 不要对这个文件的内容作任何修改;
- 从 server0 上,任何人均可以浏览 private 的内容,可是从其余系统不能访问这个目录的内容。
:环境准备 mkdir /var/www/html/private wget -O /var/www/html/private/index.html http://classroom.example.com/pub/materails/private.html :修改配置 vim /etc/httpd/conf.d/rhce.conf <Directory /var/www/html/private> Require ip 127.0.0.1 </Directory>
试题概述:
在system1上配置提供动态 Web 内容,要求以下:
- 动态内容由名为 webapp0.example.com 的虚拟主机提供
- 虚拟主机侦听在端口 8909
- 从 http://classroom.example.com/pub/materials/webinfo.wsgi 下载一个脚本,而后放在适当的位置,不管如何不要修改此文件的内容
- 客户端访问 http://webapp0.example.com:8909 可接收到动态生成的 Web 页
- 此 http://webapp0.example.com:8909 必须能被 example.com 域内的全部系统访问
:安装所需模块 yum -y install mod_wsgi :准备环境 cd /var/www/html wget http://classroom.example.com/pub/materials/webinfo.wsgi semanage port -a -t http_port_t -p tcp 8909 :修改配置 vim /etc/httpd/conf.d/rhce.conf Listen 8909 <VirtualHost *:8909> ServerName webapp0.example.com:8909 DocumentRoot /var/www/html WSGIScriptAlias / /var/www/html/webinfo.wsgi </VirtualHost> :重启Apache服务 systemctl restart httpd
试题概述:
在 system1上建立一个名为/root/foo.sh 的脚本,让其提供下列特性:
- 当运行/root/foo.sh redhat,输出为 fedora;
- 当运行/root/foo.sh fedora,输出为 redhat;
- 当没有任何参数或者参数不是 redhat 或者 fedora 时,其错误输出产生如下的信息:/root/foo.sh redhat|fedora。
vim /root/foo.sh #!/bin/bash if [ "$1" = "redhat" ] ; then echo "fedora" elif [ "$1" = "fedora" ] ; then echo "redhat" else echo "/root/foo.sh redhat|fedora" fi chmod +x /root/foo.sh
试题概述:
在 system1上建立一个脚本,名为/root/batchusers,此脚本能实现为系统system1建立本地用户,而且这些用户的用户名来自一个包含用户名的文件,同时知足下列要求:
- 此脚本要求提供一个参数,此参数就是包含用户名列表的文件;
- 若是没有提供参数,此脚本应该给出下面的提示信息 Usage: /root/batchusers
而后退出并返回相应的值; - 若是提供一个不存在的文件名,此脚本应该给出下面的提示信息 Input file not found 而后退出并返回相应的值;
- 建立的用户登录 Shell 为/bin/false,此脚本不须要为用户设置密码;
- 您能够从下面的 URL 获取用户名列表做为测试用:http://classroom.example.com/pub/materials/userlist。
vim /root/batchusers #!/bin/bash if [ $# -eq 0 ] ; then echo "Usage: /root/batchusers <userfile>" exit 1 fi if [ ! -f $1 ] ; then echo "Input file not found" exit 2 fi for name in $(cat $1) do useradd -s /bin/false $name done chmod +x /root/batchusers
试题概述:
配置 server0 提供 iSCSI服务,磁盘名为 iqn.2016-02.com.example:system1,并符合下列要求:
- 服务端口为 3260;
- 使用iscsi_store做其后端卷,其大小为 3GiB 访问;
- 此服务只能被system2.example.com访问。
:准备磁盘空间 fdisk /dev/vda Command (m for help): n Partition number (1-128, default 1): First sector (34-20971486, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-20971486, default 20971486): +3G Command (m for help): w partprobe /dev/vda :安装并配置iSCSI yum -y install targetcli targetcli /> backstores/block create block1 /dev/vda1 /> /iscsi create iqn.2016-02.com.example:system1 /> /iscsi/iqn.2016-02.com.example:system1/tpg1/acls create iqn.2016-02.com.example:system2 /> /iscsi/iqn.2016-02.com.example:system1/tpg1/luns create /backstores/block/block1 /> /iscsi/iqn.2016-02.com.example:system1/tpg1/portals create 172.24.4.30 3260 /> saveconfig /> exit :重启并设置开机自启 systemctl restart target systemctl enable target
试题概述:
配置system2使其能链接 system1上提供的 iqn.2016-02.com.example:system1,并符合如下要求:
- iSCSI 设备在系统启动的期间自动加载;
- 块设备 iSCSI 上包含一个大小为 2100MiB 的分区,并格式化为 ext4 文件系统 此分区挂载在/mnt/data 上,同时在系统启动的期间自动挂载。
:安装iSCSI客户端 yum -y install iscsi-initiator-utils :修改iSCSI本机iqn名称 vim /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2016-02.com.example:system2 :重启服务 systemctl restart iscsid systemctl enalbe iscsid :查找、链接磁盘 iscsiadm -m discovery -t st -p system1 iscsiadm -m node -L all :分区设置 lsblk (查看新磁盘) fdisk /dev/sda Command (m for help): n Partition number (1-128, default 1): First sector (34-20971486, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-20971486, default 20971486): +2100M Command (m for help): w partprobe /dev/sda mkfs.ext4 /dev/sda1 :挂载设置 mkdir /mnt/data vim /etc/fstab /dev/sda1 /mnt/data ext4 defaults,_netdev 0 0 mount - a
试题概述:
在system1上建立一个 MariaDB 数据库,名为 Contacts,并符合如下条件: 数据库应该包含来自数据库复制的内容,复制文件的 URL 为:http://classroom.example.com/pub/materials/users.sql:
- 数据库只能被 localhost 访问;
- 除了 root 用户,此数据库只能被用户 Raikon 查询,此用户密码为 atenorth root 用户的密码为 atenorth,同时不容许空密码登录。
:安装、配置、启动MariaDB yum -y install mariadb mariadb-server vim /etc/my.cnf [mysqld] skip-networking systemctl restart mariadb systemctl enable mariadb :数据库基本操做 wget http://classroom.example.com/pub/materials/users.sql mysqladmin -u root password 'atenorth' mysql -u root -patenorth CREATE DATABASE Contacts; USE Contacts; SOURCE /root/users.sql GRANT select ON Contacts.* to Raikon@localhost IDENTIFIED BY 'atenorth'; DELETE FROM mysql.user WHERE Password='';
试题概述:
在系统 system1上使用数据库 Contacts,并使用相应的 SQL 查询以回答下列问题:
- 密码是 solicitous 的人的名字?
- 有多少人的姓名是 Barbara 同时居住在 Sunnyvale?
SELECT name FROM base WHERE password='solicitous'; SELECT count(*) FROM base,location WHERE base.name='Barbara' AND location.city='Sunnyvale' AND base.id=location.id ;