rhce
模拟环境:server0、desktop0
root密码:redhat
example.com: 172.25.0.0/24
cracker.com: 172.24.3.0/24
YUM: http://content.example.com/rhel7.0/x86_64/dvd
======================================================
# lab nfskrb5 setup //仅模拟环境
rht-vmctl fullreset 重启环境
隐藏操作:
- 配置server0和desktop0 YUM
vim /etc/yum.repos.d/yum.repo
[yum]
name = yum
baseurl = http://content.example.com/rhel7.0/x86_64/dvd
gpgcheck = 0
两台都做server0 和 desktop0
- 配置SELinux环境,将SELinux设为enforcing模式
vim /etc/selinux/config
image.png
修改为:enforcing
测:getenforce
image.png
两台都做server0 和 desktop0
===============================================
- 配置server0和desktop0上的访问控制,拒绝cracker.com域中的主机访问SSH
firewall-config
如果远程有问题就——直接用本机
image.png
测:
image.png
两台都做
- server0和desktop0针对所有用户创建自定义命令psnew,执行该命令是将执行ps -Ao user,pid,ppid,command
vim /etc/profile
底部添加:
alias psnew='ps -Ao user,pid,ppid,command'
测:exit 重连接后 # psnew
两台做
- 配置server0服务器SMB,工作组为STAFF,共享目录/smb1, 共享名smb1,只有example.com域中主机访问
共享smb1,smb1必须可浏览;用户ldapuser1必须能够读取共享中的内容,密码tianyun。
yum -y install samba samba-client cifs-utils
mkdir /smb1 创建目录
chcon -R -t samba_share_t /smb1 给权限
smbpasswd -a ldapuser1 配置samba密码
vim /etc/samba/smb.conf 配置samba
查找: workgroup 改写工作组
image.png
最后一行添加配置
image.png
systemctl restart nmb smb 重启服务
systemctl enable nmb smb 开机自启
firewall-cmd --permanent --add-service=samba 防火墙——开门
firewall-cmd --reload 重启防火墙
=====================================================
- 配置server0服务器samba,共享目录/smb2,共享名smb2,只有example.com域中主机访问。用户ldapuser1读取, ldapuser2读写,密码都为tianyun;desktop0以multiuser方式自动挂接到/mnt/smb2
server0服务器
smbpasswd -a ldapuser2 添加密码:tianyun
mkdir /smb2
chcon -R -t samba_share_t /smb2 权限
查看
[root@server0 ~]# ll -dZ /smb2
drwxr-xr-x. root root unconfined_u:object_r:samba_share_t:s0 /smb2
setfacl -m u:ldapuser2:rwx /smb2 权限
vim /etc/samba/smb.conf 配置
[smb2]
path= /smb2
hosts allow= 172.25.0.
valid users= ldapuser1,ldapuser2
write list= ldapuser2
systemctl restart nmb smb
systemctl enable nmb smb
image.png
desktop0
yum -y install samba-client cifs-utils
mkdir /mnt/smb2
vim /etc/fstab
//server0/smb2 /mnt/smb2 cifs defaults,user=ldapuser1,pass=tianyun,multiuser 0 0
image.png
mount -a
测: df -Th
======================================================
- 配置server0 NFS服务
以只读的方式共享目录/nfs1,只能被example.com域中主机访问;
以读写的方式共享目录/nfs2,能被example.com域中主机访问
访问/nfs2需要Kerberos安全加密,密钥为 http://classroom.example.com/pub/keytabs/server0.keytab
目录/nfs2应包含名为private拥有者为ldapuser5的子目录,用户ldapuser5能以读写的方式访问/nfs2/private
server0
yum -y install nfs-utils
mkdir /nfs1
mkdir -pv /nfs2/private
chown ldapuser5 /nfs2/private
vim /etc/exports
/nfs1 172.25.0.0/24(ro,sync)
systemctl restart nfs-server
systemctl enable nfs-server
firewall-cmd --permanent --add-service=nfs
firewall-cmd --reload
=============================================
desktop0
yum -y install nfs-utils
mkdir /mnt/nfs1
vim /etc/fstab
server0:nfs1 /mnt/nfs1 nfs defaults 0 0
mount -a
测:df -Th
- 配置desktop0挂载NFS
/nfs1挂载到/mnt/nfs1
/nfs2挂载到/mnt/nfssecure,并使用安全的方式,密钥为:
http://classroom.example.com/pub/keytabs/desktop0.keytab
ldapuser5用户能在/mnt/nfssecure/private上创建文件
server0中操作
wget http://classroom.example.com/pub/keytabs/server0.keytab -O /etc/krb5.keytab
vim /etc/exports 添加
/nfs2 172.25.0.0/24(rw,sync,sec=krb5p)
image.png
vim /etc/sysconfig/nfs 第二行 添加 -V 4.2
image.png
systemctl restart nfs-secure-server 重点
systemctl enable nfs-secure-server
systemctl restart nfs-server
systemctl enable nfs-server
desktop
wget http://classroom.example.com/pub/keytabs/desktop0.keytab -O /etc/krb5.keytab
mkdir /mnt/nfssecure
vim /etc/fstab 添加
server0:/nfs2 /mnt/nfssecure nfs defaults,v4.2,sec=krb5p 0 0
image.png
systemctl restart nfs-secure 注意服务名·
systemctl enable nfs-secure
mount -a
===============================================
模拟准备——考试不用
virt-manager 密码:yangge
server0与desktop 手动添加两个网卡
image.png
image.png
===============================================
nm-connection-editor
===>Team
唯一添加:{"runner":{"name":"activebackup"}}
image.png
image.png
image.png
nmcli connection up "System eth0"
两台做
- 配置server0端口转发,从172.25.10.0/24网段访问server0端口6666/tcp时,转发到80/tcp
firewall-config
image.png
- 配置server0和desktop0上的IPv6,使用接口eth0,相互可以ping通,原IPv4仍然有效。
nm-connection-editor
nmcli connection up "System eth0" 重启
server0: 2012:ac18::1205/64
desktop0: 2012:ac18::120a/64
image.png
image.png
测: ip a
desktop同上 2012:ac18::120a/64
- 配置server0和desktop0邮件服务
server0和desktop0不接收外部邮件
本地发送的邮件会路由到 smtp.example.com
本地发送的邮件显示来自 example.com
可以通过发送邮件到本地用户ldapuser0来测试配置,可通过http://smtp.example.com/received_mail/0查看
server0
查:rpm -q postfix 没有安装
vim /etc/postfix/main.cf
image.png
最后找到该路径 : 添加 STAND ( stand ) Tab
vim /usr/share/doc/postfix2.10.1/README_FILES/STANDARD_CONFIGURATION_README
找 /null client
image.png
复制模板 + /error
image.png
结果
myhostname = server0.example.com
myorigin = example.com
relayhost = [smtp.example.com]
inet_interfaces = loopback-only
mydestination =
local_transport = error:local mail delivery is disabled
image.png
systemctl restart postfix
systemctl enable postfix
dosktop0
vim /etc/postfix/main.cf 复制server0
systemctl restart postfix
systemctl enable postfix
image.png
- 配置server0 ISCSI 服务端
提供iscsi磁盘名为 iqn.2017-04.com.tianyun:server0
使用iscsi_store作为其后端卷,其大小为2G
此服务只能被desktop0.example.com访问
提供服务的端口为3260
fdisk /dev/vdb +2G w保存
partprobe /dev/vdb 更新
ll /dev/vdb* 查询
yum -y install targetcli
systemctl restart target
systemctl enable target
targetcli 进入
backstores/block create iscsi_store /dev/vdb1
/iscsi create iqn.2017-04.com.tianyun:server0
iscsi/iqn.2017-04.com.tianyun:server0/tpg1/acls create iqn.2017-04.com.tianyun:desktop0
iscsi/iqn.2017-04.com.tianyun:server0/tpg1/luns create /backstores/block/iscsi_store
iscsi/iqn.2017-04.com.tianyun:server0/tpg1/portals create 172.25.0.11 3206
cd
saveconfig
exit
做错了:/> clearconfig
/> clearconfig confirm=True 删除重做
image.png
firewall-config 防火墙必须 ——立即生效,不然检测不出
image.png
- 配置desktop0 ISCSI 客户端
自动连接 iqn.2017-04.com.tianyun:server0
创建大小为500M的分区,格式化为 ext4文件系统,自动挂载到/mnt/iscsidisk
yum -y install iscsi*
vim /etc/iscsi/initiatorname.iscsi
复制添加
systemctl restart iscsid.service 注意 iscsi——d
systemctl enable iscsid.service
通过:man iscsiadm
找 EXAMPLE (example)
systemctl restart iscsi 不启动 不能创磁盘
systemctl enable iscsi
fdisk /dev/sda
partprobe /dev/sda
ll /dev/sad*
mkfs.ext4 /dev/sda1
mkdir /mnt/iscsidisk
blkid 复制UUID
UUID="eb82dbd1-8490-4c5f-a8d5-6ec29134259e"
vim /etc/fstab
UUID=" —— " /mnt/iscsidisk ext4 defualts,_netdev 0 0
mount -a
- 配置server0 web服务,http://www0.example.com
网页:http://classroom.example.com/content/exam/webs/www.html,命名index.html,勿修改内容
将index.html拷贝到 DocumentRoot 目录下;
来自example.com域的客户端可以访问web服务;
来自cracker.com域的客户端拒绝访问web服务。
yum -y install httpd mod_ssl mod_wsgi
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
wget http://classroom.example.com/content/exam/webs/www.html -O /var/www/html/index.html
vim vim /etc/httpd/conf.d/www0.example.com.conf 创建网页(网页名)
image.png
<virtualHost *:80>
servername www0.example.com
documentroot /var/www/html
</virtualhost>
<directory "/var/www/html">
<requireall>
require all granted
require not ip 172.24.3.0/24
</requireall>
</directory>
可不管大小写 systemctl restart httpd 重启 enable
测:desktop0
firefox &
image.png
- 配置server0 安全的web服务网站https://www0.example.com 启用TLS加密。
已签名证书 http://classroom/pub/tls/certs/www0.crt
此证书的密钥 http://classroom/pub/tls/private/www0.key
此证书的授权信息从http://classroom/pub/example-ca.crt获取
在/etc/httpd/conf.d 的目录文件下
vim www0.example.com 改写配置
重开1台 server0
vim /etc/httpd/conf.d/ssl.conf 找配置
image.png
vim www0.example.com 添加配置
<virtualHost *:443>
servername www0.example.com
documentroot /var/www/html
SSLEngine on
SSLCertificateFile /etc/httpd/www0.crt
SSLCertificateKeyFile /etc/httpd/www0.key
</virtualhost>
image.png
cd /etc/httpd
wget http://classroom/pub/tls/certs/www0.crt
wget http://classroom/pub/tls/private/www0.key
systemctl restart httpd
测:ss -tnlp |egrep '80|443'
image.png
- 配置server0 虚拟主机,http://server0.example.com
DocumentRoot 为 /var/www/virtual
网页:http://classroom.example.com/content/exam/webs/server.html,命名index.html,勿修改内容
将index.html拷贝到虚拟机 DocumentRoot 目录下;
确保ldapuser5用户能够在 /var/www/virtual下创建文件;
原始网站 http://www0.example.com 必须仍能访问
mkdir /var/www/virtual
wget http://classroom.example.com/content/exam/webs/server.html -O /var/www/virtual/index.html
setfacl -m u:ldapuser5:rwx /var/www/virtual
在 /etc/httpd/conf.d/ 目录的前提下
cp www0.example.com.conf server0.example.com.conf 辅助改配置
<virtualHost *:80>
servername server0.example.com
documentroot /var/www/virtual
</virtualhost>
<directory "/var/www/virtual">
require all granted
</directory>
systemctl restart httpd
image.png
测:desktop
firefox &
image.png
- 配置server0 web内容访问
在server0的 web服务器的DocumentRoot目录下创建目录private
网页:http://classroom.example.com/content/exam/webs/private.html,命名为index.html,勿修改内容
从server0 任何人可以浏览private的内容,但从其它系统不能访问该目录的内容。
mkdir /var/www/virtual/private
wget http://classroom.example.com/content/exam/webs/private.html -O /var/www/virtual/private/index.html
vim server0.example.com.conf 添加配置
<directory "/var/www/virtual/private">
require local
</directory>
systemctl restart httpd 重启
image.png
测:
image.png
- 配置server0 实现动态web内容
动态内容由 webapp0.example.com 虚拟主机提供
虚拟机监听端口为 8888/tcp
Python application
http://classroom.example.com/content/exam/webs/webapp.wsgi
放置在适当的位置,勿修改脚本中的内容客户端访问http://webapp0.example.com:8888时能接收到动态内容
yum -y install mod_wsgi
mkdir /var/www/webapp0
wget http://classroom.example.com/content/exam/webs/webapp.wsgi -O /var/www/webapp0/webapp.wsgi
cp server0.example.com.conf webapp0.example.com.conf 复制改配置
listen 8888
<virtualHost *:8888>
servername webapp0.example.com
wsgiscriptalias / /var/www/webapp0/webapp.wsgi
</virtualhost>
<directory "/var/www/webapp0">
require all granted
</directory>
此时httpd重启不了 端口问题 需要授权
image.png
重启报错后 ——journalctl -xn
semanage port -a -t http_port_t -p tcp 8888 给端口开放
firewall-cmd --permanent --add-port=8888/tcp
firewall-cmd --reload
systemctl restart httpd
测:desktop
firefox &
- 配置server0 Shell script,/root/script1.sh。
执行/root/script1.sh foo,输出bar
执行/root/script1.sh bar 输出foo
没有任何参数时,输出 Usage /root/script1.sh bar|foo
vim /root/script1.sh
#!/usr/bin/bash
case "$1" in
foo)
echo "bar" ;;
bar)
echo "foo" ;;
*)
echo "Usage /root/script1.sh bar|foo"
esac
语法检测+给权限
bash -n /root/script1.sh
chmod +x /root/script1.sh
测
image.png
- 配置server0 添加用户脚本: /root/batchusers
脚本要求提供一个参数,此参数就是包含用户名列表的文件;
如果没有参数,应给出提示 Usage: /root/batchusers userfile 然后退出返回相应的值;
如果提供一个不存在的文件名,应给出提示消息 Input file not found 然后退出返回相应的值;
设置/bin/false为添加用户默认shell。
vim /root/batchusers
#!/usr/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 user in `cat $1`
do
id $user &>/dev/null
if [ $? -eq 0 ];then
echo "user $user already exits"
else
useradd $user -s /bin/false
echo "user $user is created."
fi
done
给权限: chmod a+x /root/batchusers
测:
image.png
- 配置server0 Mariadb数据库
- 安装Mariadb
- 配置root户只能从本地登录,密码为tianyun
- 禁用匿名用户访问
- 创建数据库Concats
- 导入数据到Concats, http://classroom.example.com/content/exam/mariadb/mariadb.dump
- 授权Luigi用户可以从本地以select方式访问数据库Concats中的表,密码tianyun。
- 按要求实现单表查询,提交结果
- 按要求实现多表查询,提交结果
yum -y install mariadb mariadb-server
systemctl restart mariadb
systemctl enable mariadb
firewall-cmd --permanent --add-service=mysql 防火墙开门
firewall-cmd --reload
mysql_secure_installation 建立密码:tianyun
mysql -uroot -ptianyun
create database Concats; 建立表
show databases; 查
image.png
exit 退出
wget http://classroom.example.com/content/exam/mariadb/mariadb.dump
mysql -uroot -ptianyun Concats < mariadb.dump
mysql -uroot -ptianyun Concats 直接进入表Concats
show tables; 查看3张表
image.png
help grant; 找命令
GRANT ALL ON Concats.* TO 'Luigi'@'localhost' IDENTIFIED BY 'tianyun'; 给用户密码
flush privileges; 更新
单表查询:
show tables;
image.png
select *from product;
select *from product where price>210 按要求单个表格找内容
image.png
多表查询: image.png image.png image.png