情况是这样的。我有多个 Apache vhost 在同一个网络接口上的不同 IP 上监听端口 443。
我只想允许某个 IP 访问其中一个虚拟主机。
换句话说,我希望端口 443 上的 IP 地址 11.11.11.11 只能从 22.22.22.22 访问。
实现此目的的正确规则是什么?我仍然需要端口 443 对其他不需要限制访问的虚拟主机开放。
答案1
您不应指定源端口 443,因为请求将具有不同的源端口。如果您只想匹配一个特定 IP,则不应指定 /24(22.22.22.22/24 应匹配 256 个 IP,即 22.22.22.0 至 22.22.22.255)
你需要:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --src 22.22.22.22 --dst 11.11.11.11 --dport 443 --jump ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dst 11.11.11.11 --dport 443 --jump REJECT
REJECT 将会发回一个数据包,这样 22.22.22.22 以外的客户端就会被告知没有任何内容在监听(浏览器中立即出现错误,而不是超时)。