Autor Tópico: Servidor Samba - Squid - DHCP - Dnsmasq....  (Lida 4784 vezes)

Offline ultramagus

  • Usuário Ubuntu
  • *
  • Mensagens: 16
    • Ver perfil
Servidor Samba - Squid - DHCP - Dnsmasq....
« Online: 27 de MAR?O de 2009, 16:28 »
Por mais que eu leia e releia as configurações do Squid e outros serviços não estou conseguindo solucionar alguns pequenos problemas, por isso resolvi detalhar toda a configuração que fiz até agora para que alguém possa me apontar um caminho e também para servir de ajuda a quem está tão perdido quanto eu. Certamente cometi muitos erros... :(

A principio precisava montar “apenas” um servidor de arquivos e impressora s com Samba, mas depois de dar uma viajada por alguns tutoriais sobre servidores Linux resolvi colocar neste servidor também o Squid para cache/cotrole de banda e algumas outras restrições, DNSMasq com OpenDNS, Servidor DHCP....

Citar
Configuração da máquina:
Processador: Dual Core E2200 2.2ghz 1mb 800mhz
Placa Mãe: ASUS P5Q-E
4 Memórias DDR2 2.0Gb 800mhz Kingston - 8GB
Placa de vídeo: GF7300GS TC 256MB
HD Samsung 1000gb Sata
2 Placas de rede Encore/Kaiomy 10/100/1000 Gigabit
Fonte Coolermaster 350w Reais
Gravador de Dvd LG Sata

PROBLEMAS COM A PLACA MÃE:

Antes de instalar o Ubuntu 8.04.2 Server AMD64 pesquisei no Google por UBUNTU P5Q-E e encontrei na página http://linuxrevolution.blogspot.com/2008/09/ubuntu-and-asus-p5q-e-motherboard.html o relato de problemas no boot que poderia ser corrigido com as seguintes mudanças na BIOS:
Citar
- Em "MAIN / Storage Configuration" mudar "Configure SATA as ..." para [AHCI], assim o Kernel encontra o HD e dá o boot.
- Em "ADVANCED / USB Configuration" mudar "BIOS EHCI Hand-Off" para [Disabled], evita problemas com USB durante o boot.
- Mantive o ACPI 2.0 ativo em "POWER" "ACPI 2.0 SUPORT"
Além dessas mudanças também desabilitei tudo o que é inútil para este servidor como por exemplo em “Advanced” “Onboard Devices Configuration” desabilitei tudo (som, ide, lan, fireware, porta serial)...

Instalando o ubuntu particionei o HD da seguinte forma:
Citar
/boot – 500MB ext3 jornalized
/ - 80GB ext3 jornalized
/var – 450GB ext3 jornalized
/home – 445 GB ext3 jornalized
/swap – 24,6 GB

Instalei o Ubuntu 8.04.2 Server AMD64 não escolhendo nenhuma das opções de servidor... Ele conseguiu configurar a eth0 via dhcp e assim logo que deu o primeiro boot executei:

Citar
apt-get install update
apt-get install upgrade

Em seguida usando o vi editei o arquivo /etc/network/interfaces:

Citar
auto lo eth0 eth1
# The loopback network interface
iface lo inet loopback

# The primary network interface
iface eth0 inet dhcp

# Segunda interface de rede
iface eth1 inet static
address 192.168.1.10
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

Depois criei o arquivo /etc/init.d/rafael_firewall:

Citar
# CARREGA MODULOS
modprobe ip_tables
modprobe iptable_nat
# COMPARTILHA CONEXAO
modprobe iptable_nat
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
# ABRE PARA REDE LOCAL
iptables -A INPUT -p tcp --syn -s 192.168.1.0/255.255.255.0 -j ACCEPT
# FECHA O RESTO
iptables -A INPUT -p tcp --syn -j DROP

Instalei o DNSMASQ

apt-get install dnsmasq

no /etc/dnsmasq.conf o #listen-address = para
Citar
listen-address=127.0.0.1

no /etc/dhcp3/dhclient.conf adicionei a linha:
Citar
prepend domain-name-servers 127.0.0.1;

O /etc/resolv.conf ficou assim:
Citar
nameserver 127.0.0.1
nameserver 208.67.222.222
nameserver 208.67.220.220
nameserver 201.10.120.2
nameserver 201.10.128.3

Porém sempre que reinicio o servidor estes valores são apagados voltando para:
nameserver 201.10.120.2
nameserver 201.10.128.3

O ip daqui é dinâmico, gostaria de instalar uma solução como o no-ip para poder utilizar todos os recursos do Opendns... como o bloqueio de conteúdo... porém ainda não encontrei nada pra isso... o no-ip não funciona para este fim (pelo menos acho que não, já que no painel do Opendns deve-se definir um endereço de ip e não um dominio)

Instalei o servidor DHCP
apt-get install dhcp3-server

Editei o /etc/dhcp3/dhcpd.conf:

Citar
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.199;
option routers 192.168.1.10;
option domain-name-servers 192.168.1.10,208.67.222.222,208.67.220.220,201.10.120.2,201.10.128.3;
option broadcast-address 192.168.1.255;
}
host rafael{
hardware ethernet 00:17:31:7F:C7:31;
fixed-address 192.168.1.174;
}

Coloquei os DNSs do Opendns também criei uma regra para amarar o MAC da minha maquina a um ip especifico, a idéia é que quando eu colocar o servidor para funcionar na rede todos os computadores recebam as configurações por dhcp cada qual com um ip fixo, e caso ele seja mudado manualmente a conexão seja bloqueada encontrei essa acl do squid para isso: (ainda não testei)
Citar
iptables -A FORWARD -s 192.168.0.1 -m mac --mac-source ! XX:XX:XX:XX:XX:XX -j DROP

Editei o /etc/default/dhcp3-server:
Citar
INTERFACES="eth1"

Instalei o Squid:
apt-get install squid

Editei o /etc/squid/squid.conf:

Citar
http_port 192.168.1.10:3128 transparent
visible_hostname cerberus

cache_mem 2 GB
maximum_object_size_in_memory 64 KB
maximum_object_size 5 GB
minimum_object_size 0 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA

cache_swap_low 90
cache_swap_high 95
cache_dir diskd /var/spool/squid 409600 64 256 Q1=64 Q2=72
cache_access_log /var/log/squid/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280

#### cache videos ####
refresh_pattern -i \.flv$ 10080 90% 999999 ignore-no-cache override-expire ignore-private
acl youtube dstdomain .youtube.com
cache allow youtube
######################

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 SSL_ports port 443 563
acl Safe_ports port 21 25 43 53 70 80 110 210 280 443 488 563 587 591 777 5190
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

acl site dstdomain sinttel.com.br,mte.gov.br,caixa.gov.br,bb.com.br,itau.com.br,hsbc.com.br,santander.com.br,bancoreal.com.br,bradesco.com.br,unibanco.com.br
always_direct allow site

acl redelocal src 192.168.1.0/24
http_access allow localhost
http_access allow redelocal
http_access deny all

No começo defini o cache_mem como 5 GB mas depois li que o Squid ocupa 20mb de memória + 10mb para cada giga definido no cache_dir ou seja defini 400GB de cache_dir isso ocupa 4 GB na memória + os 5 GB que eu havia definido + os 20mb do Squid... ultrapassando assim a minha memória física. Depois que baixei o valor do cache_mem para 2 GB o proxy ficou mais rápido.

Editei novamente o firewall /etc/init.d/rafael_firewall que ainda possui apenas as seguntes linhas:

Citar
# CARREGA MODULOS
modprobe ip_tables
modprobe iptable_nat
# COMPARTILHA CONEXAO
modprobe iptable_nat
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
# PROXY TRANSPARENTE
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j \REDIRECT --to-port 3128
# ABRE PARA REDE LOCAL
iptables -A INPUT -p tcp --syn -s 192.168.1.0/255.255.255.0 -j ACCEPT
# FECHA O RESTO
iptables -A INPUT -p tcp --syn -j DROP

Estou com os seguintes problemas:

O Squido não está fazendo cache, as pastas de cache estão vazias mesmo depois que navego por um computador através do Proxy, quando baixo um arquivo como o Winrar com o Internet Explorer e depois o baixo novamente com o Firefox ele não baixa o arquivo do Proxy e sim novamente do servidor onde ele está hospedado.

Da mesma forma os vídeos do Youtube não ficam no cache, se eu abrir 10 vezes o mesmo arquivo ele baixa 10 vezes o arquivo da internet.. com os mesmos travamentos normais como se tivesse baixado da primeira vez.

Já dei chmod 7777 na pasta de cache do squid /var/spool/squid já a deletei e recriei várias vezes dando permição 7777 e squid –z... o problema persistiu :(

Alguém consegue enxergar o problema de minha configuração?

Posteriormente irei/tentarei configurar o bloqueio P2P e o Samba... desejo também criar um controle de banda (vi que no squid é possível) dividido em 4 níveis de velocidade 3niveis diferentes de velocidade para computadores que tenham o ip descriminado e um geral... pra que qualquer um que esteja navegando sem ter o ip explicito nesta  regra navegue a uma velocidade x... tipo:

Grupo1 192.168.1.120, 192.168.1.121, 192.168.1.122, 192.168.1.123 navega a 400kb/s
Grupo2 192.168.1.130, 192.168.1.131, 192.168.1.132, 192.168.1.133 navega a 256kb/s
Grupo3 192.168.1.140, 192.168.1.141, 192.168.1.142, 192.168.1.143 navega a 128kb/s
Redelocal navega a 56kb/s

Também quero filtrar toda a navegação com um antivírus... acho que o clamav junto com o squid... mas pelo que li deve não ser uma boa.. pois o servidor pode ficar lento assim como a velocidade de navegação também.

Offline ultramagus

  • Usuário Ubuntu
  • *
  • Mensagens: 16
    • Ver perfil
Re: Servidor Samba - Squid - DHCP - Dnsmasq....
« Resposta #1 Online: 30 de MAR?O de 2009, 09:52 »
Nenhuma idéia  ???

Offline warlinux

  • Usuário Ubuntu
  • *
  • Mensagens: 88
    • Ver perfil
    • warlinux.blogspot.com
Re: Servidor Samba - Squid - DHCP - Dnsmasq....
« Resposta #2 Online: 09 de Abril de 2009, 16:07 »
Você já verificou se a navegação está passando pelo proxy realmente.

Verifique o arquivo de log do squid se as conexões estão sendo realizadas por ele.

/var/log/squid/access.log

No aguardo para tentar ajudar mais !!!
"O difícil é aprender a ler, o resto está escrito"
Tutorial de instalação Debian Netinstall
http://warlinux.blogspot.com