侧边栏壁纸
博主头像
尘兮小站博主等级

行动起来,活在当下

  • 累计撰写 8 篇文章
  • 累计创建 4 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

初级网络实训《Linux网络操作系统配置与管理》

Administrator
2024-04-28 / 0 评论 / 2 点赞 / 93 阅读 / 25156 字

《Linux网络操作系统配置与管理》

综合项目实训任务书

一、项目实训目的

通过一个以学校为背景的校园网建设项目的综合实训,使学生在Centos 7.9 操作系统平台上,掌握服务器的管理与配置技术,学会搭建一个中小型校园网的设计细节和施工流程,为今后架设综合网络平台以及云计算数据中心打下基础。

二、项目实训方式与基本要求

1.项目实训前必须仔细阅读《项目施工任务书》,明确实训的目的、要求和任务,制定好上机步骤。

2.每人备用一台笔记本(至少16GB内存容量),独立完成全部项目任务。

3.上机时必须携带本项目实训任务书以及相关的教材资料,以备查阅。

三、项目施工时间和进度安排

表15-4 项目实施进度表

实施进度实施内容
1阅读本任务书,把握任务要求、明确实训内容
2搭建实训环境(准备好5台虚拟机及其所需数量的网卡,调试好4台虚拟机交换机)
3部署软路由器,配置所有主机的网络参数,实现2个内部子网及外网的互连互通
4逐台配置其他的功能服务器、完成本地客户机对服务器的访问测试
5进行综合调试和测试
6项目验收及成绩评定
7整理技术文档,并通过网络空间提交《综合项目实训报告书》
四、项目规划及施工环境

本项目通过1台物理机和VMware Workstation软件,构建了一个具有2个内部子网、一个外部模拟公网、4台虚拟交换机和5台虚拟机的网络,网络拓扑图如图15-2所示。

为了方便操作,我们给dhcp,nat等服务器配置一张管理网卡,只起到紧急情况下管理虚拟机作用

四、项目实训内容

虚拟网卡分配表:

网卡名称网络模式模式网段DHCP服务作用
VMnet2NAT模式10.1.80.0/24启用外网卡
VMnet11仅主机模式192.168.1.0/24关闭内网卡,服务器用网
VMnet12仅主机模式192.168.2.0/24关闭内网卡,学生用网
VMnet13仅主机模式10.2.1.0/24启用内网卡,管理网卡

#VMnet13仅供无法通过192.168.1.0/24网段与192.168.2.0/24网段连接进行使用,注意修改路由策略

虚拟机分配表:

虚拟机名称服务器网卡及IP地址网卡连接的虚拟交换机
dhcpDHCP、软路由、SNAT内网用户共享上网 DNAT发布内网应用服务管理网卡:VMnet13:10.2.1.101 内网卡:VMnet11: 192.168.1.1 VMnet12: 192.168.2.1 外网卡VMnet2:10.1.80.130VMnet13 VMnet11 VMnet12 VMnet2
dnsdns缓存服务器外网卡:VMnet11: 10.1.80.131VMnet2
apacheWeb学校官网内网卡:VMnet11: 192.168.1.3VMnet11
nginxWeb内网文件下载站内网卡:VMnet11: 192.168.1.4VMnet11
win10 x64流动测试机器根据需求自行添加根据需求自行添加

拓补图:23e81174504ec1cec1a77beeb51eb9b2

任务1:配置各虚拟机的网络参数和NAT服务,实现内部2个子网和外网的互连互通

1.为虚拟机①和虚拟机③添加所需数量的网卡,并根据表15-5的规划将各网卡连接至相应的虚拟交换机,配置所有虚拟机上各网卡的IP地址等网络参数。

首先按照需求为dhcp服务器添加相应网卡

image-20240424100025765

2.安装centos7操作系统

选择语言

image-20240424100237963

软件选择>基础设施服务器

image-20240424100324189

关闭KDUMP

image-20240424100407687

image-20240424100432984

设置密码,等待安装完成

image-20240424100525288

系统安装完成后,查看网卡,发现ens32 ens33 ens34 ens35全部都是无网络状态

image-20240424101406024

3.配置网卡

①管理网卡:

TPROTO=static
NAME=ens32
DEVICE=ens32
IPADDR=10.2.1.101
NETMASK=255.255.255.0
GATEWAY=10.2.1.2
ONBOOT=yes

②内网网卡:

TPROTO=static
NAME=ens33
DEVICE=ens33
IPADDR=192.168.1.1
NETMASK=255.255.255.0
ONBOOT=yes

③内网网卡:

TPROTO=static
NAME=ens34
DEVICE=ens34
IPADDR=192.168.2.1
NETMASK=255.255.255.0
ONBOOT=yes

④外网网卡:

TPROTO=static
NAME=ens35
DEVICE=ens35
IPADDR=10.1.80.130
GATEWAY=10.1.80.2
NETMASK=255.255.255.0
ONBOOT=yes

重启网络并查看网络状态:

[root@localhost ~]# systemctl restart network
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:a1:17:79 brd ff:ff:ff:ff:ff:ff
    inet 10.2.1.101/24 brd 10.2.1.255 scope global noprefixroute ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fea1:1779/64 scope link 
       valid_lft forever preferred_lft forever
3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:a1:17:83 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fea1:1783/64 scope link 
       valid_lft forever preferred_lft forever
4: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:a1:17:8d brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.1/24 brd 192.168.2.255 scope global noprefixroute ens34
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fea1:178d/64 scope link 
       valid_lft forever preferred_lft forever
5: ens35: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:a1:17:97 brd ff:ff:ff:ff:ff:ff
    inet 10.1.80.130/24 brd 10.1.80.255 scope global noprefixroute ens35
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fea1:1797/64 scope link 
       valid_lft forever preferred_lft forever
4.配置yum源

使用管理网,将centos镜像上传到dhcp服务器内:

image-20240424102429763

删除原有yum源,配置离线centos yum源

[root@localhost ~]# mount CentOS-7-x86_64-Everything-2009.iso /mnt
[root@localhost ~]# mkdir /opt/centos
[root@localhost ~]# cp -rf /mnt/* /opt/centos
[root@localhost ~]# rm -rf /etc/yum.repos.d/*
[root@localhost ~]# vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[root@localhost ~]# yum repolist
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
centos                                                                                                                   | 3.6 kB  00:00:00     
(1/2): centos/group_gz                                                                                                   | 153 kB  00:00:00     
(2/2): centos/primary_db                                                                                                 | 6.1 MB  00:00:00     
源标识                                                               源名称                                                               状态
centos                                                               centos                                                               10,072repolist: 10,072
5.配置dhcp服务

下载dhcp服务:

[root@localhost ~]# yum install -y dhcp*
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 12:dhcp-common-4.2.5-82.el7.centos.x86_64 已安装并且是最新版本
软件包 12:dhcp-libs-4.2.5-82.el7.centos.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 dhcp.x86_64.12.4.2.5-82.el7.centos 将被 安装
---> 软件包 dhcp-devel.x86_64.12.4.2.5-82.el7.centos 将被 安装
--> 解决依赖关系完成

依赖关系解决

================================================================================================================================================ Package                          架构                         版本                                          源                            大小
================================================================================================================================================正在安装:
 dhcp                             x86_64                       12:4.2.5-82.el7.centos                        centos                       515 k
 dhcp-devel                       x86_64                       12:4.2.5-82.el7.centos                        centos                       108 k

事务概要
================================================================================================================================================安装  2 软件包

总下载量:623 k
安装大小:1.5 M
Downloading packages:
------------------------------------------------------------------------------------------------------------------------------------------------总计                                                                                                             89 MB/s | 623 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : 12:dhcp-devel-4.2.5-82.el7.centos.x86_64                                                                                    1/2 
  正在安装    : 12:dhcp-4.2.5-82.el7.centos.x86_64                                                                                          2/2 
  验证中      : 12:dhcp-4.2.5-82.el7.centos.x86_64                                                                                          1/2 
  验证中      : 12:dhcp-devel-4.2.5-82.el7.centos.x86_64                                                                                    2/2 

已安装:
  dhcp.x86_64 12:4.2.5-82.el7.centos                                  dhcp-devel.x86_64 12:4.2.5-82.el7.centos                                 

完毕!

将dhcp服务器的防火墙关闭并开启路由转发

[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
在/etc/sysctl.conf 下配置 并使用sysctl -p 生效
[root@localhost ~]# vi /etc/sysctl.conf 
net.ipv4.ip_forward = 1
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1

编辑dhcp配置并设置dhcp服务开机自启 #如果安装一个完全不知道的软件包可以通过rpm -qc 包名 来查询配置文件路径

[root@localhost ~]# vi /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
subnet 192.168.1.0 netmask 255.255.255.0 { #网卡一
option routers 192.168.1.1; #配置网关
range 192.168.1.5 192.168.1.254; #配置地址池
default-lease-time 600;         #默认租约时间
max-lease-time 7200;    #最大租约时间
option domain-name-servers 10.1.80.131; #DNS服务器
}
subnet 192.168.2.0 netmask 255.255.255.0 { #网卡二
option routers 192.168.2.1; #配置网关
range 192.168.2.5 192.168.2.254; #配置地址池
default-lease-time 600;         #默认租约时间
max-lease-time 7200;    #最大租约时间
option domain-name-servers 10.1.80.131; #DNS服务器
}
[root@localhost ~]# systemctl enable dhcpd --now
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
6.配置路由与iptables策略

#重启后会重置配置 需手动更改 重新做路由与iptables配置 建议将机器挂起处理,不进行关机 ,若重启网络配置 一定要查看一下路由配置有没有被修改,一定要保证默认路由走10.1.80.2 (default via 10.1.80.2 dev ens35 proto dhcp metric 103)不允许使默认路由走其他网络!!!

首先我们查看一下路由配置

[root@localhost ~]# ip route
default via 10.2.1.2 dev ens32 proto static metric 100 
default via 10.1.80.2 dev ens35 proto dhcp metric 103 
10.1.80.0/24 dev ens35 proto kernel scope link src 10.1.80.130 metric 103 
10.2.1.0/24 dev ens32 proto kernel scope link src 10.2.1.101 metric 100 
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.1 metric 101 
192.168.2.0/24 dev ens34 proto kernel scope link src 192.168.2.1 metric 102 

发现有一个路由default via 10.2.1.2 dev ens32 这回导致默认流量会从10.2.1网段出去,这会导致无法连接外网,因为外网的网段为10.1.80,所以我们要删除默认的10.2.1.2的路由

[root@localhost ~]# ip route del default via 10.2.1.2 dev ens32 proto static metric 100

添加iptables转发策略

ip route del default via 10.2.1.2 dev ens32 proto static metric 100
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 10.1.80.130
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to-source 10.1.80.130
iptables -A FORWARD -s 192.168.1.0/24 -d 10.1.80.130 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -d 10.1.80.130 -j ACCEPT
iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -j SNAT --to-source 10.1.80.130
这些命令是 `iptables` 的一部分,用于配置网络地址转换(NAT)和转发规则。下面是每个命令的解释:

1. `iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 10.1.80.130`
   - 这个命令将添加一条规则到 `nat` 表的 `POSTROUTING` 链。
   - `-s 192.168.1.0/24` 指定了源地址为 `192.168.1.0` 到 `192.168.1.255` 的数据包。
   - `-j SNAT` 表示执行源 NAT,改变数据包的源地址。
   - `--to-source 10.1.80.130` 指定了新的源地址为 `10.1.80.130`。
   - 这条命令的意思是,所有来自 `192.168.1.0/24` 网络的数据包在转发时,其源地址将被改为 `10.1.80.130`。

2. `iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to-source 10.1.80.130`
   - 这个命令与第一个命令类似,但适用于 `192.168.2.0/24` 网络。

3. `iptables -A FORWARD -s 192.168.1.0/24 -d 10.1.80.130 -j ACCEPT`
   - 这个命令将添加一条规则到 `filter` 表的 `FORWARD` 链。
   - `-s 192.168.1.0/24` 指定了源地址为 `192.168.1.0/24`。
   - `-d 10.1.80.130` 指定了目的地址为 `10.1.80.130`。
   - `-j ACCEPT` 表示接受这些数据包。
   - 这条命令允许所有来自 `192.168.1.0/24` 网络,目的地为 `10.1.80.130` 的数据包被转发。

4. `iptables -A FORWARD -s 192.168.2.0/24 -d 10.1.80.130 -j ACCEPT`
   - 这个命令与第三条命令类似,但适用于 `192.168.2.0/24` 网络。


5. `iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -j SNAT --to-source 10.1.80.130`
   - 这个命令再次添加一条规则到 `nat` 表的 `POSTROUTING` 链。
   - `-s 0.0.0.0/0` 表示这条规则适用于所有源地址。
   - `-j SNAT --to-source 10.1.80.130` 表示将所有经过的数据包的源地址转换为 `10.1.80.130`。
   - 这条命令通常用于实现一对一的 NAT,将本机的所有外部流量的源地址改为 `10.1.80.130`。

这些命令结合起来,通常用于设置路由器或网关,使得连接到该路由器的本地网络(`192.168.1.0/24` 和 `192.168.2.0/24`)的设备能够通过一个公网 IP 地址(`10.1.80.130`)访问互联网。同时,它们允许从外部网络访问路由器本身。
7.网络连通性测试

我们使用流动测试机进行测试,为了直观演示,本次使用win10x64作为演示

首先只添加一张网卡VMnet11

image-20240424110324434

首先查看dhcp分配状态

image-20240424110433309

发现已经成功被分配到IP 192.168.1.5

下面进行网络连通性测试

依次对192.168.1.1、192.168.2.1、10.1.80.130进行ping命令测试

image-20240424110817390

发现网络连通性测试成功,但是无法访问网页,这是因为在前面dhcp服务内,我们分配的DNS服务并没有搭建完毕,所以无法解析域名。

将网卡改为VMnet12 重复上述网络连通性测试

任务2:搭建DNS缓存服务器,提高内网访问互联网速度。

1.为虚拟机①添加所需数量的网卡,并根据表的规划将各网卡连接至相应的虚拟交换机。

首先按照需求为dns服务器添加相应网卡

image-20240425162108526

2.安装centos7操作系统

选择语言

image-20240424100237963

软件选择>基础设施服务器

image-20240424100324189

关闭KDUMP

image-20240424100407687

image-20240424100432984

更改网络,固定静态IP为10.1.80.131

设置密码,等待安装完成

image-20240424100525288

3.ftp连接dns服务器,上传centos镜像 配置yum仓库

image-20240424150811194

[root@localhost ~]# mount CentOS-7-x86_64-Everything-2009.iso /mnt
[root@localhost ~]# mkdir /opt/centos
[root@localhost ~]# cp -rf /mnt/* /opt/centos
[root@localhost ~]# rm -rf /etc/yum.repos.d/*
[root@localhost ~]# vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[root@localhost ~]# yum repolist
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
centos                                                                                                                   | 3.6 kB  00:00:00     
(1/2): centos/group_gz                                                                                                   | 153 kB  00:00:00     
(2/2): centos/primary_db                                                                                                 | 6.1 MB  00:00:00     
源标识                                                               源名称                                                               状态
centos                                                               centos                                                               10,072repolist: 10,072
4.安装bind服务
[root@localhost ~]# yum install -y bind

5.编辑bind配置 配置为dns缓存服务器
options {
        listen-on port 53 { any; }; 
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };

        /*
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable
           recursion.
         - If your recursive DNS server has a public IP address, you MUST enable access
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface
        */
        recursion yes;
        forward only;
        forwarders { 114.114.114.114; }; # 上游dns服务器可添加多个,添加114仅供演示
        dnssec-enable no; #关闭验证
        dnssec-validation no;
6.DNS连通性测试

使用测试机进行测试:

image-20240424210347958

可以正常上网image-20240424210438441

任务3:架设ApacheWeb站点

用于模拟学校官网。

1.设置固定IP

image-20240424211557459

若无法将镜像传入虚拟机,可以加一张管理网卡,等操作完毕,吧管理网卡禁用掉,查看ip route,确定流量走192.168.1.1

2.挂载centos镜像 安装apache
yum install -y httpd
echo "The index of Ncc" > /var/www/html/index.html
systemctl enable httpd --now
3.关闭防火墙
sytemctl stop firealld && setenforce 0
4.网页访问测试

使用流动测试机访问,建议使用VMnet12网卡访问,因为apache网站在192.168.1.0网段

image-20240425092610838

测试成功

任务4:架设Nginx下载站点

架设Nginx下载站点供校内学生下载学校共享文件

1.配置网卡

image-20240425094110295

2.配置Centos源以及nginx源
[root@localhost ~]# tar zxf nginx-repo.tar.gz -C /opt/nginx/ 
[root@localhost ~]# cat /etc/yum.repos.d/local.repo 
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[nginx]
name=nginx
baseurl=file:///opt/nginx
gpgcheck=0
enabled=1
3.安装nginx服务
[root@localhost ~]# yum install -y nginx
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 nginx.x86_64.1.1.18.0-2.el7.ngx 将被 安装
--> 解决依赖关系完成

依赖关系解决

================================================================================================================================================ Package                       架构                           版本                                          源                             大小
================================================================================================================================================正在安装:
 nginx                         x86_64                         1:1.18.0-2.el7.ngx                            nginx                         769 k

事务概要
================================================================================================================================================安装  1 软件包

总下载量:769 k
安装大小:2.7 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : 1:nginx-1.18.0-2.el7.ngx.x86_64                                                                                             1/1 
----------------------------------------------------------------------

Thanks for using nginx!

Please find the official documentation for nginx here:
* http://nginx.org/en/docs/

Please subscribe to nginx-announce mailing list to get
the most important news about nginx:
* http://nginx.org/en/support.html

Commercial subscriptions for nginx are available on:
* http://nginx.com/products/

----------------------------------------------------------------------
  验证中      : 1:nginx-1.18.0-2.el7.ngx.x86_64                                                                                             1/1 

已安装:
  nginx.x86_64 1:1.18.0-2.el7.ngx                                                                                                               

完毕!
4.修改nginx配置文件,配置如下
server {
    listen 80;
    server_name download.ncc.example;

    charset utf-8;

    root /opt/download;

    location / {
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
    }
}
5.重启nginx服务
[root@localhost ~]# systemctl restart nginx  

6.模拟创建一个共享文件

[root@localhost ~]# cd /opt/download && touch test.txt 
6.流动测试机访问

image-20240425104703328

任务5:配置DNS解析服务,将www.ncc.example与download.ncc.examle解析至相应的IP,并在dhcp服务器设置Dnat服务,将www网页让公网IP通过public.ncc.examle访问。

1.修改DNS服务器相应的解析服务

首先查看named.conf配置

发现区域文件为/etc/named.rfc1912.zones

image-20240425152859273

2.修改/etc/named.rfc1912.zones添加区域解析文件
zone "ncc.example" {
    type master;
    file "/etc/named/ncc.example.zone";
};
3.写入解析文件/etc/named/ncc.example.zone
$TTL    86400
$ORIGIN ncc.example.
@       IN      SOA     ns.ncc.example. admin.ncc.example. (
                              1         ; Serial
                             604800    ; Refresh
                              86400     ; Retry
                             2419200   ; Expire
                              86400 )   ; Negative Cache TTL
;
@       IN      NS      ns.ncc.example.
ns      A       10.1.80.131 ;
@       A       192.168.1.1 ;
www     A       192.168.1.3 ;
download A      192.168.1.4 ;
public A        10.1.80.130 ;
4.重启dns服务
systemctl restart named;
5.设置Dnat服务,将www.ncc.example通过网络总出口10.1.80.130使外部访问

操控dhcp服务器添加dhcp解析

iptables -t nat -A PREROUTING -d 10.1.80.130 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.3

6.使用流动测试机进行测试

image-20240425160932892

image-20240425160958858

image-20240425161020681

image-20240425161119951

2
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
博主关闭了所有页面的评论