segunda-feira, 31 de agosto de 2015

Instalando o Driver das Impressoras Samsung para Gnu/Linux Debian/Ubuntu

Escrito por Francies Silva de Lima.

Olá a todos.

Quero compartilhar com vocês a solução de um problema que muitos que possuem uma impressora Samsung e usam Linux possuem.

Como instalar uma impressora que não é suportada nativamente pelo Linux ?

Eu geralmente não gosto dos produtos da Samsung, adquiri alguns como um Gran Prime e uma impressora modelo ML e me arrependi. O Gran Prime veio entupido de APPs inúteis. Deixando o mesmo lento demais. No caso da impressora, um novo toner chega a ser quase o mesmo preço da impressora. O que não compensa.

Voltando ao assunto, vamos continuar. As distribuições não possui em seus repositórios os drivers da Samsung. Procurei no Linux Printing e nada. Pesquisei e encontrei no site da Samsung um pacote com o fonte para compilar e instalar no sistema mas nem todos os usuários tem esta facilidade.

Após mais pesquisas, encontrei um site chamado “The Samsung Unified Linux Driver Repository”. Nele, encontrei informações dispositivos suportados no Linux, especificamente no Debian e Ubuntu. O site disponibiliza um repositório para sistemas baseados em Debian. Para quem tem afinidade com sistema, não terá problemas para adicioná-lo.


Informo que esta postagem não tem o intuito de ensinar como utilizar o CUPS. Pois se você chegou até aqui, você já deve ter tentado instalar a sua impressora por ele e não deve ter encontrado o PPD dela na base de dados. Não me xinguem por isso, estou tentando ajudar quem esgotou as fontes de pesquisa e não conseguiu encontrar uma solução para ativar a impressora Samsung no Linux.


Lembrando que, antes de prosseguir com os procedimentos que ensinarei adiante, verifique se o seu dispositivo é suportado e de qual dos pacotes ele precisa.



Adicionar o repositório ao sistema


Para incluirmos o repositório, abra um terminal. Konsole, ou Xterm, ou LXTerminal, ou Gnome-Terminal. Enfim, qualquer um terminal que estiver instalado no seu sistema.


Debian e derivados


Abrindo o terminal, troque o seu usuário para root.
$ su -

Edite o arquivo /etc/apt/sources.list com o editor de texto da sua escolha. Eu uso o VIM, mas se você tiver outro, tipo o Nano, ou até mesmo um editor gráfico, tipo o Kate ou o Gedit, use ao seu gosto.

# vim /etc/apt/sources.list

Adicione a seguinte linha no arquivo.

deb http://www.bchemnet.com/suldr/ debian extra

Salve e feche o arquivo. Agora, precisamos baixar a chave GPG para validar o repositório. Ou então, o APT vai apontar o repositório como inválido e não confiável. Execute o comando abaixo para baixar a chave.

Após a download, execute o seguinte comando.
# apt-key add suldr.gpg

Agora, você pode atualizar a lista de pacotes sem problemas.
# apt-get update


Ubuntu e derivados


No Ubuntu, o processo é parecido. Inclua o repositório no arquivo /etc/apt/sources.list. A diferença é como instalamos a chave no sistema. Para incluir a chave, basta utilizar o seguinte comando utilizando o SUDO. Já que o root não vem habilitado por padrão no sistema.

$ wget -O - http://www.bchemnet.com/suldr/suldr.gpg | sudo apt-key add -

$ sudo apt-get update


Instalando os pacotes


Esta parte é um pouco mais complexa e requer atenção. Se você verificou a lista de impressoras suportadas, você notou que aparece a versão mínima do driver para cada impressora. Como exemplo, vou instalar o driver da ML-2165, que mostra a versão 3.00.90 ou 4.00.36 como recomendadas.

# apt-get install suld-driver-4.00.36

Após a instalação dos pacotes, instale a impressora pelo CUPS, ou pelo utilitário do ambiente gráfico que você esteja utilizando, seja o KDE, Gnome, XFCE ou LXDE, selecionando o respectivo PPD da impressora que agora vai aparece na lista.

Caso a sua impressora seja uma multifuncional, instale também os seguintes pacotes.

# apt-get install samsungmfp-scanner sane xsane

Também testei uma impressora Samsung SCX-3405FW e funcionou sem problemas.

Espero que esta postagem tenha sido útil para você. Se gostou, não esqueça de clicar no botão "g+1" e compartilhar.

Agradeço ao meu amigo +Rajiv Sousa  pela dica do fórum do Linux Mint.

Muito obrigado pelo acesso.


Referências


terça-feira, 10 de fevereiro de 2015

Instalando e Configurando um servidor Apt-Cacher para Debian e Ubuntu + Instalação do Java 8



Escrito por Francies Silva de Lima

Olá a todos.

Recebi esta sugestão em uma entrevista de emprego. Então resolvi por em prática e ver analisar melhor esta ferramenta que acaba sendo muito útil quando o assunto é controle de banda.
Muitos chamam este serviço de WSUS do Gnu/Linux, visto que ele também suporta outros sistemas. Mas vou testar apenas com os sistemas Ubuntu e Debian por enquanto. =D

Imaginem que vocês migraram metade do parque de máquinas da empresa, usando Debian nos servidores e derivados do Ubuntu nas estações. E sempre que precisam atualizar o sistema é aquela lentidão. Pois dependendo do link, essa tarefa pode ser bem demorada.

E se você pudesse baixar os pacotes uma única vez e pudesse distribuir estes pacotes para todas as estações de trabalho da rede?

Não estou falando de utilizar o Squid para esta tarefa. Porque com o tempo, ele ia excluir os pacotes caso o tempo de permanência deles expirasse ou o cache ficasse cheio.

Existe um serviço chamado Apt-Cacher. Ele faz um cache dos pacotes e separa de acordo com a versão do sistema. Escolhi utilizar o Apt-Cacher NG para demonstração pelo fato de ele me parecer mais simples do que o Apt-Cacher original. É o meu ponto de vista. =P

Lembrando que todo o servidor deve possuir um IP fixo. Se você não sabe como fazer isso. Veja no meu tutorial sobre o SAMBA4, lá eu ensino como fixar um endereço IP e o DNS para o servidor.

Tentei separar, mas achei importante mostrar como instalar o Java 8 no Debian e no Ubuntu e como evitar possíveis problemas ao instalá-lo numa rede que usa Apt-Cacher. A dica está na parte final deste texto.


Instalando os pacotes


Mãos à obra. Execute o comando abaixo.

# apt-get install apt-cacher-ng


Configurando o serviço


Edite o arquivo /etc/apt-cacher-ng/acng.conf e veja se os parâmetros abaixo estão desmarcados. Caso eles não estejam no arquivo, adicione-os.

# vim /etc/apt-cacher-ng/acng.conf

O arquivo é bem extenso mas segue as opções básicas que devem estar desmarcadas.

###Início do Arquivo

CacheDir: /var/cache/apt-cacher-ng
LogDir: /var/log/apt-cacher
Port:3142 #A porta pode ser alterada conforme a necessidade do administrador

#Escuta todos os endereços IPv4
BindAddress: 0.0.0.0

#Fontes que serão cacheadas
Remap-debrep: file:deb_mirror*.gz /debian ; file:backends_debian # Debian Archives
Remap-uburep: file:ubuntu_mirrors /ubuntu ; file:backends_ubuntu # Ubuntu Archives
Remap-debvol: file:debvol_mirror*.gz /debian-volatile ; file:backends_debvol # Debian Volatile Archives
Remap-secdeb: security.debian.org

ReportPage: acng-report.html
VerboseLog: 1
PidFile: /var/run/apt-cacher-ng/pid

#Arquivos não referenciados na lista de pacotes serão excluídos de acordo com o número dias setados.
ExTreshold: 4

###Fim do Arquivo


Após salvar as alterações no arquivo, reinicie o serviço.

# service apt-cacher-ng restart


Configurando Clientes



Ubuntu e derivados- Configure o proxy no diretório de configuração do APT, adicionando um arquivo com o nome 02proxy no seguinte caminho.

# vim /etc/apt/apt.conf.d/02proxy

Adicione a seguinte linha ao arquivo.

Acquire::http { Proxy "http://ipdoservidor:porta"; };

Exemplo → Acquire::http { Proxy "http://192.168.1.180:3142"; };

Salve e feche o arquivo.

Agora atualize a lista de pacotes. A partir de agora, todos os pacotes baixados serão armazenados no servidor e as próximas estações que precisarem dos mesmos pacotes, vão fazer o download direto do servidor. Lembrando que é necessário adicionar o arquivo 02proxy a todos os clientes.


Debian e derivados- Tentei configurar os clientes Debian da mesma forma que os clientes Ubuntu mas não funcionou. Foi necessário modificar o arquivo /etc/apt/sources.list para que se obtivesse o mesmo resultado.

Exemplo sem o Apt-Cacher

# vim /etc/apt/sources.list (arquivo de configuração dos repositórios Debian GNU/Linux)

deb http://ftp.br.debian.org/debian stable main
deb-src http://ftp.br.debian.org/debian stable main
deb http://security.debian.org/ stable/updates main
deb-src http://security.debian.org/ stable/updates main
deb http://volatile.debian.org/debian-volatile stable/volatile main
deb-src http://volatile.debian.org/debian-volatile stable/volatile main

#Agora com o Apt-Cacher configurado

deb http://192.168.1.180:3142/ftp.br.debian.org/debian stable main
deb-src http://192.168.1.180:3142/ftp.br.debian.org/debian stable main
deb http://192.168.1.180:3142/security.debian.org/ stable/updates main
deb-src http://192.168.1.180:3142/security.debian.org/ stable/updates main
deb http://192.168.1.180:3142/volatile.debian.org/debian-volatile stable/volatile main
deb-src http://192.168.1.180:3142/volatile.debian.org/debian-volatile stable/volatile main

Atualize a lista de pacotes para começar a cachear os pacotes.


Checando o serviço via Web


Você pode visualizar o relatório do serviço via navegador. Basta digitar o endereço IP com a porta de serviço.


A apresentação página é bem simples. Logo abaixo tem um link para acesso das estatísticas do cache. Clique nele e você verá a utilização do cache dos pacotes.





Dicas extras


Instalando Java 8 no Ubuntu/Debian


Sabemos que o OpenJDK não é compatível com os sites de banco (Bradesco, Caixa, BB, Itaú). Neste caso, devemos instalar o Java 8 da Oracle.

Ubuntu e derivados – Para adicionar o repositório da Oracle, adicione este PPA com os seguintes comandos.

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update


Debian e derivados – Para adicionar o repositório da Oracle, modifique o arquivo /etc/apt/sources.list e adicione as seguintes entradas.

# Repositório Oracle
deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main
deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main

Após salvar e fechar o arquivo, execute o seguinte comando para obter a chave GPG e validar o repositório.

# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
# apt-get update

Antes de instalar o pacote, remova o OpenJDK

# apt-get remove --purge openjdk-7-*
# apt-get install oracle-java8-installer


PPA WebUpd8-Team X Apt-Cacher-NG



Pesquisando em alguns sites com relação ao repositório WebUpd8, muitos relataram que o mesmo não funciona se for utilizado com o Apt-Cacher.
Consegui integrar o repositório no cache da seguinte forma. No Ubuntu, ele já utiliza o Apt-Cacher automaticamente. No Debian, precisa alterar as linhas do repositório adicionando o IP e a porta do serviço do Apt-Cacher.
Ex:
deb http://192.168.1.180:3142/ppa.launchpad.net/webupd8team/java/ubuntu trusty main
deb-src http://192.168.1.180:3142/ppa.launchpad.net/webupd8team/java/ubuntu trusty main

Edite o arquivo de configuração /etc/apt-cacher-ng/acng.conf e adicione a seguinte entrada.

#Caso você tenha adicionado o PPA do Java 8, adicione esta linha. Pois o Apt-Cacher não suporta o instalador da Oracle
DontCache: .*.oracle.com

Mas faça esta alteração antes de instalar o Java.


Funciona assim. O pacote oracle-java8-installer baixa o instalador compactado em .tar.gz onde o Apt-Cacher entende que ele é uma lista de pacote e não um instalador. O que causa o erro na instalação do pacote. Setando o parâmetro DontCache para todo site da Oracle, garantimos que o cache não vai manipular o arquivo, mas também não vai guardá-lo em cache. O que é um problema, já que o arquivo possui um tamanho de 153 MB.

Concordo que não é a melhor solução, mas foi a única que eu encontrei.
Outra opção seria usar o proxy HTTP (Squid) da própria rede para armazenar o download do instalador. É possível pois o Apt-Cacher manipula diretamente a source.list do APT, enquanto que o Squid armazena o conteúdo acessado por outros aplicativos, no caso todo o acesso feito via HTTP e FTP.


Considerações Finais


Agradeço a todos que acessaram e leram a publicação. Espero que como sempre, seja de grande ajuda.
Se não for muito incômodo, ajude a divulgar a postagem clicando no g+1. =D
Muito obrigado.


Referências






terça-feira, 27 de janeiro de 2015

Configurando um Servidor Proxy Squid com SquidGuard e Atualização de Blacklist no Ubuntu 14.10


Escrito por Francies Silva de Lima.
Olá a todos.


Hoje quero trazer mais um tema que foi um dos tópicos do meu trabalho de conclusão do curso técnico em redes de computadores, Servidor Proxy.
A abordagem deste assunto aqui vai ser mais simples. Pois o foco deste tutorial é para pequenos escritórios, servidores domésticos com fins acadêmicos. Mas nada impede de você melhorar as configurações e torná-lo mais robusto e adequá-lo as suas necessidades. Afinal, estamos tratando de um software livre.


O objetivo principal deste tutorial é:
  • Criar um servidor de cache para “acelerar” a navegação;
  • Filtragem de conteúdo indesejado;
  • Atualização da blacklist em poucos passos.


Vou utilizar o Ubuntu Server 14.10 rodando no VirtualBox e utilizando apenas 512 MB de RAM e 9 GB de HD para o laboratório.

Após a instalação do sistema, faço uma atualização geral como é de praxe.

# apt-get update && apt-get dist-upgrade -y


Após reiniciar o sistema, vamos ao que interessa. Como estamos falando de um servidor, é recomendando, pra não dizer obrigatório, fixar um endereço IP para o mesmo. Se você já sabe como fazê-lo, então faça-o antes de instalar os pacotes. Caso não saiba, veja o meu tutorial sobre o Samba4 que possui as instruções de como fixar o endereço IP e os endereços de DNS.


Instalando os pacotes



Vamos precisar dos pacotes para ativar o serviço de proxy com filtro de conteúdo no servidor. Então vamos instalá-los.

# apt-get install squid3 squidguard



Configurando o Servidor Proxy



Nesta etapa, vou mostrar uma configuração básica com ativação do cache de páginas e filtro de conteúdo.

Primeiro, vamos renomear o arquivo de configuração do Squid e vamos criar outro do zero.

# mv /etc/squid3/squid.conf /etc/squid3/squid.conf.original

Agora vamos criar um arquivo de acordo com a base abaixo.

# vim /etc/squid3/squid.conf



###Configuração básica do squid

http_port 3128
visible_hostname fcfsl #Nome do servidor
redirect_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf
redirect_children 10


###Configuração do Cache

#Tamanho total do cache na RAM
cache_mem 64 MB 

#Tamanho do maior arquivo em cache na memória
maximum_object_size_in_memory 64 KB 

#Tamanho do maior e do menor arquivo em cache no HD
maximum_object_size 128 MB
minimum_object_size 0 KB

#Quando o cache atinge o limite, estas duas opções excluem os arquivos mais antigos. 
#Evitando que o serviço pare.

cache_swap_low 90
cache_swap_high 95

#Tamanho total do cache em disco. No meu caso, 1 GB

cache_dir aufs /var/spool/squid3 1024 16 256 
cache_access_log /var/log/squid3/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280


#Configuração das regras de acesso

acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/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 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 Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT
acl redelocal src 192.168.1.0/24


#Validação das regras

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
http_access allow redelocal

http_access deny all



Ativando o Filtro de Conteúdo


Conforme a configuração acima, o tráfego de rede passa antes pelo SquidGuard. Mas para que ele funcione, é necessário incluir uma blacklist (lista negra). Mas antes disso, vamos desativar o serviço do Squid antes de começar a configurar o SquidGuard.

# service squid3 stop

A Blacklist funciona como uma base dados contendo vários sites que são classificados em categorias. E é baseado nestas categorias que o filtro trabalha. Pode-se filtrar uma grande variedade de conteúdos.
Exemplos: Jogos, redes sociais, pornografia, audio e vídeo, proxys anônimos, sites contendo conteúdos sobre violência e drogas.

Quanto maior a base da blacklist, maior é a quantidade de sites contidas nele. O Squidguard sugere 4 opções de blacklist de acordo com o link → http://www.squidguard.org/blacklists.html

A melhor de todas é a URLBlacklist.com, mas optei pela Shalla's Blacklist. A URLBlacklist tem limite de downloads por IP, o que pode ser um problema caso haja queda no download. Como eu tive esse problema, resolvi trocar. Mas nada impede de você tentar usá-la, assim como as outras opções disponíveis.

Link para download da blacklist → http://www.shallalist.de/Downloads/shallalist.tar.gz

Após descompactar o arquivo, será criada uma pasta BL. Dentro dela haverá subpastas, cada uma delas representando uma categoria de sites. Estas subpastas devem ser copiadas para o diretório db do SquidGuard.

# cp -R BL/* /var/lib/squidguar/db

Aplique as permissões na pasta para que o Squid e o SquidGuard possam acessar o seu conteúdo.

# chown -R proxy.proxy /var/lib/squidguard/db/*


Configurando o filtro de conteúdos

Agora vamos personalizar o filtro de conteúdo. Mas antes, renomeie o arquivo de configuração do SquidGuard para criarmos um novo.

# mv /etc/squidguard/squidGuard.conf /etc/squidguard/squidGuard.conf.original

Montei um arquivo de exemplo.

# vim /etc/squidguard/squidGuard.conf

dbhome /var/lib/squidguard/db
logdir /var/log/squidguard


src redelocal {
ip 192.168.1.0/24
}

src redewifi {
ip 192.168.0.0/24
}

dest internet {
}

dest pornografia {
domainlist porn/domains
urllist porn/urls
log squidGuard_blocks.log
}

dest spyware {
domainlist spyware/domains
urllist spyware/urls
log squidGuard_blocks.log
}

dest warez {
domainlist warez/domains
urllist warez/urls
log squidGuard_blocks.log
}

dest anonvpn {
domainlist anonvpn/domains
urllist anonvpn/urls
log squidGuard_blocks.log
}

acl {
default {
pass !pornografia !spyware !warez !anonvpn internet
redirect http://www.google.com.br
}
}

Traduzindo a linha pass, quero dizer o acesso à internet pode ser feito mas que sites pornográficos, com spyware, warez e vpns anônimas sejam bloqueadas e o acesso seja redirecionado para o site do Google.

Após salvar o arquivo, vamos ativar a base de dados da blacklist. Com este comando abaixo, o squidguard lê a lista de domínos e urls cadastradas e gera os arquivos domains.db e urls.db de cada categoria que setamos no arquivo de configuração.

# squidGuard -d -b -P -C all

Em caso de erros, ele mostra a linha onde está o erro e desativa o SquidGuard e trava o terminal, precisando usar CTRL+C para sair. Verifique a saída do log de erro para efetuar as devidas correções.

Você pode cadastrar mais categorias, basta visualizar o conteúdo do diretório /var/lib/squidguard/db/

Concluindo com sucesso o comando anterior, basta ativar novamente o Squid e testar as funções ativadas.

# service squid3 start

Configure as opções de proxy do navegador com o endereço IP e a porta escolhida. No meu caso seria:
Endereço: 192.168.1.190
Porta: 3128


Informações adicionais



Submetendo sites ao serviço de Blacklist


Sabemos que por maior que seja uma blacklist, também devemos levar em conta que milhares de sites são criados diariamente, principalmente pornográficos. E com isso, a blacklist que escolhemos pode não ter na lista o site que queremos bloquear.

Mas existe uma maneira de ajudar o provedor da blacklist que é sugerindo o cadastro de sites em sua base de dados. Eu escolhi a Shalla's Blacklist como base para este laboratório, e no site da mesma há o recurso de submissão de sites pelo seguinte link: http://www.shallalist.de/submissions.html

Nesta página você pode sugerir a adição, remoção e realocação de sites para as categorias disponíveis. É possível até sugerir uma nova categoria. Mas é claro que o site se reserva ao direito de avaliar as propostas, aceitando-as ou não. Então, escreva o link do site corretamente, sem o http:// ou https://, selecionar a categoria a qual ele se encaixa e submetê-lo.


Atualizando a Blacklist


Uma base de dados que não é atualizada, acaba ficando obsoleta e sem utilidade com o tempo. Um exemplo disso são os softwares antivírus que se não forem atualizados, como vão manter o sistema a salvo de novas ameaças ?

Como citado anteriormente, novos sites são criados diariamente. Deste modo, precisamos atualizar constantemente a nossa blacklist.
Antigamente, essa atualização era feita manualmente. A cada novo site acessado por um usuário no local de trabalho que não era permitido, era adicionado em um arquivo de texto que era lido pelo Squid. Mas esse método era bastante cansativo, demandava tempo e paciência para estudar os relatórios de acesso do Squid. Fora que o administrador de rede tem outras funções além de ficar monitorando o acesso ao servidor.
Com o surgimento de ferramentas como o Dansguardian e o SquidGuard, o serviço de filtro de conteúdo vem facilitando bastante o trabalho de quem apenas quer bloquear ou permitir sites por categorias, sem precisar inserir os domínios um a um.

Após fazer algumas pesquisas, resolvi criar um script para automatizar a atualização da blacklist. Ele pode ser adaptado para atualizar outras blacklists.

Nomeei arquivo como updateblacklist.sh

#!/bin/sh

cd /tmp

wget -c http://www.shallalist.de/Downloads/shallalist.tar.gz -O BL.tar.gz

tar -zxf BL.tar.gz
cd BL
rsync -a . /var/lib/squidguard/db/
service squid3 stop
squidGuard -d -b -P -C all
chown -R proxy.proxy /var/lib/squidguard/*
service squid3 start
cd /
rm -rf /tmp/BL*

Desta forma, consegui reduzir o tempo de atualização da blacklist. Caso você queira que atualize automaticamente, utilize o cron para agendar a execução do script em uma determinada hora.


É possível aumentar o desempenho do Squid ?


Essa foi a pergunta que eu mais encontrei nos fóruns sobre fazer cache com o Squid. Lembrando que a performance do servidor depende de alguns fatores importantes:

Velocidade de throughput (largura de banda real) das conexões dos discos rígidos, Hds, com a placa mãe. Os discos e a placa mãe são SATA I, II, III, SCSI, SAS ?
Quantidade de memória RAM do servidor.
Um arquivo de configuração bem escrito e otimizado.

Sabemos que é possível reaproveitar hardware antigo utilizando Gnu/Linux. Mas em qual contexto realmente devemos reaproveitar este equipamento “obsoleto” ?

No caso de um servidor proxy com vários acessos simultâneos, fica inviável você usar uma máquina antiga com Hds IDE ou SATA I com anos de uso. Com certeza o acesso ficará lento com o tempo e estes discos não vão aguentar o tranco ao ponto de deixar o administrador de rede na mão.

Também não podemos esquecer da placa de rede. Uma coisa é usar uma placa Fast Ethernet (10/100 Mbps) em uma rede com poucos computadores, e outra é usar essa mesma placa de rede para servir uma rede com 30, 50, 100 ou 200 computadores, incluindo dispositivos móveis.
Nesse caso, você acha que uma placa Realtek xing-ling vai dar conta do recado ?
Se você não quer gargalos na sua rede, pense pelo menos em equipar o servidor com uma placa de rede que aguente o tranco.

Quanto maior a importância do serviço de rede, maior é a preocupação com a qualidade do hardware que será utilizado. Então pense bem antes de ativar um servidor proxy num Celeron com 1GB de RAM, 80 GB de HD IDE ou SATA I e placas de rede de péssima procedência.

Em se tratando de servidores, sempre digo que memória nunca é demais. Ainda mais que as memórias estão mais baratas do que antigamente. Então vale a pena colocar 4 GB de RAM num servidor proxy. Aumentando o cache de memória para 2 GB e o tamanho dos objetos (arquivos) de 64 KB para 512 ou 1024 KB, por exemplo. Com isso, já dá pra acelerar bastante o serviço, já que a memória RAM é mais rápida que o HD. E quanto maior o cache RAM, mais páginas podem ser armazenadas nela.
Falo que dá até pra iludir o usuário fazendo ele pensar que o link aumentou. Mas o que acontece é que se você acessa os mesmos sites várias vezes ao dia, o cache só verifica o que mudou no site. Se a atualização não for grande, então o site carrega mais rápido e utiliza menos o link de internet.

Após algumas pesquisas, também descobri que é possível melhorar a performance do cache dividindo-o em pequenas partes em vez de usar uma única pasta.

Nas configurações do Squid usadas neste laboratório, usei apenas um cache de 1 GB.

cache_dir aufs /var/spool/squid3 1024 16 256

Usando o exemplo que eu encontrei, a configuração ficaria desta forma:

cache_dir aufs /var/spool/squid3/1/ 256 16 256
cache_dir aufs /var/spool/squid3/2/ 256 16 256
cache_dir aufs /var/spool/squid3/3/ 256 16 256
cache_dir aufs /var/spool/squid3/4/ 256 16 256

Com isso, o cache ficou dividido em partes de 256 MB que vão trabalhar de forma paralela, pelo menos é o que citaram nos fóruns. As sub-pastas 1, 2, 3 e 4 terão de ser criadas e não esqueça de trocar o dono das pastas de root para proxy.

# chown -R proxy.proxy /var/spool/squid3/*

Utilizei apenas 1 GB do HD mas o mesmo conceito funciona com 10, 50 ou 100 GB. Depende do que você vai disponibilizar para o cache.


Outra forma de melhorar o serviço é adicionando os endereços de DNS diretamente no arquivo de configuração do Squid com a diretiva “dns_nameservers”. Pois, sempre que o Squid precisa consultar o DNS, ele dá uma pequena parada. E quanto maior a quantidade de acessos, maior será esse delay.

dns_nameservers 8.8.8.8 8.8.4.4


Também podemos ajudar o Squid a fechar as conexões TCP que não estão mais em atividade. As portas TCP para comunicação externa (internet), possuem um número limitado. Numa empresa com 10 máquinas não é tão perceptível, mas em uma empresa com 300 estações e todas com acesso à internet, pode se tornar um gargalho.
Para solucionar esta questão, utilizamos a diretiva half_closed_clients”. O Squid não tem como detectar se o cliente terminou de transmitir/receber os dados de um site qualquer no exato momento que o usuário fechou o aplicativo. Isso demanda alguns segundos. Com a diretiva acima, no momento que o cliente parar de transmitir/receber os dados e ficar ocioso, ele encerra a conexão e libera as portas de serviço TCP para outros, otimizando os recursos da melhor forma.

half_closed_clients off

Nas minhas pesquisas vi uma frase comum nos fóruns: “O Squid é um devorador de RAM.” E isso é um fato. Realmente, ele demora para “liberar” a memória que não está sendo utilizada para o sistema operacional, mesmo quando seu uso não é tão alto.
Outra diretiva que ajuda nessas situações é a “memory_pools” que força o Squid a devolver parte da memória não utilizada para o sistema. Mesmo que não seja muito em algumas situações, mas é bem melhor do que usar a memória Swap.

memory_pools off