Ubuntu 8.04 como servidor web (ip fixo)

Iniciado por marcelo_venancio, 10 de Julho de 2008, 16:47

tópico anterior - próximo tópico

marcelo_venancio

Boa Tarde pessoal, há muito tempo atrás configurei um servidor  ubuntu 6.06 com ip fixo (speedy business), compartilhando internet com todos os computadores da rede .... Atualmente estou precisando fazer a mesma coisa aqui na empresa com a versão nova (8.04) e não estou lembrando como se faz ... alguem conhece um bom tutorial, passo a passo, explicando como proceder ...??? Obrigado pela ajuda ...

raidicar

ative o root se ainda nao o ativou.
para ativar o root, no terminal digite:
sudo passwd root
ele vai pedir para especificar uma senha para o root, especifique, confirme e pronto.
em seguida, para entrar como root no terminal, digite:
su
ele vai pedir a senha do root, coloque a senha que criou e pronto, esta logado como root.
Agora de os comandos:
iptables -F
iptables -F INPUT
iptables -F OUTPUT
iptables -F POSTROUTING -t nat
iptables -F PREROUTING -t nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -P FORWARD ACCEPT
iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -o eth0 -j MASQUERADE
Isso vai fazer o compartilhamento da internet.

Atenção:
Ao penultimo comando:
192.168.0.0/24, essa é a sua rede, se sua rede utilizar outra faixa de ip, exemplo: 10.0.0.xxx então o comando deve ser 10.0.0.0/24
eth0 é a placa de rede que recebe a internet, se o cabo do modem estiver ligado na eth1, deve alterar para eth1.
Se fosse speedy home, o eth0 deveria ser mudado para ppp0.

Dando certo, para o compartilhamento subir automaticamente com o linux, sem precisar que digite todos os comandos toda vez que iniciar o servidor, vc pode:
1º Criar um script, colocar isso dentro do script e faze-lo iniciar junto com o linux.
2º Editar o rc.local copiar e colar todos os comandos la dentro. O rc.local é executado sempre que o linux inicia e, obviamente, os comandos dentro dele.

Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.

raidicar

só precisa desses comandos para compartilhar a conexão, o dhcp server é outra história.

vc disse que acha que funcionou, funcionou ou não?

a necessidade de ter um servidor dhcp depende da dua rede, imaginando que seja 10 computadores:
basta deixar os computadores com ip fixo, ex:

como base, também imagino que sua rede possa ser 192.168.0.xxx

PASSO 1 - IPS dos Computadores
deixe-os com ips de 192.168.0.2 ao 192.168.0.11
deixe-os com a mascara 255.255.255.0
deixe-os com o gateway 192.168.0.1
deixe-os com as dns 200.204.0.10 e 200.204.0.138 que são as dns da telefonica.

PASSO 2 - No Servidor
No servidor, a eth0 esta recebendo o speedy, não mexa nela.
Já a eth1, que é a placa que serve os micros da rede:
deixe-a com o ip 192.168.0.1
deixe-a com a mascara 255.255.255.0
deixe-a com as dns 200.204.0.10 e 200.204.0.138

PASSO 3
Como root, no terminal, de os comandos que já passei e o ultimo comando, como se trada de uma rede com ip 192.168.0.xxx deve ser:
iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -o eth0 -j MASQUERADE

Isso é uma pequena rede com um ip fixo, o servidor dhcp server para a situação de quem tem uma rede grande, assim, ao inves de ter de digitar o ip, dns, ... Basta plugar o cabo de rede e o servidor dhcp atribui um ip para esse computador e ele estará na internet, assim vc não precisa se preocupar com conflito de IP e outras coisas.
O servidor dhcp apenas eliminaria a necessidade de fazer o PASSO 1 em todos os computadores. se fosse uma rede com mais de 100 computadores, ele seria altamente recomentado, agora em uma rede com até 20 computadores, não se faz necessário.

Agora, o dhcp server nada tem a ver com o compartilhamento, ele apenas lhe tira o trabalho de colocar o ip em cada maquina.

Agora com esses comandos vc compartilha a internet, porém, ao reiniciar o servidor, o compartilhamento é perdido e vc tem a necessidade de digitar tudo novamente, para isso não ocorrer, o compartilhamento deve ser executado durante o boot, automaticamente e, para isso, basta editar o arquivo rc.local e colocar os comandos dentro desse arquivo.
Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.

juliovedovatto

Aproveitando o tópico :} (melhor do que postar um novo repetido)

Tive que jogar todo tráfego que saia p/ porta 80 para o squid (engraçadinhos que tiravam o proxy), só que da maneira que a regra foi feita, até o servidor web local tem que passar pelo proxy  :'(
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8000

Queria fazer de forma que somente o que saisse para a internet fosse jogado p/ porta do squid, tentei olhar algo na internet do tipo:

iptables -t filter -A INPUT -i eth1 -j ACCEPT
iptables -t filter -A INPUT -i eth1 -p tcp -m multiport --dports 21,22,80,6667 -j ACCEPT
iptables -t filter -A FORWARD -i eth1 -j ACCEPT


Mas não funcionou :o

Agradeço quem me der um toque :D

[]'s!

roangelozi

Prezado Colega,

Para ativar o proxy transparente basta configurar a regra abaixo no iptables.

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

O eth0 é interface de rede local, altere conforme sua configuração.

Configure também seu script do squid assim.

http_port 3128 transparent  #funciona a partir da versão 2.6 do squid

Para versões anteriores use.

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

Espero ter ajudado...