HowToSetUpaFirewallwithPFonFreeBSDtoProtectaWebServer

我是从Linux迁移过来的FreeBSD新用户,Linux中使用的是netfilter防火墙框架(LCTT译注:netfilter是由RustyRussell提出的内核防火墙框架)。那么在FreeBSD上,我该如何设置PF防火墙,来保护只有一个公共IP地址和端口的web服务器呢?

PF是包过滤器(packetfilter)的简称。它是为OpenBSD开发的,但是已经被移植到了FreeBSD以及其它操作系统上。PF是一个包状态过滤引擎。在这篇教程中,我将向你展示如何在以及11.x中设置PF防火墙,从而来保护web服务器。

第一步:开启PF防火墙

你需要把下面这几行内容添加到文件/etc/文件中:

在这里:

pf_enable="YES"-开启PF服务

pf_rules="/usr/local/etc/"-从文件/usr/local/etc/中读取PF规则

pflog_enable="YES"-为PF服务打开日志支持

pflog_logfile="/var/log/pflog"-存储日志的文件,即日志存于文件/var/log/pflog中

第二步:在/usr/local/etc/文件中创建防火墙规则

输入下面这个命令打开文件(超级用户模式下):

保存并关闭文件。欢迎来参考我的规则集。如果要检查语法错误,可以运行:

第三步:开始运行PF防火墙

命令如下。请小心,如果是基于SSH的会话,你可能会和服务器断开连接。

开启PF防火墙:检查语法错误:查看PF状态:第四步:pfctl命令的简单介绍

你需要使用pfctl命令来查看PF规则集和参数配置,包括来自包过滤器(packetfilter)的状态信息。让我们来看一下所有常见命令:

显示PF规则信息

在每条规则的详细输出中添加规则编号:

如何在命令行中禁止PF服务如何在命令行中刷新PF规则/NAT/路由表如何在命令行中仅刷新队列如何在命令行中清除所有计数器

示例输出:

如果要查看实时日志,可以运行:

关于作者

via:

作者:VivekGite译者:ucasFL校对:wxy

本文由LCTT原创编译,Linux中国荣誉推出