Desvendando o Mundo do GNU/Linux Headline Animator

quarta-feira, 30 de janeiro de 2013

Configurando o Servidor DNS


Configurando o Servidor DNS


Ouvimos com frequência que o sistema de DNS é maior base de dados do mundo. Realmente é, mas existe uma diferença fundamental entre o DNS e um sistema de banco de dados tradicional, como por exemplo, um servidor MYSQL usado por um servidor WEB, que é o fato do DNS ser uma base de dados distribuída.

No topo da cadeia dos domínios temos os root servers, que são 14 servidores espalhados pelo mundo cuja função é responder a todas as requisições de resolução de domínio.

Ao contrário do que muita gente pensa um nome de domínio é lido da direita para esquerda. Temos os domínios primários ( Top level domains, ou TLD), como o .com, .net, .info, .cc, .biz, etc..., e, em seguida , os domínios secundários ( country code TLD, ou ccTLD ), que recebem o prefixo de cada país, como .com.br, .net.br, nesse caso o “com” é um subdomínio do domínio “br”.

Embora seja totalmente imperceptível, todo nome de domínio termina com um ponto, que representa o domínio raiz. Quando um dos root servers recebe um pedido de resolução de domínio, ele encaminha a requisição aos servidores da entidade responsável pelo TLD do qual ele faz parte. Eles, por sua vez, encaminham a requisição ao servidor DNS responsável pelo domínio, que finalmente envia a resposta ao cliente.

Ao acessar o endereço “google.com.br”, o cliente começaria enviando a requisição ao servidor DNS informado na configuração da rede ( o DNS do provedor ). A não ser que tenha a informação em cache, o servidor consulta um dos root servers, perguntando: “quem é o servidor responsável pelo domínio google.com.br?”.

O root server responde que não sabe, mas verifica qual o servidor responsável pelos domínios “.br”, e orienta o cliente a refazer a pergunta, dessa vez a um servidor da entidade correspondente. Esse processo pode envolver mais um ou dois servidores, mas, eventualmente, o cliente chega ao servidor DNS do responsável pelo site que finalmente fornece o IP do servidor ao cliente.

74.125.234.120  <-------- www <-------- google <-------- com <--------- br <------------- .
( endereço IP )         (subdomínio)    (Servidor     (subdomínio)      ccTLD               Raiz
                                                             DNS                                     (resgistro.br)      (root servers)
                                                             responsável pelo site)
         
       

Configurando o Bind

O servidor DNS mais usado do Linux é o Bind, que aprenderemos a configurar a seguir, você pode optar por instalá-lo no mesmo servidor onde o Apache estar, mas do ponto de vista da segurança não é uma boa ideia, pois o ideal é que sejam utilizados servidores separados ou usar chroot, onde o próprio Bind é executado em um ambiente separado, sem ter acesso aos demais arquivos do sistema.

Instalação

Para instalar o Bind, você primeiramente deve procurar pelos pacotes “bind” ou “bind9” no gerenciador de sua distribuição. Nas distribuições derivadas do Debian a versão recomendada é o “Bind9”.

# apt-get install bind9

No CentOS

# yum install bind

O principal arquivo de configuração do Bind fiva em: “/etc/bind/named.conf”, por padrão ele já vem configurado com servidor de cache. Dentro do arquivo de configuração você encontra entradas como essas:

    zone  “.” {
         type  hint;
         file “/etc/bind/db.root”;
    };

    zone  “localhost” {
         type master;
         file “/etc/bind/db.local”;
    };

    zone “127.in-addr.arpa” {
         type master;
         file “/etc/bind/db.127”;
    };

     zone “0.in-addr.arpa” {
         type master;
         file “/etc/bind/db.0”
    };

     zone “255.in-addr.arpa” {
         type master;
         file “/etc/bind/db.255”;
    };

Como pode-se observar cada uma das seções indica a localização de um arquivo, onde vai a configuração referente a ela. Por exemplo:
Na primeira seção (zone) é indicado o arquivo “/etc/bind/db.root”, que contém os endereços dos 14 root servers, que o bind irá contatar na hora de fazer a resolução dos domínios.

Se tratando CentOS 5 há uma exceção onde, os arquivos de configuração do Bind não são instalados junto com o pacote, então é necessário que você faça a configuração manualmente, como em:

# cp -r /usr/share/doc/bind-9.?.?/sample/etc/* /etc
# cp -r usr/share/doc/bind-9.?.?/sample/var/named/* /var/named/

Para concluir, o serviço referente ao Bind pode se chamar “bind” ou “named”, dependendo da distribuição.

Para restartar o serviço pelos derivados do Debian:

# /etc/ini.d/bind9 restart

ou

# /etc/init.d/bind restart

Para restartar o serviço pelos derivados do RedHat:

service named restart

quarta-feira, 15 de agosto de 2012

Ligando e desligando seu Linux automaticamente

Por: Fagner Oliveira
Um das coisas que mais comuns na informática é quando colocamos nosso PC para “trabalhar pra nós”. Isso é tão comum e tão usado que as vezes nem percebemos que isso acontece. Quer um exemplo? O ambiente de desktop que você está utilizando agora. O fato de clicar com o mouse em um ícone e abrir um programa ou aplicação é na verdade “um atalho humano” para uma série de comandos via terminal que estão sendo executados em segundo plano.
A dica de hoje tem o objetivo de automatizar um pouco mais a sua vida:
Imagine chegar em casa todo dia e seu PC já estar ligado e pronto para ser usado, sem precisar deixá-lo ligado durante o tempo que estiver fora? Seria legal né? Para esta e outras infinitas finalidades que você possa pensar, hoje vamos lhe apresentar a ferramenta rtcwake.
Ele é um utilitário de linha de comando que está presente nas principais distribuições Linux e tem por finalidade programar tipos de hibernação e reinício do sistema, de forma automática. Vamos por a mão na massa:
Abra seu terminal e execute:
rctwake
E será mostrada a saída abaixo:


Nesta imagem podemos ver a sintaxe básica do rtcwake, onde por exemplo, para colocar seu PC para hibernar e reiniciar após 60 segundos, você deveria usar o comando abaixo:
sudo rtcwake -m disk -s 60
Simples né? A opção “-m” aceita as seguintes opções:
  • standby - pequena economia de energia e reinício do sistema de forma rápida
  • mem – suspender para a memória RAM
  • disk - suspender para o disco. Seu PC será desligado e reiniciado da forma que estava quando ligado e o consumo de energia é quase 0.
  • off – desligar o computador completamente
Bom, se você quiser colocá-lo para hibernar a noite (sem consumir energia praticamente) e reiniciar somente na hora que você volta do trabalho (por exemplo às 19h), use esta sintaxe:
sudo rtcwake -m disk -t  19:00
Você pode fazer muitas outras coisas com o rtcwake, incluindo transformar seu PC em um despertador! É incrível!
Consulte a página de manual da ferramenta e descubra as infinitas suas possibilidades:
man rtcwake
Mas vem cá, e se eu quiser programar somente o desligamento do meu PC, tem como? É claro!
Isso pode ser feito com o comando shutdown (que inclusive é objetivo dos exames da LPI), como por exemplo:
shutdown -h 12:00
Onde seu PC será desligado às 12h, ou
shutdown -h +20
Onde seu PC será desligado daqui a 20 minutos.
Para maiores informações, consulte as páginas de manual da ferramenta
man shutdown

Referência:  http://sejalivre.org/ligando-e-desligando-seu-linux-automaticamente

terça-feira, 24 de julho de 2012

Instalando o kernel 3.5 no Ubuntu

Por: Fagner Oliveira

Linus Torvalds, e a equipe de desenvolvimento do kernel, liberaram a última versão estável do Kernel Linux: a versão 3.5. Com relação a novidades, esta versão, além de correções de bugs e implementação de uma maior estabilidade, focou na implementação de suporte a dispositivos touch (touchscreen e touchpad). Outra implementação importante foi o “checksum metadata”, que tem a importante função de manter a integridade dos sistemas de arquivos.
Se você está se perguntando por que deveria instalar este kernel no seu sistema, eu sugiro que leia este artigo, que foi publicado no site Datamation, onde Sean Michael Kerner, um dos renomados editores do site afirma: “o kernel 3.5 representa um avanço na estabilidade dos sistemas opem source”
Para instalar o kernel Linux 3.5 no Ubuntu ou no Linux Mint, vamos usar o PPA do site Up-To-Ubuntu. Abra seu terminal e execute os comandos abaixo para sua arquitetura:

i386

sudo add-apt-repository ppa:upubuntu-com/kernel-i386
sudo apt-get update
sudo apt-get upgrade
ou
sudo apt-get install linux

amd64

sudo add-apt-repository ppa:upubuntu-com/kernel-amd64
sudo apt-get update
sudo apt-get upgrade
or
sudo apt-get install linux
Teve algum problema após a instalação? Quer voltar para versão anterior? Vamos lá:
sudo apt-get purge linux-image-3.5.0-030500-generic
referência: sejalivre.org

domingo, 1 de julho de 2012

Configuração do Proxy Squid

Por: Fagner Oliveira

Neste artigo mostro como configurar o squid para fazer o controle da rede, Logo abaixo estar o arquivo de configuração do squid.



# Arquivo de Configuração do Proxy Squid ####################
# Autor: Fagner Oliveira
# fagner.mendes22@gmail.com
# http://desvendando-o-linux.blogspot.com
# licença: GNU/PL
###############################################


http_port 3128 ( porta onde o squid irar escultar, para proxy transparente adicione: "transparent", e redirecione a porta 80 no firewall )

visible_hostname SERVIDOR ( nome que será visualizado pelas estações da rede )

## ( essas configurações são de cache do squid ) ##############
cache_mem 64 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 2048 16 256
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

#################################################

( Controle da rede local e liberação de portas ) #################
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 563
acl Safe_ports port 21 80 563 70 210 280 488 59 777 901 1025-65535
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 sitesproibidos url_regex -i "/etc/squid/sitesproibidos"
http_access deny sitesproibidos  ( bloqueio de sites )

acl palavrasproibidas dstdom_regex "/etc/squid/palavrasproibidas"
http_access deny palavrasproibidas ( bloqueio de palavras )

acl ips-bloqueados dst 74.125.234.217 74.125.137.84
http_access deny ips-bloqueados ( bloqueio de ips do gmail )

## ( permissão e controle de banda da rede local ) ##############
acl redelocal src 192.168.0.0/24
delay_pools 1
delay_class 1 2
delay_parameters 1 65536/65536 16384/16384
delay_access 1 allow redelocal
http_access allow localhost
http_access allow redelocal
http_access deny all






Antes de iniciarmos o serviço será necessário criarmos alguns arquivos e atribuir permissões, então comece criando os arquivos:

sudo touch /etc/squid/sitesproibidos
sudo touch /etc/squid/palavrasproibidas

Nota: dentro dos arquivos criados acima você deverá incluir sites e palavras que deseja bloquear.

Após é necessário dar permissão para a para a pasta onde o squid armazenará os caches.

para debian e seus derivados:

sudo chmod 770 /var/cache/squid

para RedHat e seus derivados:

# chmod  770 /var/spool/squid

Pronto, agora podemos iniciar o serviço:

/etc/init.d/squid start

Ou

service squid start











domingo, 24 de junho de 2012

bloqueando o facebook através do firewall netfilter- Resolvido

Por: Glauber Alexandre

Nós administradores de redes nos deparamos com vários inconvenientes no ambiente corporativo, e um deles é o chamado "Redes sociais", então através deste post mostrarei como bloquear todos os sites do facebook através do firewall, para quem costumava  fazer isso usando proxy transparente não dava certo, pois o usuário colocava "https" no navegador e a requisição passava pelo proxy normalmente. Então crie um script de firewall ou inclua dentro de /etc/rc.local as seguintes linhas:


######Bloqueando o destino#######

iptables -I FORWARD -d AS54115 -j DROP
iptables -I FORWARD -d AS32934 -j DROP
iptables -I FORWARD -d 74.119.76.0/22 -j DROP
iptables -I FORWARD -d 69.63.184.0/21 -j DROP
iptables -I FORWARD -d 69.63.176.0/24 -j DROP
iptables -I FORWARD -d 69.63.176.0/21 -j DROP
iptables -I FORWARD -d 69.171.255.0/24 -j DROP
iptables -I FORWARD -d 69.171.240.0/20 -j DROP
iptables -I FORWARD -d 69.171.239.0/24 -j DROP
iptables -I FORWARD -d 69.171.224.0/20 -j DROP
iptables -I FORWARD -d 66.220.159.0/24 -j DROP
iptables -I FORWARD -d 66.220.152.0/21 -j DROP
iptables -I FORWARD -d 66.220.144.0/21 -j DROP
iptables -I FORWARD -d 31.13.77.0/24 -j DROP
iptables -I FORWARD -d 31.13.76.0/24 -j DROP
iptables -I FORWARD -d 31.13.75.0/24 -j DROP
iptables -I FORWARD -d 31.13.73.0/24 -j DROP
iptables -I FORWARD -d 31.13.72.0/24 -j DROP
iptables -I FORWARD -d 31.13.69.0/24 -j DROP
iptables -I FORWARD -d 31.13.64.0/19 -j DROP
iptables -I FORWARD -d 31.13.24.0/21 -j DROP
iptables -I FORWARD -d 2a03:2880::/32 -j DROP
iptables -I FORWARD -d 2620:0000:1c00::/40 -j DROP
iptables -I FORWARD -d 204.15.20.0/22 -j DROP
iptables -I FORWARD -d 173.252.96.0/19 -j DROP
iptables -I FORWARD -d 173.252.70.0/24 -j DROP
iptables -I FORWARD -d 173.252.64.0/19 -j DROP

######Bloqueando a origem###########

iptables -I FORWARD -s AS54115 -j DROP
iptables -I FORWARD -s AS32934 -j DROP
iptables -I FORWARD -s 74.119.76.0/22 -j DROP
iptables -I FORWARD -s 69.63.184.0/21 -j DROP
iptables -I FORWARD -s 69.63.176.0/24 -j DROP
iptables -I FORWARD -s 69.63.176.0/21 -j DROP
iptables -I FORWARD -s 69.171.255.0/24 -j DROP
iptables -I FORWARD -s 69.171.240.0/20 -j DROP
iptables -I FORWARD -s 69.171.239.0/24 -j DROP
iptables -I FORWARD -s 69.171.224.0/20 -j DROP
iptables -I FORWARD -s 66.220.159.0/24 -j DROP
iptables -I FORWARD -s 66.220.152.0/21 -j DROP
iptables -I FORWARD -s 66.220.144.0/21 -j DROP
iptables -I FORWARD -s 31.13.77.0/24 -j DROP
iptables -I FORWARD -s 31.13.76.0/24 -j DROP
iptables -I FORWARD -s 31.13.75.0/24 -j DROP
iptables -I FORWARD -s 31.13.73.0/24 -j DROP
iptables -I FORWARD -s 31.13.72.0/24 -j DROP
iptables -I FORWARD -s 31.13.69.0/24 -j DROP
iptables -I FORWARD -s 31.13.64.0/19 -j DROP
iptables -I FORWARD -s 31.13.24.0/21 -j DROP
iptables -I FORWARD -s 2a03:2880::/32 -j DROP
iptables -I FORWARD -s 2620:0000:1c00::/40 -j DROP
iptables -I FORWARD -s 204.15.20.0/22 -j DROP
iptables -I FORWARD -s 173.252.96.0/19 -j DROP
iptables -I FORWARD -s 173.252.70.0/24 -j DROP
iptables -I FORWARD -s 173.252.64.0/19 -j DROP

Referêmcia:  http://tech-linux.blogspot.com.br/2012/05/bloqueando-o-facebook.html