iptables 已开放 80 端口,但连接超时

iptables 已开放 80 端口,但连接超时

我的服务器上有 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;

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

--2016-01-20 14:28:33--  <ip>
Connecting to <ip>|:80... failed: Connection     timed out.
Retrying.

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

编辑:的输出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 

答案1

您的INPUT规则允许以下流量来源端口 80 - 但进入 Web 服务器的流量用于目的地端口 80。本质上,你只允许INPUT流量其他网络服务器。将规则更改--sport为,一切都会变得更好。--dport

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

相关内容