在 OSX 上拒绝从本地主机访问端口

在 OSX 上拒绝从本地主机访问端口

我想测试 memcached 驱动程序的后备策略(以防端口受防火墙保护)。如何拒绝访问 127.0.0.1 上的特定端口?

答案1

以 Mac OS X 10.6 (Snow Leopard) 为例

拒绝与本地主机、端口 SSH 的连接(= 22,读取自/etc/services):

sudo ipfw add deny tcp from any to localhost ssh

答案2

您可以使用pfctl

OS X 10.7 “Lion”及更高版本使用OpenBSD PF(数据包过滤器)。名为 的伪设备/dev/pf允许用户空间工具配置数据包过滤器。该命令pfctl提供了大部分功能。

要过滤环回接口上的端口 1234,您可以使用如下规则:

block drop quick on lo0 proto tcp from any to any port = 1234

此规则阻止lo0端口 1234 上的所有入站/出站流量(quick在这种情况下意味着如果此规则匹配,则不应应用进一步的规则)。

在 PF 中加载规则的命令是:

(sudo pfctl -sr 2>/dev/null; echo "block drop quick on lo0 proto tcp from any to any port = 1234") | sudo pfctl -nf -

命令pfctl -sr 2>/dev/null列出所有当前规则(并将非常烦人的错误消息发送No ALTQ support in kernel ALTQ related functions disabled/dev/null)。echo将上述规则添加到输出中,该输出通过管道传输到pfctl。选项-n意味着不要申请,只需检查

如果没有错误消息(除了上述No ALTQ support消息和警告pfctl: Use of -f option, could result in flushing of rules present in the main ruleset added by the system at startup),您可以应用该规则:

(sudo pfctl -sr 2>/dev/null; echo "block drop quick on lo0 proto tcp from any to any port = 1234") | sudo pfctl -f - 2>/dev/null

此命令与上一个命令不同之处在于我删除了-n。请注意,您可能需要添加选项-e以启用数据包过滤器(感谢您的评论凯西):(sudo pfctl -sr 2>/dev/null; echo "block drop quick on lo0 proto tcp from any to any port = 1234") | sudo pfctl -e -f - 2>/dev/null

您现在可以列出规则来检查它是否已正确添加:

sudo pfctl -sr 2>/dev/null
(...)
block drop quick on lo0 proto tcp from any to any port = 1234

完成后你可以删除规则

  1. 加载原始规则集:

    sudo pfctl -f /etc/pf.conf 
    
  2. 或者以与添加规则类似的方式删除该规则:

    (sudo pfctl -sr 2>/dev/null | fgrep -v "block drop quick on lo0 proto tcp from any to any port = 1234") | sudo pfctl -f -
    

(我已经在 OS X 10.8.2“Mountain Lion”上测试了整个过程并且运行完美。)

您可以在这个出色的介绍中找到更多信息:http://nomoa.com/bsd/gateway/pf/valid/pfctl.html

ipfw仍然包含在 OS X 10.7 和 10.8 中,但已被弃用:

IPFW(8)                   BSD System Manager's Manual                  IPFW(8)

NAME
     ipfw -- IP firewall and traffic shaper control program (DEPRECATED)

SYNOPSIS
(...)

DESCRIPTION
     Note that use of this utility is DEPRECATED. Please use pfctl(8) instead.

相关内容