Compartilhamento difícil... [RESOLVIDO]

1. Compartilhamento difícil... [RESOLVIDO]

Tiago
tiago1

(usa Ubuntu)

Enviado em 20/12/2011 - 00:08h

Olá a todos no VOL. Sou novo aqui e no Linux também. Comecei a usá-lo a pouco tempo, embora já tenha lido muito material a respeito do Squid e compartilhamento de conexão de internet. Estou bem desanimado com isso, pois parece que quanto mais leio a respeito, menos entendo. Mas quero fazer mais algumas tentativas. Vou explicar:
Juntando tudo que li e me explicaram, consegui instalar o Debian Squeeze no meu desktop. Formatei ele da maneira normal, fazendo particionamento simples, criando os usuários root e restrito como de praxe. Instalei usando um CD com a “netinst” gravada. O modem é ADSL configurado como roteador, da D-Link, o 500-B, de cor preta aquele. Entrando no sistema, como root, instalei o pppoeconf, por meio de “apt-get install pppoeconf” também o “apt-get install Squid”. Por meio de outro computador, acessei o modem e mudei a configuração dele para bridge, para poder utilizar o pppoeconf e fazer a conexão com a internet na minha máquina que quero transformar em servidor. Digitei o pppoeconf no servidor, reconheceu as interfaces de rede e consegui fazer a conexão com a internet, usando os comandos “pon dsl-provider” e consigo encerrar a conexão com “poff –a.
Até aí, tudo bem, mas daí em diante não sei mais como prosseguir, pois a maior parte dos tutoriais da internet explicam mais a questão de instalar o Squid, visando as pessoas que tem mais noção de redes e experiência, mas não quem nunca montou um servidor. ”. Mesmo digitando o “ifconfig”, vejo as interfaces de rede eth0, eth1 e ppp0, sendo esta última uma das “eth”, pelo que consegui entender nos materiais de internet e livros. Digitei os famosos 3 comandos de compartilhamento:
# modprobe iptable_nat
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Alguns tutoriais dizem que se digita isso na tela de terminal do root. Outros dizem que se digitam isso num arquivo de texto chamado “rc.local” e envolve e edição de outros arquivos chamados “resolv.conf” e “interfaces”. Alguns ainda dizem que se configura primeiro a conexão com a internet pelo servidor e depois a rede local e outros ao contrário. Testei vários métodos e não funcionaram.
Sinto falta de tutoriais realmente passo a passo, e os que li e que prometiam isso, não me ajudaram. Enfim, tento a meses fazer meu desktop ser servidor pra compartilhar a conexão com meu notebook e testar assim o Squid, pra bloqueio de páginas e cache de sites.
Espero ter sido o mais claro possível para todos do VOL.
Obrigado.



  


2. MELHOR RESPOSTA

Natanael Henrique
n4t4n

(usa Arch Linux)

Enviado em 20/12/2011 - 00:42h

Primeiramente você precisa entender o que cada comando faz. Se não entendeu vou te explicar.

# Significa que o comando é digitado como usuário root e não como usuário comum, então aqui presume-se que você está no terminal em modo texto e não em um script.

Esse mesmo sinal dentro de algum arquivo de configuração ou script significa que é um comentário, fazendo com que tudo que esteja após ele seja ignorado e não seja lido como comando. É recomendado para quando se quer esclarecer para que serve algumas coisas.

modprobe iptable_nat Levanta o módulo do nat que é o responsável por "mascarar" as conexões dos clientes, fazendo com que, para a internet, todo o acesso está sendo feito pela máquina servidora.

echo 1 > /proc/sys/net/ipv4/ip_forward Esse comando ativa a passagem de pacotes pelas interfaces de rede, fazendo com que um pacote que entre por uma placa de rede possa sair por outra, o que é indispensável para o que precisamos fazer: acessar a internet com as máquinas clientes.

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE Esse é o comando que diz ao iptables para "mascarar" o acesso proveniente das máquinas da rede e que precisam ir para a internet.

Aqui é que está o erro. Informamos ao iptables que todo o tráfego vindo de qualquer rede (pois não foi especificada) deve ser mascarada usando a interface de saída eth1.

Acontece que a interface nesse caso não é a eth1, apesar de ser ela a placa física conectada ao modem. A placa de saída para a internet é a ppp0, então sua regra deve ficar assim:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Se na configuração do pppoeconf você definiu para receber um DNS automaticamente então seu arquivo /etc/resolv.conf já deve estar configurado com os DNS's recebidos na hora da conexão, e você não precisará configurá-los manualmente.

Após isso suas máquinas na rede já devem conseguir navegar normalmente.

A configuração de rede nas distribuições Debian-Like são feitas no arquivo /etc/network/interfaces e você pode perfeitamente configurar suas interfaces lá. Porém nada impede de configurá-las usando um dos meios alternativos.

Quanto a configurar a conexão primeiro no servidor depois a rede local ou o contrário tanto faz, o importante é você fazer um de cada vez para não se atrapalhar misturando tudo e depois ficar sem saber onde está o problema e por onde começar uma busca por problemas.
Se configurar a conexão no servidor, testar e ver que tudo está funcionando bem, pode partir para o próximo passo e configurar a rede. Caso não funcione o compartilhamento da conexão saberá que o erro está na configuração da rede e não terá que iniciar tudo de novo, apenas procurar por erros na configuração da rede.

Eu particularmente prefiro configurar primeiro a rede local e a partir de então configurar a conexão, mas isso vai de cada um.


Isso vale para a configuração do proxy. Se sua internet estiver funcionando corretamente então partiremos para o próximo passo: Configuração do Squid.

3. Re: Compartilhamento difícil... [RESOLVIDO]

Phillip Vieira
phrich

(usa Slackware)

Enviado em 20/12/2011 - 12:15h

Vamos facilitar sua vida:

1 - Coloque o próprio 500-B para realizar a discagem e configure a placa de rede onde estará o modem no mesmo range de IP do modem (que vai estar roteado) assim você pode dispensar o ppoeconf...

2- SQUID: remova o squid com um apt-get remove squid e dê o seguinte comando:
apt-get install squid3
Os arquivos de conf. vão estar dentro de /etc/squid3/
Os logs vão estar dentro de /var/log/squid3

Para inicializar o squid com depuração de logs, no terminal digite "squid3 -d 10" sem as aspas.

3 - Interfaces de rede: Se vc tem duas placas de rede proceda da seguinte forma:
eth0 - ligada diretamente ao modem adsl com um ip do range 192.168.0.0/24 por exemplo

eth1 - ligada a sua rede interna com outro range de ips como por exemplo 192.168.1.0/24

ppp0 - Não vai mais existir pois vc estará com seu modem roteado.

4 - Os comandos:

# modprobe iptable_nat
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Devem estar em um script, onde vão conter todas as suas regras de firewall.

Este script deve estar dentro de /etc/init.d/ pois assim ele será inicializado junto com o SO, lembrando que estou dando o exemplo para o Debian.

O arquivo /etc/rc.local serve para passar parâmetros na inicialização do SO, por exemplo, quero que toda vez que eu ligar meu SO, que ele execute o comando:
echo "Estou ligado"

Ele vai aparecer na saída padrão a frase "Estou ligado" (faça o teste).

Quanto ao /etc/resolv.conf e /etc/network/interfaces, você pode dar uma lida para saber o que faz o que. (é simples, mole mole ;-) )


Espero ter esclarecido um pouco mais para vc...


4. Olá

Tiago
tiago1

(usa Ubuntu)

Enviado em 21/12/2011 - 16:21h

Olá, agradeço os retornos da mensagem.
Tentarei os 2 modos, em caso de sucesso e/ou fracasso, posto aqui. =)


5. Ok, mas...

Tiago
tiago1

(usa Ubuntu)

Enviado em 21/12/2011 - 16:51h

Certo n4t4n, entendi que a faixa de IPs do modem para o servidor fosse de 10.x.x.x e do servidor pra rede tem de ser de 192.168.x.x, isso?


6. Re: Compartilhamento difícil... [RESOLVIDO]

Ricardo Libanio
riesdra

(usa Debian)

Enviado em 21/12/2011 - 16:55h

a faixa não interfere, pois você configura ela como deseja, o importante é usar o ppp0 no caso de conexão em bridge, sua segunda placa tem que estar com os endereços na faixa de sua rede, seja qual for ela.

a questão de ter os comandos em um script e não no rc.local, também é interessante, pois facilita a manutenção depois.




7. Re: Compartilhamento difícil... [RESOLVIDO]

Tiago
tiago1

(usa Ubuntu)

Enviado em 21/12/2011 - 17:27h

Pois é, eu sempre achei que as faixas tinham de ser diferentes, mas na real é só pra não confundir mesmo, pra saber de qual rede se está falando.


8. Re: Compartilhamento difícil... [RESOLVIDO]

Natanael Henrique
n4t4n

(usa Arch Linux)

Enviado em 21/12/2011 - 18:23h

riesdra escreveu:

a faixa não interfere, pois você configura ela como deseja, o importante é usar o ppp0 no caso de conexão em bridge, sua segunda placa tem que estar com os endereços na faixa de sua rede, seja qual for ela.

a questão de ter os comandos em um script e não no rc.local, também é interessante, pois facilita a manutenção depois.



Exatamente.

Lembrando que o que você não pode é usar a mesma faixa de rede para as duas interfaces, fora isso você configura como quiser.


9. Ok n4t4n...

Tiago
tiago1

(usa Ubuntu)

Enviado em 23/12/2011 - 01:00h

Certo, testei aqui e obtive alguns progressos, que apresento aqui:

Ao instalar o pppoeconf, o fiz sem que a placa eth1 (meu caso a placa de rede PCI off board, que é a que estará conectada aos micros da rede) estivesse conectada no servidor, pra me certicificar que a conexão seria estabelecida entre a placa eth0 (on board da placa mãe) e o modem em modo brigde. Até aí tudo bem, pois digitei "ifconfig" como root e me retornou as placas nesta ordem:

eth0 (seguido de um número da faixa 10.x.x.x)


lo (loopback local)


ppp0 (protocolo ponto a ponto, seguido de um número do tipo 201.x.x.x, que imagino que seja o IP na internet, creio eu)

Fiz com a eth1 desconectada pra diminuir a possibilidade de trapalhadas e pra não aparecer nesta listagem.

Também descobri que o arquivo "interfaces" de verdade se acessa já estando no diretório /etc e fazendo algo como "nano /network/interfaces", que tem algumas coisas escritas e não "nano interfaces", que é um arquivo vazio.

Até aqui está certo o procedimento? Também não instalei o Squid, pois primeiro é necessário ativar o compartilhamento, não é?

Dentro do network/interfaces achei algo tipo isso:
- - - - - - - - - - - - - -
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider

- - - - - - - - - - - - - - - - -

Neste arquivo não teria de ser "ppp0" ao invés de "eth1" ?

Obrigado mais uma vez. :)




10. Re: Compartilhamento difícil... [RESOLVIDO]

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 23/12/2011 - 08:49h

no arquivo /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider


eth0 recebe automicamente pelo modem adsl
eth1 define ip fixo da rede (substitui pelo outra classe IP, caso sua rede for outra classe IP)
ppp0 recebe ip de Internet

Na regra iptables que faz compartilhamento usa a interface de conexão (internet), no caso ppp0.

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -o ppp0 -j MASQUERADE


Lembrando, que deve substituir pela classe IP de sua rede, caso seja diferente.


11. Mais alguns progressos...

Tiago
tiago1

(usa Ubuntu)

Enviado em 23/12/2011 - 21:48h

Olá a todos novamente...
Mais alguns progressos, mas ainda não consegui compartilhar a conexão, apenas consegui fazer o ping do servidor até meu notebook e obter resposta, e foi só. Após formatar o PC (de novo), aconteceu que o Linux Squeeze reconheceu a placa onboard como sendo eth1 e a off-board eth0. Não sei porque cargas dágua isso aconteceu, mas enfim....Tive de adaptar minhas anotações a “nova” realidade.
Após estabelecer a conexão pelo pppoeconf, ficou definido que a interface agora ligada ao modem era eth1 (porque inverteu, como disse antes)
Então, entrei no arquivo “resolv.conf” e lá estavam os DNS. Não alterei eles, pois eles são gravados ali na hora do estabelecimento da conexão. Depois entrei no diretório “etc/network/interfaces” e escrevi lá dentro assim:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

auto lo
iface eth1 inet dhcp <-- é a interface de rede ligada no modem

auto eth0
iface eth0 inet static
address 192.168.0.1 <-- Esse número será o Gateway da rede.
netmask 255.255.255.0
network 192.168.0.0

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth1 up #line maintained by pppoeconf
provider dsl-provider

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Depois fui no arquivo “rc.local” e coloquei assim:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -o ppp0 -j MASQUERADE

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Também tentei uma versão sem a parte do “ -s 192.168.0.1/24 ”, ficando assim:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

No micro da rede coloquei:

IP:192.168.0.7
Máscara de subrede: 255.255.255.0
Gateway: 192.168.0.1
DNS principal: 192.168.0.1
DNS alternativo: Não sei dizer se precisa, já li alguns tutoriais que dizem que não é necessário.


Como disse, o máximo que consegui foi obter resposta de ping do servidor para o IP 192.168.0.7 (IP do PC da rede local).
Alguém tem alguma idéia do que pode ter dado errado?
PS.: Caso o compartilhamento dê certo, preciso fazer alguma alteração nos navegadores ou basta mudar o caminho do Gateway para 192.168.0.1?

Obrigado novamente.



12. Olá

Tiago
tiago1

(usa Ubuntu)

Enviado em 24/12/2011 - 18:40h

Pessoal, alguém tem idéia do pode ter acontecido após os experimentos? As configurações dos arquivos são aquelas que postei.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts