PF 防火墙规则帮助

PF 防火墙规则帮助

我花了很长时间来为 FTP 创建 pf 规则集。

我想要做的是:

仅允许 $WHITELIST 连接到 FTP 端口 21

打开端口 49152 - 65535 作为被动端口范围

谁能帮我这个?

我努力了 :

FTPWHITELIST="本地主机,XX.XX.XX.XX"

通过 $EXT_IF proto tcp 从 { $FTPWHITELIST } 快速传递到 XX.XX.XX.XX 端口 21 保持状态

通过 $EXT_IF proto tcp 从 { $FTPWHITELIST } 快速传递到 XX.XX.XX.XX 端口 49512 >< 65535 保持状态

答案1

您是否尝试过常见问题解答中提到的方法:

http://www.openbsd.org/faq/pf/ftp.html

FTP 是一种相当复杂的算法,经过几十年的演变(它创建于 1971 年),而且防火墙(甚至 TCP/IP)尚未发明,因此让它工作起来可能很麻烦。

尝试确保在你的客户端上使用“被动”模式。

如果可能,请尝试使用 HTTP/S 或 SFTP(SSH FTP)。它们都是更简洁、更现代的设计。

答案2

要仅允许 $FTPWHITELIST,您需要在以下之前阻止所有其他流量:

# WARNING! DO NOT use this snippet on production until you completely understand it
block in on $EXT_IF
pass in quick on $EXT_IF proto tcp from { $FTPWHITELIST } to XXX port 21 keep state
...

相关内容