estações sem acesso a internet

Iniciado por jucabrasil, 18 de Julho de 2011, 13:36

tópico anterior - próximo tópico

jucabrasil

 estou configurando um servidor com duas placas de rede
a primeira eth1 - conectado ao modem.. com ip automatico
a segunda eth2  conectado ao swith .. ip 192.168.1.1
o servidor acessa a internet normalmente..


não configurei mais nada.

Quando configuro as estações de trabalho para usar o ip 192.168.1.10 e gateway 192.168.1.1
a rede acessa porem fico sem internet.

Qual é o problema? Como libero a internet nas estações..?

amelotti

Executa o seguinte (tudo como root):

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -A FORWARD -i eth1 -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to [ip externo]
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
#se quiser incluir log disso no sistema:
iptables -A FORWARD -j LOG

Acho que não falta nada. Tenta rodar esses comandos aí e ver se consegue comunicar.

[]'s

zekkerj

Citar#se quiser incluir log disso no sistema:
iptables -A FORWARD -j LOG
A quantidade de log que esse comando vai gerar pode chegar a derrubar teu sistema. Se for pra fazer, tem que fazer assim:

iptables -A FORWARD -m limit --limit 10/s -j LOG

Isso vai limitar a 10 linhas de log por segundo. Você pode mudar o limite pra qualquer valor que ache conveniente em sua máquina, mas tenha sempre o cuidado de não deixar a máquina sobrecarregar.
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

jucabrasil

minha regra ta assim.. verifique se esta correta:

agora fica na rede com acesso.. porem somente consigo navegar se no navegador eu usar o proxy..

Tenho squid sera que pode ser ele?


#!/bin/bash

IPT='/sbin/iptables'
NET_IFACE='eth1'
NET_RANGE='10.1.1.0'

LAN_IFACE='eth2'
LAN_RANGE='192.168.2.0/24'

/sbin/modprobe ip_conntrack
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ipt_LOG
/sbin/modprobe iptable_nat

echo 1 > /proc/sys/net/ipv4/ip_forward

$IPT -F
$IPT -t nat -F

$IPT -t filter -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT

$IPT -t filter -A OUTPUT -o lo -s 0/0 -d 0/0 -j ACCEPT

$IPT -t nat -A PREROUTING -m iprange --src-range 192.168.2.2-192.168.2.254 -p tcp --dport 80 -j REDIRECT --to-port 3128

$IPT -t nat -A POSTROUTING -s $LAN_RANGE  -o $NET_RANGE  -j MASQUERADE

zekkerj

Citar$IPT -t nat -A POSTROUTING -s $LAN_RANGE  -o $NET_RANGE  -j MASQUERADE
Esta regra é o problema. Você só está fazendo MASQUERADE quando os pacotes vêm da sua rede local e vão pra um destino específico ($NET_RANGE). Você tem que fazer o MASQUERADE quando os pacotes vêm de sua rede local, mas vão pra um destino geral, que é a Internet. Provavelmente o que você queria fazer era limitar pela interface de saída ($NET_IFACE).

A regra corrigida vai ficar assim:

$IPT -t nat -A POSTROUTING -s $LAN_RANGE -o $NET_IFACE -j MASQUERADE

Se você precisar que um determinado destino não sofra NAT, pode colocar uma regra de exceção antes dessa. Mas só se precisar.

Outra coisa, estava revendo os comandos sugeridos pelo amelotti, e me chamaram a atenção alguns trechos.

Primeiro:
Citariptables -t nat -A POSTROUTING -o eth1 -j SNAT --to [ip externo]
Ou você usa MASQUERADING, ou usa SNAT. Os dois ao mesmo tempo, não. SNAT normalmente é usado apenas quando a conexão de saída usa IP fixo. MASQUERADING pode ser usado em qualquer caso.

Segundo:
Citariptables -A FORWARD -i eth1 -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT
Antes de recomendar um script citando interfaces eth1, eth2, etc, é preciso saber se o usuário em questão tem essas interfaces.

Além disso, a primeira regra vai funcionar melhor se não especificar interfaces de entrada e/ou saída, assim ela vai funcionar com todas as interfaces. Liberar conexão de retorno é uma prática segura.

A segunda regra, aplicada sem critério, pode escancarar o firewall da pessoa. É preciso confirmar se as interfaces certas estão especificadas, e na direção correta.
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

jucabrasil

  oi    zekkerj

Vou fazer esse teste e te falo se deu certo..

jucabrasil

continua algo errado
olha so..
se eu acessar as pagina bloqueadas aparece Acesso proibido como quero porem, se eu acessar qualquer pagina que não for liberada aparece erro:

ERROR
The requested URL could not be retrieved

The following error was encountered while trying to retrieve the URL: http://www.google.com.br/

    Incapaz de determinar o endereço IP através do nome do host "www.google.com.br"

O servidor DNS retornou:

    Timeout

This means that the cache was not able to resolve the hostname presented in the URL. Check if the address is correct.

Your cache administrator is webmaster.

Generated Tue, 19 Jul 2011 19:32:15 GMT by cicrisa (squid/2.7.STABLE9)






segue meu squid.conf.

####SQUID#####

http_port 3128 transparent
visible_hostname cicrisa
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
hosts_file /etc/hosts
refresh_pattern ^ftp:     1440  20%  10080
refresh_pattern ^gopher:  1440   0%  1440
refresh_pattern .            0  20%  4320
cache_effective_group proxy
coredump_dir /var/spool/squid

####LOGs####

cache_log /var/log/squid/cache.log
cache_access_log /var/log/squid/access.log
error_directory /usr/share/squid/errors/Portuguese

####Controle de acesso####

acl rede src 192.168.1.0/255.255.255.0
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8

acl SSL_ports port 443 563
acl Safe_ports port 80  # http
acl Safe_ports port 21  # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70  # gopher
acl Safe_ports port 210  # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280  # http-mgmt
acl Safe_ports port 488  # gss-http
acl Safe_ports port 591  # filemaker
acl Safe_ports port 777  # multiling http
acl Safe_ports port 901  # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost

####Declaracao acl####

# cesso_total = IPs que terão acesso total à internet. Não passarão por nenhuma restrição do squid.
# acesso_restrito = IPs que passarão pelo bloqueio dos sites.
# liberados = Lista de sites liberados

acl acesso_total src "/etc/squid/acesso_total"
acl acesso_restrito src "/etc/squid/acesso_restrito"
acl liberados url_regex -i "/etc/squid/liberados"

####Ativar acl####

http_access allow acesso_total
http_access allow liberados
http_access deny acesso_restrito
http_access deny all

zekkerj

Qual endereço você está usando como servidor DNS nas estações?
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

jucabrasil

isso mesmo o problema era o DNS

esta tudo funcionando agora..
porem sinto que nas estações a internet esta lenta...
alguem sabe porque?

jucabrasil

Bom dia

estou com o ubuntu instalado onde possuo nele duas placas de rede, uma entra o modem e a outra sai para rede local.
O que esta ocorrendo é uma certa lentidão nas estações de trabalho.
possuo regras iptables e o squid instalado. vou postar aqui as configurações pode ser alguma coisa..


#!/bin/bash

IPT='/sbin/iptables'
NET_IFACE='eth1'
NET_RANGE='10.1.1.0'

LAN_IFACE='eth2'
LAN_RANGE='192.168.0.0/24'

/sbin/modprobe ip_conntrack
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ipt_LOG
/sbin/modprobe iptable_nat

echo 1 > /proc/sys/net/ipv4/ip_forward

$IPT -F
$IPT -t nat -F

$IPT -t filter -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT

$IPT -t filter -A OUTPUT -o lo -s 0/0 -d 0/0 -j ACCEPT

$IPT -t nat -A POSTROUTING -s $LAN_RANGE  -o $NET_IFACE  -j MASQUERADE

$IPT -t nat -A PREROUTING -m iprange --src-range 192.168.0.1-192.168.0.254 -p tcp --dport 80 -j REDIRECT --to-port 3128



Squid:


# Porta:

http_port 3128 transparent

visible_hostname Teste

hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

# >> Configuração do cache de páginas e arquivos << 

cache_mem 16 MB
maximum_object_size_in_memory 64 KB

maximum_object_size 16 MB
minimum_object_size 0 KB

cache_swap_low 90
cache_swap_high 95


# >> Cache em disco << 

cache_dir ufs /var/spool/squid 512 16 256


# Arquivo onde são guardados os logs de acesso do Squid.

cache_access_log /var/log/squid/access.log


# >> Padrão de atualização do cache <<

refresh_pattern ^ftp:  15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern .  15 20% 2280



# >> Controle de acesso <<

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 192.168.1.0/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80  # http
acl Safe_ports port 21  # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70  # gopher
acl Safe_ports port 210  # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280  # http-mgmt
acl Safe_ports port 488  # gss-http
acl Safe_ports port 591  # filemaker
acl Safe_ports port 777  # multiling http
acl Safe_ports port 901  # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost


acl bloqueados url_regex -i "/etc/squid/bloqueados"

http_access deny bloqueados



###############Logs do SQUID##################

error_directory /usr/share/squid/errors/Portuguese
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log

zekkerj

"Sentir" a internet "lenta" nas estações é bastante vago.

Lenta, como? A taxa de download está baixa, ou as páginas demoram a abrir?
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

jucabrasil

as  paginas demoram pra carregar.

zekkerj

Lentidão pra carregar, ou lentidão pra abrir? Pq carregar é o tempo pra página toda carregar, até toda a atividade da página cessar.

Já abrir, é o tempo pra você clicar num link e a página começar a carregar.

Pq a diferença? Pq lentidão pra carregar pode significar dificuldade durante as conexões, que pode estar relacionada com as taxas de download, ou no seu caso, com o funcionamento do proxy.

Já a lentidão pra abrir pode significar problema no servidor DNS escolhido, ele estaria demorando pra responder.
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

jucabrasil

mudei de servidor colocando o linux no lugar, o dns continua o mesmo

senti diferença na velocidade que acessa as paginas parecendo estar mais lenta, segra que é algo no squid?



zekkerj

Pode ser ou pode não ser. Desative o proxy transparente, veja se há alteração no comportamento.
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