가상화하고 싶은 강력한 전용 서버가 생겼습니다. 아이디어는 호스트 시스템에 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