pfctl

pfctl

PF防火墙的配置命令

补充说明

pfctl命令 是PF防火墙的配置命令,PF防火墙( 全称:Packet Filter )是UNIX LIKE系统上进行TCP/ip流量过滤和网络地址转换的软件系统。PF同样也能提供TCP/IP流量的整形和控制,并且提供带宽控制和数据包优先集控制。PF最早是由Daniel Hartmeier开发的,现在的开发和维护由Daniel和openBSD小组的其他成员负责。

PF防火墙的功能很多,本站只列举一些基本配置。

激活

要激活pf并且使它在启动时调用配置文件,编辑/etc/rc.conf文件,修改配置pf的一行:

pf=yes

重启操作系统让配置生效。

也可以通过pfctl程序启动和停止pf:

pfctl -e
pfctl -d

注意这仅仅是启动和关闭PF,实际它不会载入规则集,规则集要么在系统启动时载入,要在PF启动后通过命令单独载入。

配置

系统引导到在rc脚本文件运行PF时PF从/etc/pf.conf文件载入配置规则。注意当/etc/pf.conf文件是默认配置文件,在系统调用rc脚本文件时,它仅仅是作为文本文件由pfctl装入并解释和插入pf的。对于一些应用来说,其他的规则集可以在系统引导后由其他文件载入。对于一些设计的非常好的unix程序,PF提供了足够的灵活性。

pf.conf文件有7个部分:

  1. 宏:用户定义的变量,包括IP地址,接口名称等等。
  2. 表:一种用来保存IP地址列表的结构。
  3. 选项:控制PF如何工作的变量。
  4. 整形:重新处理数据包,进行正常化和碎片整理。
  5. 排队:提供带宽控制和数据包优先级控制。
  6. 转换:控制网络地址转换和数据包重定向。
  7. 过滤规则:在数据包通过接口时允许进行选择性的过滤和阻止。

除去宏和表,其他的段在配置文件中也应该按照这个顺序出现,尽管对于一些特定的应用并不是所有的段都是必须的。

空行会被忽略,以#开头的行被认为是注释。

控制

引导之后,PF可以通过pfctl程序进行操作,以下是一些例子:

pfctl -f /etc/pf.conf  # 载入 pf.conf 文件
pfctl -nf /etc/pf.conf # 解析文件,但不载入
pfctl -Nf /etc/pf.conf # 只载入文件中的NAT规则
pfctl -Rf /etc/pf.conf # 只载入文件中的过滤规则
pfctl -sn # 显示当前的NAT规则
pfctl -sr # 显示当前的过滤规则
pfctl -ss # 显示当前的状态表
pfctl -si # 显示过滤状态和计数
pfctl -sa # 显示任何可显示的

完整的命令列表,请参阅pfctl的man手册页。

若文章对你有帮助,可以点赞或打赏支持我们。发布者:Aurora,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/pfctl/

(0)
AuroraAurora站点维系者
上一篇 2024年 3月 1日 下午4:29
下一篇 2024年 3月 1日 下午4:30

相关推荐

  • look

    文章目录look补充说明语法选项参数 look 显示文件中以指定字符串开头的任意行 补充说明 look命令 用于显示文件中以指定字符串开头的任意行。 语法 look(选项)(参数)…

    入门教程 2023年 12月 19日
  • dpkg-reconfigure

    文章目录dpkg-reconfigure补充说明语法选项参数实例 dpkg-reconfigure Debian Linux中重新配制一个已经安装的软件包 补充说明 dpkg-re…

    入门教程 2023年 12月 7日
  • Helm 升级

    升级版本 文章目录简介可选项从父命令继承的命令请参阅 简介 该命令将发布升级到新版的chart。 升级参数必须是发布和chart。chart参数可以是:chart引用(&#8216…

    入门教程 2023年 12月 14日
  • crontab

    文章目录crontab补充说明语法选项参数知识扩展实例 crontab 提交和管理用户的需要周期性执行的任务 补充说明 crontab命令 被用来提交和管理用户的需要周期性执行的任…

    入门教程 2023年 12月 7日
  • ag

    文章目录ag补充说明语法选项实例 ag ack 的升级版,C语言编写,更快更人性化 补充说明 摘自 https://github.com/ggreer/the_silver_sea…

    入门教程 2023年 12月 6日
  • 前言

    C++ 是一种高级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。…

    2024年 3月 18日
  • rm

    文章目录rm补充说明语法选项参数实例 rm 用于删除给定的文件和目录 补充说明 rm 命令 可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均…

    入门教程 2024年 3月 4日
  • diff

    文章目录diff补充说明语法选项参数实例以正常模式比较差异以上下文 (context) 模式比较差异以联合 (unified) 模式比较差异多文件比较差异 diff 比较给定的两个…

    入门教程 2023年 12月 7日
  • ls

    文章目录ls补充说明语法选项参数实例扩展知识不同颜色代表的文件类型 ls 显示目录内容列表 补充说明 ls命令 就是list的缩写,用来显示目标列表,在Linux中是使用率较高的命…

    入门教程 2023年 12月 19日
  • wc

    文章目录wc补充说明语法选项参数例子 wc 统计文件的字节数、字数、行数 补充说明 wc命令 统计指定文件中的字节数、字数、行数,并将统计结果显示输出。利用wc指令我们可以计算文件…

    入门教程 2023年 12月 27日

发表回复

登录后才能评论
Translate »