我刚刚拥有一台功能强大的专用服务器,我想对其进行虚拟化。这个想法是在主机上安装 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