Você copiou e colou as regras do iptables? Se sim, então há um erro:
_I OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
o sublinhado inserido do hífen.
Estou configurando um VirtualBox com o CentOS para que eu possa testar todo o meu código, etc. em uma caixa do Linux, em vez do Windows que eu uso para desenvolvimento.
Acabei de fazer o SSH funcionar (eu SSH para localhost: 2222 e a porta o encaminha para a porta 22 do virtualbox).
Ele está usando o NAT porque, por algum motivo, ele se recusa a iniciar com um adaptador em ponte.
Estou tentando fazer o mesmo com o Apache, para ter um servidor web funcionando.
Eu tenho a porta portforwarded 8888 em localhost para a porta 80 em meu VirtualBox do CentOS, mas não consigo acessar nada com localhost: 8888 no meu navegador?
O Apache também está funcionando:
ps -e | grep httpd 2108 ? 00:00:00 httpd 2110 ? 00:00:00 httpd 2111 ? 00:00:00 httpd 2112 ? 00:00:00 httpd 2113 ? 00:00:00 httpd 2114 ? 00:00:00 httpd 2115 ? 00:00:00 httpd 2116 ? 00:00:00 httpd 2117 ? 00:00:00 httpd
Iptables:
# Generated by iptables-save v1.4.7 on Fri Jan 27 18:26:36 2012 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [32:2278] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited -I INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT -I OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT -I INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT -I OUTPUT -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT COMMIT # Completed on Fri Jan 27 18:26:36 2012
Eu também parei o iptables, então isso não está interferindo.
Tentei fazer o telnet na porta 80 da minha máquina virtual do CentOS para ver se funcionaria, e
Nem 127.0.0.1 nem [vm ip] funciona para fazer telnet para a porta 80. Ele chega a connecting to [ip]
e, em seguida, diz connection closed by foreign host
. Para as linhas de escuta no meu httpd.conf, ele diz listen 0.0.0.0:80
Saída de netstat -tlnp | grep http
netstat -tlnp | grep http tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2032/httpd tcp 0 0 :::443 :::* LISTEN 2032/httpd
Quando eu nmap localhost , recebo
[root@CentOS conf]# nmap localhost Starting Nmap 5.21 ( http://nmap.org ) at 2012-01-28 00:58 WST Nmap scan report for localhost (127.0.0.1) Host is up (0.0000090s latency). Hostname localhost resolves to 3 IPs. Only scanned 127.0.0.1 Not shown: 993 closed ports PORT STATE SERVICE 22/tcp open ssh 23/tcp open telnet 25/tcp open smtp 80/tcp open http 111/tcp open rpcbind 443/tcp open https 631/tcp open ipp
Você copiou e colou as regras do iptables? Se sim, então há um erro:
_I OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
o sublinhado inserido do hífen.
Primeiro, você precisa ter certeza de que o apache esteja escutando na interface ethernet (aquela da VM) ou em todos os endereços. Para esta corrida:
sudo netstat -tlnp|grep http
Se não estiver ouvindo a interface externa (ao contrário do loopback one), você terá que alterar a diretiva Listen na configuração do apache e reiniciar o apache (não recarregar).
No VirtualBox, tente alterar as configurações de rede para Bridge Adapter em vez de NAT e selecione a interface apropriada que você deseja usar (com ou sem fio). Inicie o CentOS e verifique novamente o seu endereço de ethernet (execute ifconfig).
A partir daí, verifique se você já pode acessar o apache usando o novo endereço de ethernet.
No que diz respeito ao ssh on centos, você deve certificar-se de editar o sshd_config e descomentar o seguinte:
Port 22
PermitRootLogin No
Além disso, crie outro usuário além do root e adicione esse usuário em sshd_config:
AllowUsers username
Tags virtualbox apache-2.2 centos