0

I have a VPC in AWS with OpenVPN server in a public subnet. I'm trying to reach a server running in a private subnet. I cannot.

I have two ENI running on the public machine. One with a public IP address that I'm connecting through and another that I'm trying to use as my gateway to the private subnet.

I think I'm similar to this question but can't figure out how to make it applicable: Allowing SSH on a server with an active OpenVPN client

My guess is that the packets don't know how to get back.

What I can do:

I can reach the private subnet over the bridge (br0) with cURL:

root@ip-10-70-2-175:/home/ubuntu# curl --interface br0 10.70.20.57/time
2022-10-11T13:26:57.724Z

I can reach the connected client over the bridge (br0) with ping:

root@ip-10-70-2-175:/home/ubuntu# ping 10.70.2.225 -I br0
PING 10.70.2.225 (10.70.2.225) from 10.70.2.215 br0: 56(84) bytes of data.
64 bytes from 10.70.2.225: icmp_seq=1 ttl=64 time=154 ms

My ip a looks like:

3: eth1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether 02:be:e5:7f:a6:b3 brd ff:ff:ff:ff:ff:ff
4: br0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 9001 qdisc noqueue state UP group default qlen 1000
    link/ether 02:be:e5:7f:a6:b3 brd ff:ff:ff:ff:ff:ff
    inet 10.70.2.215/24 brd 10.70.2.255 scope global dynamic br0
       valid_lft 2441sec preferred_lft 2441sec
    inet6 fe80::be:e5ff:fe7f:a6b3/64 scope link 
       valid_lft forever preferred_lft forever
18: tap0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UNKNOWN group default qlen 100
    link/ether d2:a6:7b:95:20:ae brd ff:ff:ff:ff:ff:ff

I have a server-bridge and push in the OpenVPN configuration:

server-bridge 10.70.2.215 255.255.255.0 10.70.2.225 10.70.2.250

push "route 10.70.20.0 255.255.255.0"

Port 80 is wide open in all security groups.

I have tcpflow -i br0 running and can get the request through the bridge from the client but no response back to the client:

<tcpflow startime='2022-10-11T13:36:24.540564Z' endtime='2022-10-11T13:36:27.540105Z' mac_daddr='02:be:e5:7f:a6:b3' mac_saddr='36:75:00:9c:62:40' family='2' src_ipn='10.70.2.225' dst_ipn='10.70.20.57' srcport='59779' dstport='80' packets='4' len='312' />

My client-side route get 10.70.20.57 looks like:

   route to: 10.70.20.57
destination: 10.70.20.0
       mask: 255.255.255.0
    gateway: 10.70.2.215
  interface: tap0
      flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500         0 

My OpenVPN server route

root@ip-10-70-2-175:/home/ubuntu# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         ip-10-70-2-1.us 0.0.0.0         UG    100    0        0 eth0
default         ip-10-70-2-1.us 0.0.0.0         UG    150    0        0 br0
10.70.2.0       0.0.0.0         255.255.255.0   U     0      0        0 br0
10.70.2.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0
ip-10-70-2-1.us 0.0.0.0         255.255.255.255 UH    100    0        0 eth0
ip-10-70-2-1.us 0.0.0.0         255.255.255.255 UH    150    0        0 br0

0 Answers0