
根据拓扑图中的提示和防火墙配置逻辑,以下是详细的配置步骤。在华为 eNSP 中配置 USG6000v 防火墙,通常分为四个主要步骤:接口配置(IP和服务)、区域划分(Zone)、安全策略(Policy)。
根据图示,需求如下:
- Trust区域 (192.168.10.0/24):可以访问 Untrust 和 DMZ(数据中心)。
- DMZ区域 (192.168.30.0/24):可以访问 Trust。
- Untrust区域 (192.168.20.0/24):不能访问 Trust 和 DMZ。
第一步:配置IP地址及接口允许的服务
首先, FW1,进入命令行界面。默认账号 admin,密码 admin@123,登录后需要改密码。
# 进入系统视图
system-view
# 配置 GE 1/0/2 接口 (连接 Trust 区域)
interface GigabitEthernet 1/0/2
ip address 192.168.10.254 24 # 建议设为该网段网关
service-manage enable # 开启接口管理功能
service-manage ping permit # 允许Ping,方便测试连通性
quit
# 配置 GE 1/0/0 接口 (连接 Untrust 区域)
interface GigabitEthernet 1/0/0
ip address 192.168.20.254 24
service-manage enable
service-manage ping permit
quit
# 配置 GE 1/0/1 接口 (连接 DMZ/数据中心 区域)
interface GigabitEthernet 1/0/1
ip address 192.168.30.254 24
service-manage enable
service-manage ping permit
quit注意 :PC1、PC4 的网关指向 192.168.10.254;PC3 的网关指向 192.168.20.254;PC2 的网关指向 192.168.30.254。
第二步:划分安全区域
华为防火墙默认有 Trust (85)、Untrust (5)、DMZ (50) 等区域。我们需要把刚才配置的接口加入到对应的区域中。
# 将 GE 1/0/2 加入 Trust 区域
firewall zone trust
add interface GigabitEthernet 1/0/2
quit
# 将 GE 1/0/0 加入 Untrust 区域
firewall zone untrust
add interface GigabitEthernet 1/0/0
quit
# 将 GE 1/0/1 加入 DMZ 区域 (图中称为"数据中心")
firewall zone dmz
add interface GigabitEthernet 1/0/1
quit第三步:配置安全策略
这是最关键的一步。防火墙默认拒绝所有流量,必须配置策略允许特定的流量通过。根据图中文字要求:
- Trust -> Untrust & DMZ:允许
- DMZ -> Trust:允许
- Untrust -> Trust & DMZ:默认拒绝(不写策略即为拒绝)
# 进入安全策略视图
security-policy
# 规则1:允许 Trust 访问 Untrust
rule name Trust_to_Untrust
source-zone trust
destination-zone untrust
source-address 192.168.10.0 24 # 指定源IP段
action permit
quit
# 规则2:允许 Trust 访问 DMZ (数据中心)
rule name Trust_to_DMZ
source-zone trust
destination-zone dmz
source-address 192.168.10.0 24
action permit
quit
# 规则3:允许 DMZ (数据中心) 访问 Trust
rule name DMZ_to_Trust
source-zone dmz
destination-zone trust
source-address 192.168.30.0 24
action permit
quit
# 退出
quit
quit第四步:验证配置
- 配置PC IP:确保所有 PC 都配置了正确的 IP 地址、子网掩码和网关。
- 测试 Trust 到 Untrust:用 PC1 (192.168.10.1) Ping PC3 (192.168.20.1)。应该能通。
- 测试 Trust 到 DMZ:用 PC1 Ping PC2 (192.168.30.1)。应该能通。
- 测试 DMZ 到 Trust:用 PC2 Ping PC1。应该能通。
- 测试 Untrust 到 Trust:用 PC3 Ping PC1。应该不通(Request timeout)。
补充说明
图中提到“此实验不用配置路由”,是因为这些网段都是防火墙的直连网段,防火墙会自动生成直连路由。只要接口 UP 且配置正确,路由表会自动更新。
一、模块管理
1、在server2上执行hostname命令 (shell模块)
ansible server2 -m shell -a "hostname"
2、在server2上创建一个文件/opt/hosts,并设置所有者为root,所属组为tom,权限为444.(file模块)
ansible server2 -m file -a "path=/opt/hosts owner=root group=tom mode=444 state=touch"
3、把本地的文件/etc/ansible/hosts拷贝到目标机器的/opt目录中。并设置权限为000,所有者为tom。(copy和fetch模块)
ansible server2 -m copy -a "src=/etc/ansible/hosts mode=000 owner=tom dest=/opt"
4、在server2上安装vsftpd。(yum模块)
ansible server2 -m yum -a "name=vsftpd state=installed"
5、在server2卸载vsftpd。(yum模块)
ansible erver2 -m yum -a "name=vsftpd state=absent"
6、把server2上的/dev/sdb3格式化为XFS文件系统。(filesystem模块)
ansible server2 -m filesystem -a "dev=/dev/sdb3 fstype=xfs"
7、在ansible主机上执行replace模块。(replace模块)
ansible server2 -m replace -a "path=/opt/aa.txt regexp=^aa replace=xx=666"
8、在ansible主机上执行lineinfile模块。(lineinfile模块)
ansible server2 -m lineinfile -a "path=/opt/bb.txt regexp= ^aa line=xx=666"
9、在server2上打印"111"。(debug模块)
ansible server2 -m debug -a "msg='hello ansible'"
10、创建组groupl。(group模块)
ansible server2 -m group -a "name=groupl state=present"
11、删除组groupl。
ansible server2 -m group -a "name=groupl state=absent"
二、playbook编写
(1)在server2、server3上查看当前firewalld服务情况;
ansible server2,server3 -m command -a "firewall-cmd --list-all"
(2)写一个playbook,使用循环语句配置 firewalld:在server2、server3上开放 nfs、rpc-bind、mountd 三个服务,重启系统也能生效;
vim firewalld.yaml
---
- name: suibian
hosts: server2,server3
tasks:
- firewalld:
service: "{{ item }}"
immediate: yes
permanent: yes
state: enabled
loop:
- nfs
- rpc-bind
- mountd
ansible-playbook firewalld.yaml
(3)运行playbook,并检查服务生效情况。
ansible server2,server3 -m command -a "firewall-cmd --list-all"
三、Podman容器应用
(1)使用镜像拉取命令,拉取nginx镜像。(地址:docker.m.daocloud.io/library/nginx)
podman pull docker.m.daocloud.io/library/nginx
(2)创建一个容器名称为ngweb,设置容器在退出(无论正常或异常)后自动重启,容器端口80映射到物理机指定的端口108。
podman run -d --name=ngwed --restart=always -p 108:80 docker.m.daocloud.io/library/nginx
(3)在主机浏览器中访问该容器服务。
http://192.168.245.134:108
把物理机的目录/yy映射到容器的/data目录中。
podman run -dit --name=web -v /yy:/data:Z docker.io/library/nginx:latest