Servidor WEB

1. Servidor WEB

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 20/12/2010 - 17:46h

Meu servidor de internet tem o ip 192.168.0.69 e o servidor web tem o ip 192.168.0.179. A porta 80 do ip 179 já esta aberta e já fiz o mascaramento no ip 69, quando a porta solicitado for 80, redirecionar para a o ip 179 e mesma assim não estou conseguindo acessar minha página web. O que pode estar acontecendo?

Agradeço ajuda de todos.


  


2. Re: Servidor WEB

Ivan de oliveira Santos
melphos

(usa Debian)

Enviado em 20/12/2010 - 18:49h

Campeão,

Primeiro de tudo, quando for abrir uma pergunta nos informe mais sobre o seu ambiente. Quanto mais informações você nos compartilhar, melhor será para nós lhe ajudar.

Bom, vamos lá:

1. Você está tentando acessar de dentro da sua rede ou de fora (internet) ?
2. Como você fez o redirect ? (usando a tabela NAT com a chain PREROUTING ?)
3. Seu serviço de internet libera portas baixas (menor que 1024) ?
4. como estão suas regras de firewall (políticas padrões e tals) ?

com isso podemos lhe dar uma ajuda, da maneira que está perguntando o que vem na minha mente de bate e pronto é:

1. Seu servidor web tem um firewall e você liberou na porta 80.
2. Você fez o mascaramento no ip 69, ou seja, mandou uma regra do netfilter provavelmente um POSTROUTING com SNAT, ou um POSTROUTING com MASCARADE
3. Criou um regra que quando um ip tentar acessar o IP do seu firewall na porta 80 você direciona para o servidor web (179) na porta 80.

Se tudo isso que eu conclui está correto, você precisa saber de onde pode estar vindo o bloqueio. Se eu fosse você começaria pelo firewall criando uma regra para logar as conexões entrantes com destino a porta 80:

iptables -t nat -A PREROUTING -p tcp -s <IP_VALIDO_DO_69> --dport 80 -j LOG --log-prefix "DBG: [http] Conexão porta 80:"

depois olharia se o pacote está passando pela tabela FORWARD:

iptables -A FORWARD -p tcp -i <interface_ip_valido_do_69> -o <interface_do_ip_interno_69> --dport 80 -j LOG --log-prefix "DBG: [http] repassando o pacote OK"

e lá no web server verificar os logs para ver se está chegando alguma coisa lá.

bom, vamos ver se isso já da um luz.

abraços,
melphos


3. Re: Servidor WEB

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 20/12/2010 - 19:19h

Melphos, obrigado pela resposta.

Vamos lá!!!

Como estou usando o OpenSuse, eu geralmente não faço as instruções de firewall via comando e sim usando o Yast que é o gerenciador da distro.

sim, no servidor de internet eu primeiro liberei a porta 80 para acesso externo, mas não sei como verificar se ele aceita portas baixas. O procedimento que eu executei é o mesmo quando eu liberei a por xxxx para acesso externo usando o vnc, que está funcionando legal. Imagino que ao liberar uma porta para acesso externo ela fica exposta, ou seja, liberei a porta 80 que é a porta web.

Nesse momento, usando o yast solicitei que todo acesso externo na porta 80 no ip final 69, fosse enviado para o ip 179.

olhe o firewall do ip 69(internet):

Dec 20 19:08:48 cil kernel: [28572.649005] SFW2-FWDext-ACC-REVMASQ IN=dsl0 OUT=eth0 SRC=189.13.213.8 DST=192.168.0.179 LEN=48 TOS=0x00 PREC=0x00 TTL=125 ID=22226 DF PROTO=TCP SPT=4185 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 OPT (020405AC01010402)
Dec 20 19:08:51 cil kernel: [28575.726209] SFW2-FWDext-ACC-REVMASQ IN=dsl0 OUT=eth0 SRC=189.13.213.8 DST=192.168.0.179 LEN=48 TOS=0x00 PREC=0x00 TTL=125 ID=22229 DF PROTO=TCP SPT=4185 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 OPT (020405AC01010402)
Dec 20 19:08:57 cil kernel: [28581.851767] SFW2-FWDext-ACC-REVMASQ IN=dsl0 OUT=eth0 SRC=189.13.213.8 DST=192.168.0.179 LEN=48 TOS=0x00 PREC=0x00 TTL=125 ID=22231 DF PROTO=TCP SPT=4185 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 OPT (020405AC01010402)


Observe que o ip DST é = 192.168.0.179 e a DPT = 80, parece-me que ele sai do servidor de internet(69) e esta tentado conexão com o servidor web(179).

No firewall do servidor web(179) ele não altera nada e não recebo nenhuma mensagem de tentativa de acesso.

Outro detalhe importante, quando eu acesso na rede interna no ip 179 eu consigo abrir normalmente a minha página web.

Tá complicado???? rs rs

Agradeço sua ajuda.

Geraldo.


4. Re: Servidor WEB

Ivan de oliveira Santos
melphos

(usa Debian)

Enviado em 21/12/2010 - 11:03h

Como estou usando o OpenSuse, eu geralmente não faço as instruções de firewall via comando e sim usando o Yast que é o gerenciador da distro.
> Beleza, sem problemas!

sim, no servidor de internet eu primeiro liberei a porta 80 para acesso externo, mas não sei como verificar se ele aceita portas baixas. O procedimento que eu executei é o mesmo quando eu liberei a por xxxx para acesso externo usando o vnc, que está funcionando legal. Imagino que ao liberar uma porta para acesso externo ela fica exposta, ou seja, liberei a porta 80 que é a porta web.
> Ok! Vamos manter o pensamento que esteja liberada.

Nesse momento, usando o yast solicitei que todo acesso externo na porta 80 no ip final 69, fosse enviado para o ip 179.
> Beleza é isso que queremos mesmo!

olhe o firewall do ip 69(internet):

Dec 20 19:08:48 cil kernel: [28572.649005] SFW2-FWDext-ACC-REVMASQ IN=dsl0 OUT=eth0 SRC=189.13.213.8 DST=192.168.0.179 LEN=48 TOS=0x00 PREC=0x00 TTL=125 ID=22226 DF PROTO=TCP SPT=4185 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 OPT (020405AC01010402)
Dec 20 19:08:51 cil kernel: [28575.726209] SFW2-FWDext-ACC-REVMASQ IN=dsl0 OUT=eth0 SRC=189.13.213.8 DST=192.168.0.179 LEN=48 TOS=0x00 PREC=0x00 TTL=125 ID=22229 DF PROTO=TCP SPT=4185 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 OPT (020405AC01010402)
Dec 20 19:08:57 cil kernel: [28581.851767] SFW2-FWDext-ACC-REVMASQ IN=dsl0 OUT=eth0 SRC=189.13.213.8 DST=192.168.0.179 LEN=48 TOS=0x00 PREC=0x00 TTL=125 ID=22231 DF PROTO=TCP SPT=4185 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 OPT (020405AC01010402)

Observe que o ip DST é = 192.168.0.179 e a DPT = 80, parece-me que ele sai do servidor de internet(69) e esta tentado conexão com o servidor web(179).
> Boa, então olhando este log percebemos que o que configurou está funcionando, ou seja, repassar da interface dsl0 (ou qualquer requisição ao 69) para a eth0 (LAN) com destino ao 179.

No firewall do servidor web(179) ele não altera nada e não recebo nenhuma mensagem de tentativa de acesso.
> Aqui onde está o nosso problema, o firewall do servidor Web está habilitado (muito bom!), só que não recebemos nada nele e o pacote nem chega no web server (log). Então podemos concluir que há algum problema no encaminhamento de pacotes para o web server vindo do firewall (mas nos logs que enviou o repasse de pacotes está sendo feito entre as interfaces: dsl0 -> eth0). Então, o que pode estar errado seria a chain OUTPUT da tabela filter. Como está as suas políticas padrões na tabela OUTPUT ? Se está como DROP, tem a liberação de pacote em direção ao web server na porta 80 ? Algo como:

iptables -A OUTPUT -p tcp -o eth0 -d 192.168.0.179 --dport 80 -j ACCEPT

Outro detalhe importante, quando eu acesso na rede interna no ip 179 eu consigo abrir normalmente a minha página web.
> Ok! Então sabemos que o web server está ok, uma vez que vindo da rede interna o pacote não passa pelo gateway, a requição fica na camada de switch.

Tá complicado???? rs rs
> Acho que não, acho que deve ser alguma regra no servidor firewall que está faltando.

Agradeço sua ajuda.
> Não por isso.

Geraldo.

[]'s
Melphos


5. Re: Servidor WEB

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 21/12/2010 - 11:23h

Dizem que a melhor maneira de aprender algo é dizer que não se sabe...

Eu não sei o procedimento que você me perguntou e nem a finalidade dele. Mas quero muito saber o que vem a ser:

No firewall do servidor web(179) ele não altera nada e não recebo nenhuma mensagem de tentativa de acesso.
> Aqui onde está o nosso problema, o firewall do servidor Web está habilitado (muito bom!), só que não recebemos nada nele e o pacote nem chega no web server (log). Então podemos concluir que há algum problema no encaminhamento de pacotes para o web server vindo do firewall (mas nos logs que enviou o repasse de pacotes está sendo feito entre as interfaces: dsl0 -> eth0). Então, o que pode estar errado seria a chain OUTPUT da tabela filter. Como está as suas políticas padrões na tabela OUTPUT ? Se está como DROP, tem a liberação de pacote em direção ao web server na porta 80 ? Algo como:


Eu executei: iptables -A OUTPUT -p tcp -o eth0 -d 192.168.0.179 --dport 80 -j ACCEPT no servidor de internet(69), reestartei o firewall e nada.

Obrigado Melphos.



6. Re: Servidor WEB

Ivan de oliveira Santos
melphos

(usa Debian)

Enviado em 21/12/2010 - 11:40h

Eu executei: iptables -A OUTPUT -p tcp -o eth0 -d 192.168.0.179 --dport 80 -j ACCEPT no servidor de internet(69), reestartei o firewall e nada.

> Certo! Mas pode ser que como você usa Yast, ele tem a lógica diferente da que ele lhe passei, ou seja, pode ser que ele não utilize da CHAIN DROP ou, por garantia, adicione um regra ao final da CHAIN para dropar tudo. Se for isso mesmo, a sua regra pode estar caindo depois desta regra e o firewall rejeitando o acesso antes de chegar nesta regra. Basicamento quando uma regra bate com o pacote o netfilter não executa as outras regras (só se você especificar isso).

Para dar mais uma validade, faz assim, em vez de:

iptables -A OUTPUT -p tcp -o eth0 -d 192.168.0.179 --dport 80 -j ACCEPT

Faça:

iptables -I OUTPUT -p tcp -o eth0 -d 192.168.0.179 --dport 80 -j ACCEPT

Se não for isso, vamos partir para o a tentativa de acessa o web server a partir do firewall. Se no seu firewall tiver instalado o lynx ou links (ou qualquer outro browser via texto) tente acessar o web server por ele, veja se da certo.


7. Re: Servidor WEB

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 21/12/2010 - 16:20h

Melphos, negativo, fiz a inclusão e reestartei o firewall e não rodou...

Fiz o teste usando lynx. usando o localhost ele roda legal, mas tentando acesso externo, não roda...

O mais interessante é que no log do servidor de internet ele mostra a tentativa de conexão, mas no log do firewall do servidor web ele não mostra nada.


8. Re: Servidor WEB

Ivan de oliveira Santos
melphos

(usa Debian)

Enviado em 22/12/2010 - 18:59h

Melphos, negativo, fiz a inclusão e reestartei o firewall e não rodou...
> Ok! aparentemente não é problema na chain OUTPUT.

Fiz o teste usando lynx. usando o localhost ele roda legal, mas tentando acesso externo, não roda...
> Ok! problema de pacotes saindo da sua interface da rede do servidor web está ok.

O mais interessante é que no log do servidor de internet ele mostra a tentativa de conexão, mas no log do firewall do servidor web ele não mostra nada.
> Bom, vamos apelar um pouco, manda essas informações aabaixo para o meu e-mail: melphos@gmail.com

Manda dos dois servidores.

sysctl -a | grep ip_forward
iptables -nL -v -x --line-numbers
iptables -t nat -nL -v -x --line-numbers

[]'s
melphos.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts