当前位置: 首页 > news >正文

管理防火墙策略-firewalld、rich rule、iptables

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

目录

文章目录

管理防火墙策略-firewalld

1. 切换默认保护区域

2. 作用范围控制

3. 重载防火墙

4. 获取防火墙相关信息

5. 查看防火墙规则相关操作

6. 增加、删除防火墙规则

1)添加规则时

2)删除规则时

3)应用示例:默认public区域,放行Web服务(http、https)、TCP 82端口

7. 兼容旧版iptables的规则操作

1)添加入站过滤规则(丢弃来自123.45.67.0/24网段访问TCP 22端口的数据包)

2)添加SNAT源地址转换规则(内部用户访问80端口时,将源地址伪装成外网接口IP)

3)添加DNAT目标地址转换规则(外部用户访问外网IP的80端口时,转交给内部服务器192.168.10.100)

4)列出所有--direct永久规则

5)列出nat表POSTROUTING链中的所有规则

6)删除filter表INPUT链中的所有规则

7)删除nat表POSTROUTING链中的0号规则

使用防火墙富规则

1. 富规则常用操作

2. 富规则的一般结构(--add-rich-rule='' 引号中的内容)

3. 富规则编写示例

管理防火墙策略-firewalld

firewalld以标准系统服务的方式展现,作为Linux内核级别的包过滤防火墙nftables的用户态接口,管理员可以通过firewall-cmd、firewall-config等工具来调整防火墙规则。

系统服务:firewalld

管理工具:firewall-cmd 命令行工具、firewall-config 图形工具

防火墙配置:

/etc/firewalld/firewalld.conf

/etc/firewalld/zones/public.xml  //public公共区的规则设置

/etc/firewalld/services/

预设保护区域(常用的几个):

public,公共区 —— 防火墙的默认区域,缺省允许对本机的ping、ssh、dhcpv6-client访问

trusted,信任区 —— 允许对本机的任何访问

block,阻塞区 —— 阻止访问本机的任何数据包

drop,丢弃区 ——  丢弃访问本机的任何数据包

规则作用范围:

runtime,运行时 —— 内存中的策略,修改后立即生效,重启防火墙后会消失

permanent,永久 —— 磁盘中的策略,重载防火墙后才生效

####  简单防火墙规则管理

1. 切换默认保护区域

# firewall-cmd  --get-default-zone  //查看当前默认区域

# firewall-cmd  --set-default-zone=区域名  //设置默认区域

2. 作用范围控制

# firewall-cmd  --add-service=http  .. ..   //添加"运行时"规则

# firewall-cmd  --permanent  --add-service=http  .. ..   //添加"永久"规则

# firewall-cmd  --runtime-to-permanent  //将"运行时"规则保存为"永久"规则

3. 重载防火墙

# firewall-cmd  --reload  //重载防火墙规则(不中断已建立的连接)

# firewall-cmd  --complete-reload  //完全重载防火墙规则(中断已建立的连接)

# systemctl  restart  firewalld  //重启防火墙服务

4. 获取防火墙相关信息

# firewall-cmd  --get-zones  //获取预设区域类型

# firewall-cmd  --get-services  //获取预设服务类型

# firewall-cmd  --get-icmptypes  //获取支持的ICMP消息类型

# firewall-cmd  --get-ipset-types //获取IP集合类型

# firewall-cmd  --get-default-zone  //获取当前使用的默认区域

5. 查看防火墙规则相关操作

# firewall-cmd  --list-all  //列出活动区域(当前使用的默认区域)中的规则

# firewall-cmd  --list-all-zones  //列出所有区域中的规则

# firewall-cmd  --list-services   //列出当前活动区域中保护的服务

# firewall-cmd  --list-services --zone=区域名  //列出xx区域中保护的服务

# firewall-cmd  --list-forward-ports  //列出活动区域中的端口转发规则

# firewall-cmd  --list-forward-ports  --zone=区域名 //列出xx区域中的端口转发规则

6. 增加、删除防火墙规则

1)添加规则时

# firewall-cmd  --zone=区域名  --add....//指定在xx区域(缺省为活动区域)中添加规则

# firewall-cmd  --add-service=服务名  .. .. //指定适用此条规则的服务类型(只能是firewalld预设的,比如"http"匹配TCP 80端口)

# firewall-cmd  --add-source=IP地址 .. .. //指定适用此条规则的源IP地址

# firewall-cmd  --add-source=网络地址/掩码位数 .. .. //指定适用此条规则的源网段地址

# firewall-cmd  --add-port=端口号/tcp  .. .. //指定适用此条规则的TCP端口号

# firewall-cmd  --add-port=端口n-端口m/tcp  .. .. //指定适用此条规则的TCP端口范围

# firewall-cmd  --add-forward-port=port=被转发端口号:proto=tcp:toport=目标端口号  //添加端口转发策略

# firewall-cmd  --add-masquerade  //启用地址伪装

2)删除规则时

# firewall-cmd  --zone=区域名  --remove....//指定在xx区域(缺省为活动区域)中删除规则

# firewall-cmd  --remove-service=服务名  .. .. //指定适用此条规则的服务类型(只能是firewalld预设的,比如"http"匹配TCP 80端口)

# firewall-cmd  --remove-source=IP地址 .. .. //指定适用此条规则的源IP地址

# firewall-cmd  --remove-source=网络地址/掩码位数 .. .. //指定适用此条规则的源网段地址

# firewall-cmd  --remove-port=端口号/tcp  .. .. //指定适用此条规则的TCP端口号

# firewall-cmd  --remove-port=端口n-端口m/tcp  .. .. //指定适用此条规则的TCP端口范围

# firewall-cmd  --remove-port=端口n-端口m/tcp  .. .. //指定适用此条规则的TCP端口范围

# firewall-cmd --remove-forward-port=port=被转发端口号:proto=tcp:toport=目标端口号  //删除端口转发策略

# firewall-cmd  --remove-masquerade  //禁用地址伪装

3)应用示例:默认public区域,放行Web服务(http、https)、TCP 82端口

[root@server1 ~]# firewall-cmd --set-default-zone=public

[root@server1 ~]# firewall-cmd  --permanent  --add-service=http

[root@server1 ~]# firewall-cmd  --permanent  --add-service=https

[root@server1 ~]# firewall-cmd  --permanent  --add-port=82/tcp

[root@server1 ~]# firewall-cmd  --reload

7. 兼容旧版iptables的规则操作

规则表:filter、mangle、nat,分别用于数据包过滤、标记、地址转换

规则链:INPUT、PREROUTING、FORWARD、POSTROUTING、OUTPUT

条件参数:-p  tcp|udp、-s  源地址、-d  目标地址、--sport  源端口、--dport  目标端口、-j  处理动作

处理动作:ACCEPT、DROP、REJECT、SNAT、DNAT、MASQUERADE

1)添加入站过滤规则(丢弃来自123.45.67.0/24网段访问TCP 22端口的数据包)

[root@node1 ~]# firewall-cmd  --permanent  --direct --add-rule ipv4 filter INPUT 0 -s 123.45.67.0/24 -p tcp --dport 22 -j DROP

success

2)添加SNAT源地址转换规则(内部用户访问80端口时,将源地址伪装成外网接口IP)

[root@node1 ~]# firewall-cmd  --permanent  --direct --add-rule ipv4 nat POSTROUTING 0 -s 192.168.10.0/24 -p tcp --dport 80 -j SNAT --to-source 211.10.10.112

或者

[root@node1 ~]# firewall-cmd  --permanent  --direct --add-rule ipv4 nat POSTROUTING 0 -s 192.168.10.0/24 -p tcp --dport 80 -j MASQUERADE

3)添加DNAT目标地址转换规则(外部用户访问外网IP的80端口时,转交给内部服务器192.168.10.100)

[root@node1 ~]# firewall-cmd  --permanent  --direct --add-rule ipv4 nat PREROUTING 1 -d 211.10.10.112 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.100

4)列出所有--direct永久规则

[root@node1 ~]# firewall-cmd  --direct  --get-all-rules

5)列出nat表POSTROUTING链中的所有规则

[root@node1 ~]# firewall-cmd  --direct  --get-rules ipv4 nat POSTROUTING

6)删除filter表INPUT链中的所有规则

[root@node1 ~]# firewall-cmd  --direct  --remove-rules ipv4 filter INPUT

7)删除nat表POSTROUTING链中的0号规则

[root@node1 ~]# firewall-cmd  --direct  --permanent  --remove-rule ipv4 nat POSTROUTING 0 -s 192.168.10.0/24 -p tcp --dport 80 -j MASQUERADE

使用防火墙富规则

使用富规则(rich-rule),可以在防火墙上实现更灵活、更复杂、更强大的过滤控制。

1. 富规则常用操作

# firewall-cmd  --list-rich-rules  //查看富规则

# firewall-cmd  --remove-rich-rule='富规则'  //删除富规则

# firewall-cmd  --add-rich-rule='富规则'  //添加富规则

# man  firewalld.richlanguage  //查看富规则使用手册

示例1:允许从172.25.0.200访问本机的Web服务

[root@server1 ~]# firewall-cmd  --add-rich-rule='rule family="ipv4" source address="172.25.0.200"  service name="http"  accept'

示例2:禁止网段10.0.0.0/24访问TCP 3389端口

[root@server1 ~]# firewall-cmd  --add-rich-rule='rule family="ipv4" source address="10.0.0.0/24"  port port="3389"  protocol=tcp  reject'

2. 富规则的一般结构(--add-rich-rule='' 引号中的内容)

    rule

         [source]

         [destination]

         service|port|protocol|icmp-block|icmp-type|masquerade|forward-port|source-port

         [log]

         [audit]

         [accept|reject|drop|mark]

#### rule规则的主要构成 ####

rule设置:rule [family="ipv4|ipv6"] [priority="priority"]

source源地址设置:source [not] address="address[/mask]"|mac="mac-address"|ipset="ipset"

destination目的地址设置:destination [not] address="address[/mask]"

service服务设置:service name="service name"

port端口设置:port port="port value" protocol="tcp|udp"

protocol协议设置:protocol value="protocol value"

Forward-Port端口转发:forward-port port="port value" protocol="tcp|udp" to-port="port value" to-addr="address"

Source-Port源端口设置:source-port port="port value" protocol="tcp|udp"

Action处理动作:

    accept|reject|drop|mark

    accept [limit value="rate/duration"]

    reject [type="reject type"] [limit value="rate/duration"]

    drop [limit value="rate/duration"]

3. 富规则编写示例

1)允许来自192.168.2.2的所有连接(列入源白名单)

   rule family="ipv4" source address="192.168.2.2" accept

2)拒绝来自192.168.2.3的所有连接(列入源黑名单)

   rule family="ipv4" source address="192.168.2.3" reject type="icmp-admin-prohibited"

3)丢弃来自192.168.2.4的所有连接(列入源黑名单)

   rule family="ipv4" source address="192.168.2.4" drop

4)禁止ping本机

   rule family="ipv4"  protocol  value="icmp"  drop

http://www.dtcms.com/a/495967.html

相关文章:

  • 成都外贸建站给别人网站做跳转
  • 征婚网站上拉业务做恒指期货在线制作网站的工具
  • 南县做网站多少钱91福利社区wordpress
  • 云手机和模拟器哪个比较好用
  • 面试_场景_分布式调度系统设计
  • 【C语言】在矩阵中高效查找数字的算法解析
  • 网站在哪里备案信息汉狮做网站公司郑州
  • 求个网站这么难吗2021年自建站
  • 如何在代码中使用唯品会API?
  • 基于skynet框架的一种游戏服登录模块设计
  • MIL、SIL、PIL、HIL、
  • 长沙建站公司网站饮食中心网站建设方案
  • 买外贸服装去哪个网站欧亚专线荷兰快递单号查询
  • 构建AI智能体:六十六、智能的边界:通过偏差-方差理论理解大模型的能力与局限
  • Python编程实战 · 基础入门篇 | 第一个Python程序:Hello World
  • 网站搭建官网深圳苏州企业网站建设服务公司
  • RAG长上下文加速解码策略-meta基于RAG的解决思路浅尝(REFRAG)
  • oracle数据库seg$的type#含义
  • 模式识别与机器学习课程笔记(3):统计决策中的经典学习方法
  • 网站建设提升医院信息化水平大连网站设计九即问仟亿科技
  • QML学习笔记(四十二)QML的MessageDialog
  • 国内专业网站建设公司东莞市建设规划局网站
  • [Linux系统编程——Lesson15.文件缓冲区]
  • 江苏天德建设工程有限公司网站黄冈公司网站建设平台
  • springboot中server.main.web-application-type=reactive导致的拦截器不生效
  • 1688黄页网免费网站做外贸服饰哪个个网站好
  • 杭州做企业网站公司网络营销策略应遵循的原则
  • 对“机器人VCU”进行一个详细、系统的讲解。
  • 陕西省城乡住房和建设厅网站网站建设shzanen
  • 49.字母异位词分组