quarta-feira, 21 de setembro de 2016

Exemplo de uma configuração real do Squid

Abaixo um trecho de uma configuração real do Squid. As linhas estão numeradas para podermos descrever o que cada uma faz.


  1. acl transito time 05:00-09:00
  2. acl cameras dstdomain -i '/etc/squid3/cameras.lst'
  3. acl CONNECT method CONNECT
  4. acl site_proibido dstdomain -i '/etc/squid3/site_proibido.lst'
  5. acl url_proibida url_regex -i '/etc/squid3/url_proibida.lst'
  6. acl ip_suporte src 172.20.120.0/24
  7. acl ip_liberado_dropbox src 172.20.250.50
  8. acl ip_liberado_dropbox src 172.20.80.7
  9. acl ip_liberado_dropbox src 172.20.30.27
  10. acl ip_liberado_4shared src 172.20.110.4/31
  11. http_access deny cameras !transito
  12. http_access deny site_proibido !ip_suporte !ip_liberado_dropbox !ip_liberado_4shared
  13. http_access deny url_proibida !ip_suporte !ip_liberado_dropbox
  14. http_access deny CONNECT site_proibido !ip_suporte
  15. http_access deny CONNECT url_proibida !ip_suporte

Na linha 11 nos bloqueamos (deny) o acesso aos sites da ACL “cameras” (relação de câmeras espalhadas pela cidade e que geram muito tráfego no link) menos (!) no horário das 05:00 até as 09:00. Essas câmeras são usadas pelo telejornal do canal de televisão onde trabalho.

Na linha 12 estamos bloqueando (deny) o acesso aos sites listados na ACL “site_proibido”, menos para a VLAN listada nas ACL “ip_suporte” e para as estações listadas nas ACL ip_liberado_dropbox e ip_liberado_4shared.

Na linha 13 estamos bloqueando (deny) o acesso às URLs que contém as regex listadas na ACL url_proibida, menos para a VLAN do suporte (ip_suporte) e para as estações listadas na ACL ip_liberado_dropbox.

Na linha 14 e 15 estamos bloqueando conexões aos sites site_proibido e url_proibida, menos para a VLAN do suporte. Esse tipo de bloqueio (CONNECT) deve ser feito para sites seguros (HTTPS), visto que, devido a criptografia, o Squid não consegue verificar dentro do pacote se há algum tipo de conteúdo impróprio.

Bem, agora que você já entendeu o jeitão do Squid, aqui vai uma dica: tente deixar o arquivo squid.conf o mais simples possível, pois quanto mais regras existirem, mais difícil será identificar em qual delas está sendo bloqueado o acesso.

segunda-feira, 19 de setembro de 2016

Especificando mais de um objeto em uma ACL do Squid

Se você precisar (vai precisar) especificar mais de uma site em uma ACL, é só usar o parâmetro “-i”. 

acl sites_liberados dstdomain -i ‘/etc/squid3/sites_liberados.lst’

http_access allow sites_liberados

Agora criamos o arquivos /etc/squid3/sites_liberados.lst com os sites que queremos incluir nesta ACL, como no exemplo abaixo.

uol.com.br

google.com
google.com.br

Agora basta reiniciar o Squid e todos os sites estarão liberados. Podemos criar, com isso, categorias de sites e fazer as liberações baseadas nessas categorias. Aliás, antes de partirmos para configurações mais avançadas, precisamos decidir que tipo de política iremos adotar no proxy. Basicamente temos 4 tipos:

Tudo liberado, menos os explicitamente bloqueados. Dependendo do tipo de empresa em que você trabalha, você vai ter que deixar todos os sites liberados e ir bloqueando os acessos a medida que eles aparecem. O problema dessa abordagem é que gasta-se muito tempo analisando logs de acesso e entrando em sites para ver se seu conteúdo é ou não permitido. 

Tudo bloqueado, menos os explicitamente liberados. Em empresas que possuem uma política menos permissiva, bloquear todos os acessos e ir liberando a medida que os usuários forem solicitando pode ser a melhor opção. Porém, isso gera um grande estresse, principalmente no começo, quando uma enorme quantidade de solicitações de liberações de sites surgem. Imaginem ter que liberar site a site em uma pesquisa no Google!

Bloqueios e liberações por categorização dos sites. A idéia desta abordagem é ter uma equipe (ou empresa terceirizada) para categorizar todos os sites. Algumas categorias comuns seriam: redes_sociais, portais, notícias, sexo, namoro, webmail, stream, videos, etc. Dessa forma você pode liberar e bloquear sites por categoria. Lembrando que sites sem categoria, geralmente, devem ser bloqueados. Essa abordagem tem como inconveniente ter uma equipe bem treinada para categorizar os sites, ou confiar na categorização feita por empresa terceirizada. 

Filtro dinâmico. Essa abordagem envolve um mecanismo que analisa todo o site e, de acordo com critérios pré-estabelecidos, pontua a página. Por exemplo, se achar a palavra “sexo” soma 50 pontos; achando um palavrão soma mais 30. Se o site atingir uma determinada pontuação o site é bloqueado automaticamente. Isso permite que se libere sites como Facebook bloqueando os perfis impróprios. O único inconveniente dessa abordagem é a possibilidade de surgirem falsos-positivos, o seja, um site válidos ser classificado como indevido. 

O ideal é utilizar as 4 políticas, tendo sites explicitamente bloqueados e liberados, categorização de sites e filtros dinâmicos. Veremos isso nos próximos posts.

quinta-feira, 15 de setembro de 2016

Dando os primeiros passos com Squid

Quem começa a mexer com Squid logo sente dificuldade para entender o jeito de configurá-lo. O Squid trabalha com ACL (Access Control List). Encare as ACLs como os personagens que farão parte do Squid. Para liberar um acesso a um site eu preciso criar uma ACL para o site, bem como para as máquina que terão acesso a ele. A forma de especificar uma ACL é a seguinte:

acl nome tipo valor

No port anterior criamos uma ACL chamada "all" que é do tipo src e possui valor 0/0. Abaixo eu descrevo os principais tipos de ACL usadas no Squid.


  • src - IP, intervalo de IP, ou rede de origem (172.20.120.4, 192.168.0.0/16, 10.0.0.1-10)
  • dst - IP, intervalo de IP, ou rede de destino
  • dstdomain - domínio (uol.com.br, blogspot.com, etc)
  • time - data e horário (12:01-13:00 : horário de almoço)
  • url_regex - expressão regular encontrada na URL (fazenda.[a-z][a-z].gov.br) 
  • port - porta usada pelo site (80,81,8080)
  • proto - protocolo usado (FTP, HTTP)


Assim, podemos criar regras misturando as ACL. Por exemplo, para liberar o acesso ao Facebook para a rede 10.0.100.0/24 podemos usar as seguintes linhas no arquivo /etc/squid3/squid.conf.

http_port 3128
acl all src 0/0
acl rede_interna src 10.0.100.0/24
acl facebook dstdomain facebook.com
http_access allow rede_interna facebook
http_access deny all

Com as regas acima liberamos o acesso ao domínio facebook.com (mas não ao facebook.com.br) somente para a rede 10.0.100.0/24. Os demais sites estão bloqueados para todos.

terça-feira, 13 de setembro de 2016

Instalação e configuração inicial do Squid

Dando sequência ao assunto do último post, primeiramente temos que instalar o Squid. Não precisa ser no gateway de rede, mas geralmente as pessoas configuram assim. A última versão é a 3, e ela contém algumas mudanças em relação aos parâmetros de configuração da versão anterior. 

# apt-get install squid3

Ao ser instalado, o Squid cria um “pequeno” arquivo de configuração em /etc/squid3/squid.conf. Não se espante com suas 5780 linhas. Embora o Squid tenha muitos recursos, seu arquivo de configuração original também é seu arquivo de documentação. Portanto é recomendado salvar o arquivo original e criar um novo. Primeiro, vamos renomear o arquivo original.

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

Agora, vamos criar um novo arquivo /etc/squid3/squid.conf com o seguinte conteúdo:

http_port 3128
acl all src 0/0
http_access allow all

A primeira linha diz a porta que o Squid ouvirá. A padrão é 3128. A segunda linha contém uma ACL (access control list). Encare as ACLs como os personagens do Squid. O nome da ACL é “all” e é do tipo “src”, ou seja, ip de origem. O parâmetro “0/0” significa qualquer ip. A última linha contém uma http_access, que são onde realmente são permitidos (allow) ou negados (deny) os acessos. Aqui nós estamos permitindo (allow) a qualquer ip (all) acessar qualquer coisa, visto que não especificamos mais nada. 

Agora basta reiniciar o Squid.

# service squid3 force-reload

Neste momento, basta configurar o navegador para usar o proxy, como no print abaixo, alterando o ip conforme a tua rede.




Isso basta para que a navegação passe pelo proxy. Mas não se preocupe com os detalhes, pois vamos entender melhor a configuração do proxy e fazer algumas personalizações nas próximas postagens.

sexta-feira, 9 de setembro de 2016

Introdução ao Squid e Dansguardian

Não adianta aumentar o link de Internet! Seus usuários sempre vão dar um jeito de consumir toda a banda disponível. Se for dia de jogo do Brasil então, esqueça. Você até pode monitorar os acessos com algumas ferramentas que já citei aqui, mas como bloquear um stream de video do Youtube sem bloquear todo o site? Há duas formas: 

  • a) mande embora quem está acessando o conteúdo indevido;
  • b) configure um proxy na rede.


Proxy é um gateway, um sistema que pode analisar todas as camadas do pacote de rede e tomar ações baseadas em regras preestabelecidas. Há muitos tipos de proxy para os mais diversos protocolos, mas o mais comum é o proxy de navegação web, e o proxy web mais utilizado no mundo Linux (e talvez o mais usado em todas as plataformas) é o Squid.

Squid

O Squid pode bloquear sites baseado em:

  • domínio;
  • url;
  • expressões regulares;
  • usuário;
  • ip de origem;
  • ip de destino;
  • dia da semana;
  • hora;
  • tipo de arquivo;
  • tamanho;
  • extensão de arquivo;
  • muitos outros ítens.


Esses ítens podem ser combinados para, por exemplo, permitir que determinado usuário acesse um site em especial somente no horário de almoço. Além disso, o Squid também pode fazer cache dos sites visitados aumentando a velocidade da Internet do ponto de vista do usuário, pois economiza o link. E como se isso não bastasse, há várias ferramentas que podem ser integradas ao Squid de forma fácil, ampliando suas funções.

Nos próximos posts eu vou falar como instalar e configurar o Squid, como personalizá-lo, como fazer acesso autenticado, entre outras coisas. Depois vou falar um pouco do Dansguardian, um filtro de conteúdo dinâmico.

Até lá. 

sexta-feira, 2 de setembro de 2016

Procurando arquivos com Kfind

O ambiente KDE do Linux tem uma aplicação que facilita a procure por arquivos. É o Kfind.


Através de uma interface gráfica é possível pesquisar por tipo de arquivo, por tamanho, data de criação, data de modificação, dono do arquivo, programa que o criou, e até pelo conteúdo dentro do arquivo. Uma mão na roda.

Se você use o Kde, já deve conhecer o Kfind. Senão, instale-o com:


apt-get install kfind


*Artigo anteriormente publicado em  24 de outubro de 2012. Corrigo e atualizado.

quarta-feira, 10 de agosto de 2016

Mudando a tela de login do Debian 8

Você pode mudar aquela tela de login padrão do Debian 8.


Quem controla essa tela é o Display Manager (DM). Há vários DMs disponíveis no Linux, como o GDM, XDM, KDM, LightDM, entre outros. Para alterar a tela de login para o KDM basta instalar o pacote correspondente. 

# apt-get install kdm

Após a instalação uma tela irá perguntar qual DM você vai querer usar.


Basta escolher o KDM e reiniciar o computador. Agora uma tela de login semelhante a esta será apresentada.



Se quiser voltar para o GDM basta alterar o arquivo /etc/X11/default-display-manager. Altere...

/usr/sbin/gdm3

para...

/usr/bin/kdm

segunda-feira, 8 de agosto de 2016

Telas gráficas em script Bash usando Kdialog

Há várias formas de deixar teus scripts Bash com uma cara mais amigável. Uma delas é usando um programa chamado Kdialog.



Kdialog tem telas gráficas para a maioria das funções Bash. No exemplo acima eu uso uma tela do Kdialog para perguntar ao usuário de devemos continuar ou não. O comando é o seguinte:

$ kdialog --yesno "Continuar?"

Depois é só testar a variável $?. "0" significa "Sim" e "1" significa "Não".

Outras telas de exemplo:


























Para usar o Kdialog é necessário instalar o pacote kde-baseapps-bin com o comando abaixo.

# apt-get install kde-baseapps-bin

Para ver as opções do Kdialog e como utilizá-las execute:

$ kdialog


segunda-feira, 1 de agosto de 2016

O que aconteceu com a Linux Magazine?

Durante alguns anos a melhor revista sobre Linux era a Linux Magazine.


Bom contéudo, boas matérias, sempre trazia novidades. Um dia até fui convidado para escrever no blog do site da revista. Para mim foi uma honra! Escrevia sobre redes duas ou três vezes por semana, e de graça.

Comecei a achar estranho quando a revista começou a sumir das bancas. Tive que passar a comprar pelo site, exemplar digital. Um dia comprei um livro de LPI e a Linux Magazine não me entregou. Entrei em contato com o site, mas nada. Acabei apelando para os contatos que tinha lá, disse que era colaborador da revista, que já tinha comprado outros livros, mas nada de solução. Depois de um mês de atraso parei de escrever no blog prá ver se alguém me procurava, mas nada! Ninguém me ligou nem mandou um e-mail. Depois de 2 meses recebi o reembolso. Fiquei sabendo que a revista foi vendida para outra editora pouco tempo depois, mas até agora não lançaram nada. 

Parei com o blog. Deixei prá lá, esqueci. Não achei mais a revista, uma pena! Até que um dia fui mostrar meu blog na revista para uns alunos e me deparei com a seguinte mensagem:



Tentei pelo Chromium e recebi uma mensagem parecida.


Resolvi apagar todas as minhas publicações do site. Deixei apenas uma postagem perguntando o que aconteceu com a revista. Mesmo após alguns dias ninguém me procurou!

O endereço do site é http://linuxnewmedia.com.br/.

O que aconteceu com a revista Linux Magazine?

quinta-feira, 28 de julho de 2016

Pacote de aplicações para KDE

Já que falei do KDE no último poste vou continuar o assunto falando de um conjunto de aplicativos para KDE que vem junto com o pacote kdepim. O pacote kdepim comtém os seguintes programas, entre outros.

Akregator - Agregador de notícias via RSS



Blogilo - Gerenciador de blog (com suporte ao Blogspot e Wordpress).



Kalarm - Gerenciador de alarmes



Kmail - Cliente de e-mail



kontact - É um agregador de todos os aplicativos acima. É parecido com o Outlook.



Para instalar esse aplicativos basta executar, como root, o seguinte comando.

# apt-get install kdepim




quarta-feira, 27 de julho de 2016

Ambiente gráfico KDE em português

Um dos ambientes gráficos mais populares no mundo Linux é o KDE.


O KDE é muito bonito e tem muitos recursos, porém não vem por padrão no Debian. Para instalá-lo, basta executar o comando abaixo.

# apt-get install kde-workspace-bin kde-i18n-ptbr

Esse comando vai instalar o KDE e seu pacote de idiomas Português do Brasil.

Ao ser perguntado sobre o Display Manager, pode escolher a opção padrão. Mas se quiser conhecer, escolha KDM. Agora dê boot no computador e experimente esse maravilhoso abiente de trabalho.

terça-feira, 26 de julho de 2016

Olonca Live CD 2016 - Bandit

Desde 2010 eu venho mantendo um Live CD personalizado baseado em Debian e que uso para manutenção e demostração. A versão 2016 acaba de ficar pronta e faz uma homenagem ao Bandit, cachorro de estimação do Jonny Quest, desenho animado que fez muito sucesso aqui no Brasil nos anos 80.



Essa versão funciona com 800 Mb de RAM e CPU 64 bits. Se quiser instalar no disco deverá contar com pelo menos 16Gb de espaço livre. Possui kernel 3.16.

Os seguintes programas estão disponíveis na distro:

Ambientes gráficos
Afterstep 2.2
Blackbox 0.70
Cairo Dock 3.4
Cinnamon 2.2
Gnome 3.14
Lxde 7.2
Openbox 3.5
Window Maker 0.95

Ferramentas de escritório
Dia 0.97
Gimp 2.8
Inkscape 0.48
Libreoffice 4.3
Wine 1.6

Internet
Chromium 51.0
Dropbox 2015.10.28
Evolution 3.12
Filezilla 3.9
Firefox 45.2
Miredo 1.2
Torsocks 2.0

Jogos
Alex4 1.1
Antigravitaattori 0.0.3
Armagetronad 0.2
Balazar3 0.1-10
Extremetuxracer 0.4
Supertux 0.1

Multimedia
Amarok 2.8
Audacity 2.0
Banshee 2.6
Brasero 3.11
Clementine 1.2
Rhythmbox 3.1
Totem 3.14
Vlc 2.2
Xine 0.99
Xmms2 0.8
Xsane 0.998

Segurança
Clamav 0.99
Dsniff 2.4b1
Fail2ban 0.8
Nikto 2.1
Portsentry 1.2
Spamassassin 3.4
Wireshark 1.12

Servidores
Apache2 2.4
Arpwatch 2.1a15
Bind9 9.9
Darkstat 3.0
Fwbuilder 5.1
Icecast2 2.3
Mysql 5.5
Mytop 1.9
Openvpn 2.3
Owncloud 7.0
Postfix 2.11
Pptpd 1.4
Radvd 1.8
Samba 4.2
Sendemail 1.56
Shellinabox 2.14
squid3 3.4
Webmin 1.801




MD5: 540ddd78857a791b92e5b4de09f214b8 

quinta-feira, 14 de julho de 2016

sexta-feira, 13 de maio de 2016

Calculadora no Linux

O Linux possue várias calculadoras para as mais variadas tarefas. A que eu mais uso é o Kcalc.


Além de calculadora normal, o Kcalc também pode ser uma calculadora científica, estatística e para conversão de sistemas numéricos.


Ele ainda trás algumas funções especiais, como os números PI, de Euler, Constante de Plank, etc.



O Kcalc faz parte do ambiente gráfico KDE, mas pode ser instalado em qualquer ambiente através do gerenciado de pacotes da tua distribuição. No Debian e derivados basta utilizar o apt-get.

# apt-get install kcalc

quinta-feira, 12 de maio de 2016

Configure o teclado no terminal texto com kdb-config

Kbd-config é um programa incluído no pacote Console-common. Com ele você pode configurar o idioma e o mapa de caracteres do teclado no terminal texto.

Como root, digite:

# kbd-config

A seguinte tela será mostrada.


Escolha a primeira opção, "Selecionar mapa de teclado da lista de arquiteturas".



Agora escolha "qwerty".


 Escolha o layout do teclado. Aqui no Brasil, usamos "Brazilian". Se você estiver com um teclado sem "ç", use "US American".


Deixe o padrão e escolha "Ok". Agora teste se teu teclado está configurado corretamente.

* Artigo anteriormente publicado no dia 22/07/2013


sexta-feira, 6 de maio de 2016

Editor de textos Kate

O Kate é um editor de texto ao estilo Notepad++. Ele reconhece os mais variados tipos de arquivo e os identa de maneira que facilita a compreensão. Eu o uso para criar arquivos deconfiguração e scripts bash, perl e php. 


Também é possível editar e comparar vários arquivos ao mesmo tempo.


 O Kate é a minha primeira opção quando preciso editar algum arquivo texto, como script e arquivos de configuração. Ele está presente na maioria das repositórios das distribuições Linux e vem junto com o KDE. Caso a tua distribuição Linux não tenha o Kate instalado você pode instalá-lo pelo apt-get.

# apt-get install kate


quinta-feira, 5 de maio de 2016

Moovida, mais uma opção de Central Multimidia

Já mostrei alguns programas que podem ser usados como Central Multimidia, como o Xbmc/Kodi e o BoxeeBox. Agora venho mostrar o Moovida.


Moovida é mais leve que os outros dois e tem uma interface mais enxuta, porém não tem tantos recursos. Mas ainda sim é um boa opção para montar a tua Central Multimidia.

O Moovida está disponível na maioria dos repositórios das distribuições. No Debian e derivados pode-se instalar via apt-get.

# apt-get install moovida

sexta-feira, 29 de abril de 2016

Kaffeine, o tocador de midias do KDE

No Linux existem vários aplicativos para ouvir música e assistir vídeos. O Kaffeine é o player padrão do ambiente KDE, mas pode ser instalado em qualquer ambiente gráfico.


O Kaffeine tem muitos recursos e é bem intuitivo. Para instalá-lo basta usar o gerenciador de pacotes da tua distribuição. Nas distros derivadas do Debian basta digitar, como root, o comando abaixo na linha de comandos.

# apt-get install kaffeine



quarta-feira, 20 de abril de 2016

Gravação de CD e DVD com K3b

Enquanto todos usavam o Nero ou CD Burn para gravar CD e DVD eu já utilizava no Linux o K3b. 


Completo e com várias módulos que podem ser adicionados (como um que torna um CD/DVD de video bootável tornando possível assistir ao video independente do sistema operacional e livre de codecs), o programa pode gravar imagens ISO para o CD/DVD e também pode criar imagens ISO, verificar o MD5, copiar CD/DVD, entre muitas outras coisas.


Para queimar um CD basta selecionar o arquvo ISO e clicar e Start. Você pode controlar a velocidade de gravação (quanto mais lento menor a chance de erro), especificar quantos CD/DVD vai gravar, pode comparar o disco gravado com a imagem ISO orginal, etc.


O K3b faz parte do KDE, mas pode ser instalado com o apt-get.

# apt-get install k3b


terça-feira, 19 de abril de 2016

Fazendo join de arquivos texto

Vamos supor que você tenha dois arquivos como os listados abaixo

$ cat nomes.txt
nome:idade:endereco
renato:41:avenida tal
ricardo:40:rua tal
rodrigo:38:alameda tal
walter:35:chacara tal

$ cat cursos.txt
curso:nome
teste:pedro
oab:renato
lpi:ricardo
fisio:rodrigo

Agora precisamos juntar esses dois arquivos linha a linha de forma que cada pessoa esteja associada com o seu curso.  O comando join faz esse trabalho.

$ join nomes.txt cursos.txt -t: -1 1 -2 2
nome:idade:endereco:curso
renato:41:avenida tal:oab
ricardo:40:rua tal:lpi
rodrigo:38:alameda tal:fisio

Neste comando:

  • "-t:" diz que o separador de coluna é o caracter ":".
  • "-1 1" diz que no primeiro arquivo (-1) deverá ser usado o primeiro campo (1) como referência.
  • "-2 2" diz que no segundo arquivo (-2) o campo referência é o segundo (2).


Reparem que só são mostrados os registros que existem nos dois arquivos. A única exigência é que os arquivos estejam indexados pelo campo referência, algo que pode ser feito com o comando sort.