当我应用 iptables 规则时,Proxmox 显示“登录失败,请重试”

当我应用 iptables 规则时,Proxmox 显示“登录失败,请重试”

我刚刚拥有一台功能强大的专用服务器,我想对其进行虚拟化。这个想法是在主机上安装 Proxmox VE,然后为每次使用创建一个虚拟机:一个用于我的网站,一个用于 mi Git 存储库,等等。

我刚刚开始摆弄 iptables,我不得不承认我过得很糟糕。我编写了一个小脚本:

#!/bin/bash

# Empty any existing rule
iptables -F
iptables -t nat -F
iptables -t mangle -F

# Remove personnal chains
iptables -X
iptables -t nat -X
iptables -t mangle -X

# Enable ESTABLISHED and RELATED communications, accepts answers
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Enable ping
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp -m limit --limit 5/s -j ACCEPT

# Enable remote acccess through SSH
iptables -A INPUT -p TCP --dport ssh -j ACCEPT
iptables -A INPUT -p TCP --dport http -j ACCEPT

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

# Web output (HTTP & HTTPS)
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -j ACCEPT

# Open ports for proxmox input
iptables -I INPUT -p tcp --dport 8006 -j ACCEPT
iptables -I INPUT -p tcp --dport 5900 -j ACCEPT
iptables -I INPUT -p tcp --dport 5999 -j ACCEPT
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

# Default to DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

这里,还没有通量路由。我的目标是,首先,打开 proxmox 在安全环境中正常工作所需的所有端口。

执行该脚本后,我可以显示 proxmox 的 Web UI (8006),但无法登录。 Proxmox 提示“登录失败,请重试”。当所有规则都被冲掉时,一切都会正常进行。

有人可以帮忙吗?

答案1

您应该有一个规则来接受环回设备上的所有内容,这样内部通信就不会被 iptables 阻止。

iptables -I INPUT -i lo -j ACCEPT
iptables -I OUTPUT -o lo -j ACCEPT

相关内容