iptables -F 将我锁定在服务器之外,直到重新启动,为什么?

iptables -F 将我锁定在服务器之外,直到重新启动,为什么?

我正在尝试应用一些 iptables 规则,并且iptables -F应该删除当前规则(据我所知),但它似乎冻结了我的 SSH 连接并且不允许我重新建立,直到我切换电源。

我经历了以下步骤:

1.应用iptables规则:

# Delete all existing rules
iptables -F

# Set default chain policies
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# MultiPorts (Allow incoming SSH, HTTP and phpMyAdmin)
iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,2222 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -m multiport --sports 22,80,2222 -m state --state ESTABLISHED -j ACCEPT

# Allow loopback access
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Allow outbound DNS
iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT

# derp
iptables -A OUTPUT -o eth0 -p tcp -m multiport --dport 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m multiport --sport 80,443 -m state --state ESTABLISHED -j ACCEPT

# Outgoing Sendmail
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT

# DNS server
iptables -A INPUT -p udp -s 0/0 --sport 1024:65535 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -s 0/0 --sport 53 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -d 0/0 --dport 53 -m state --state ESTABLISHED -j ACCEPT

# Allow DNS zone transfer
iptables -A INPUT -p tcp --sport 1024:65535 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

# Prevent DoS attack
iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

# Log dropped packets
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7
iptables -A LOGGING -j DROP

2. 尝试重置iptables -F

3. 被锁定

我究竟做错了什么?

答案1

您的政策是 DROP,并且 -F 仅清除链,而不会更改政策。iptables -F && iptables -X应该可以解决问题。

答案2

正如他所说... iptables -F 删除它。您从未添加任何新规则。要启用 ssh,请执行以下操作:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT 服务 iptables 保存

这至少可以允许 ssh 访问。我建议您阅读以下有关轻松 iptables 管理的文章...它适用于 Debian,不确定您使用的是哪种,但无论哪种方式都是一样的。

与本文一样,我也通过文件 /etc/iptables.up.rules 来管理我的文件,这样我就可以对文件进行更改,然后从那里将它们导入 iptables。

http://articles.slicehost.com/2007/9/5/debian-etch-setup-page-1

相关内容