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

相关推荐

  • fping

    文章目录fping补充说明语法选项实例 fping fping检测主机是否存在 补充说明 fping命令 fping类似于ping,但比ping强大。与ping要等待某一主机连接超…

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

    文章目录pr补充说明语法选项参数 pr 将文本文件转换成适合打印的格式 补充说明 pr命令 用来将文本文件转换成适合打印的格式,它可以把较大的文件分割成多个页面进行打印,并为每个页…

    入门教程 2024年 3月 1日
  • restorecon

    文章目录restorecon补充说明语法选项实例 restorecon 恢复文件的安全上下文 补充说明 restorecon命令 用来恢复SELinux文件属性即恢复文件的安全上下…

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

    文章目录nisdomainname补充说明语法选项 nisdomainname 显示主机NIS的域名 补充说明 nisdomainname命令 用于显示主机NIS的域名。 语法 n…

    入门教程 2024年 1月 10日
  • grpunconv

    文章目录grpunconv补充说明语法实例 grpunconv 用来关闭群组的投影密码 补充说明 grpunconv命令 用来关闭群组的投影密码。它会把密码从gshadow文件内,…

    入门教程 2023年 12月 14日
  • Helm | Helm 删除仓库

    文章目录helm repo remove可选项从父命令继承的命令请参阅 helm repo remove 删除一个或多个仓库 helm repo remove [REPO1 [RE…

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

    文章目录more补充说明语法选项参数实例 more 显示文件内容,每次显示一屏 补充说明 more命令 是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持…

    入门教程 2024年 1月 3日
  • Git 服务器搭建

    上一章节中我们远程仓库使用了 Github,Github 公开的项目是免费的,2019 年开始 Github 私有存储库也可以无限制使用。 当然我们也可以自己搭建一台 Git 服务…

    2024年 4月 30日
  • ag

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

    入门教程 2023年 12月 6日
  • php

    文章目录php补充说明语法选项参数 php PHP语言的命令行接口 补充说明 php命令 是流行的Web开发语言PHP的命令行接口,可以使用PHP语言开发基于命令行的系统管理脚本程…

    入门教程 2024年 3月 1日

发表回复

登录后才能评论
Translate »