Iptables 阻止传出的 HTTP 连接

Iptables 阻止传出的 HTTP 连接

我已经使用以下脚本设置了 IPTables...但是,我无法使传出的 HTTP 查询正常工作(我尝试过使用 lynx 和 curl)。

背景-服务器是远程托管的(我通过 SSH 连接)。

对你的帮助表示感谢...


这是我的 iptables 设置:

iptables -P INPUT ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # ssh
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # http
iptables -A INPUT -p tcp --dport 443 -j ACCEPT # https
iptables -A INPUT -p tcp --sport 80  -j ACCEPT
iptables -A INPUT -p tcp --sport 443  -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT  
iptables -P INPUT DROP   # <<<<<<<<<<<<===== THIS LINE IS THE ONE THAT ACTUALLY BLOCKS THE OUTGOING HTTP REQUESTS !!!!
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

以下是 的输出iptables -n -L

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp spt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp spt:443
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

答案1

尝试添加这个

iptables -A 输入 -p tcp --sport 80 -j 接受

另外,你可能想开始iptables -P INPUT DROP

另外,不要忘记设置 NAT 转换,以便为 DNS 请求打开端口 53(它同时使用 UDP 和 TCP)。

如果您接受所有连接,您能访问互联网吗?尝试使用 IP 地址访问。

不要忘记 HTTP 请求必须是双向的

相关内容