1.实验要求
1.配置一个web 服务器 需加密 端口使用8443
2.设置防火墙,SElinux修改权限,
3.将/www 挂载到isciss硬盘上
4.开机自启
2.实验步骤
1.创建web服务器
1.1.环境说明及安装
安装httpd软件
mount /dev/sr0 /mnt
dnf install httpd -y
dnf install mod_ssl -y
1.2先创建自签证书和密钥
进入/etc/pki/tls/certs
目录
使用make命令制作证书
make haha.crt
若如果制作证书的提示如下错误:
make: *** No rule to make target 'xixi.crt'. Stop.
说明没有Makefile这个文件导致,可以使用以下命令下载
wget http://www.kittod.com/Makefile
若提示没有make命令,安装即可
dnf install make -y
若创建证书成功可以使用ll命令查看
我们可以发现生成了一个crt文件和key文件
如图所示
我们需要把钥匙放到默认路径
mv haha.key ../private/
1.3进入/etc/httpd/conf.d/ 目录修改host.conf文件
<directory /www>
allowoverride none
require all granted
</directory>
<virtualhost 192.168.171.184:8443>
servername 192.168.171.184
documentroot /www
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/haha.crt
SSLCertificateKeyFile /etc/pki/tls/private/haha.key
</virtualhost>
listen 8443 https
1.4重启服务
systemctl restart httpd
我们会发现提示错误,因为我们防火墙和SElinux权限没有允许httpd服务,我们将会在下一步修改。
2.修改防火墙权限
2.1使用 CLI 控制预定义服务的流量
在允许的服务中添加服务:
firewall-cmd --add-service=httpd
使新配置永久生效
firewall-cmd --runtime-to-permanent
2.2打开端口
列出所有允许的端口
firewall-cmd --list-ports
在允许的端口中添加一个端口,以便入站流量打开这个端口:
[root@localhost ~]# firewall-cmd --add-port=8443/tcp --permanent
success
[root@locathost ~]# firewall-cmd --reload
success
[root@localhost.
./ ~]# firewall-cmd --list-ports
8443/tcp
注意:端口类型可以是 tcp 、 udp 、 sctp 或 dccp 。这个类型必须与网络通信的类型匹配。
3.修改SElinux权限
先决条件
已安装 httpd 软件包,并将 Apache HTTP 服务器配置为侦听 TCP 端口 3131,并使用
/var/test_www/ 目录而不是默认的 /var/www/ 目录。
在系统中安装了 policycoreutils-python-utils 和 setroubleshoot-server 软件包。
3.1SELinux 策略假设 httpd 在端口 80 上运行:
使用semanage port -l | grep http
命令查看端口
结果如图所示
我们发现8443端口已经在http上,所以不用修改
3.2使用 matchpathcon 工具比较标准 SELinux 类型和新路径:
[root@localhost conf.d]# matchpathcon /var/www/html/ /www/test/
/var/www/html system_u:object_r:httpd_sys_content_t:s0
/wwwsystem_u:object_r:default_t:s0
我们发现两个的路径不同
将新 /var/test_www/html/ 内容目录的 SELinux 类型改为默认 /var/www/html 目录的类型:
[root@localhost conf.d]# semanage fcontext -a -e /var/www/html /www
[root@localhost conf.d]# matchpathcon /var/www/html/ /www
/var/www/html system_u:object_r:httpd_sys_content_t:s0
/www system_u:object_r:httpd_sys_content_t:s0
3.3递归重新标记 /www/test 目录:
使用
restorecon -Rv /www/
命令
修改完后通过
ll /www -Z
查看
结果如图所示
3.4使用curl命令测试
curl -k https://192.168.171.144:8443
结果如图所示
4.将/www目录挂载到iscsi硬盘上
4.1新启用一台虚拟机当做我们的iscsi服务器
给这台虚拟机添加一块硬盘
如图所示我主硬盘是scsi,所以也添加了一块scsi硬盘
因为我们添加的是scsi硬盘,所以通过(若是nvme硬盘,查看使用nvme*)
ll /dev/sd*
命令查看所有的硬盘
4.2安装服务端软件
dnf install -y targetcli
输入targetcli命令进入targetcli模式
然后在 /> 模式下输入ls
如图所示
4.3先进入到block目录下创建硬盘
/> cd backstores/block
/backstores/block>create dev=/dev/sdb name=lun1
# 创建dev选择之前添加的硬盘名
#name可以随便取,这里lun1代表逻辑单元号
然后使用ls查看
成功结果如图所示
进入到/iscsi目录下修改
/> cd /iscsi
/iscsi>create
创建成功提示如图所示
使用ls查看
/iscsi> cd iqn.2003-01.org.Linux- iscsi.kittod.x8664 :sn.6d8509326e3d/tgp1/
/iscsi/iqn.2003-01.org.Linux- iscsi.kittod.x8664 :sn.6d8509326e3d/tgp1/>
set attribute authentication=0 demo_mode_write_protect=0 generate_node_acls=1 cache_dynamic_acls=1
#配置权限
配置成功如图所示
4.4添加luns
cd /iscsi/iqn.20...e3d/tgp1/luns> create storage_object=/backstores/block/LUN1
最后cd回根目录使用ls查看
结果如图所示
4.5使用iscsi发起程序
进入第一台虚拟机
安装软件
[root@localhost ~]# yum install iscsi-initiator-utils lsscsi
[root@localhost ~]# systemctl enable iscsi
[root@localhost ~]# systemctl start iscsi
登录
[root@localhost ~]# iscsiadm -m discovery -t sendtargets -p 192.168.171.135
查看:
[root@localhost ~]# fdisk -l
[root@localhost ~]# lsscsi
查看和区分
[root@localhost ~]# ll /dev/disk/by-path/
查看日志
[root@localhost ~]# grep sdb /var/log/messages
4.6硬盘逻辑分区并将/www目录挂载
[root@localhost ~]# fdisk /dev/sdc
Command (m for help):n
#因为没有固定分区大小,所以大小管理直接输入回车默认分配
Command (m for help):w
#w保存退出
[root@localhost ~]#mkfs.xfs /dev/sdc
#格式化分区
[root@localhost ~]vim /etc/fstab
/dev/sdc1 /www xfs defaults,_netdev 0 0
#设置自动挂载
#注意:因为这是另一台服务器的硬盘,使用时需要联网,所以必须使用UUID,否则会出问题,同时在参数中添加_netdev。
5.使服务实现开机自启
使用
systemctl enable httpd
命令实现每次开机自动启动