20200716记录:web服务httpd,vsftp,防火墙策略管理,

Posted pineliao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20200716记录:web服务httpd,vsftp,防火墙策略管理,相关的知识,希望对你有一定的参考价值。

 

构建基本Web服务
Web服务:提供一个网页内容的服务
Web服务器:提供网页内容的机器
http:超文本传输协议
软件:httpd、nginx、Tomcat
 
虚拟机A:
1.安装httpd软件
[root@svr7 ~]# yum -y install httpd
[root@svr7 ~]# rpm -q httpd
2.重启httpd服务
[root@svr7 ~]# systemctl restart httpd
[root@svr7 ~]# systemctl status httpd #查看服务当前的状态
[root@svr7 ~]# systemctl enable httpd #设置服务开机自启动
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
3.书写一个简单的页面文件
默认存放网页文件路径:/var/www/html/
默认网页文件名称:index.html
[root@svr7 ~]# echo hahaxixihehelele > /var/www/html/index.html
虚拟机A:
1.本机访问测试
[root@svr7 ~]# curl 192.168.4.7 #命令行浏览器访问
 
 
五、构建基本FTP服务
 
FTP服务:传输数据
FTP协议:文件传输协议
软件包:vsftpd
默认共享数据的路径:/var/ftp
 
虚拟机A:
1.安装vsftpd软件
[root@svr7 ~]# yum -y install vsftpd
2.启动vsftpd服务
[root@svr7 ~]# systemctl restart vsftpd
[root@svr7 ~]# systemctl status vsftpd
[root@svr7 ~]# systemctl enable vsftpd
[root@svr7 ~]# touch /var/ftp/hahaxixi.txt
[root@svr7 ~]# ls /var/ftp/
 
虚拟机A:本机测试访问
[root@svr7 ~]# curl ftp://192.168.4.7
 
 
 
六、防火墙策略管理                                         
防火墙:隔离 严格过滤入站的请求,放行出站
 
硬件防火墙
软件防火墙
 
虚拟机A:
[root@svr7 ~]# rpm -q firewalld
[root@svr7 ~]# systemctl status firewalld
•系统服务:firewalld
•管理工具:firewall-cmd(命令)、firewall-config(图形)
 
 
•根据所在的网络场所区分,预设保护规则集
public:仅允许访问本机的 远程管理 dhcp自动获取IP地址 ping,其他均拒绝
trusted:允许任何访问
–block:拒绝任何来访请求,明确拒绝客户端可以收到回应
–drop:丢弃任何来访的数据包,不给客户端任何回应
 
防火墙判断请求进入区域的原则:
1.首先查看客户端请求数据包的源IP地址,查看防火墙所有区域的规则,如果某个区域有该源IP地址的规则,则进入该区域;
2.进入默认区域(默认区域在默认的情况下为public);
 
 
 
1.默认区域的修改
虚拟机A
[root@svr7 ~]# firewall-cmd --get-default-zone #查看防火墙的默认区域
虚拟机B
[root@pc207 ~]# ping -c 2 192.168.4.7 #访问成功
[root@pc207 ~]# curl http://192.168.4.7 #访问失败
[root@pc207 ~]# curl ftp://192.168.4.7 #访问失败
 
 
虚拟机A
[root@svr7 ~]# firewall-cmd --get-default-zone #查看防火墙的默认区域
[root@svr7 ~]# firewall-cmd --set-default-zone=trusted #修改防火墙默认区域
[root@svr7 ~]# firewall-cmd --get-default-zone #查看防火墙的默认区域
虚拟机B
[root@pc207 ~]# ping -c 2 192.168.4.7 #访问成功
[root@pc207 ~]# curl http://192.168.4.7 #访问成功
[root@pc207 ~]# curl ftp://192.168.4.7 #访问成功
 
 
虚拟机A
[root@svr7 ~]# firewall-cmd --set-default-zone=block
[root@svr7 ~]# firewall-cmd --get-default-zone
block
虚拟机B
[root@pc207 ~]# ping -c 2 192.168.4.7 #访问失败
[root@pc207 ~]# curl http://192.168.4.7 #访问失败
[root@pc207 ~]# curl ftp://192.168.4.7 #访问失败
 
 
虚拟机A
[root@svr7 ~]# firewall-cmd --set-default-zone=drop
[root@svr7 ~]# firewall-cmd --get-default-zone
drop
虚拟机B
[root@pc207 ~]# ping -c 2 192.168.4.7 #访问失败,没有回应
[root@pc207 ~]# curl http://192.168.4.7 #访问失败,没有回应
[root@pc207 ~]# curl ftp://192.168.4.7 #访问失败,没有回应
 
 
 
 
2.在public区域中添加规则
虚拟机A
[root@svr7 ~]# firewall-cmd --set-default-zone=public
[root@svr7 ~]# firewall-cmd --get-default-zone
虚拟机B
[root@pc207 ~]# ping -c 2 192.168.4.7 #访问成功
[root@pc207 ~]# curl http://192.168.4.7 #访问失败
[root@pc207 ~]# curl ftp://192.168.4.7 #访问失败
 
虚拟机A
[root@svr7 ~]# firewall-cmd --zone=public --list-all   #查看区域规则信息
[root@svr7 ~]# firewall-cmd --zone=public --add-service=ftp   #添加允许的协议
[root@svr7 ~]# firewall-cmd --zone=public --add-service=http   #添加允许的协议
[root@svr7 ~]# firewall-cmd --zone=public --list-all
虚拟机B
[root@pc207 ~]# curl http://192.168.4.7 #访问成功
[root@pc207 ~]# curl ftp://192.168.4.7 #访问成功
 
3.在public区域中添加规则,永久设置
–永久(--permanent)
 
[root@svr7 ~]# firewall-cmd --zone=public --remove-service=http     #删除允许的协议
[root@svr7 ~]# firewall-cmd --zone=public --remove-service=ftp #删除允许的协议
[root@svr7 ~]# firewall-cmd --zone=public --list-all #查看public区域中规则
 
[root@svr7 ~]# firewall-cmd --permanent --zone=public --add-service=http   #添加永久的规则
[root@svr7 ~]# firewall-cmd --permanent --zone=public --add-service=ftp
[root@svr7 ~]# firewall-cmd --zone=public --list-all
[root@svr7 ~]# firewall-cmd --reload     #只会加载所有永久的配置
[root@svr7 ~]# firewall-cmd --zone=public --list-all
 
 
4.配置虚拟机A防火墙策略,拒绝虚拟机B 192.168.4.207所有访问,真机仍然可以
防火墙判断请求进入区域的原则:
1.首先查看客户端请求数据包的源IP地址,查看防火墙所有区域的规则,如果某个区域有该源IP地址的规则,则进入该区域
2.进入默认区域(默认区域在默认的情况下为public)
 
虚拟机A:
[root@svr7 ~]# firewall-cmd --zone=block --add-source=192.168.4.207 #在区域中添加源IP地址规则
[root@svr7 ~]# firewall-cmd --zone=block --list-all     #查看block区域规则
[root@svr7 ~]# firewall-cmd --get-default-zone #查看默认区域
虚拟机B
[root@pc207 ~]# curl http://192.168.4.7 #访问失败
[root@pc207 ~]# curl ftp://192.168.4.7 #访问失败
真机利用浏览器进行测试
ftp://192.168.4.7 #访问成功
http://192.168.4.7 #访问成功
 
 
虚拟机A:
[root@svr7 ~]# firewall-cmd --reload
 
 
 
七、虚拟化概述
1.准备一台虚拟机
要求:内存要求8G 硬盘空间有剩余40G
 
CPU开启虚拟化支持
 
虚拟机中查看硬件信息
[root@svr7 ~]# free -m
[root@svr7 ~]# lsblk
 
2.将CentOS7-1804.iso光盘镜像文件,传递到虚拟机A
方法一扩展逻辑卷空间:如果根分区是逻辑卷,扩展逻辑卷即可
[root@svr7 ~]# df -h
[root@svr7 ~]# vgs #查看卷组信息
[root@svr7 ~]# lvs #查看逻辑卷信息
[root@svr7 ~]# vgextend centos /dev/sdb #扩展卷组
[root@svr7 ~]# vgdisplay centos #查看卷组详细信息
Free PE / Size 10212 / 39.89 GiB #剩余的PE个数与剩余空间大小
[root@svr7 ~]# lvextend -l +10212 /dev/centos/root #扩展逻辑卷,在原有的基础上加上10212个PE的大小
Size of logical volume centos/root changed from 17.10 GiB (4378 extents) to 56.99 GiB (14590 extents).
Logical volume centos/root successfully resized.
[root@svr7 ~]# lvs
[root@svr7 ~]# blkid /dev/centos/root
[root@svr7 ~]# xfs_growfs /dev/centos/root
[root@svr7 ~]# df -h
 
方法二:划分新的分区进行挂载使用
[root@svr7 ~]# fdisk /dev/sdb
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): #回车
Using default response p
分区号 (1-4,默认 1): #回车
起始 扇区 (2048-83886079,默认为 2048): #回车
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079): #回车
将使用默认值 83886079
分区 1 已设置为 Linux 类型,大小设为 40 GiB
命令(输入 m 获取帮助):w #保存并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@svr7 ~]# lsblk
[root@svr7 ~]# mkfs.xfs /dev/sdb1 #格式化文件系统
[root@svr7 ~]# mkdir /iso
[root@svr7 ~]# mount /dev/sdb1 /iso
[root@svr7 ~]# vim /etc/fstab
/dev/sdb1 /iso xfs defaults 0 0
[root@svr7 ~]# umount /iso #卸载设备
[root@svr7 ~]# df -h
[root@svr7 ~]# mount -a #检测/etc/fstab是否书写正确
[root@svr7 ~]# df -h
 
 
[root@svr7 iso]# du -sh /iso/
8.8G /iso/
 
 
虚拟机A
•部署Linux平台虚拟化,主要软件包
qemu-kvm:  为 kvm 提供底层仿真支持
libvirt-daemon:  libvirtd 守护进程,管理虚拟机
libvirt-client:  用户端软件,提供客户端管理命令
libvirt-daemon-driver-qemu:  libvirtd 连接 qemu 的驱动
virt-manager:  图形管理工具
 
[root@svr7 /]# yum -y install qemu-kvm
[root@svr7 /]# virt-manager
 
•进入虚拟机A的图形化界面
 
1.新建虚拟机
 
-----------------------

二、虚拟化概述               

技术图片

 

 

技术图片

 

 

部署KVM虚拟化,主要软件包
–qemu-kvm:为 kvm 提供底层仿真支持
–libvirt-daemon:libvirtd 守护进程,管理虚拟机
–libvirt-client:用户端软件,提供客户端管理命令
–libvirt-daemon-driver-qemu:libvirtd 连接 qemu 的驱动
–virt-manager:图形管理工具
 
libvirtd为虚拟化服务
[root@svr7 ~]# systemctl status libvirtd (了解)
Active: active (running)
[root@svr7 ~]# virt-manager
 
 
•提供管理各虚拟机的命令接口
–支持交互模式,查看/创建/停止/关闭 .. ..
–格式:virsh 控制指令 [虚拟机名称] [参数]
[root@svr7 ~]# which virsh
/usr/bin/virsh
[root@svr7 ~]# rpm -qf /usr/bin/virsh
libvirt-client-3.9.0-14.el7.x86_64
[root@svr7 ~]#
 
•查看KVM节点(服务器)信息
–virsh nodeinfo
•列出虚拟机
–virsh list [--all]
•查看指定虚拟机的信息
–virsh dominfo 虚拟机名称
•将指定的虚拟机设为开机自动运行
–virsh autostart [--disable] 虚拟机名称
•运行|重启|关闭指定的虚拟机
–virsh start|reboot|shutdown 虚拟机名称
•强制关闭指定的虚拟机
–virsh destroy 虚拟机名称
 
三、KVM虚拟机快速建立操作
 
1.将现有的虚拟机nsd01内存设置小一些
技术图片

 

 

2.Linux平台的命令行,虚拟机进行克隆
•一台KVM虚拟机的组成
–xml配置文件:定义虚拟机的名称、UUID、CPU、内存、虚拟磁盘、网卡等各种参数设置
默认路径:/etc/libvirt/qemu
–磁盘镜像文件:保存虚拟机的操作系统及文档数据,镜像路径取决于xml配置文件中的定义
默认路径:/var/lib/libvirt/images/
[root@svr7 ~]# du -sh /var/lib/libvirt/images/nsd01.qcow2
1.3G /var/lib/libvirt/images/nsd01.qcow2
 
步骤1:建立新磁盘镜像文件
[root@svr7 ~]# cp /var/lib/libvirt/images/nsd01.qcow2 /var/lib/libvirt/images/nsd02.qcow2
步骤2:建立新的xml配置文件
[root@svr7 ~]# cp /etc/libvirt/qemu/nsd01.xml /etc/libvirt/qemu/nsd02.xml
[root@svr7 ~]# vim /etc/libvirt/qemu/nsd02.xml
1)修改虚拟机名字: <name>nsd02</name>
2)修改虚拟机的UUID:
方法一:[root@svr7 ~]# uuidgen #可以产生UUID
方法二:<uuid>13e75558-0bd8-43ee-a74a-ef3e764d7cfb</uuid> #删除整行内容
3)修改磁盘文件路径与名称
<source file=‘/var/lib/libvirt/images/nsd02.qcow2‘/>
4)修改网卡设备的唯一标识
<mac address=‘52:54:00:35:a7:dc‘/> #删除整行内容
 
步骤3:导入新虚拟机xml配置文件
[root@svr7 ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
- nsd01 关闭
[root@svr7 ~]# virsh define /etc/libvirt/qemu/nsd02.xml     #导入新虚拟机信息  
定义域 nsd02(从 /etc/libvirt/qemu/nsd02.xml)
 
[root@svr7 ~]# virsh list --all #显示所有虚拟机
[root@svr7 ~]# virsh start nsd01 #开启虚拟机nsd01
[root@svr7 ~]# virsh start nsd02 #开启虚拟机nsd02
[root@svr7 ~]# virsh list --all
[root@svr7 ~]# virsh destroy nsd01 #强制关闭虚拟机nsd01
[root@svr7 ~]# virsh destroy nsd02 #强制关闭虚拟机nsd02  防止真机死机
[root@svr7 ~]# vim /etc/libvirt/qemu/nsd02.xml #主要查看UUID与MAC,是否生成
 
虚拟机的磁盘镜像文件格式
技术图片

 

 

虚拟机进行克隆,进化版
步骤1:建立新磁盘镜像文件
[root@svr7 ~]# cp /var/lib/libvirt/images/nsd01.qcow2 /var/lib/libvirt/images/nsd03.qcow2
步骤2:建立新的虚拟机xml文件
[root@svr7 ~]# virsh edit nsd01
#直接以已存在虚拟机的xml文件,为模板进行修改。并且不会改变已存在虚拟机的xml文件内容,并且自动导入信息
1)修改虚拟机名字: <name>nsd03</name>
2)修改虚拟机的UUID:
方法一:[root@svr7 ~]# uuidgen #可以产生UUID
方法二:<uuid>13e75558-0bd8-43ee-a74a-ef3e764d7cfb</uuid> #删除整行内容
3)修改磁盘文件路径与名称
<source file=‘/var/lib/libvirt/images/nsd03.qcow2‘/>
4)修改网卡设备的唯一标识
<mac address=‘52:54:00:35:a7:dc‘/> #删除整行内容
步骤3:启动虚拟机
[root@svr7 ~]# virsh start nsd03
域 nsd03 已开始
[root@svr7 ~]# virsh destroy nsd03
域 nsd03 被删除
 
常见错误:
1.UUID冲突
[root@svr7 ~]# virsh define /etc/libvirt/qemu/nsd04.xml
错误:从 /etc/libvirt/qemu/nsd04.xml 定义域失败
错误:操作失败: 已使用 uuid nsd01 定义域名 ‘b3e75558-0bd8-43ee-a74a-ef3e764d7cfb‘
 
2.磁盘镜像文件不存在或者文件名称有误
[root@svr7 ~]# virsh start nsd04
错误:开始域 nsd04 失败
错误:Cannot access storage file ‘/var/lib/libvirt/images/hahaxixi.qcow2‘ (as uid:107, gid:107): 没有那个文件或目录
 
修复方法:修改虚拟机xml文件,修改磁盘文件路径及名称
<source file=‘/var/lib/libvirt/images/nsd04.qcow2‘/>
 
[root@svr7 ~]# virsh define /etc/libvirt/qemu/nsd04.xml #重新导入虚拟机信息
定义域 nsd04(从 /etc/libvirt/qemu/nsd04.xml)
 
[root@svr7 ~]# virt-manager
[root@svr7 ~]# virsh start nsd04
[root@svr7 ~]# virsh destroy nsd04
 
 
四、命令行的删除虚拟机
1.取消定义
[root@svr7 ~]# virsh undefine nsd04 #删除虚拟机信息,主要删除是/etc/libvirt/qemu/nsd04.xml文件
域 nsd04 已经被取消定义
 
[root@svr7 ~]# ls /etc/libvirt/qemu/
autostart networks nsd01.xml nsd02.xml nsd03.xml
[root@svr7 ~]# ls /var/lib/libvirt/images/ #virsh undefine nsd04该命令不会删除nsd04虚拟机的磁盘镜像文件
nsd01.qcow2 nsd02.qcow2 nsd03.qcow2 nsd04.qcow2
2.删除磁盘镜像文件
[root@svr7 ~]# rm -rf /var/lib/libvirt/images/nsd04.qcow2
[root@svr7 ~]# ls /var/lib/libvirt/images/
nsd01.qcow2 nsd02.qcow2 nsd03.qcow2
 
五、磁盘镜像文件快速创建
COW技术原理
•Copy On Write,写时复制
–直接映射原始盘的数据内容
–对前端盘的修改不回写到原始盘
–原始盘内容不变,并且不能修改原始盘内容,否则所有前端盘无法使用
–前端盘的大小至少与原始盘一样大,最好比原始盘大
–当不指定前端盘的大小时,前端盘与原始盘一样大小
 
虚拟机进行克隆
步骤1:建立新磁盘镜像文件
•qemu-img 通过 -b 选项复用指定后端盘
–qemu-img create -f qcow2 -b 后端盘 前端盘 前端盘大小
[root@svr7 ~]# qemu-img create -f qcow2 -b /var/lib/libvirt/images/nsd01.qcow2 /var/lib/libvirt/images/stu02.qcow2 20G
[root@svr7 ~]# qemu-img info /var/lib/libvirt/images/stu02.qcow2
image: /var/lib/libvirt/images/stu02.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes) #虚拟的大小
disk size: 196K #占用磁盘空间真实的大小
cluster_size: 65536
backing file: /var/lib/libvirt/images/nsd01.qcow2 #指明后端盘
Format specific information:
compat: 1.1
lazy refcounts: false
 
步骤2:建立新的xml配置文件
[root@svr7 ~]# cp /etc/libvirt/qemu/nsd01.xml /etc/libvirt/qemu/stu02.xml
[root@svr7 ~]# vim /etc/libvirt/qemu/stu02.xml
1)修改虚拟机名字: <name>stu02</name>
2)修改虚拟机的UUID:
方法一:[root@svr7 ~]# uuidgen #可以产生UUID
方法二:<uuid>13e75558-0bd8-43ee-a74a-ef3e764d7cfb</uuid> #删除整行内容
3)修改磁盘文件路径与名称
<source file=‘/var/lib/libvirt/images/stu02.qcow2‘/> #指定使用前端盘
4)修改网卡设备的唯一标识
<mac address=‘52:54:00:35:a7:dc‘/> #删除整行内容
 
步骤3:导入新虚拟机xml配置文件
[root@svr7 ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
- nsd01 关闭
[root@svr7 ~]# virsh define /etc/libvirt/qemu/stu02.xml #导入新虚拟机信息
 
[root@svr7 ~]# virsh list --all #显示所有虚拟机
[root@svr7 ~]# virsh start stu02 #开启虚拟机nsd01
 
 
 
六、离线访问虚拟机磁盘镜像文件(了解)
•使用 guestmount 工具
–支持离线挂载 raw、qcow2 格式虚拟机磁盘
–可以在虚拟机关机的情况下,直接修改磁盘中的文档
–方便对虚拟机定制、修复、脚本维护
!!! 需要注意 SELinux 机制的影响
 
•基本用法
guestmount -a 虚拟机磁盘路径 -i /挂载点
[root@svr7 ~]# yum provides */guestmount #查询仓库中那个软件包产生该文件
[root@svr7 ~]# yum -y install libguestfs-tools-c
 
[root@svr7 ~]# guestmount -a /var/lib/libvirt/images/nsd01.qcow2 -i /mnt/
[root@svr7 ~]# ls /mnt/
 
########################################################

 

 

 

 

 

 

 

 

 

 

 

 

 

---------------------------

 

以上是关于20200716记录:web服务httpd,vsftp,防火墙策略管理,的主要内容,如果未能解决你的问题,请参考以下文章

20200716 千锤百炼软工人第十一天

Linux学习记录-11

CentOS8下使用Apache Httpd创建源服务

web服务之httpd及其新特性

CentOS 7 中httpd服务构建虚拟Web主机详解

git配置httpd服务-web_dav模式