十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1.C/S,client/server架构(客户端/服务端)
成都创新互联主要从事成都网站建设、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务滕州,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:135182197922.由扶服务器提供资源或者某种功能
3.客户机使用资源或功能
二.构建web&ftp服务 (1).构建基本的web服务 1).web通讯基本概念1.基于browser/server架构的网页服务(属于特殊的c/s架构)
2.服务端提供网页
3.浏览器下载并显示网页(html:超文本标记语音,http:超文本传输协议)
2).构建基本的web服务1.虚拟机安装A(svr7)(安装httpd服务软件)
[root@svr7 ~]# yum -y install httpd #安装httpd软件
2.重启httpd服务
[root@svr7 ~]# systemctl restart httpd #启动httpd服务
[root@svr7 ~]# systemctl enable httpd #httpd开机自启
[root@svr7 ~]# firefox 192.168.4.7 #测试firefox打开
3.书写页面路径(默认存放网页的路径:/var/www/html;默认网页文件的名字:index.hrml)
[root@svr7 ~]# vim /var/www/html/index.html #编写网页首页
[root@svr7 ~]# cat /var/www/html/index.html
(2).搭建ftp服务
1).FTP:文件传输协议1.虚拟机A(svr7)搭建基本的FTP服务
2.安装vsftpd软件
[root@svr7 ~]# yum -y install vsftpd
3.重启vsftpd服务
[root@svr7 ~]# systemctl restart vsftpd
[root@svr7 ~]# systemctl enable vsftpd
[root@svr7 ~]# firefox ftp://192.168.4.7
3.默认共享数据的目录(/var/ftp)
[root@svr7 ~]# ls /var/ftp
pub
三.防火墙简介
(1).firwealld服务基础
1).防火墙分为硬件防火墙和软件防火墙1.防火墙的作用:隔离,进行过滤所有入站请求
2).firewalld服务基础1.管理工具:friewall-cmd;firewall-config(图形工具)
3).预设安全区域(根据所在的网络场所区分,预测保护规则集)1.public:仅允许访问本机的sshd,ping,dhcp服务
2.trusted:运行任何访问
3.blokck:阻塞任何来访请求(明确拒绝,有回应)
4.drop:丢弃任何来访的数据包(不回应)节省服务器资源
4).数据包:源IP地址;目标地址;数据 5).防火墙判定规则1.首先查看,客户端数据包中源IP地址,然后查看自己所有区域规则,哪个区域有该源IP地址的规则,则进入哪个区域。
2.进入默认区域(piblic)
6).防火墙默认区域修改1.虚拟机A(svr7)
[root@svr7 ~]# firewall-cmd --get-default-zone #查看防火墙默认区域
public #允许访问本机的ssh,ping,dhcp服务
2.虚拟机B(pc207)测试
[root@pc207 ~]# ping -c 2 192.168.4.7 #可以通信
PING 192.168.4.7 (192.168.4.7) 56(84) bytes of data.
64 bytes from 192.168.4.7: icmp_seq=1 ttl=64 time=0.625 ms
64 bytes from 192.168.4.7: icmp_seq=2 ttl=64 time=0.748 ms
--- 192.168.4.7 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1009ms
rtt min/avg/max/mdev = 0.625/0.686/0.748/0.066 ms
[root@pc207 ~]# curl 192.168.4.7 #不可以通信,crul并不在public访问内
curl: (7) Failed connect to 192.168.4.7:80; 没有到主机的路由 #访问的80端口是http超文本传输协议
3.虚拟机A(svr7)
[root@svr7 ~]# firewall-cmd --set-default-zone=trusted #修改默认区域
success #允许任何访问
4.虚拟机B(pc207)测试
[root@pc207 ~]# ping -c 2 192.168.4.7 #可以通讯
PING 192.168.4.7 (192.168.4.7) 56(84) bytes of data.
64 bytes from 192.168.4.7: icmp_seq=1 ttl=64 time=0.605 ms
64 bytes from 192.168.4.7: icmp_seq=2 ttl=64 time=0.731 ms
--- 192.168.4.7 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 0.605/0.668/0.731/0.063 ms
[root@pc207 ~]# curl 192.168.4.7 #可以通讯I Love Linux
5.虚拟机A(svr7)[root@svr7 ~]# firewall-cmd --set-default-zone=block #修改区域=blkock拒绝访问,有回应
success #修改成功
6.虚拟机B(pc207)测试
[root@pc207 ~]# ping -c 2 192.168.4.7 #被拒绝,不通讯
PING 192.168.4.7 (192.168.4.7) 56(84) bytes of data.
From 192.168.4.7 icmp_seq=1 Destination Host Prohibited
From 192.168.4.7 icmp_seq=2 Destination Host Prohibited
--- 192.168.4.7 ping statistics --- #回应,ping2次100%不通
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1002ms
7.虚拟机A(svr7)oot@svr7 ~]# firewall-cmd --set-default-zone=drop #修改默认区域drop=拒绝不反馈
success #修改成功
8.虚拟机B(pc207)测试
[root@pc207 ~]# ping 192.168.4.7 #不通讯
PING 192.168.4.7 (192.168.4.7) 56(84) bytes of data. #不反馈
四.防火墙的策略管理
(1).封网段,开服务http | 超文本传输协议 | 80 |
https | 安全的超文本传输协议 | 443 |
ftp | 文本传输协议 | 21 |
tftp | 简单的文本传输协议 | 69 |
DNS | 域名解析协议 | 53 |
telnet | 远程管理协议 | 23 |
smtp | 发邮件协议 | 25 |
pop3 | 收邮件协议 | 110 |
snmp | 简单的网络管理协议 | 161 |
[root@svr7 ~]# firewall-cmd --get-default-zone
public
2).pc207主机测试访问http和ftp,访问失败[root@pc207 ~]# curl ftp://192.168.4.7 #访问失败
curl: (7) Failed connect to 192.168.4.7:21; 没有到主机的路由
[root@pc207 ~]# curl 192.168.4.7 #访问失败
curl: (7) Failed connect to 192.168.4.7:80; 没有到主机的路由
3).设置允许http协议通过public区域[root@svr7 ~]# firewall-cmd --zone=public --add-service=http #在piblic区域添加http协议
success
4).查看区域策略[root@svr7 ~]# firewall-cmd --zone=public --list-all #查看public区域策略
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client http ssh #开放的协议有新添加的http协议
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
5).测试成功[root@pc207 ~]# curl 192.168.4.7I Love Linux
6).测试失败[root@pc207 ~]# curl ftp://192.168.4.7
curl: (7) Failed connect to 192.168.4.7:21; 没有到主机的路由
7).设置允许ftp协议通过public区域[root@svr7 ~]# firewall-cmd --zone=public --add-service=ftp #添加ftp协议
success
[root@svr7 ~]# firewall-cmd --zone=public --list-all #查看public区域策略
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ftp http ssh #在public区域里有新添加的ftp协议
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
8).测试成功[root@pc207 ~]# curl ftp://192.168.4.7 #测试成功
drwxr-xr-x 2 0 0 6 Oct 13 2020 pub
9).测试若重启机器或者重新加载防火墙,配置会失败[root@svr7 ~]# firewall-cmd --reload #--reload:重新加载
success
[root@svr7 ~]# firewall-cmd --zone=public --list-all #查看区域策略
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh #public区域没有http和ftp协议
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
10).需要永久性配置:永久(--permanent)[root@svr7 ~]# firewall-cmd --permanent --zone=public --add-service=http #永久添加http
success
[root@svr7 ~]# firewall-cmd --permanent --zone=public --add-service=ftp #永久添加ftp
success
[root@svr7 ~]# firewall-cmd --reload #重新加载(重启/刷新)
success
[root@svr7 ~]# firewall-cmd --zone=public --list-all #查看public区域
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ftp http ssh #新增http和ftp协议
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
(2).单独拒绝虚拟机pc207(192.168.4.207)进行访问本机所有服务
1).svr7配置拒绝访问[root@svr7 ~]# firewall-cmd --zone=block --add-source=192.168.4.207 #source:来源
success
2).pc207主机测试curl: (7) Failed connect to 192.168.4.7:80; 没有到主机的路由 #失败
[root@pc207 ~]# curl ftp://192.168.4.7
curl: (7) Failed connect to 192.168.4.7:21; 没有到主机的路由 #失败
3).其他主机可以访问[root@svr7 ~]# firewall-cmd --zone=public --list-all #public允许访问的区域
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ftp http ssh #ftp和http可以访问
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[root@svr7 ~]# firewall-cmd --zone=block --list-all #block拒接访问区域
block (active)
target: %%REJECT%%
icmp-block-inversion: no
interfaces:
sources: 192.168.4.207 #sources:来源,拒绝来自于207的主机
services:
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
4).删除规则[root@svr7 ~]# firewall-cmd --zone=block --remove-source=192.168.4.207 #移除207
success
[root@svr7 ~]# firewall-cmd --zone=block --list-all #查看block拒绝区域
block #并没有拒绝207主机
target: %%REJECT%%
icmp-block-inversion: no
interfaces:
sources:
services:
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[root@pc207 ~]# curl 192.168.4.7 #207主机可以访问I Love Linux
[root@pc207 ~]# curl ftp://192.168.4.7 #207主机可以访问
drwxr-xr-x 2 0 0 6 Oct 13 2020 pub
5).把虚拟机svr7,pc207防火墙的默认区域都设置为trusted,或者关闭防火墙,取消开机自启[root@svr7 ~]# systemctl stop firewalld #设置关闭防火墙
[root@svr7 ~]# systemctl disable firewalld 设置开机不自启
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@svr7 ~]# firewall-cmd --set-default-zone=trusted #设置防火墙区域为允许任何访问
FirewallD is not running #红色字体,没有启动防火墙
五.NTP时间同步
(1).NTP网络时间协议概述
1).NTP网络事件协议1.NTP服务器为客户机提供标准时间
2.NTP客户机需要与NTP服务器保持畅通
2).svr7客户端的校时服务1.软件包:chrony
2.配置文件:/etc/chrony.conf
3.系统服务:chronyd
3).NTP时间服务器:虚拟机A(svr7) 4).NTP客户机:虚拟机B(pc207) 5).安装chrony包1.服务配置(svr7)
[root@svr7 ~]# rpm -q chrony
chrony-3.4-1.el7.x86_64
[root@svr7 ~]# rpm -qc chrony #查看配置相关文件
/etc/chrony.conf #配置相关文件位置
/etc/chrony.keys
/etc/logrotate.d/chrony
/etc/sysconfig/chronyd
[root@svr7 ~]# vim /etc/chrony.conf #vim编辑配置文件
3 #server 0.centos.pool.ntp.org iburst #前面加#号,变成注释,不会读取
4 #server 1.centos.pool.ntp.org iburst #前面加#号,变成注释,不会读取
5 #server 2.centos.pool.ntp.org iburst #前面加#号,变成注释,不会读取
6 #server 3.centos.pool.ntp.org iburst #前面加#号,变成注释,不会读取
27 allow 0.0.0.0/0 #空白处新添加允许所有ip地址
29 local stratum 10 #去#号,设置NTF服务器的层数为10层
[root@svr7 ~]# systemctl restart chronyd #重启
[root@svr7 ~]# systemctl enable chronyd #开机自启
2.修改客户端(pc207)配置文本(指定服务端位置)
[root@pc207 ~]# vim /etc/chrony.conf #pc207修改配置文件
3 server 192.168.4.7 iburst #指定时间同步地址为4.7
4 #server 1.centos.pool.ntp.org iburst #前面加#号,变成注释,不会读取
5 #server 2.centos.pool.ntp.org iburst #前面加#号,变成注释,不会读取
6 #server 3.centos.pool.ntp.org iburst #前面加#号,变成注释,不会读取
#解析:server:服务;iburst:同步;
192.168.4.7 =1.centos.pool.ntp.org(这是访问的地址)
3.重启服务chronyd
root@pc207 ~]# systemctl restart chronyd
[root@pc207 ~]# systemctl enable chronyd
[root@pc207 ~]# chronyc sources -v #查看当前时间同步的状态
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.4.7 10 6 17 59 +340ns[ +44us] +/- 1014us
#当出现^*号的时候同步成功(192.168.4.7时间同步成功)
#(当出现^?号的时候同步时间失败,则需要关闭防火墙,svr7和pc207都停止防火墙服务)
六.网络yum源实战
(1).yum仓库概述
1).针对yum软件源的目录需要准备的内容1.大量的.rpm软件包文件
2.针对这些软件包的repodata/仓库档案
filelists.xml.gz | 提供所有软件包的文件安装清单 |
other.xml.gz | 提供所有软件包的其他信息 |
primary.xml.gz | 提供所有软件包的基本/主要信息 |
repodata/ | 仓库档案提供的数据 |
repomd.xml | 提供上述档案数据文件.xml.gz.的下载和校验信息 |
2).验证仓库档案的重要性,删除repodata
[root@svr7 ~]# cd /tools/other/
[root@svr7 other]# rm -rf repodata
[root@svr7 other]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: dvd nsd
Cleaning up list of fastest mirrors
[root@svr7 other]# yum repolist
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
file:///dvd/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /dvd/repodata/repomd.xml"
正在尝试其它镜像。
file:///dvd/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /dvd/repodata/repomd.xml"
正在尝试其它镜像。
file:///tools/other/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /tools/other/repodata/repomd.xml"
正在尝试其它镜像。
源标识 源名称 状态
dvd dvd 0
nsd myrpm 0
repolist: 0 #无软件包
#解析:上述显示file:///dvd/repodata/repomd.xml:
[Errno 14] curl#37 - "Couldn't open
file /dvd/repodata/repomd.xml"这些内柔就是报错
正在尝试其它镜像。
3).生成repodata目录在/other目录[root@svr7 other]# createrepo ../ #生成repodata包到other目录的父目录
Spawning worker 0 with 5 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@svr7 other]# cd .. #切换other的父目录
[root@svr7 tools]# ls #查看tools目录下有repodata目录
inotify-tools-3.13.tar.gz other repodata
4).修改yum配置文件[root@svr7 tools]# vim /etc/yum.repos.d/dvd.repo
[dvd]
name=dvd
baseurl=file:///dvd #/dvd是repodata所在位置
enabled=1
gpgcheck=0
[nsd]
name=myrpm
baseurl=file:///tools #指定tools目录下(指定repodata包在哪个目录下)
enabled=1
gpgcheck=0
5).验证[root@svr7 ~]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: dvd nsd
Cleaning up list of fastest mirrors
[root@svr7 ~]# yum repolist
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
dvd | 3.6 kB 00:00:00
(1/2): dvd/group_gz | 153 kB 00:00:00
(2/2): dvd/primary_db | 6.1 MB 00:00:00
源标识 源名称 状态
dvd dvd 10,072
nsd myrpm 5
repolist: 10,077
(2).部署网络yum源
1).服务端:利用web服务或FTP服务共享光盘所有内容
2).利用web(http)服务共享,默认共享位置:/var/www/html1.服务端svr7操作
[root@svr7 ~]# yum -y install httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 httpd-2.4.6-95.el7.centos.x86_64 已安装并且是最新版本
无须任何处理
[root@svr7 ~]# systemctl status httpd #查看httpd状态(running:运行中)
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since 日 2022-12-04 20:54:07 CST; 22min ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 1208 (httpd)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
Tasks: 6
CGroup: /system.slice/httpd.service
├─1208 /usr/sbin/httpd -DFOREGROUND
├─1314 /usr/sbin/httpd -DFOREGROUND
├─1316 /usr/sbin/httpd -DFOREGROUND
├─1321 /usr/sbin/httpd -DFOREGROUND
├─1324 /usr/sbin/httpd -DFOREGROUND
└─1328 /usr/sbin/httpd -DFOREGROUND
12月 04 20:54:05 svr7.tedu.cn systemd[1]: Starting The Apache HTTP Server...
12月 04 20:54:07 svr7.tedu.cn systemd[1]: Started The Apache HTTP Server.
[root@svr7 ~]# mkdir /var/www/html/mydvd
[root@svr7 ~]# ls /var/www/html/mydvd
[root@svr7 ~]# mount /dev/cdrom /var/www/html/mydvd
mount: /dev/sr0 写保护,将以只读方式挂载
[root@svr7 ~]# ls /var/www/html/mydvd
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
[root@svr7 ~]# firefox http://192.168.4.7/mydvd
#解析:/var/www/html=http://192.168.4.7,光盘挂载在/mydvd下,访问也在/mydvd下
网页访问不了:
[root@svr7 ~]# ss -ntulp | grep 80 #80端口(httpd)可以访问
[root@svr7 ~]# systemctl start httpd #重启
[root@svr7 ~]# systemctl enable httpd #开机自启
[root@svr7 ~]# systemctl status firewalld #防火墙关闭(trusted区域)
[root@svr7 ~]# getenforce #selinux为宽松模式(permissive)
2.客户端pc207操作
[root@pc207 ~]# vim /etc/yum.repos.d/dvd.repo #修改pc207的yum源
[dvd]
name=dvd repo
baseurl=http://192.168.4.7/mydvd #用http访问的地址为4.7主机
enabled=1 #挂载在mydvd,一定写对
gpgcheck=0
[root@pc207 ~]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: dvd
[root@pc207 ~]# yum repolist
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
dvd | 3.6 kB 00:00:00
(1/2): dvd/group_gz | 153 kB 00:00:00
(2/2): dvd/primary_db | 6.1 MB 00:00:00
源标识 源名称 状态
dvd dvd repo 10,072
repolist: 10,072
[root@pc207 ~]# firefox http://192.168.4.7/mydvd #访问成功
#解析
[root@pc207 ~]# yum repolist
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
http://192.168.4.7/dvd/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
正在尝试其它镜像。
To address this issue please refer to the below wiki article
https://wiki.centos.org/yum-errors
If above article doesn't help to resolve this issue please use https://bugs.centos.org/.
http://192.168.4.7/dvd/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
正在尝试其它镜像。(此处访问http://192.168.4.7/dvd/repodata/repomd.xml未访问到,因为dvd没找到,实际在mydvd下面)
源标识 源名称 状态
dvd dvd repo 0
repolist: 0
3.利用ftp服务共享,默认位置:/var/ftp
[root@svr7 ~]# rpm -q vsftpd #安装vsftpd
vsftpd-3.0.2-28.el7.x86_64
[root@svr7 ~]# systemctl status vsftpd #启动vsftpd服务
[root@svr7 ~]# mkdir /var/ftp/medvd #新建medvd目录
[root@svr7 ~]# mount /dev/cdrom /var/ftp/medvd #挂载光盘至/var/ftp/medvd下
mount: /dev/sr0 写保护,将以只读方式挂载
[root@svr7 ~]# firefox ftp://192.168.4.7/medvd #用火狐浏览器访问ftp服务成功
#4.4/medvd:挂载在此目录下
#解析
[root@svr7 ~]# ls /var/ftp/medvd/
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
4.客户端pc207操作
5.验证
[root@pc207 ~]# vim /etc/yum.repos.d/dvd.repo
[root@pc207 ~]# cat /etc/yum.repos.d/dvd.repo
[dvd]
name=dvd repo
baseurl=http://192.168.4.7/mydvd
enabled=1
gpgcheck=0
[dvd2]
name=ftp
baseurl=ftp://192.168.4.7/medvd
enabled=1
gpgcheck=0
[root@pc207 ~]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: dvd dvd2
Cleaning up list of fastest mirrors
[root@pc207 ~]# yum repolist
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
dvd | 3.6 kB 00:00:00
dvd2 | 3.6 kB 00:00:00
(1/4): dvd/group_gz | 153 kB 00:00:00
(2/4): dvd/primary_db | 6.1 MB 00:00:00
(3/4): dvd2/group_gz | 153 kB 00:00:00
(4/4): dvd2/primary_db | 6.1 MB 00:00:00
源标识 源名称 状态
dvd dvd repo 10,072
dvd2 ftp 10,072
repolist: 20,144
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧