VirtualBox e CentOS 6, não podem se conectar ao httpd

1

Estou tentando criar um servidor de IC em uma VM usando o CentOS 6 Minimalist Install e o VirtualBox 4.1.4r74291 em uma caixa de host do Windows 7.

Antes de perguntar:

  • o selinux está atualmente desativado (com planos para reativar uma vez que este problema tenha desaparecido)
  • Eu posso ssh para ele, eu posso usar o git para empurrar / puxar dele
  • Até posso usar o lynx para visitar o localhost: 80 e o localhost: 8080 dentro dele. (Eu instalei com 512MB de memória, então não tenho nada com GUI).
  • Eu também posso ping / lynx google.com, etc.

Aqui está uma saída de comando:

ifconfig -a eth1
eth1      Link encap:Ethernet  HWaddr 08:00:27:2B:4E:3C
      inet addr:192.168.1.104  Bcast:192.168.1.255  Mask:255.255.255.0
      inet6 addr: fe80::a00:27ff:fe2b:4e3c/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:320629 errors:0 dropped:0 overruns:0 frame:0
      TX packets:171826 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:445888239 (425.2 MiB)  TX bytes:14540682 (13.8 MiB)

nmap localhost
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.0000080s latency).
    Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
    Not shown: 994 closed ports
    PORT     STATE SERVICE
    22/tcp   open  ssh
    25/tcp   open  smtp
    80/tcp   open  http
    8009/tcp open  ajp13
    8080/tcp open  http-proxy
    9418/tcp open  git

    Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds

iptables -vL
    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
     315K  441M ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED
        0     0 ACCEPT     icmp --  any    any     anywhere             anywhere
     6010  281K ACCEPT     all  --  lo     any     anywhere             anywhere
        4   208 ACCEPT     tcp  --  any    any     anywhere             anywhere            state NEW tcp dpt:ssh
     8676  668K REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-host-prohibited

    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
        0     0 REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-host-prohibited

    Chain OUTPUT (policy ACCEPT 184K packets, 13M bytes)
     pkts bytes target     prot opt in     out     source               destination

netstat -aln | grep 80
    tcp        0      0 :::8009                     :::*                        LISTEN
    tcp        0      0 :::8080                     :::*                        LISTEN
    tcp        0      0 :::80                       :::*                        LISTEN
    tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN
    unix  2      [ ACC ]     STREAM     LISTENING     8093   public/cleanup
    unix  3      [ ]         STREAM     CONNECTED     8099
    unix  3      [ ]         STREAM     CONNECTED     8098
    unix  3      [ ]         STREAM     CONNECTED     8096
    unix  3      [ ]         STREAM     CONNECTED     8095
    unix  3      [ ]         STREAM     CONNECTED     8092
    unix  3      [ ]         STREAM     CONNECTED     8091
    unix  3      [ ]         STREAM     CONNECTED     8089
    unix  3      [ ]         STREAM     CONNECTED     8088
    unix  2      [ ]         DGRAM                    8054
    unix  2      [ ]         DGRAM                    8013

E do host:

telnet 192.168.1.104 80
    Could not open connection to the host, on port 80: Connect failed

Assim, ambas as portas estão abertas, e parece que o firewall está permitindo que essas portas sejam conectadas de fora (ainda, para ser honesto, eu estou apenas supondo que não. Eu realmente não sei como leia a saída de iptables -L .) No entanto, sempre que tento visitar 192.168.1.104:(80|8080) no Chrome do host, recebo o infame:

Oops! Google Chrome could not connect to 192.168.1.104

Isso é possível, como eu fiz antes com uma instalação do Kubuntu (em .1.103, no entanto), e eu estava tentando migrar para um vm com um consumo de memória menor e um pouco mais de segurança.

Alguma sugestão? Mais informação necessária? Sou todo ouvidos no momento.

EDITAR:

Depois de seguir a resposta de Janne, o httpd agora está ouvindo 192.168.1.104:80 . Como tal, eu não posso mais lincar ao localhost, e fazer um wget 127.0.0.1 me dá um erro de conexão recusada. Isso é apropriado porque agora eu tenho que lynx/wget 192.168.1.104 para obter os resultados que eu estava obtendo de antemão com 127.0.0.1 (A página "It Works!" Do Apache e um download de index.html, respectivamente). Outra pista, talvez? / p>     

por Mike S 24.10.2011 / 10:12

2 respostas

5

Eu não vejo uma regra no seu iptable4s que permita uma conexão na porta 80 (exceto pela permissão do cobertor) Tente abrir a porta 80

iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT

ou

iptables -I INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT

se você quiser limitar o acesso a conexões na eth1.

    
por 24.10.2011 / 11:43
0

Este é um tiro selvagem no escuro: eu acho que o seu Apache está ouvindo 127.0.0.1 e não 192.168.1.104 .

Se netstat -tlnp retornar que o Apache está escutando em 127.0.0.1:80 , ele não responderá ao tráfego da eth1.

Veja a diretiva Listen do seu httpd.conf. Deve dizer 192.168.1.104:80

EDIT: Ei, isso deve ser sobre o iptables. Quando você diz "eu posso usar git", você quer dizer que você usa git over ssh?

Atualmente, suas regras INPUT do iptables parecem permitir novas conexões apenas para a porta ssh, e não para a porta 80. Tente adicionar isso às suas regras do iptables:

iptables -I INPUT 1 -i eth1 -p tcp -d 0/0 --dport 80 -j ACCEPT
    
por 24.10.2011 / 11:18