Dav*_*som 0 debian firewall iptables
我相信我已正确设置防火墙,如下所示:
#!/bin/sh
IPT="/sbin/iptables"
# Flush old rules, old custom tables
$IPT --flush
$IPT --delete-chain
# Set default policies for all three default chains
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT
# Enable free use of loopback interfaces
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
# All TCP sessions should begin with SYN
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -s 0.0.0.0/0 -j DROP
# Accept inbound TCP packets
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
$IPT -A INPUT -p tcp --dport 80 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
$IPT -A INPUT -p tcp --dport 81 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
$IPT -A INPUT -p tcp --dport 8181 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
# Accept outbound packets
$IPT -I OUTPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试阻止IP地址访问我的网络服务器时,它不起作用,用户仍然能够访问服务器.
iptables -A INPUT -s xx.xxx.xxx.xxx -j DROP
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
在所有INPUT规则的末尾附加过滤规则不起作用,因为之前将接受端口80上的所有HTTP流量.
此规则将接受第一个数据包:
INPUT -p tcp --dport 80 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
以及此之后的所有后续数据包:
INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
为了确保过滤来自xx.xx.xx.xx的所有数据包,您应该将规则放在INPUT链的第一个位置.
要做到这一点,所以你放在iptables -A INPUT -s xx.xxx.xxx.xxx -j DROP别人之前,你可以使用这个命令: iptables -I INPUT 1 -s xx.xxx.xxx.xxx -j DROP,插入第一个位置.
| 归档时间: |
|
| 查看次数: |
8588 次 |
| 最近记录: |