iptables 打开 80 端口,但连接超时

Moh*_*oun -1 firewall nginx iptables

我的服务器上有 nginx,我运行下面的脚本向 iptables 添加规则:

#!/bin/bash
ip=/sbin/iptables
services='22 25 53 80 443 5432 8000 8080'
$ip -F;
$ip -t nat -F;

echo -e "Opening port 22 for ssh";
$ip -A INPUT -p tcp --dport 22 -j ACCEPT;
$ip -A OUTPUT -p tcp --sport 22 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT;

$ip -P INPUT DROP;
$ip -P OUTPUT ACCEPT;
$ip -P FORWARD DROP;

echo -e "Accept lo";
$ip -A INPUT -i lo -j ACCEPT;
$ip -A OUTPUT -o lo -j ACCEPT;

$ip -A INPUT -i docker0 -j ACCEPT;
$ip -A OUTPUT -o docker0 -j ACCEPT;

# ethernet
#echo -e "Accept eth0";
#$ip -A INPUT -i eth0 -j ACCEPT;
#$ip -A OUTPUT -o eth0 -j ACCEPT;

for service in $services; do
echo -e "Open port $service";
$ip -A INPUT -p tcp -m tcp --sport $service -j ACCEPT;
done

$ip -A INPUT -p udp -m udp --sport 53 -j ACCEPT;
$ip -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT;
$ip -A INPUT -p udp -m udp --dport 51914 -j ACCEPT;
Run Code Online (Sandbox Code Playgroud)

我打开了必要的端口,但是当我尝试使用 wget 访问我的网站时,出现以下错误:

--2016-01-20 14:28:33--  <ip>
Connecting to <ip>|:80... failed: Connection     timed out.
Retrying.
Run Code Online (Sandbox Code Playgroud)

好吧,我的防火墙脚本有什么问题?

编辑:输出iptables -L INPUT -vn

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source                   destination         
  218 18351 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 
   29  4456 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  docker0 *       0.0.0.0/0            0.0.0.0/0                    
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp spt:22 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp spt:25 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp spt:53 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp spt:80 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp spt:443 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp spt:5432 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp spt:8000 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp spt:8080 
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp spt:53 
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:51914 
Run Code Online (Sandbox Code Playgroud)

Mad*_*ter 11

您的INPUT规则允许端口为 80 的流量 - 但进入 Web 服务器的流量用于目标端口 80。本质上,您只允许来自其他 Web 服务器的INPUT流量。更改为您的规则,一切都应该会更好。--sport--dport

顺便说一下,这一点几乎适用于所有其他规则。