LesleyRibeiro
(usa CentOS)
Enviado em 25/10/2009 - 14:01h
Caros Senhores,
Já trabalho há 2 anos com linux, tenho conhecimento em algumas áreas desse Sistema Operacional... mas como mostrado nessa pergunta... estou em apuros!
O que quero fazer é: clientes se conectarem ao meu switch obtendo ip dhcp e saiam para a internet passando pelo squid, que está transparente.
Essas são minhas configurações:
o modem tem ip 10.1.1.1 e está gerando ip dhcp para quem se conecta nele, mas estou usando ip statico na eth0 (a placa que conecto nele).
A eth0 que está conectata no modem está com o ip 10.1.1.5
a eth1 está com o ip 192.168.1.100
veja o arquivo /etc/network/interface:
root@linux-desktop:/home/linux# cat /etc/network/interfaces
# ----- LOOPBACK
auto lo
iface lo inet loopback
# ----- INTERNET
auto eth0
iface eth0 inet static
address 10.1.1.5
netmask 255.255.255.0
gatway 10.1.1.1
network 10.1.1.0
broadcast 10.255.255.255
gateway 10.1.1.1
# ----- LAN
auto eth1
iface eth1 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
root@linux-desktop:/home/linux#
númerei todas minhas dúvidas, aí está a primeira:
1º eu não sei se devo colocar as eth's em redes diferentes ou se devo deixa-las na mesma rede?
2º eu devo colocar gateway na eth1? nesse caso eu não coloquei. Em caso positivo, qual deve ser o gateway da eth1, porque o da eth0 está sendo o ip do modem: 10.1.1.1?
O DHCP
o serviço de dhcp está funcionando. Quando conecto uma máquina no switch ela ganha ip dentro do range especificado nas confirações.
veja as últimas linhas do arquivo /etc/dhcp3/dhcpd.conf:
root@linux-desktop:/home/linux# cat /etc/dhcp3/dhcpd.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.150;
option routers 192.168.1.1;
option domain-name-servers 200.225.157.104;
option domain-name-servers 200.225.157.105;
option broadcast-address 192.168.1.255;
}
root@linux-desktop:/home/linux#
veja que essa configuração vale para a eth1,
mais dúvidas:
3º Tem algo errado nessas configurações?
4º Meu range está definido como 192.168.1.100 até 192.168.1.150, a minha eth1 tem que ter ip dentro desse range? Eu estava usando 192.168.1.10, mas troquei para 192.168.1.100 porque achei que talvez teria algum problema.
5º Outro fato que não sei se está como deveria estar é o seguinte, as máquinas pegam ip de traz para frente. Exemplo: 191.168.1.149, 191.168.1.148, 191.168.1.147...
não sei se isso deveria ser assim ou se devia estar pegando: 191.168.1.101, 191.168.1.102...
Seguindo um tutorial da internet para configurar o meu servidor dhcp, criei o seguinte arquivo:
/etc/iftab, com o conteúdo:
root@linux-desktop:/home/linux# cat /etc/iftab
eth0 mac 00:50:8d:5f:ec:03
eth1 mac 00:60:08:af:96:f3
root@linux-desktop:/home/linux#
são as eth's e seus respectivos mac address,
6º isso deveria existir? e se sim, está correto?
Depois, seguindo o mesmo tutotial, fiz esse passo:
“Compartilhando e ativando o servidor
Agora vamos ativar o compartilhamento com as seguintes regras no shell:
# modprobe iptable_nat
echo > 1 /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE”
7º isso para o minas configurações, está correto?
Para finalizar a configuração do dhcp, editei o arquivo /etc/default/dhcp3-server:
root@linux-desktop:/home/linux# cat /etc/default/dhcp3-server
# Defaults for dhcp initscript
# sourced by /etc/init.d/dhcp
# installed at /etc/default/dhcp3-server by the maintainer scripts
# This is a POSIX shell fragment
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth1"
root@linux-desktop:/home/linux#
Bom como visto, nesse arquivo o servidor foi configurado para escutar apenas uma placa como rede local.
8º isso está correto?
O SQUID...
A função do squid nesse caso é só para realizar armazenamento de cache.
Na acl que digo qual rede terá acesso a intenet eu coloquei:
acl redelocal src 192.168.1.0/24
http_access allow redelocal
ou seja, disse ao squid para permitir a acesso à rede interna: 192.168.1.0 .
8° deveria essa acl estar assim:
acl redelocal src 10.1.1.0/24
http_access allow redelocal
qual rede devo colocar nesse campo?
segue meu squid.conf:
root@linux-desktop:/home/linux# cat /etc/squid/squid.conf
# Squid.conf #
# Autor: #
# Lesley Santos Ribeiro #
##### Dados do Squid #####
http_port 3128 transparent
visible_hostname linux-desktop
##### Configuração do cache #######
#### Cache do Windows Update #####
refresh_pattern windowsupdate.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims
refresh_pattern download.microsoft.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims
refresh_pattern
www.microsoft.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims
refresh_pattern au.download.windowsupdate.com/.*\.(cab|exe|dll|msi) 4320 100% 43200 reload-into-ims
cache_mem 128 MB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 300 MB
maximum_object_size_in_memory 200 KB
minimum_object_size 0 KB
cache_replacement_policy lru
memory_replacement_policy lru
cache_dir ufs /var/spool/squid 10000 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
pid_filename /var/run/squid.pid
log_mime_hdrs on
hosts_file /etc/hosts
redirect_children 5
redirect_rewrites_host_header on
#Mensagens de erro do Squid em Português
#error_directory /usr/share/squid/errors/Portuguese
# Localização do arquivo de log do Squid
cache_access_log /var/log/squid/access.log
# Atualização do Cache
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 20% 2280
refresh_pattern . 15 20% 22820
### Configuracao Minima Recomendada #####
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 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
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 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
### Minhas Regras ######
acl redelocal src 192.168.1.0/24
##### Minhas Acoes ####
http_access allow redelocal
#### Negar Acessos Externos ####
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#### Liberar acesso para a rede local ###
http_access allow localhost
http_access allow redelocal
#### Bloquear tudo que nao esteja mencionado ####
http_access deny all
root@linux-desktop:/home/linux#
Agora vamos ao grande motivo dessa pergunta:
os clientes que eu conecto ao switch recebem ip pelo dhcp mas, não navegam na internet!!!
existe algo que ainda devo fazer???
já pedi ajuda para meus colegas mais experientes, estou há uma semana tentando resolver esse probleminha.
Agradeço desde já a todos da comunidade Linux.