AWS VPC의 내부 -> 외부 방화벽에서 패킷을 볼 수 없습니다

AWS VPC의 내부 -> 외부 방화벽에서 패킷을 볼 수 없습니다

DMZ의 호스트(인터넷->DMZ 및 DMZ->인터넷 트래픽의 경우)와 로컬 네트워크의 호스트(DMZ->로컬, 로컬->DMZ의 경우)를 보호하기 위해 외부/내부 방화벽이 있는 AWS VPC를 설정하고 있습니다. 및 로컬->인터넷 트래픽). 이제 OpenBSD에는 Xen 드라이버가 있으므로 두 개의 OpenBSD 6.1 VM을 만들고 아래 다이어그램에 따라 구성했습니다. 외부 방화벽 Vegeta는 정상적으로 인터넷과 통신할 수 있습니다. 그러나 내부 방화벽으로는 Bulma가 할 수 없습니다.

내가 부르마에 있고 다음을 수행하는 경우:

$ telnet 50.194.72.148 80

그런 다음 bulma의 기본 경로인 vegeta:xnf3에서 패킷을 볼 것으로 예상했지만 그렇지 않았습니다. bulma에서 vegeta로 ssh를 연결할 수 있으므로 패킷이 통과됩니다. 또한 내 pf 방화벽 규칙은 기본적으로 모든 것을 차단하더라도 트래픽을 허용하고 다른 모든 오류를 기록합니다. 그러나 pf는 눈에 띄는 실패를 나타내지 않았습니다. 이 작업을 수행하기 위한 일부 AWS 구성이 누락된 것입니까?

bulma의 라우팅 테이블:

bulma# route -n show -inet
Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
default            192.168.15.238     UGS        0      209     -     8 xnf0 
224/4              127.0.0.1          URS        0        0 32768     8 lo0  
127/8              127.0.0.1          UGRS       0        0 32768     8 lo0  
127.0.0.1          127.0.0.1          UHhl       1       22 32768     1 lo0  
192.168.15.0/28    192.168.15.14      UCn        2        0     -     4 xnf1 
192.168.15.1       0a:8f:0f:99:77:46  UHLc       0     5668     -     3 xnf1 
192.168.15.2       0a:8f:0f:99:77:46  UHLc       0        3     -     3 xnf1 
192.168.15.14      0a:cb:41:73:83:ca  UHLl       0     6052     -     1 xnf1 
192.168.15.15      192.168.15.14      UHb        0        0     -     1 xnf1 
192.168.15.224/28  192.168.15.228     UCn        2        0     -     4 xnf0 
192.168.15.225     0a:28:c7:f3:88:0c  UHLc       0     5671     -     3 xnf0 
192.168.15.228     0a:15:e5:12:a4:28  UHLl       0     5806     -     1 xnf0 
192.168.15.238     0a:c4:41:0e:06:74  UHLch      5      113     -     3 xnf0 
192.168.15.239     192.168.15.228     UHb        0        0     -     1 xnf0

부르마의 /etc/pf.conf:

dmz_if = "xnf0"
int_if = "xnf1"

icmp_types = "{ echoreq, unreach }"

table <aws_nets> const { 192.168.15.0/24 }

set block-policy return
set skip on lo

block log all
block in quick inet6 all

# Allow ping and path MTU discovery
pass  in log inet proto icmp all icmp-type $icmp_types keep state
pass out log on $dmz_if inet proto { udp, icmp } all keep state

# Allow anything on the NAT interface
pass  in log on $dmz_if inet from <aws_nets> to any
pass out log on $dmz_if inet from $dmz_if:network to any

# Allow anything on the internal interface
pass out log on $int_if inet from $int_if:network to any

# Nat
match out log on $dmz_if inet from $int_if:network to any \
  nat-to ($dmz_if:0)
pass out log on $dmz_if from any to any

# Allow ssh
pass  in log on $dmz_if inet proto tcp from $dmz_if:network to \
  $dmz_if:0 port = ssh
pass out log on $dmz_if inet proto tcp from $dmz_if:network to \
  $dmz_if:network port = ssh

# By default, do not permit remote connections to X11
block return in on ! lo0 proto tcp to port 6000:6010

vegeta의 /etc/pf.conf:

ext_if = "xnf0"
dmz_if = "xnf3"

icmp_types = "{ echoreq, unreach }"

table <aws_nets> const { 192.168.15.192/28, 192.168.15.208/28, \
                         192.168.15.224/28 }

set block-policy return
set skip on lo

block log all
block in quick inet6 all

# Allow ping and path MTU discovery
pass  in log inet proto icmp all icmp-type $icmp_types keep state
pass out log on $ext_if inet proto { udp, icmp } all keep state

# Allow anything on the NAT interface
pass  in log on $dmz_if inet from <aws_nets> to any

# Nat
match out log on $ext_if inet from $dmz_if:network to any \
  nat-to ($ext_if:0)
pass out log on $ext_if from any to any

# Allow ssh
pass  in log on $ext_if inet proto tcp from any to \
  any port = ssh
pass  in log on $dmz_if inet proto tcp from any to \
  any port = ssh
pass out log on $dmz_if inet proto tcp from $dmz_if:network to \
  $dmz_if:network port = ssh

# By default, do not permit remote connections to X11
block return in on ! lo0 proto tcp to port 6000:6010

여기에 이미지 설명을 입력하세요.

여기에 이미지 설명을 입력하세요.

여기에 이미지 설명을 입력하세요.

답변1

글쎄요, 그것은 모두 당신이 패킷을 보고 있는 인터페이스에 따라 다릅니다. pf는 xnf0에서 실행되며 nat의 모든 패킷을 xnf3에서만 온 것처럼 처리합니다. vegeta의 xnf3에서 iftop 모니터를 실행하고 다시 테스트하여 무슨 일이 일어나는지 확인하십시오.

# pkg_add -v iftop
# iftop -i xnf3

또한 Bluma에서 경로를 확인하세요.

# netstat -rn -f inet

기본 게이트웨이가 192.168.15.238로 설정되어 있는지 확인하세요.

관련 정보