firewalld防火墙(二)

一、firewalld 高级配置

firewall的支持两种类型的NAT:IP地址伪装和端口转发

1.IP地址伪装

含义:NAT设备将经过的包转发到指定接收方,同时将数据包的源地址改为自己接口的地址。当数据包返回时,将目的地址修改为原始主机地址并做路由。
作用:

  • 可以实现局域网多个主机地址共享单一的公网地址
  • IP地址伪装支持ipv4,不支持ipv6
2.端口转发

含义:将IP地址及端口的流量转发到相同计算机上的不同端口,或不同计算机的相同端口

3.firewalld直接规则
  • 它允许管理员手动编写的iptables ip6tables ebtableds规则插入到firewalld管理区域中
  • 适用于应用程序,而不是用户
  • 直接通过firewall-cmd命令中的–driect选项实现
  • 除非直接规则差入到firewalld管理区域中,否则首先解析直接规则
4.富语言
  • 提供了一种不需要了解iptables语法的通过高级语言配置复杂ipv4和ipv6防火墙规则机制
  • 富规则可用于基本的允许/拒绝规则,也可以用于配置记录(面向syslog和auditd)
  • 可以配置端口转发、伪装和速率限制
  • 富规则的常用选项(所有选项可以同常规的–permanent 和–zone=< zone>)
选项说明
- -add-rich-rule=‘RULE’向指定区域添加RULE,若没有指定区域,则为默认区域
- -remove-rich-rule=‘RULE’从指定区域中删除RULE,若没有指定区域,则为默认区域
- -query-rich-rule=’RULE‘查询RULE是否添加到指定区域,若没有指定区域,则为默认区域。规则存在,则返回0,否则返回1
- -list-rich-rules输出指定区域的所有富规则,若没有指定区域,则为默认区域
  • 富规则会出现在firewall-cmd --list-all 和firewall-cmd --list-all-zones 输出中,语法解释如下

    source :限制源地址
    destination:限制目的地址
    element:要素包括:service port protocol icmp-block(阻断的icmp类型) masquerade(IP地址伪装) forward-port(指定的TCP或UDP协议数据包转发到本机的其他端口)
    log:日志
    audit:审核,审核会自动从规则中收集
    accept|reject|drop:accept允许,reject拒绝drop为丢弃,命令格式为accept|reject[type=reject type]|drop

  • 富规则的基本语法RULE
    rule [family="< rule family>"] //如rule family=“ipv4”
    [source address="< address>" [invert=“True”]] // 如source address=“192.168.10.0/24”
    [destination address="< address>" [invert=“True”]]
    [< element>]
    [log [prefix="< prefix text>"]] [level="< log level>"] [limit value=“rate/duration”]
    [audit]
    [accept|reject|drop]
    如:firewall-cmd --zone=public --add-rich=‘rule family=“ipv4” source address=“192.168.10.0/24” service name=“tftp” log prefix=“tftp” level=“info” limit value=“1/m” accept’

5.实验配置firewalld地址伪装和端口转发

实验环境(操作中的ip与与图片不同)
在这里插入图片描述
实验要求

在这里插入图片描述

实验配置
网关服务器上的配置如下

  1. 添加三块网卡,配置IP
  2. vim /etc/sysctl.conf //开启路由转发
    在这里插入图片描述
    sysctl -p
  3. firewall-cmd --set-default-zone=external //设置默认区域外部
  4. firewall-cmd --change-interface=ens37 --zone=trusted
  5. firewall-cmd --change-interface=ens38 --zone=dmz
  6. firewall-cmd --get-active-zones //查看活动区域
  7. vi /etc/ssh/sshd_config
    Port 1234
  8. setenforce 0
  9. systemctl restart sshd
  10. firewall-cmd --zone=external --add-port=1234/tcp --permanent
  11. firewall-cmd --zone=dmz --remove-service=ssh --permanent // 添加端口后须将ssh预定以服务删除
  12. firewall-cmd --reload
  13. 测试在这里插入图片描述
  14. firewall-cmd –remove-masquerade –zone=external //移除外部区域的地址伪装
  15. firewall-cmd –zone=external –add-rich-rule=’rule family=ipv4 source address=192.168.1.0/24 masquerade’ //为192.168.1.0/24网段的添加伪装
    Dmz上测试无法访问外网
  16. Firewall-cmd –zone=external –add-forward-port=port=443:proto=tcp:toaddr=192.168.2.10
  17. Firewall-cmd –zone=external –add-forward-port=port=80:proto=tcp:toaddr=192.168.2.10
    添加新网卡
    Vim /etc/sysconfig/network-scripts/ifcfg-ens33
    在这里插入图片描述
  18. Systemctl restart NetworkManager
  19. firewall-cmd --zone=external --add-rich-rule=‘rule family=ipv4 destination address=192.168.168.133/24 forward-port port=443 protocol=tcp to-addr=192.168.114.128’ –permanent
    20.firewall-cmd --zone=external --add-rich-rule=‘rule family=ipv4 destination address=192.168.168.133/24 forward-port port=80 protocol=tcp to-addr=192.168.114.128’ --permanent

内网测试机配置如下

网站服务器配置如下

  1. yum -y install httpd mod_ssl
  2. systemctl start httpd
  3. systemctl enable httpd
  4. echo “< h1>www.bdqn.com< /h1>” > /var/www/html/index.html
  5. vi /etc/ssh/sshd_config (更改端口号后需关闭selinux
    Port 1234
  6. systemctl restart sshd
  7. firewall-cmd --set-default-zone=dmz //添加默认区域为dmz
  8. firewall-cmd --zone=dmz --add-service=https --permanent //添加https服务
  9. firewall-cmd --zone=dmz --add-port=1234/tcp --permanent //开启1234端口
  10. firewall-cmd --zone=dmz --remove-service=ssh --permanent // 添加端口后须将ssh预定以服务
  11. firewall-cmd --add-icmp-block=echo-request --zone=dmz --permanent //禁止ping命令
  12. firewall-cmd --reload //重载
  13. firewall-cmd --zone=dmz --add-port=80/tcp --permanent
  14. firewall-cmd --zone=dmz --add-port=443/tcp --permanent
  15. firewall-cmd --reload

Internet测试机配置如下

  1. yum -y install httpd mod_ssl
  2. systemctl start httpd
  3. systemctl enable httpd
  4. echo “< h1>www.accp.com< /h1>” > /var/www/html/index.html
  5. firewall-cmd
  6. 在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值