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
顺便说一下,这一点几乎适用于所有其他规则。
归档时间: |
|
查看次数: |
2571 次 |
最近记录: |