我正在尝试设置 apache 以仅允许来自特定 IP 地址的用户。这是/var/www/html
目录的指令
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Options -Indexes
<RequireAll>
Require ip 2b00:ff2:600:8200::/64
</RequireAll>
</Directory>
不幸的是,它也会阻止来自我的 IP 的流量。虽然我设置了一个 index.html 文件,但我看到的是默认的 apache 网站。你知道允许仅来自 1 ipv6 的流量的正确指令是什么吗?我使用的是 apache 2.4.6
答案1
虽然它没有回答您关于 Apache 的具体问题,但这通常可以通过 ip6tables 数据包过滤器来完成,以过滤到 Apache 正在运行的目标 IP 和/或端口的流量:
如果你的默认策略是放弃 iptables,你可以使用以下命令:
ip6tables -I INPUT -p tcp -m tcp --dport <port> -s 2b00:ff2:600:8200::/64 -j ACCEPT
否则,您可以将任何不是来自该 IP 的数据丢弃到该端口。
ip6tables -I INPUT -p tcp -m tcp --dport <port> -s ! 2b00:ff2:600:8200::/64 -j DROP
否则,如果您想阻止所有其他 IP,并且不在 ip6tables 规则中使用默认的丢弃策略,那么由于 ip6tables 是匹配第一个数据包过滤器,您只需在第一条规则后添加 DROP 规则:
ip6tables -I INPUT -p tcp -m tcp --dport <port> -j DROP
答案2
您是否在 EC2 实例中运行此程序?如果是这样,只需设置一个安全组以仅允许来自特定 IP 的端口 80 上的流量。