iptables 규칙을 적용하면 Proxmox에 "로그인에 실패했습니다. 다시 시도하십시오"가 표시됩니다.

iptables 규칙을 적용하면 Proxmox에 "로그인에 실패했습니다. 다시 시도하십시오"가 표시됩니다.

가상화하고 싶은 강력한 전용 서버가 생겼습니다. 아이디어는 호스트 시스템에 Proxmox VE를 설치한 다음 각 용도에 맞는 가상 머신(내 웹사이트용, 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의 웹 UI(8006)가 표시되지만 로그인할 수는 없습니다. Proxmox에서는 "로그인에 실패했습니다. 다시 시도하십시오."라는 메시지를 표시합니다. 모든 규칙이 사라지면 모든 것이 잘 작동합니다.

누구든지 도와줄 수 있나요?

답변1

내부 통신이 iptables에 의해 차단되지 않도록 루프백 장치의 모든 것을 허용하는 규칙이 있어야 합니다.

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

관련 정보