我已经使用以下脚本设置了 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 请求必须是双向的