O Apache não funciona em IP externo no CentOS

3

Eu tenho uma máquina CentOS 5.6 recém-instalada e posso acessar o httpd localmente via elinks. Mas não funciona de outros IPs. Eu posso fazer o ping do IP, mas não recebo nenhuma rota para hospedar se eu me conectar à porta 80. Eu suponho que algumas regras de firewall estão impedindo o acesso à porta 80 e têm check iptables e parece bem.

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

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

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain RH-Firewall-1-INPUT (2 references)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 255
ACCEPT     esp  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     ah   --  0.0.0.0/0            0.0.0.0/0
ACCEPT     udp  --  0.0.0.0/0            224.0.0.251         udp dpt:5353
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:631
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:631
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
    
por Nina Sonbolian 08.11.2011 / 17:54

2 respostas

4

Você não parece ter uma regra para permitir o tráfego na porta 80 tente isso

/sbin/iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport 80 -j ACCEPT

se isso funcionar, salve sua configuração de firewall com

/sbin/service iptables save 

Outra coisa a verificar é que o Apache está realmente configurado para escutar seu endereço IP externo. Verifique a diretiva Ouvir em seu arquivo /etc/httpd/conf/httpd.conf . Deve ser algo como

Listen 80 

para ouvir todos os endereços disponíveis.

    
por 08.11.2011 / 18:03
1

Se o SELinux estiver habilitado - primeiro verifique todos os valores booleanos do SELinux relacionados ao apache:

[root@localhost ~]# getsebool -a | grep httpd
       . . . . . . 
httpd_builtin_scripting --> on
httpd_can_network_connect --> off
httpd_can_network_connect_db --> off
httpd_can_network_relay --> off
httpd_disable_trans --> off
httpd_enable_cgi --> on
httpd_enable_ftp_server --> off
httpd_enable_homedirs --> on
     . . . . . . . .

se httpd_can_network_connect --> off desativar a restrição do SELinux no httpd:

[root@localhost ~]# setsebool -P httpd_can_network_connect on

Ou use o system-config-selinux , também conhecido como a ferramenta gráfica Administração do SELinux, para controlar os valores booleanos de daemons específicos.

    
por 08.11.2011 / 19:44