나는 네트워크 인터페이스가 하나인 Debian 서버를 가지고 있습니다. KVM과 해안벽을 위한 브리지를 다음과 같이 구성했습니다.동일한 인터페이스의 두 영역 그래서 kvm 게스트를 위한 "net" 영역과 "kvm"이 있습니다. 여기 /etc/shorewall에 관련 파일이 있습니다.
인터페이스
#ZONE INTERFACE OPTIONS
net br0 tcpflags,logmartians,nosmurfs,sourceroute=0,dhcp
구역
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
net ipv4
kvm:net ipv4
호스트
#ZONE HOSTS OPTIONS
kvm br0:192.168.1.0/24 -
kvm 영역은 net 영역의 하위 영역입니다. 이제 kvm 게스트에게 네트워크 액세스를 제공하고 싶습니다.
훔치다
#ACTION SOURCE DEST
MASQUERADE 192.168.1.0/24 br0
마지막으로 이것은 정책 파일입니다.
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
$FW all ACCEPT
kvm net ACCEPT
kvm $FW DROP info
net all DROP #info
# The FOLLOWING POLICY MUST BE LAST
all all REJECT #info
또한 게스트에게 IP를 제공하기 위해 DHCP 서버를 구성하고shorewall.conf에서 ip_forward를 허용했습니다.
모든 것이 작동하지만 많은 이웃 서버가 dhcp 서버에 요청하고 그로부터 IP를 얻는 것을 볼 수 있습니다.
이것을 올바르게 이해하고 있다면 내 kvm IP 범위를 사용하는 모든 이웃은 내 kvm 영역의 일부이며 내 방화벽을 통해 인터넷에 액세스하고 있는 것입니다.
kvm zone 멤버를 mac 주소로 필터링하려고 생각했는데 mac 주소를 쉽게 설정할 수 있기 때문에 좋은 해결책이 아닌 것 같은데 어떻게 해결할 수 있나요?
답변1
제가 귀하의 상황을 올바르게 이해하고 있다면 귀하는 손님을 비손자와 분리하고 해안벽을 사용하여 인터넷 및 서비스 액세스를 다르게 제어하기를 원할 것입니다. 이를 수행하는 가장 쉬운 방법은 이 두 그룹을 서로 다른 영역으로 분리하는 것입니다. 손님은 전용 브리지에 연결되고 손님이 아닌 사람은 LAN에 연결됩니다. 내 요점을 설명하기 위해 아래에 몇 가지 예제 구성 파일을 만들었습니다. 게스트가 아닌 사람이 kvm 네트워크의 인터넷이나 서비스에 어느 정도 액세스하기를 원하는지 알 수 없으므로 단순화를 위해 인터넷 액세스를 차단하고 모든 서비스에 대한 액세스를 허용했습니다.
인터페이스
#ZONE INTERFACE OPTIONS
kvm br0
net eth0 tcpflags,logmartians,nosmurfs,sourceroute=0,dhcp
구역
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
net ipv4
kvm ipv4
lan:net ipv4
호스트
#ZONE HOSTS OPTIONS
lan eth0:192.168.1.0/24
정책
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
$FW all ACCEPT
kvm net ACCEPT
kvm lan ACCEPT
kvm $FW DROP info
lan net DROP
lan kvm ACCEPT
lan $FW DROP
net all DROP #info
# The FOLLOWING POLICY MUST BE LAST
all all REJECT #info