Vagrant box 和 iptables

Vagrant box and iptables

我对本地 vagrant box 和 iptables 有疑问。 我正在使用带有 chef/centos-6.6 框的 vagrant。 我想配置 iptables,因此默认策略是删除所有内容并仅启用某些端口。 这是我设置 iptables 的脚本:

# Flush all rules
iptables -F
iptables -X

# Start by blocking all traffic, this will allow secured, fine grained filtering
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# Keep established connections
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

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

# HTTP
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# SSH
iptables -A OUTPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

# DNS
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT

# NTP
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT

# YUM
iptables -A OUTPUT -p tcp -m tcp -m state --state NEW --dport 80 -j ACCEPT

执行脚本后(vagrant ssh 后)我立即断开连接,无法再次连接到服务器。

我想知道这是否与 vagrant 端口转发有某种联系?当我这样做时 vagrant up 控制台告诉我 default: 22 > 2222 (adapter 1)

我将端口添加到 # SSH 部分,但仍然是同样的问题;/ 有什么解决办法吗?

您的第一行是 iptables -P INPUT DROP,因此您正在终止 所有 传入连接立即。这意味着如果您 运行 通过 SSH 提供您的配置,您将终止配置 ssh 连接。

解决方案是按顺序插入规则,以防止您将自己锁定在机器之外。

另一种可能的解决方案是使用 iptables-save 将设置预先保存到文件中,然后使用 iptables-restore

在远程计算机上恢复