Instalar ADSL no ubuntu server

Iniciado por jhony2507, 13 de Novembro de 2010, 17:30

tópico anterior - próximo tópico

jhony2507

Estou com o seguinte problema:

Montei um servidor ubuntu (10.10) para usar como firewall de acesso a net, com duas placas de rede. Na placa eth0 (ligada ao modem da GVT) usei o endereço 192.168.1.254 e como gateway padrão o ip do modem da gvt (192.168.1.1). Na placa eth1 (rede interna) usei o ip 192.168.10.1 , sem gateway padrão.
   Bom, do servidor consigo pingar as maquinas da rede interna , o modem da gvt , e qualquer site da internet. Das máquinas da rede interna consigo pingar ambas as placas do servidor (192.168.1.254 e 192.168.10.1) , porém não consigo pingar o modem e consequentemente não consigo acesso a internet.

  Sou iniciante em linux, já encontrei diversos post que falam sobre isso, mas nenhum deles resolveu o problema, acho que falta algum detalhe..., se alguém puder me ajudar ou indicar um site que tenha um passo a passo agradeceria.

OBS:    já criei as rotas.
   já configurei o ip_foreward
   já usei o Iptables -t nat -A ....
   

lucas

zekkerj

Citarjá configurei o ip_foreward
Pode confirmar os comandos que usou pra isso?

Citarjá usei o Iptables -t nat -A ....
Confirme também o comando exato que usou pra isso.

Citarjá criei as rotas.
Como assim criou rotas? ???
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

jhony2507

Ola Pessoal,

Obrigado pleo interesse em ajudar...

para configurar o ip_forward:
  sudo echo 1 > /proc/sys/net/ipv4/ip_forward

para o iptables:
  sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

crei as rotas para direcionar as solicitações a rede extrena (192.168.1.0) para a interface que esta conectada no roteador.
 
  sudo route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.254



zekkerj

Citarpara configurar o ip_forward:
  sudo echo 1 > /proc/sys/net/ipv4/ip_forward
Ahhhhh... ói só, esse comando não funciona. Vc não pode fazer um "echo" com um "sudo". Vc não lembra de ter recebido uma mensagem de erro, quando executou?

Tente dessa forma, não tem erro:

sudo sysctl net.ipv4.ip_forward=1

Citarcrei as rotas para direcionar as solicitações a rede extrena (192.168.1.0) para a interface que esta conectada no roteador.

  sudo route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.254
Isso também não é necessário, OK?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

jhony2507

ola zekkerj,

Infelizmente não era isso. Aparentemente, o "echo" com o "sudo" parece funcionar, pois não aparece nenhuma mensagem de erro e eu sempre conferia o conteúdo do arquivo ip_forward e o mesmo estava setado para 1.

De qualquer forma, passei a usar sua sugestão, mas não obtive sucesso, o problema persiste.

Mesmo assim, obrigado pela dica....

abraços

lucas

zekkerj

#5
CitarAparentemente, o "echo" com o "sudo" parece funcionar, pois não aparece nenhuma mensagem de erro e eu sempre conferia o conteúdo do arquivo ip_forward e o mesmo estava setado para 1.
Só funciona se vc já estiver como root (p.ex. se vc coloca esse comando num script pra ser iniciado no boot). Ou seja, numa hora em que vc não precisa do sudo.

Mas vamos em frente.

Confirme que as estações conseguem pingar o endereço do gateway, ou seja, o endereço da sua placa de rede ligado à rede interna. Depois, tente fazer as estações pingarem um endereço conhecido na internet, como o dos servidores DNS do google (8.8.8.8 ).
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

jhony2507

Ola zekkerj

1) As estações conseguem pingar normalmente ambas as interfaces do servidor ubuntu, tanto a que esta ligado na rede interna (gateway), quando a que esta ligada no modem da gvt. Porém elas NÃO conseguem pingar o modem da GVT e consequentemente nenhum endereço da internet.

2) Do servidor ubuntu, eu consigo pingar as estações, o modem da GVT e qualquer endereço da internet, ou seja,  esta tudo OK.

  O problema aparentemente é no roteamento dos pacotes entre as duas interfaces do ubuntu (rede interna e internet) , mas sinceramente, estou completamente perdido no linux, pela lógica, este é um roteamento basico, em uma rede windows você criaria uma rota entre as interfaces e pronto, porém no linux mesmo criando esta rota não funciona, e como você me disse, em linux nem existe a necessidade da criação desta rota.

abraços..

zekkerj

Retire qualquer rota que você tenha criado. Anote isso: não é preciso criar nenhuma rota. Pro seu caso, todas as rotas necessárias são criadas automaticamente.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

jhony2507

Todas as rotas que eu havia criado já foram excluídas. Eu já havia excluido as mesmas na sua dica anterior....

zekkerj

Beleza. Vamos fazer o checklist, então.

1. Conexão de saída. (ou seja, conseguir pingar qualquer endereço ou nome a partir do servidor). Já verificado.

2. Configuração do repasse de pacotes. Esse nós acabamos de verificar.

3. Configuração do NAT. Vamos bater essa configuração agora.

4. Firewall. Se não virmos nada no NAT, tem que ser aqui.

Execute o comando abaixo e cole o resultado aqui.

sudo iptables -t nat -L -v -n
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

jhony2507

Segue....

Chain PREROUTING (policy ACCEPT 221 packets, 24246 bytes)
pkts   bytes   targert   prot  opt  in   out source  destination

Chain OUTPUT (policy ACCEPT 16 packets, 1148 bytes)
pkts   bytes   targert   prot  opt  in   out source  destination


Chain POSTROUTING (policy ACCEPT 1 packets, 84 bytes)
pkts   bytes   targert         prot  opt     in         out    source     destination
15   1064   MASQUERADE all    --   *    eth0   0.0.0.0/0  0.0.0.0/0
0   0   MASQUERADE all    --   *    eth0   0.0.0.0/0  0.0.0.0/0


zekkerj

OK. Muito bom, aliás; mostrou que há uma regra aplicada (por sinal, duplicada...) e que há tráfego chegando nessa regra (15 pacotes, 1064 bytes).

E o resto do firewall? O comando pra gente analisá-lo é

sudo iptables -L -v -n

(se estiver usando o ufw acredito que ele vai ser mostrado aqui também. mas se puder incluir as regras do ufw, ajuda)
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

jhony2507

ficou grandinho o resultado rsss...

Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination         
   32  3041 ufw-before-logging-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
   32  3041 ufw-before-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ufw-after-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ufw-after-logging-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ufw-reject-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ufw-track-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination         
    0     0 ufw-before-logging-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ufw-before-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ufw-after-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ufw-after-logging-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ufw-reject-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination         
   64  5186 ufw-before-logging-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
   64  5186 ufw-before-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
   32  2145 ufw-after-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
   32  2145 ufw-after-logging-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
   32  2145 ufw-reject-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
   32  2145 ufw-track-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-after-forward (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-input (1 references)
pkts bytes target     prot opt in     out     source               destination         
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:137
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:138
    0     0 ufw-skip-to-policy-input  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:139
    0     0 ufw-skip-to-policy-input  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:445
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:67
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:68
    0     0 ufw-skip-to-policy-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type BROADCAST

Chain ufw-after-logging-forward (1 references)
pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 10 LOG flags 0 level 4 prefix `[UFW BLOCK] '

Chain ufw-after-logging-input (1 references)
pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 10 LOG flags 0 level 4 prefix `[UFW BLOCK] '

Chain ufw-after-logging-output (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-output (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-forward (1 references)
pkts bytes target     prot opt in     out     source               destination         
    0     0 ufw-user-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-before-input (1 references)
pkts bytes target     prot opt in     out     source               destination         
   32  3041 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ufw-logging-deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 3
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 4
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 11
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 12
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 8
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp spt:67 dpt:68
    0     0 ufw-not-local  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       224.0.0.0/4          0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            224.0.0.0/4         
    0     0 ufw-user-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-before-logging-forward (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-logging-input (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-logging-output (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-output (1 references)
pkts bytes target     prot opt in     out     source               destination         
   32  3041 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
   32  2145 ufw-user-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-logging-allow (0 references)
pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 10 LOG flags 0 level 4 prefix `[UFW ALLOW] '

Chain ufw-logging-deny (2 references)
pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID limit: avg 3/min burst 10
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 10 LOG flags 0 level 4 prefix `[UFW BLOCK] '

Chain ufw-not-local (1 references)
pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type LOCAL
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type MULTICAST
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type BROADCAST
    0     0 ufw-logging-deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 10
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-reject-forward (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain ufw-reject-input (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain ufw-reject-output (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain ufw-skip-to-policy-forward (0 references)
pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-skip-to-policy-input (7 references)
pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-skip-to-policy-output (0 references)
pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-track-input (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain ufw-track-output (1 references)
pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW
   32  2145 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW

Chain ufw-user-forward (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-input (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-limit (0 references)
pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 0 level 4 prefix `[UFW LIMIT BLOCK] '
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable

Chain ufw-user-limit-accept (0 references)
pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-user-logging-forward (0 references)
pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-logging-input (0 references)
pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-logging-output (0 references)
pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-output (1 references)
pkts bytes target     prot opt in     out     source               destination         

zekkerj

Bem, não vou mentir dizendo que entendi tudo; mas acredito ter entendido a maior parte, ou pelo menos o suficiente. Mas o caso é que não consegui identificar qualquer regra permitindo a passagem de pacotes na cadeia FORWARD, vindos da sua rede local, para a internet. Esse deve ser o motivo, então: firewall.

Você tem como postar as regras do UFW que geraram esse firewall?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

jhony2507

Bom zekkerj, se você não entendeu tudo, imagina eu que nunca usei linux rsss...

   Você esta com toda razão, o problema era o firewall. eu desabilitei o ufw e deu razoavelmente certo.

   o problema é que não implementei (pelo menos não conscientemente...) nenhuma regra de firewall, estas regras implementadas devem ser padrão do ufw. Esta luta toda era para conseguir o basico, testar o fluxo entre as interfaces. Agora é que pretendo implementar as regras do firewall e instalar um proxy transparente. (que provavelmente será outra luta ...)

  pergunta de principiante..., eu havia entendido que o firewall poderia/deveria ser implementado usando somente regras definidas no iptables. Afinal qual a diferença entre os acessos concedidos/negados nas regras do iptable e os definidos no ufw? Não seria redundância usar os dois???!! ou refazendo a pergunta, qual dos dois deve ser usado??

  outro dúvida, em qual arquivo devo colocar os comandos iptable_nat, iptables e o ip_forward para que a conexão fique permanente ? atualmente, cada vez que resto o ubuntu tenho que refazer estes comandos.