Apache passo-a-passo: redirecionando portas e instalando o no-IP!

Publicado por wagner augusto pires de oliveira em 14/04/2009

[ Hits: 41.202 ]

 


Apache passo-a-passo: redirecionando portas e instalando o no-IP!



Olá galera, esse tutorial ensinará passo-a-passo como subir um servidor Web no Linux. Estou usando atualmente, o Ubuntu Hardy Heron 8.04.

Primeira parte


Antes de mais nada, instale o Nmap, um dos melhores scanners de portas.

sudo apt-get install nmap

Agora vamos baixar o apache.

sudo apt-get install apache2

Faremos o teste pra ver se realmente está funcionando. Digite no navegador (Firefox):

http://[seu IP]

Aparecerá uma mesagem: “It works!”, mais ou menos assim:

Linux: Apache passo-a-passo: redirecionando portas e instalando o no-IP!


Instalaremos agora o PHP5:

sudo apt-get install php5 libapache2-mod-php5

Reiniciaremos o Apache, para atualizá-lo:

sudo /etc/init.d/apache2 restart

Linux: Apache passo-a-passo: redirecionando portas e instalando o no-IP!


Entre na pasta /var/www/. Poderá ter um arquivo chamado index.html, delete-o e crie um novo arquivo. Abra um editor de texto e digite o seguinte:

<?php phpinfo(); ?>

Salve-o no diretório /var/www/ com o nome info.php. No navegador, digite:

http://[seu IP]/info.php

Linux: Apache passo-a-passo: redirecionando portas e instalando o no-IP!


Ok, seu servidor está rodando, mas apenas usuários da rede conseguem visualizá-lo, o que não torna interessante esse tutorial.

No meu caso, utilizo um notebook com banda larga Claro 3G, com IP dinâmico. Terei que ter um endereço fixo. Nesse caso, cadastre-se no site abaixo.
Após o cadastro, acesse a opção "HOST/Redirect" e clique no icone "Add a host".

Linux: Apache passo-a-passo: redirecionando portas e instalando o no-IP!


Você será redirecionado a uma tela semelhante a de cadastro, onde você poderá registrar o seu host. Haverá a opção mostrada abaixo.

Linux: Apache passo-a-passo: redirecionando portas e instalando o no-IP!


No final da página tem a opção "Create Host". Clique e aguarde a criação do host.

Ótimo, vamos agora mexer com o iptables, um firewall do Linux. Copie e cole os comandos abaixo em um editor de texto e salve o arquivo no diretório /etc/init.d com o nome iptables.sh.

#!bin/sh
#aqui estou fechando as entradas, saidas e redirecionamento.

sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP
sudo iptables -P FORWARD DROP

#agora vamos liberar o que nos interessa.
sudo iptables -A INPUT -i ! ppp0 -j ACCEPT # Para modem a interface é ppp0, se você usa ADSL o código será o seguinte:
#sudo iptables -A INPUT -i ! eth0 -j ACCEPT
#sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#sudo iptables -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
#sudo iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

#e o mais importante liberar a porta do no-ip

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # porta padrão
sudo iptables -A INPUT -p tcp --dport 78 -j ACCEPT

Atenção: caso seja necessário incluir alguma regra no firewall, deverá ser colocada neste documento.

Criaremos um link simbólico (atalho) para que seja executado essa regra toda vez que iniciar o sistema:

sudo ln -s /etc/init.d/iptables.sh /etc/rc2.d/S99iptables

Esse comando criará um link simbólico na pasta /etc/rc2.d, e quando o sistema for iniciado, ele carregará toda regra do iptables.

Linux: Apache passo-a-passo: redirecionando portas e instalando o no-IP!


Por padrão a porta de comunicação do Apache é a 80, porém serviços de banda larga como Speedy, Claro3G, Tim Web e outros não liberam comunicação nessa porta. Nesse caso, devemos trocá-la. Neste tutorial, a porta ultilizada pelo apache é a 78. Para a alteração, faça o seguinte, digite no terminal:

sudo gedit /etc/apache2/ports.conf

O seguinte documento será carregado:

Listen 80 # troque aki pela porta liberada 78 no meu caso.

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

Altere-o para ficar da seguinte forma:

Listen 78

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

Salve o arquivo e reinicie o Apache:

sudo /etc/init.d/apache2 restart

Faça um scan com o nmap e confirme se a porta está aberta e o serviço rodando.

sudo nmap -A [seu IP]

Linux: Apache passo-a-passo: redirecionando portas e instalando o no-IP!


Serão exibidas várias informações, mas o que nos interessa é o seguinte:

PORT     STATE SERVICE         VERSION 78/tcp  
open  http            Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.3 with Suhosin-Patch)

significa que a porta 78 está aberta e o serviço está rodando. Agora vamos instalar um cliente no-ip. Você pode baixar usando o comando abaixo.

sudo apt-get install no-ip

Aparecerá no terminal o lugar para inserir o e-mail, senha e host. Infelizmente no meu micro não funcionou como devia, então tive que optar pelo meio mais dificil! Aqui está o link (obs.: este programa está sempre tendo atualização, talves pelo wget não funcione):

sudo wget https://www.no-ip.com/downloads.php?page=linux

Ou acesse o site abaixo e faça o download para Linux:
Extraia o pacote:

sudo tar -zxvf noip-duc-linux.tar.gz
$ cd noip-2.1.9/
$ cd binaries
$ sudo cp -a noip2-i686 /usr/local/bin/


Agora criaremos um arquivo de configuração com a opção “-C -c” (create config), onde você pode indicar onde o arquivo será criado.

sudo noip2-i686 -C -c /etc/noip.conf

Aparecerá assim no terminal:

Please enter the login/email string for no-ip.com # aqui você coloca seu e-mail.
Please enter the password for user 'xxx@xxx.com' ****** # aqui a sua senha.
Only one host [w4gn3r.no-ip.biz] is registered to this account.
It will be used.
Do you wish to run something at successful update?[N] (y/N) y
Please enter the script/program name [enter]
New configuration file '/tmp/no-ip2.conf' created.

Agora vamos incluir um script no /etc/init.d/bootmisc.sh para toda vez que subir o sistema ele carregue o cliente no-ip.

sudo gedit /etc/init.d/bootmisc.sh

Agora você cola esse script e salva:

# Rotina para atualizar o IP

echo "Aguarde, o IP do servidor está sendo atualizado..."

/usr/local/bin/noip2-i686 -c /etc/noip.conf &

echo "IP atualizado com sucesso."

Ok, o site deverá ficar no diretório /var/www/ e seu endereço é:

http://[nome do host].no-ip.biz.

Atenção: esses são os procedimentos minimos para fazer um servidor Web, mas de qualquer forma não é 100% garantido que funcione em sua máquina, Então fiz uma FAQ de erros comuns, são eles:
  1. Abrir a tela do no-ip mais não carregar o site.

    Pode ser problema de atualização de IP, entre no site no-ip e troque o ip manual e vê se resolve.

  2. Página não existe.

    Pode ser problema de firewall. Veja se o script iptables está certo, tente dar comando por comando no terminal. Também pode ser problema com direcionamento de porta, talvez criar uma regra no roteador indicando que todos os pacotes que chegarem na porta 78 sejam encaminhadas ao determinado micro da sua rede, onde está rodando o server, resolva.

Meu msn w4g3_online -[arroba]- hotmail -[ponto]- com

Até a próxima.

Outras dicas deste autor

Configurando de maneira fácil o claro 3G no Ubuntu Linux

Elisa: Media Center para Linux

Via vn896 S3/VIA Graphics Chrome9 HC IGP com 3D rápido e fácil

Como colocar som e alerta no aMSN Linux

Skype - Erro: Imagem da WEBcam muito escura [Resolvido]

Leitura recomendada

Solucionando erro: comm_select_init: epoll_create(): (38) Function not implemented

Youtube - Resolvendo problema dos vídeos que congelam em tela cheia

Integrando o wget com o Netscape

Acessando seu Ubuntu por um terminal Windows de outra rede

Guia do Hardware: eBooks

  

Comentários
[1] Comentário enviado por yochanan.fonseca em 08/06/2009 - 10:34h

Ola Wagner!
Eu tenho o apache 2, o php 5, e o mysql, todos instalados; vendo o teu tutorial, dei um restart no apache, mas olhe só o que deu:

* Restarting web server apache2
Warning: DocumentRoot [/var/www/teste] does not exist
Syntax error on line 3 of /etc/apache2/httpd.conf:
ServerName takes one argument, The hostname and port of the server [fail]

O que devo fazer?



Yochanan

[2] Comentário enviado por yochanan.fonseca em 08/06/2009 - 14:02h

Oi Wagner!
Já resolvi o problema com o apache2, ele está funcionando.
Agora é a porta 78, que não abre olha só:

Terminal: sudo nmap ip ;xxxxxxxxxxxxxxx
Starting Nmap 4.62 ( http://nmap.org ) at 2009-06-08 13:57 BRT
Note: Host seems down. If it is really up, but blocking our ping probes, try -PN
Nmap done: 1 IP address (0 hosts up) scanned in 3.182 seconds

E agora?
Obrigado.


Yochanan

[3] Comentário enviado por w4gn3r em 08/06/2009 - 23:17h

No terminal digite:

$sudo gedit /etc/apache2/ports.conf


o arquivo tem que estar da seguinte forma:

Listen 78

<IfModule mod_ssl.c>
Listen 443
</IfModule>



obs.: a opção Listen, deverá listar a porta que será utilizada pelo apache, no caso acima está como o 78.



ATENÇÂO

[/var/www/teste] does not exist.


verifique se existe um arquivo chamado "teste", e se possivel remova-o. crie um novo arquivo com código index.php.

e faça um novo teste, e poste o resultado.





restart o apache.







[4] Comentário enviado por marcio035 em 15/09/2009 - 11:10h

Bom dia tenho uma duvida na parte de criar o host NO-IP onde voce diz " aqui voce coloca seu IP " voce quer dizer colocar IP Interno do servidor ou IP Externo da Internet ?

[5] Comentário enviado por w4gn3r em 15/09/2009 - 13:18h

Olá Marcio;


No campo IP, deverá ser um IP válido para internet (Ip externo).

Me corrija se estiver errado, sua internet está sendo autenticado em um modem certo (caso padrão)
esse modem fica com um IP classe A, válido para internet.

ao ligar seu computador em um HUB ou no proprio modem, ele atribui um IP classe C "192.168...." alguma coisa assim.



Para esse quadro, deverá ter uma regra no router, que todos os pacotes que chegar na porta 78 (caso vc ultilizou o mesmo do tutorial),

deverá ser redirecionado para o (ai sim vc coloca o IP interno do servidor web), isso deverá ocorrer no router, agora no site NO-IP deverá ter o ip válido para internet.




Qualquer duvida, so perguntar





[6] Comentário enviado por marcio035 em 17/09/2009 - 12:21h

No caso eu uso uma conexao DSL Discada onde meu servidor faz a conexao, sendo assim meu servidor fica com o IP valido da internet, entao no caso e esse ip que devo colocar ao criar o host no no-ip, certo?

[7] Comentário enviado por marcio035 em 17/09/2009 - 12:25h

Ha ve se voce consegue me ajudar com uma outra questao, eu instalei meu NO-IP pelo
aptitude install NO-IP
depois fiz as configurações de login e senha dele mais acontece o seguinte nao coloquei nada pra fazer ele iniciar junto com o sistema ai agora nao sei onde consigo startar ele depois de ter dado booot na minha maquina, voce sabe como preceder ?

[8] Comentário enviado por cgzeca_fabricio em 01/02/2010 - 00:14h

http://[nome do host].no-ip.biz

ola, nesta area onde vc diz nome do host, o que coloco?

[9] Comentário enviado por arnaud em 05/02/2010 - 20:12h

Ola,
as tem que liberar o IP e a PORTA do Sever no MODEM

[10] Comentário enviado por w4gn3r em 08/03/2010 - 07:36h

cqzeca fabricio

Host - nome especificado na hora do cadastro no NO-IP.

Você escolhe qualquer nome, (desde que não esteja sendo utilizado), exemplo:

http://seunome.no-ip.biz


[11] Comentário enviado por w4gn3r em 08/03/2010 - 07:39h

Arnaud.

O se o modem tiver roteado, poderá usar a opção DMZ, para o direcionamento para uma Workstation especifica, caso a autenticação é no proprio PC, não ha necessidade de liberar IP e porta no modem, e sim no PC.


Qualquer duvida, tamuai!!!

[12] Comentário enviado por lqgenebra em 19/11/2010 - 16:40h

Cara, estava mesmo procurando material para me ajudar a configurar um server. Muito obrigado. Só q fiquei com uma duvida. Sempre q coloco o ip externo pra fazer o teste ele tenta abrir meu moden. Tentei configurar um D-Link 500b geração 2 mas não esta dando muito certo. Eu vou em NAT adiciono um Virtual Server, ecolho as portas coloco o ip do servidor q fica 10.1.1.4 mas nunca da certo. Internamente pelo ip 10.1.1.4 abre normal mas portas do moden com o apache nunca se fecham. se mudo no apache ele para de abrir outras q não a padrão dele até internamente para de encontrar. Pode me ajudar? Obrigado.

[13] Comentário enviado por w4gn3r em 19/11/2010 - 23:02h

Caro Lggenebra,

procura por configuração de NAT para o modelo do seu router....


O NAT nada mais é do que a tradução de IPv4 para um endereço valido na net, e vice-versa...

o endereço 10.1.1.4 é um endereço interno de rede, para ter acesso ao servidor apache fora da rede, vc digita o IP fornecido pelo provedor de internet.

claro que o destino desse IP será o seu router, para isso configure um NAT, informando que todos os pacotes com destino a determinada porta (porta definida para rodar o serviço http) será encaminhado a um determinado IP. que é o ip do servidor apache.


mais de qualquer forma, consulte o manual do roteador.


Abraço.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts