Iptables HTTP 在计算机上不起作用

Iptables HTTP 在计算机上不起作用

默认情况下我有一个隐式拒绝,所以我使用这两个命令尝试在 IP 地址 10.1.10.201 上启用 http,但我无法访问任何网站。

sudo iptables -A INPUT -p tcp -s 10.1.10.201 --dport http -j ACCEPT
sudo iptables -A FORWARD -p tcp -s 10.1.10.201 --dport http -j ACCEPT

Chain INPUT (policy DROP)      
target  prot  opt  source       destination
Accept  all   --   10.1.10.201  0.0.0.0/0    tcp  dpt:80

Chain FORWARD (policy DROP)      
target  prot  opt  source       destination
Accept  all   --   10.1.10.201  0.0.0.0/0    tcp  dpt:80

Chain OUTPUT (policy ACCEPT)   
target   prot opt source  destination

当我访问网站时,它说找不到服务器。我正在使用 Windows XP VM 尝试访问作为路由器/防火墙的 Ubuntu 服务器

答案1

那么为什么不使用 ufw 呢?

在 ubuntu 上实现防火墙非常简单,要在所有网卡上打开 80 端口,你只需要 - sudo ufw allow 80 - sudo ufw enable

要确保您的 Web 服务器正在运行,请使用网络状态-nat 它将显示所有端口的所有服务

答案2

这个问题对我来说并不完全清楚。您尝试从哪个网络中的哪个 IP 号的哪台机器访问其他哪台机器?此外,在设置网站之前,您没有明确说明您的设置是否有效。

猜测:如果您的 iptables 按照您设置的方式完成,那么这确实解释了您描述的症状。您只允许来自该特定 IP 号码的输入,而不允许来自任何其他 IP 号码的输入。您可能实现的是允许从您之前从您的机器联系过的远程站点联系您的站点,这样它们就可以传递您请求的数据。您可以使用以下方法实现这一点

iptables -m comment --comment "Allow related packages from the InterNet" -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

要将对您网站的访问限制在内部网络,您可能还需要指定 Web 服务器监听的网络设备。“netstat”工具或“lsof -i”可用于指示从哪里可以联系哪些服务。

相关内容