Problema ao executar um servidor web no Oracle VM Virtualbox com Port Forwarding

Problema ao executar um servidor web no Oracle VM Virtualbox com Port Forwarding

Estou usando o Oracle VM VirtualBox e executando uma instância do CentOS 7 nele. Eu configurei dois adaptadores de rede para esta máquina. Um está configurado no modo Host Only e o outro está no modo NAT. Consigo fazer SSH para a VM. Agora também estou executando um servidor web nesta VM e quero acessá-lo da mesma maneira. Mas não está funcionando assim. Tentei também com outras regras - Porta 3000 no Host, Porta 80 no Guest.

Porta 12000 no Host, Porta 80 no Guest.

Com o mesmo IP no Host:3000 no Host e com IP:Port exato no Guest.

Sem IP e porta 3000 no host e com IP:Porta exato no Guest.

Não está funcionando. Também consigo fazer ping do host para a VM e vice-versa. Eu testei a configuração do Apache HTTPD dentro do VM-Server está UP.

Usei o Lynx para acessar o site e também está funcionando, mas apenas dentro da VM. Não de fora da máquina ou do sistema operacional host.

Saída PING de host para convidado-

C:\Users\apandey>ping 192.168.56.101

Pinging 192.168.56.101 with 32 bytes of data:
Reply from 192.168.56.101: bytes=32 time<1ms TTL=64
Reply from 192.168.56.101: bytes=32 time<1ms TTL=64
Reply from 192.168.56.101: bytes=32 time=1ms TTL=64
Reply from 192.168.56.101: bytes=32 time<1ms TTL=64

Ping statistics for 192.168.56.101:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 1ms, Average = 0ms

Conexões de rede para convidados-

[root@phsita phsita_]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:35:35:5b brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
       valid_lft 63341sec preferred_lft 63341sec
    inet6 fe80::a49c:d796:6e85:93a3/64 scope link
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:fa:0c:03 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.101/24 brd 192.168.56.255 scope global enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::552d:c3b3:245a:ca7d/64 scope link
       valid_lft forever preferred_lft forever

Enrole de dentro do convidado-

[root@phsita phsita_]# cat /var/www/html/index.html
It worked. This is a test page running on Apache HTTPD.
[root@phsita phsita_]# curl localhost
It worked. This is a test page running on Apache HTTPD.

Aqui está a configuração do iptables da VM CentOS-

[root@phsita phsita_]# iptables -L -n

Chain INPUT (policy ACCEPT)    
target     prot opt source               destination    
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED    
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0    
INPUT_direct  all  --  0.0.0.0/0            0.0.0.0/0    
INPUT_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0   
INPUT_ZONES  all  --  0.0.0.0/0            0.0.0.0/0    
DROP       all  --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID   
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited    
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80    

Chain FORWARD (policy ACCEPT)    
target     prot opt source               destination    
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED    
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0    
FORWARD_direct  all  --  0.0.0.0/0            0.0.0.0/0    
FORWARD_IN_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0    
FORWARD_IN_ZONES  all  --  0.0.0.0/0            0.0.0.0/0    
FORWARD_OUT_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0    
FORWARD_OUT_ZONES  all  --  0.0.0.0/0            0.0.0.0/0    
DROP       all  --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID    
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited    

Chain OUTPUT (policy ACCEPT)    
target     prot opt source               destination    
OUTPUT_direct  all  --  0.0.0.0/0            0.0.0.0/0

Aqui está a saída Netstat da VM CentOS-

Active Internet connections (servers and established)    
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      5777/httpd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1059/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1379/master
tcp        0      0 0.0.0.0:5666            0.0.0.0:*               LISTEN      6702/nrpe   
tcp        0      0 192.168.56.101:22       192.168.56.1:50997      ESTABLISHED 8059/sshd: root@not   
tcp        0     36 192.168.56.101:22       192.168.56.1:50996      ESTABLISHED 8054/sshd: root@pts   
tcp6       0      0 :::22                   :::*                    LISTEN      1059/sshd   
tcp6       0      0 ::1:25                  :::*                    LISTEN      1379/master   
tcp6       0      0 :::5666                 :::*                    LISTEN      6702/nrpe 
udp        0      0 127.0.0.1:323           0.0.0.0:*                           619/chronyd   
udp      768      0 10.0.2.15:42450         10.100.1.21:53          ESTABLISHED 9559/ping   
udp        0      0 0.0.0.0:15961           0.0.0.0:*                           8008/dhclient   
udp        0      0 0.0.0.0:68              0.0.0.0:*                           8008/dhclient   
udp6       0      0 ::1:323                 :::*                                619/chronyd   
udp6       0      0 :::9882                 :::*                                8008/dhclient

MeuRegras de encaminhamento de portasão como segue-

Name     Protocol Host IP  Host Port    Guest IP  Guest Port
HTTPD        TCP                50000                   80
SSHD Rule    TCP                 2222                   22

Aqui está a resposta Netstat da minha máquina Host Windows-

C:\Windows\system32>netstat -antb | findstr 50000
  TCP    0.0.0.0:50000          0.0.0.0:0              LISTENING

Pacotes capturados TCPDUMP ao fazer solicitação do URL do host para o convidado-

[root@phsita phsita_]# tcpdump -v -i enp0s8 port 80
tcpdump: listening on enp0s8, link-type EN10MB (Ethernet), capture size 65535 bytes
17:08:00.255009 IP (tos 0x0, ttl 128, id 8851, offset 0, flags [DF], proto TCP (6), length 52)
    82693-t430.corp.abc.com.58114 > phsita.http: Flags [S], cksum 0xca36 (correct), seq 2879587372, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
17:08:00.505569 IP (tos 0x0, ttl 128, id 8853, offset 0, flags [DF], proto TCP (6), length 52)
    82693-t430.corp.abc.com.58115 > phsita.http: Flags [S], cksum 0xc579 (correct), seq 1429233499, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
17:08:03.254847 IP (tos 0x0, ttl 128, id 8855, offset 0, flags [DF], proto TCP (6), length 52)
    82693-t430.corp.abc.com.58114 > phsita.http: Flags [S], cksum 0xca36 (correct), seq 2879587372, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
17:08:03.505192 IP (tos 0x0, ttl 128, id 8857, offset 0, flags [DF], proto TCP (6), length 52)
    82693-t430.corp.abc.com.58115 > phsita.http: Flags [S], cksum 0xc579 (correct), seq 1429233499, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
17:08:09.255273 IP (tos 0x0, ttl 128, id 8859, offset 0, flags [DF], proto TCP (6), length 48)
    82693-t430.corp.abc.com.58114 > phsita.http: Flags [S], cksum 0xde45 (correct), seq 2879587372, win 8192, options [mss 1460,nop,nop,sackOK], length 0
17:08:09.505718 IP (tos 0x0, ttl 128, id 8861, offset 0, flags [DF], proto TCP (6), length 48)
    82693-t430.corp.abc.com.58115 > phsita.http: Flags [S], cksum 0xd988 (correct), seq 1429233499, win 8192, options [mss 1460,nop,nop,sackOK], length 0
17:08:21.507198 IP (tos 0x0, ttl 128, id 8863, offset 0, flags [DF], proto TCP (6), length 52)
    82693-t430.corp.abc.com.58119 > phsita.http: Flags [S], cksum 0x9a4d (correct), seq 4194231732, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
17:08:24.507418 IP (tos 0x0, ttl 128, id 8865, offset 0, flags [DF], proto TCP (6), length 52)
    82693-t430.corp.abc.com.58119 > phsita.http: Flags [S], cksum 0x9a4d (correct), seq 4194231732, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
17:08:30.507292 IP (tos 0x0, ttl 128, id 8867, offset 0, flags [DF], proto TCP (6), length 48)
    82693-t430.corp.abc.com.58119 > phsita.http: Flags [S], cksum 0xae5c (correct), seq 4194231732, win 8192, options [mss 1460,nop,nop,sackOK], length 0

Por favor ajude alguém. Estou tentando fazer do trabalho algo realmente crucial aqui e esta é uma situação muito estúpida em que fico impressionado apenas com o networking.

Ajudem pessoal.

Obrigado Phsita.

Responder1

Na verdade, era o próprio firewall que estava bloqueando.

Embora eu tenha adicionado a regra na cadeia INPUT para a porta TCP 80, mas ainda assim devido à extensa configuração padrão de iptables no CentOS 7, alguma regra de alguma outra cadeia estava bloqueando o tráfego da VM para o exterior.

Eu apenas tentei parar o firewalld e agora está funcionando.

informação relacionada