我是 linux 的新手。我刚刚在iptables这是我在一个安全网站上找到的(我不太了解每个规则是如何工作的)。命令如下:
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -A OUTPUT -m state --state INVALID -j DROP
$IPTABLES -A OUTPUT -p tcp --tcp-flags ALL ACK,RST,SYN,FIN -j DROP
$IPTABLES -A OUTPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPTABLES -A OUTPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$IPTABLES -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A OUTPUT -f -j DROP
$IPTABLES -A OUTPUT -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -A OUTPUT -p tcp --tcp-flags ALL NONE -j DROP
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ACK,RST,SYN,FIN -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A INPUT -f -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
实施这些后,我无法浏览任何内容。如何纠正可能的错误?
答案1
您必须了解,第三行默认禁用了来自、到和通过您的计算机的所有流量(-P DROP
)。
如果您要使用这些默认规则的 IP 表,则后续规则将允许流量。这是使用ACCEPT
某处的规则完成的。
例如,您可以允许传入端口 80 数据包:
-A INPUT -p tcp --dport 80 -j ACCEPT
另一方面,您可以采用另一种方式,也就是说,默认允许所有流量-P ACCEPT
,然后写入您需要禁止的特定内容。
我能为你做的不多,但建议你阅读 iptables 手册以了解其工作原理。你不会通过 iptables 获得现成的安全性。
答案2
当你刚开始时,我建议你放弃现在拥有的一切,从一些能给你带来最大胜利的基础开始。
例如:
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# Drop a persistent nuisance
-A INPUT -s 89.163.185.170 -j DROP
# Accept established connections and loopback traffic
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
# Allow ssh from our IP address 1.2.3.4 (but also use hosts.allow and hosts.deny files)
-A INPUT -s 1.2.3.4 -i eth0 -m tcp -p tcp --dport 22 -j ACCEPT
# Allow web traffic on port 80 and 443 from everywhere
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
# Block everything else
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
您可以轻松地在此基础上进行构建。
答案3
您忘记允许ESTABLISHED
连接。请尝试在脚本末尾添加此内容
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
此外,我会首先开始限制传入的数据。您的输出规则仅阻止发送特殊的“手工制作”数据包。当您担心恶意软件时,这并没有多大帮助,因为这些恶意软件通常只是使用普通的“正确”数据包连接到远程服务器。