내 iptables 항목이 Xen 가상 머신을 핑하는 이유는 무엇입니까? [닫은

StackOverflow https://stackoverflow.com/questions/653812

  •  19-08-2019
  •  | 
  •  

문제

Xen에 대한 간단한 방화벽을 추가하기 위해 Bash 스크립트를 작성하고 있습니다.

실제 방화벽 구성은 다음과 같습니다.

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
RH-Firewall-1-INPUT  all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
RH-Firewall-1-INPUT  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain RH-Firewall-1-INPUT (2 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere            icmp any
ACCEPT     esp  --  anywhere             anywhere
ACCEPT     ah   --  anywhere             anywhere
ACCEPT     udp  --  anywhere             224.0.0.251         udp dpt:mdns
ACCEPT     udp  --  anywhere             anywhere            udp dpt:ipp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ipp
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere            state NEW udp dpt:ha-cluster
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:https
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

각 가상 머신에 새 체인을 추가하고 싶습니다 (각기에는 VIF1.0, vif2.0 등이라는 가상 인터페이스가 있습니다). 출력 인터페이스 (브리지)는 Xenbr0입니다.

다음은 내가하는 일입니다 (예 : Ping 'In'to domu1, vif1.0을 차단하기 위해) :

iptables -N domUFirewall
iptables -I FORWARD -j domUFirewall
iptables -I INPUT -j domUFirewall
iptables -A domUFirewall -i vif1.0 -p icmp -j DROP

그러나 .. 작동하지 않습니다. 나는 여전히 Domu를 핑/아웃 할 수 있습니다.

정말 '멍청한'것이 있어야하지만 무엇이 잘못되었는지 알 수 없습니다.

단서가 있습니까?

고마워

도움이 되었습니까?

해결책

브리지가있는 네트워킹과 함께 Xen을 사용하기 때문에 일반적인 iptables 명령이 영향을 받기 전에 패킷이 한 단계에서 차단됩니다. 따라서 아마도 사용해야 할 것입니다 ebtables 원하는 방식으로 패킷 라우팅에 영향을 미치도록 명령.

아래에 남은 원래 답변은 다른 구성에 효과적이지만 브릿지 네트워킹을 사용하는 Xen에게는 그렇지 않습니다.

IP 주소가 vif1.0 192.168.1.100입니다.

입력 장치를 확인하지 않고 대신 IP 주소로 확인하도록 논리를 다시 실행합니다. 입력 체인에서 패킷은 (예 :) 장치에서 나옵니다. eth0, 출신이 아닙니다 vif1.0. 따라서이 규칙 :

iptables -I INPUT -i vif1.0 -j domUFirewall

내가 이전에 제안한 것은 결코 패킷과 일치하지 않을 것입니다. 그러나 다음을 수행하면 원하는대로해야합니다.

iptables -I INPUT -d 192.168.1.100 -j domUFirewall

이 경우 체인 domUFirewall 다음과 같이 설정합니다.

iptables -N domUFirewall
iptables -F domUFirewall
iptables -A domUFirewall -p icmp -j DROP

주어진 체인이 단일 장치에 대한 경우이 점검을 원합니다. ~ 전에 "-j chainName"액션. 그러면 체인 자체에서 장치 나 IP 주소를 확인할 필요가 없습니다.

둘째, 스크립트를 다시 실행하는 경우를 대비하여 스크립트의 체인을 항상 플러시 (빈)합니다. 스크립트를 다시 실행하면 -N 선. 괜찮아.

이 작업을 수행 할 수있는 다른 방법이 있지만 다른 예를 들어 VM이 어떻게 설정되는지 구체적으로 알아야합니다. Nat? 그러나 내가 여기서 준 예는이 모드에서 작동해야합니다.

다음은 미래를위한 유용한 링크입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top