This commit is contained in:
fofolee
2019-04-08 23:22:26 +08:00
commit 7ca94f1141
5960 changed files with 530244 additions and 0 deletions

41
docs/linux/pfctl.html Normal file
View File

@@ -0,0 +1,41 @@
<h1 id="pfctl">pfctl</h1>
<p>PF防火墙的配置命令</p>
<h2 id="补充说明">补充说明</h2>
<p><strong>pfctl命令</strong> 是PF防火墙的配置命令PF防火墙( 全称Packet Filter )是UNIX LIKE系统上进行TCP/ip流量过滤和网络地址转换的软件系统。PF同样也能提供TCP/IP流量的整形和控制并且提供带宽控制和数据包优先集控制。PF最早是由Daniel Hartmeier开发的现在的开发和维护由Daniel和openBSD小组的其他成员负责。</p>
<p>PF防火墙的功能很多本站只列举一些基本配置。</p>
<h3 id="激活">激活</h3>
<p>要激活pf并且使它在启动时调用配置文件编辑<code>/etc/rc.conf</code>文件修改配置pf的一行</p>
<pre><code>pf=yes</code></pre>
<p>重启操作系统让配置生效。</p>
<p>也可以通过pfctl程序启动和停止pf</p>
<pre><code># pfctl -e
# pfctl -d</code></pre>
<p>注意这仅仅是启动和关闭PF实际它不会载入规则集规则集要么在系统启动时载入要在PF启动后通过命令单独载入。</p>
<h3 id="配置">配置</h3>
<p>系统引导到在rc脚本文件运行PF时PF从<code>/etc/pf.conf</code>文件载入配置规则。注意当<code>/etc/pf.conf</code>文件是默认配置文件在系统调用rc脚本文件时它仅仅是作为文本文件由pfctl装入并解释和插入pf的。对于一些应用来说其他的规则集可以在系统引导后由其他文件载入。对于一些设计的非常好的unix程序PF提供了足够的灵活性。</p>
<p><strong>pf.conf文件有7个部分</strong></p>
<ol type="1">
<li>用户定义的变量包括IP地址接口名称等等。</li>
<li>一种用来保存IP地址列表的结构。</li>
<li>选项控制PF如何工作的变量。</li>
<li>整形:重新处理数据包,进行正常化和碎片整理。</li>
<li>排队:提供带宽控制和数据包优先级控制。</li>
<li>转换:控制网络地址转换和数据包重定向。</li>
<li>过滤规则:在数据包通过接口时允许进行选择性的过滤和阻止。</li>
</ol>
<p>除去宏和表,其他的段在配置文件中也应该按照这个顺序出现,尽管对于一些特定的应用并不是所有的段都是必须的。</p>
<p>空行会被忽略,以#开头的行被认为是注释。</p>
<h3 id="控制">控制</h3>
<p>引导之后PF可以通过pfctl程序进行操作以下是一些例子</p>
<pre><code># 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 显示任何可显示的</code></pre>
<p>完整的命令列表请参阅pfctl的man手册页。</p>
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->