我需要用 pf 阻止一个传入端口。我是 pf 新手,我不知道我在这里做错了什么。
这是我的整个规则文件,用于阻止传入端口 22:
set block-policy drop
pass in all keep state
pass out all keep state
block in proto tcp to port 22
在我启动 pf 之后sudo /sbin/pfctl -e -f /path/to/my/rule/file
,我的所有网络流量都被阻止。我尝试加载一个网页,但在我sudo /sbin/pfctl -d
禁用 pf之前它不会加载。
block in proto tcp to port 22
如果我从规则列表中删除第四行 ( ),则不会阻止任何内容。那么我在第四行做错了什么导致它阻止所有内容而不仅仅是传入 TCP 端口 22?所有示例都执行了类似的操作。
如果重要的话,我的操作系统是 OS X 10.8.5。
答案1
block all
pass in on fxp0 proto tcp from any to any port 22 flags S/SA
pass out on fxp0 proto tcp from any to any port 22 flags S/SA
请考虑您必须fxp0
根据您的操作系统更改为以太网。
与上面相反:
pass in on fxp0 proto tcp from any to any port < 22 flags S/SA
pass out on fxp0 proto tcp from any to any port < 22 flags S/SA
pass in on fxp0 proto tcp from any to any port > 22 flags S/SA
pass out on fxp0 proto tcp from any to any port > 22 flags S/SA
block in on fxp0 proto tcp from any to any port 22
block out on fxp0 proto tcp from any to any port 22