我已经安装了新的 Ubuntu 16.04 并启用ufw
:
ufw enable
我尝试了以下方法来同时取消过滤多个端口:
ufw allow 22/tcp 25/tcp 80/tcp 443/tcp 9000/tcp
ufw allow 22/tcp, 25/tcp, 80/tcp, 443/tcp, 9000/tcp
ufw allow {22/tcp,25/tcp,80/tcp,443/tcp,9000/tcp}
这三种方式都会带来同样的错误:
错误:参数数量错误
使用 UFW 取消过滤多个端口是否可行?
答案1
您可以允许多个 (TCP或者UDP)端口,如下所示:
ufw allow 22,25,80,443,9000/tcp
或者,您可以通过这种方式添加端口范围(来源和更多解释):
ufw allow 11200:11299/tcp
对于更复杂的配置,您可以创建可包含一个或多个自定义配置文件的自定义配置文件。例如(man ufw
;完整示例):
$ cat /etc/ufw/applications.d/my-custom-profiles
[MyCustomProfile]
title=Some title
description=Some description
ports=22,25,80,443/tcp|9005:9007/tcp|9000
这将通过 TCP 打开端口 22、25、80、443、9005-9007,并通过 TCP 和 UDP 打开端口 9000。请注意,端口范围 9005:9007 是单独提及的,这与手册页推荐的内容。但这就是它在 Debian Bullseye 中的工作方式。
您可以通过这种方式允许任何配置文件:
ufw allow MyCustomProfile
答案2
对于任何处理该消息的人来说
警告:“配置文件‘cassandra’中的端口无效”
或者只是尝试在 Ubuntu 中的 UFW 上设置 Cassandra,我发现上面的 pa4080 ports= 示例是唯一可以正常工作的东西。发现这一点后,我仔细地回过头来研究它,似乎对于多个端口,UFW 都需要最后一个端口上的 /tcp(或者我假设其他同样有效的端口)。
[cassandra]
title=cassandra ufw rules
description=cassandra needs these ports to run
ports=22,7000,7001,7199,9042,9142,9160/tcp
我发现这是 UFW 的完整且可接受的条目。
我花了相当多的时间阅读文档,并记录下我可能感兴趣的内容。
Public port
Port number. Description
22 SSH port
Cassandra inter-node ports
Port number. Description
7000 Cassandra inter-node cluster communication.
7001 Cassandra SSL inter-node cluster communication.
7199 Cassandra JMX monitoring port.
Cassandra client ports
Port number. Description
9042 Cassandra client port.
9160 Cassandra client port (Thrift).
9142 Default for native_transport_port_ssl, useful when both encrypted and unencrypted connections are required
手动执行此操作:
sudo ufw allow 22
sudo ufw allow 7001
sudo ufw allow 7199
sudo ufw allow 7000
sudo ufw allow 9042
sudo ufw allow 9160
sudo ufw allow 9142
端口 7000 和 9042 必须可供外部节点连接。作为一项安全措施,请将这些端口的连接限制为集群中任何其他节点的 IP 地址。
ufw allow proto tcp from [external_node_ip_address] to any port 7000,9042 comment "Cassandra TCP"
下一步是ufw allow from 192.168.0.0/16 to any app cassandra
测试它。
答案3
我通过实验发现了以下消息:“配置文件*****中的端口无效”
仅当您未指定协议时才会发生。例如:
ports=5900:5910——不正确!
ports=5900:5910/tcp - 正确!
这仅适用于指定端口范围。