Posts recentes

  • Como descompactar arquivos zip, rar, tar.gz, bz2, tar.bz2 pelo terminal

    0 comentários

    por: admin, na categoria Dicas, Linux dia 04/01/2010

    Para descompactar estes formatos de arquivos os comandos são simples:

    zip:

    gunzip nomedoarquivo.zip

    rar:

    unrar x nomedoarquivo.rar

    tar:

    tar -xvf nomedoarquivo.tar

    tar.gz:

    tar -vzxf nomedoarquivo.tar.gz

    bz2:

    bunzip nomedoarquivo.bz2

    tar.bz2:

    tar -jxvf nomedoarquivo.tar.bz2

  • Criando um repositório Debian na rede local

    0 comentários

    por: admin, na categoria Linux, Servidores dia 04/01/2010

    Instalação e configuração do servidor

    Instale o pacote “debmirror” disponível em testing ou unstable:

    # apt-get install debmirror

    Crie um usuário e um grupo que será dono do processo que iremos automatizar para o uso do debmirror:

    # groupadd mirror
    # useradd -g mirror -d /mirror -c “Debian Mirror” mirror

    Crie os diretórios necessários para o repositório.

    # mkdir -p /mirror/debian # mkdir /mirror/non-US # chown -R mirror:mirror /mirror

    Criando os scripts para a sincronização

    Iremos criar agora os script para a sincronização dos repositórios:

    Repositório US:

    # emacs /usr/local/bin/mirror1.sh

    #!/bin/bash
    su mirror -c “debmirror /mirror/debian –method=http –progress –nosource –host=ftp.br.debian.org –root=/debian –dist=woody,sarge,sid –section=main,contrib,non-free –arch=i386 –cleanup –getcontents”

    Repositório non-US:

    # emacs /usr/local/bin/mirror2.sh

    #!/bin/bash
    su mirror -c “debmirror /mirror/non-US –method=http –progress –nosource –host=ftp.br.debian.org –root=/debian-non-US –dist=woody/non-US,sarge/non-US,sid/non-US –section=main,contrib,non-free –arch=i386 –cleanup ?getcontents”

    Você pode alterar a opção –method por ftp, http ou rsync -e. Leia o manual do debmirror para maiores detalhes.

    # man debmirror

    Permitindo a leitura escrita e execução somente para o usuário root:

    # chmod 700 /usr/local/bin/mirror*.sh

    Repositório local, http e ftp na sua LAN
    Para uso local, em seu /etc/apt/sources.list coloque as linhas:

    deb file:/mirror/debian sid main non-free contrib
    deb file:/mirror/non-US sid/non-US main contrib non-free

    Você pode alterar a versão conforme a sua necessidade trocando onde esta sid por woody ou sarge. ;)

    Vamos agora configurar para que você possa ter o repositório disponível para outras máquinas.

    Configurando o Apache:

    Edite o arquivo de configuração /etc/apache/httpd.conf:

    # emacs /etc/apache/httpd.conf

    Troque “<Directory /var/www>” por “<Directory /mirror>”.

    Reinicie o Apache:

    # /etc/init.d/apache restart

    Edite o arquivo /etc/apt/sources.list nos clientes para configurar o repositório no protocolo HTTP:

    # emacs /etc/apt/sources.list

    deb http://(ip_ou_host_do_servidor)/debian/ sid main non-free contrib
    deb http://(ip_ou_host_do_servidor)/non_US/ sid/non-US main contrib non-free

    Configurando o proftpd:

    Para ter o repositório disponível por ftp, edite o arquivo de configuração do proftpd:

    # emacs /etc/proftpd.conf

    Altere as TAGS da configuração compreendidas entre <Anonymous …> </Anonymous> por:

    <Anonymous ~mirror>
    User                     ftp
    Group                    nogroup
    UserAlias                anonymous ftp
    RequireValidSh           off
    # Limit the maximum number of anonymous logins
    MaxClients               20
    DisplayLogin             welcome.msg
    DisplayFirstChdir        .message
    # Limit WRITE everywhere in the anonymous chroot
    <Directory *>
    <Limit WRITE>
    DenyAll
    </Limit>
    </Directory>
    </Anonymous>

    Edite o arquivo /etc/apt/sources.list nos clientes para configurar o repositório no protocolo FTP:

    deb ftp://(ip_ou_host_do_servidor)/debian/ sid main non-free contrib
    deb ftp://(ip_ou_host_do_servidor)/non_US/ sid/non-US main contrib non-free

    Automatizando o processo
    Com o crontab podemos se aproveitar das horas de menor uso da rede para fazer a sincronização:

    # crontab -e

    insira a linha:

    0 22 * * * /usr/local/mirror1.sh 2>&1 > /dev/null;/usr/local/mirror2.sh 2>&1 > /dev/null

    Salve e feche.

    # /etc/init.d/cron restart

    No crontab configurei para que todos os dias a partir das 22:00hs o servidor atualize o repositório.

  • Serviços bancários pela Internet

    0 comentários

    por: admin, na categoria Dicas dia 20/11/2009

    Quando for fazer uso dos serviços bancários pela internet, siga as 3 dicas abaixo para verificar a autenticidade do site: 1 – Minimize a página. Se o teclado virtual for minimizado também, está correto. Se ele permanecer na tela sem minimizar,é pirata! Não tecle nada. 2 – Sempre que entrar no site do banco, digite SUA SENHA ERRADA na primeira vez . Se aparecer uma mensagem de erro significa que o site é realmente do banco, porque o sistema tem como checar a senha digitada. Mas se digitar a senha errada e não acusar erro é mau sinal. Sites piratas não têm como conferir a informação, o objetivo é apenas capturar a senha. 3 – Sempre que entrar no site do banco, verifique se no rodapé da página aparece o ícone de um cadeado; além disso clique 2 vezes sobre esse ícone; uma pequena janela com informações sobre a autenticidade do site deve aparecer. Em alguns sites piratas o cadeado pode até aparecer, mas será apenas uma imagem e ao clicar 2 vezes sobre ele, nada irá acontecer. Os 3 pequenos procedimentos acima são simples, mas garantirão que você jamais seja vítima de fraude virtual.

  • Instalando e configurando um servidor proxy com o Ubuntu Server – Em menos de duas horas!

    0 comentários

    por: admin, na categoria Linux, Servidores dia 20/10/2009

    Passo 1 – Preparando o Computador

    Primeiramente, você deve começar pela parte que chuta: examine o hardware do seu novo servidor, e dimensione-o para suas necessidades. Ou seja, não configure um P100 com 16MB de RAM para servir uma empresa com 200 funcionários, nem compre um P4 de última geração e 1GB RAM para servir aquele escritório com 6 funcionários.

    Leve em conta também que serão instalados vários serviços adicionais (e opcionais) além do squid que tomarão conta dos recursos da máquina. Memória é essencial aqui. No meu caso, peguei um Sempron 2600+ com 512MB num PCChips A31g que tinha acabado de chegar. Isso, para distribuir internet para 50 computadores, dá e sobra, mas a idéia é justamente essa, ter uma boa folga no uso. Lembre-se também que serão necessárias duas placas de rede. Pessoalmente, não recomendo o uso da placa onboard, mas fica ao critério de vocês.

    Agora, antes de começar a instalar o sistema, entre no SETUP e desabilite TUDO aquilo que não será usado: som onboard, usb, modem, portas seriais e paralelas, e o que mais for possível. Com isso, conseguimos um pouco mais de segurança (através de qualquer porta usb ou equivalente), confiabilidade (com menos recursos habilitados, menor será a chance de uma falha de hardware, e menor será o seu trabalho para identificar uma possível falha futura) e velocidade (menos coisas para levantar no boot, menos serviços rodando desnecessariamente). Configure o boot pelo CD, coloque uma senha para o setup e saia, para começarmos a instalação de verdade.

    Passo 2 – Instalando o sistema

    Nenhum segredo aqui, se você já fez isso antes: configure o idioma, o teclado, crie um usuário, defina uma senha, formate as partições necessárias (ou deixe o Ubuntu cuidar disso), e aguarde a instalação. Dois pontos importantes:

    1 – Será útil já ter uma conexão com a internet durante a instalação (diretamente ligada à máquina ou através de um outro proxy), pois o Ubuntu já fará uns ‘apt-get update’ durante a instalação.
    2 – Em dado momento, o instalador perguntará se você deseja instalar dois perfis pré-configurados: DNS Server e LAMP Server. A instalação fica a critério de vocês, já que boa parte dos pacotes desses perfis serão instalados mais pra frente. No meu caso, não instalei nada por enquanto.

    Ao término, o sistema irá reiniciar o sistema.

    Passo 3 – Configurações iniciais

    Primeiramente, vamos configurar a rede. No meu caso, como eu já tenho um servidor DHCP em outro servidor, o Ubuntu já configurou automaticamente a primeira placa de rede. Mas o que queremos é um endereço estático, então vamos editar o arquivo /etc/network/interfaces

    sudo vi /etc/network/interfaces

    Seu arquivo deve estar qualquer coisa parecida com isso:

    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).
    # The loopback network interface
    auto lo
    iface lo inet loopback
    #The primary network interface
    auto eth0
    iface eth0 inet dhcp

    Altere as informações para algo parecido com:

    auto lo eth0 eth1
    iface lo inet loopback
    #The primary network interface
    iface eth0 inet static
    address 192.168.1.254
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    #segunda interface. Outras podem ser adicionadas segundo a mesma lógica
    iface eth1 inet static
    address xxx.xxx.xxx.xxx
    netmask xxx.xxx.xxx.xxx
    network xxx.xxx.xxx.xxx
    broadcast xxx.xxx.xxx.xxx
    gateway xxx.xxx.xxx.xxx

    Nesse caso, considerei que a primeira placa de rede ficará ligada à rede local, e a segunda é que ficará ligada à internet. Nesse caso, tudo dependerá de como é a sua conexão. Para Speedy Businnes, é bem fácil, a Telefônica já te passa todas as informações logo no começo. Outros serviços não devem ser diferente.

    Altere também o /etc/resolv.conf , inserindo os endereços DNS que o provedor utiliza:
    sudo vi /etc/resolv.conf

    nameserver xxx.xxx.xxx.xxx
    nameserver xxx.xxx.xxx.xxx
    nameserver xxx.xxx.xxx.xxx

    Novamente, os dados deverão ser obtidos com seu provedor. A partir daqui, o computador já deverá estar conectado à internet. Tente um ping www.ubuntu.org e veja se está tudo OK. Mas ainda não está pronto, precisamos instalar e configurar os pacotes necessários para que o proxy funcione e os outros usuários também acessem a internet.

    É agora que a parte legal começa. Você com certeza já deve ter percebido isso, mas o CD do Ubuntu Server já traz vários pacotes de serviços prontos para o uso. Se você quiser, pode usar esse repositório, o que diminuiria e muito o tempo de download pelo APT-GET. No meu caso, como eu queria me livrar do drive de CD, copiei os pacotes para minha máquina, com os comandos abaixo:

    sudo mount /media/cdrom/
    sudo cp -r /media/cdrom/dists /edgy
    sudo cp -r /media/cdrom/pool /edgy
    Logo depois, editem o arquivo de repositórios do apt, com um sudo vi /etc/sources.list

    Comentem a linha

    deb cdrom:(…)

    Colocando um # na frente. Adicionem as linhas:

    deb file:/edgy edgy main
    deb file:/edgy edgy restricted

    Aproveitem e descomentem as linhas dos repositórios ‘Universe‘, retirando o # da frente delas. Salvem, e executem o apt:

    sudo apt-get update
    sudo apt-get upgrade

    Se tudo der certo, vocês terão o sistema pronto para a instalação dos pacotes. Percebam que esse passo é totalmente opcional. No meu caso, eu pude liberar o CD do Ubuntu (assim como o drive) e acelerar bastante as instalações. Se você quiser continuar com o CD, ou se todas as versões do mesmo já estiverem obsoletas, pule essa parte, apenas configurando para aceitar o repositório Universe.

    Passo 4 – Instalando e Configurando o ‘Pacote básico do Administrador Feliz‘

    Agora, vamos tratar de instalar e configurar alguns programas que irão nos ajudar a administrar o sistema: a trinca MC (Midnight Commander), OpenSSH e Webmin. Muitos experts que estejam lendo isso provavelmente irão querer me bater, mas considero o MC um ótimo navegador de arquivos/editor de textos, ainda mais quando estou com pressa. Se você prefere o VI, simplesmente não instale o MC.

    sudo apt-get install mc openssh-server libmd5-perl libnet-ssleay-perl libauthen-pam-perl libio-pty-perl
    sudo wget http://prdownloads.sourceforge.net/webadmin/webmin_1.320_all.deb
    sudo dpkg -i webmin_1.320_all.deb
    Com isso, já podemos acessar o servidor via SSH e via Browser. Mas… já que queremos um mínimo de segurança, porque não alterarmos algumas coisinhas?

    sudo mcedit /etc/ssh/sshd_config

    Altere as seguintes opções:

    Port 2756 #Altera a porta padrão do SSH, diminuindo a possibilidade de um port scan
    ListenAddress 192.168.1.254 # Somente poderá ser acessado por esse endereço de rede
    PermitRootLogin no # Precisa explicar?
    AllowUsers <seu usuário padrão no Ubuntu> #somente o usuário criado na instalação poderá se logar.

    Assim já temos algo mais seguro. O mesmo pode ser feito com o Webmin, alterando o /etc/webmin/miniserv.conf. Nesse caso, alterar a opção “port” para 4044 ou qualquer outro número já é uma boa.

    Agora, já podemos mexer no servidor pela rede, e sem muito medo de uma invasão. Que tal pararmos de enrolar e instalar logo o bendito do proxy, hein?

    Passo 5 – Instalando o Squid, o Sarg e o Dansguardian

    Apenas para entender: o Squid será o responsável por compartilhar o acesso à internet com todas as máquinas, o Dansguardian irá habilitar alguns filtros de acesso, e o Sarg será o ‘dedo-duro’ do sistema, gerando arquivos HTML com os ‘logs’ de navegação do Squid.

    E aqui começa uma parte da configuração onde ‘cada caso é um caso’. O Squid permite um sem fim de combinações de restrições, permitindo que eu simplesmente compartilhe a internet, ou que eu compartilhe apenas para alguns IPs, ou que eu exija uma autenticação para o uso, ou que eu bloqueie algumas páginas de acordo com o horário.

    A configuração das ACLs (regras que controlam o acesso) dependerá exclusivamente de como a empresa vê o acesso à internet pelos funcionários, e do quão odiado você quer ser pelos seus colegas de trabalho que não podem mais acessar o orkut.

    Se a empresa para o qual você está instalando o proxy não se importa com restrições de acesso, a configuração padrão do squid já está perfeita. Caso contrário, sugiro que você leia a documentação do mesmo e encontre quais regras se adaptam melhor à sua situação. O exemplo aqui é bem restrito, mas já montei um servidor para um escritório de contabilidade onde TUDO era bloqueado, menos uma meia dúzia de páginas….

    Vamos às configurações: Comece instalando os pacotes:

    sudo apt-get install squid squid-common bind sarg dansguardian

    E depois dê um

    sudo mcedit /etc/squid/squid.conf

    Comece alterando as primeiras linhas, antes das ACL’s:
    #Inicio
    http_port 192.168.1.254:3129 transparent
    visible_hostname proxyspeedy2
    hierarchy_stoplist cgi-bin ?
    acl QUERY urlpath_regex cgi-bin \?
    cache_mem 48 MB
    #Opções para otimização do sistema
    maximum_object_size 1024 MB
    minimum_object_size 0 KB
    cache_swap_low 50
    cache_swap_high 90
    cache_access_log /var/log/squid/access.log

    Vamos às explicações, pra quem não conhece o squid:

    http_port – qual porta o squid estará escutando. Ao colocar o endereço IP, eu impeço que alguém tente acessar pelas outras interfaces. O ‘transparent’ será explicado em breve.
    visible_hostname – Hostname do servidor
    cache_mem – Quantidade de memória RAM que o squid estará utilizando para guardar as páginas acessadas, aumentando a velocidade de acesso posterior.
    maximum_object_size e minimum_object_size – Qual o tamanho máximo e mínimo dos arquivos que ficarão armazenados no cache em disco.
    cache_swap_low e cache_swap_high – Com o cache_swap_high você define qual a porcentagem máxima que o cache deverá atingir para começar a apagar arquivos antigos. O cache_swap_low define qual a porcentagem deverá ser atingida durante a remoção desses arquivos.

    Caso você queira que os usuários se autentiquem para usar a internet, insira esses dados no squid.conf:

    auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
    auth_param basic children 5
    auth_param basic realm

    Agora, as ACL’s. Novamente, cada caso é um caso, e vou colocar as minhas aqui apenas para exemplo. Se você quiser entender mais sobre ACL’s do Squid e como usá-las, recomendo uma leitura desse texto .

    # ACLs normais
    acl all src 192.168.1.0/255.255.255.0
    delay_pools 1
    delay_class 1 2
    delay_parameters 1 114688/114688 32768/32768
    delay_access 1 allow all
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl SSL_ports port 443 563
    acl SSL_ports port 873
    acl Safe_ports port 80
    acl Safe_ports port 21
    acl Safe_ports port 443 563
    acl Safe_ports port 70
    acl Safe_ports port 210
    acl Safe_ports port 1025-65535
    acl Safe_ports port 280
    acl Safe_ports port 488
    acl Safe_ports port 591
    acl Safe_ports port 777
    acl Safe_ports port 631
    acl Safe_ports port 873
    acl Safe_ports port 901
    acl purge method PURGE
    acl CONNECT method CONNECT
    no_cache deny QUERY
    # ACLs paulo
    acl Diretoria proxy_auth “/etc/squid/users/diretoria.acl”
    acl administracao proxy_auth “/etc/squid/users/administracao.acl”
    acl producao proxy_auth “/etc/squid/users/producao.acl”
    acl castigo proxy_auth “/etc/squid/users/castigo.acl”
    acl PornoURLs url_regex “/etc/squid/users/porno.acl”
    acl ProducaoURLs url_regex “/etc/squid/users/producaoURLs.acl”
    acl AdministracaoURLs url_regex “/etc/squid/users/administracaoURLs.acl”
    acl almoco time MTWHF 12:00-14:00
    acl executaveis url_regex -i “/etc/squid/users/executaveis.acl”
    acl castigo_ip src “/etc/squid/users/castigo_ip.acl”
    #Aplicação das ACL’s
    http_access allow manager localhost
    http_access deny manager
    http_access deny !Safe_ports
    http_access deny CONNECT !SSL_ports
    http_access allow purge localhost
    http_access deny purge
    http_access allow localhost
    http_access deny administracao PornoURLs
    http_access deny producao PornoURLs
    http_access deny castigo PornoURLs
    http_access deny Diretoria PornoURLs
    http_access deny administracao AdministracaoURLs !almoco
    http_access deny producao ProducaoURLs !almoco
    http_access deny castigo AdministracaoURLs
    http_access deny administracao executaveis
    http_access deny producao executaveis
    http_access allow Diretoria
    http_access allow producao
    http_access allow administracao
    http_access allow castigo
    http_access deny all
    http_reply_access allow all

    Basicamente, existem três níveis de acesso diferentes, com várias restrições baseado em cada nível, mas com a possibilidade de liberar alguns sites no horário de almoço, a menos que você esteja na ACL ‘castigo’ (sacou? hein?). Pode parecer castrante, mas são normas da empresa, não me odeiem por configurar isso.

    Salve o arquivo e saia. Agora que já temos o básico configurado, vamos configurar o firewall para compartilhar conexões. No terminal, digite os comandos abaixo:

    sudo modprobe iptable_nat
    sudo modprobe ip_nat_ftp
    sudo echo 1 > /proc/sys/net/ipv4/ip_forward
    sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
    sudo iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j REDIRECT –to-port 3128

    Na verdade, apenas os quatro primeiros comandos são necessários. Nesse caso, substitua o ‘eth1′ pela interface que está conectada à internet. O último comando gera o que chamamos de ‘proxy transparente’. Com ela habilitada, qualquer um que queira acessar a internet deverá obrigatoriamente passar pelo Squid (vocês lembram daquele ‘transparent’ logo na primeira linha do squid.conf, né?).

    Uma ótima idéia é inserir esses comandos de firewall no arquivo /etc/init.d/boomisc.sh. Assim, caso o computador seja reiniciado, as regras passarão a funcionar automaticamente….

    Aqui, já podemos testar o Squid. Primeiro, dê o comando:

    sudo /etc/init.d/squid restart

    E verifique se não apareceu nenhum erro. Uma lida nos arquivos em /var/log pode ser útil, caso apareça algo estranho. Agora, numa máquina qualquer, abre o seu browser e configure o proxy. No Firefox2, vá em Ferramentas > Opções > Avançado > Rede > Configurações e insira o endereço IP do servidor e a porta do squid. Tente acessar alguma página. Se der tudo certo, parabéns. O grosso do trabalho já foi, agora é cuidar da segurança.

    Nota: Percebam que até o momento não é possível usar o Squid com transparência E autenticação ao mesmo tempo. Ao usar os dois você no máximo não terá acesso se não configurar o proxy nas máquinas locais. O que já ajuda em alguma coisas….

    Nota2: Para criar um usuário no Squid, você pode usar o comando

    sudo htpasswd /etc/squid/passwd <usuário>

    E depois cadastrá-lo em uma das regras do squid. OU você pode usar o Webmin, o que eu considero um pouco mais prático…

    O Sarg não exige muita configuração, podendo ser executado via Webmin mesmo, ou através do crontab, caso você queira automatizar a tarefa. Uma lida no /etc/squid/sarg.conf pode dar boas dicas do tipo de configuração que o Sarg permite. Para acessar os relatórios, acesse http://192.168.1.254/squid-reports/ que eles deverão estar lá.

    Agora, vamos ao Danguardian. Antes, uma observação importante: o DanGuardian é um super-filtro de conteúdo, conseguindo barrar vários tipos de conteúdos diferentes, sejam sites, frase, ou até mesmo tipos de arquivos. A configuração padrão é bem restrita, e você pode penar um pouco até ter uma configuração que lhe permita acessar tudo o que você precisa, e bloqueie o resto. Sempre que possível, utilize os arquivos de exceção para liberar apenas o necessário (exemplo, incluir o endereço da Caixa Econômica Federal como exceção, ao invés de liberar o acesso a arquivos .zip).

    Outro ponto é que você pode precisar configurar bastante o DG no quesito performance. Ele utiliza o Clamav para fazer uma varredura antí-virus no que passa pelo proxy, o que pode ser bem ruim se você está usando um Pentium 100 como proxy para 100 máquinas… O Dansguardian é recomendado para ambientes corporativos preocupados com a segurança, e PRINCIPALMENTE em escolas ou universidades.

    Comece com um:

    sudo mcedit /etc/dansguardian/dansguardian.conf

    Para uma configuração simples, comente a linha ‘UNCONFIGURED’ e altere as linhas:

    language = ‘portuguese’
    loglocation = ‘/var/log/dansguardian/access.log’
    filterport = 3128
    proxyip = 127.0.0.1
    proxyport = 3129

    Nota: muitos devem estar achando estranho eu ter configurado o Dansguardian na porta padrão do Squid. O motivo é simples: preguiça. Assim eu não preciso reconfigurar todos os outros computadores… 

    No ‘/etc/dansguardian/dansguardianf1.conf‘ verifique a opção ‘naughtynesslimit. Ele é o ‘medidor de putaria’ do Dansguardian. Quanto menor esse valor, maior será a possibilidade da página ser bloqueada. Para adultos, um bom valor é 200. Para crianças, pense em valores por volta de 40…

    Agora, precisamos baixar as definições em português. Execute os comandos:

    sudo wget http://dansguardian.org/downloads/grosvenor/languages.tar.gz
    sudo tar -zxvf languages.tar.gz
    sudo cp -r languages/* /etc/dansguardian/languages/portuguese/

    Agora, insira no arquivo ‘/etc/dansguardian/weightedphraselist’ as linhas:

    .Include</etc/dansguardian/languages/portuguese/weightedphraselist.pornsites.portuguese>
    .Include</etc/dansguardian/languages/portuguese/weightedphraselist.pornwords.portuguese>

    E, no ‘/etc/dansguardian/bannedphraselist’

    .Include</etc/dansguardian/languages/portuguese/bannedphraselist.portuguese>

    Salve tudo, e reinicie o Dans:

    sudo /etc/init.d/dansguardian restart

    Se tudo correu bem, você provavelmente é o cara mais odiado pelos funcionários que enrolam no serviço…..

    Há um extra para acelerar um pouco a navegação, que é instalar um servidor DNS na máquina. Com isso, as resoluções de nome ficarão mais rápidas, pois haverá um cache de endereços na sua máquina. Até onde eu sei, não é necessário alterar algum arquivo, apenas instalar o bind

    Passo 6 – Incrementando o Firewall e instalando o Snort e o Guardian

    A parfir daqui, tudo o que será feito é instalar sistemas que bloqueiem ataques externos, ou evitem problemas que um vírus possa causar internamente. As regras de Firewall servem para fechar portas e evitar ataques. O Snort é uma ferramenta de detecção de intrusos, ótima para ficar vigiando a sua rede e verificando se há algo errado. O Guardian trabalha junto com o Snort, criando regras de firewall de acordo com os alertas do Snort.

    Para o firewall, vamos utilizar o kurumin-firewall mesmo (disponível no GuiadoHardware), mas com algumas modificações. Novamente, as portas que você irá abrir ou fechar dependerão exclusivamente das necessidades da empresa ou local onde você instalando o servidor.

    sudo mcedit /etc/init.d/kurumin-firewall

    E edite o arquivo:

    #!/bin/bash

    # Script de configuração do iptables gerado pelo configurador do Kurumin
    # Este script pode ser usado em outras distribuições Linux que utilizam o Kernel 2.4 em diante
    # Por Carlos E. Morimoto

    firewall_start(){

    # Abre para uma faixa de endereços da rede local
    iptables -A INPUT -p tcp –syn -s 192.168.1.0/255.255.255.0 -j ACCEPT

    # Abre uma porta (inclusive para a Internet)
    iptables -A INPUT -p tcp –destination-port 21 -j ACCEPT
    iptables -A INPUT -p tcp –destination-port 110 -j ACCEPT
    iptables -A INPUT -p tcp –destination-port 2535 -j DROP
    iptables -A INPUT -p tcp –destination-port 139 -j DROP
    iptables -A OUTPUT -p tcp –destination-port 139 -j DROP

    # Fechando as portas do SSH pra fora
    iptables -A INPUT -p tcp –dport 2756 -m iprange –src-range 192.168.1.0-192.168.1.255 -j ACCEPT
    iptables -A INPUT -p tcp –dport 2756 -j DENY
    # Ignora pings
    echo “1″ > /proc/sys/net/ipv4/icmp_echo_ignore_all

    # Protege contra synflood
    echo “1″ > /proc/sys/net/ipv4/tcp_syncookies

    # Desabilita o suporte a source routed packets
    # Esta recurso funciona como um NAT ao contrário, que em certas circunstancias pode permitir que alguem de fora envie pacotes para micros dentro da rede local.
    echo “0″ > /proc/sys/net/ipv4/conf/eth0/accept_source_route
    echo “0″ > /proc/sys/net/ipv4/conf/eth1/accept_source_route
    # Proteção contra ICMP Broadcasting
    echo “1″ > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

    # Proteções diversas contra portscanners, ping of death, ataques DoS, etc.
    iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT
    iptables -A FORWARD -p tcp -m limit –limit 1/s -j ACCEPT
    iptables -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT
    iptables -A FORWARD –protocol tcp –tcp-flags ALL SYN,ACK -j DROP
    iptables -A FORWARD -m unclean -j DROP
    iptables -A INPUT -m state –state INVALID -j DROP
    iptables -N VALID_CHECK
    iptables -A VALID_CHECK -p tcp –tcp-flags ALL FIN,URG,PSH -j DROP
    iptables -A VALID_CHECK -p tcp –tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
    iptables -A VALID_CHECK -p tcp –tcp-flags ALL ALL -j DROP
    iptables -A VALID_CHECK -p tcp –tcp-flags ALL FIN -j DROP
    iptables -A VALID_CHECK -p tcp –tcp-flags SYN,RST SYN,RST -j DROP
    iptables -A VALID_CHECK -p tcp –tcp-flags SYN,FIN SYN,FIN -j DROP
    iptables -A VALID_CHECK -p tcp –tcp-flags ALL NONE -j DROP

    # Abre para a interface de loopback.
    # Esta regra é essencial para o KDE e outros programas gráficos funcionarem adequadamente.
    iptables -A INPUT -p tcp –syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
    iptables -A INPUT -i lo -j ACCEPT

    # Esta regra é o coração do firewall do Kurumin,
    # ela bloqueia qualquer conexão que não tenha sido permitida acima, justamente por isso ela é a última da cadeia.
    iptables -A INPUT -p tcp –syn -j DROP

    }
    firewall_stop(){
    iptables -F
    iptables -X
    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    }
    case “$1″ in
    “start”)
    firewall_start
    ;;
    “stop”)
    firewall_stop
    echo “O kurumin-firewall está sendo desativado”
    sleep 2
    echo “ok.”
    ;;
    “restart”)
    echo “O kurumin-firewall está sendo desativado”
    sleep 1
    echo “ok.”
    firewall_stop; firewall_start
    ;;
    *)
    iptables -L -n
    esac

    Salve, e configure para rodar no boot. Você pode testar as configurações do iptables dando um

    sudo iptables -L

    e verificando se ele lista todas as regras criadas.

    Para o Snort e o Guardian, o procedimento é exatamente o encontrado na página do Ubuntu Brasil portanto eu não pretendo me repetir. Como dica adicional, insiram as linhas abaixo no bootmisc.sh, para que os serviços sempre rodem ao reinicar o servidor:

    snort -c /etc/snort/snort.conf &
    guardian.pl /etc/guandian.conf

    Faça alguns testes finais, reinicie a máquina, e pronto. Você terá um servidor proxy leve, seguro, e que permite adicionar novos serviços (DHCP, SAMBA, Cups, LDAP, Postfix) facilmente. E tudo em menos de duas horas!

    Nota final:
    - Caso algum passo descrito aqui não funcione, sempre veja as mensagens de erro e os arquivos de log. Boa parte das soluções podem ser encontradas vendo qual é exatamente o problema.

  • Reparando partições NTFS com Linux

    0 comentários

    por: admin, na categoria Linux, Tutoriais dia 30/09/2009

    Para recuperar partições NTFS através do Linux, dê boot com um LiveCD do Linux. O Ubuntu muito fácil de ser utilizado.

    Após o boot acesse o terminal  e digite:

    fdisk -l  para saber qual é a partição NTFS.

    Após saber qual é a partição NTFS basta executar  o seguinte comando:

    sudo ntfsfix /dev/sda1

     

  • Clonando HDs com o DD

    0 comentários

    por: admin, na categoria Linux dia 20/09/2009

    vamos a clonagem, com o linux startado, abra o shell e faça isso como root. No shell digite:

    dd if=/dev/hda of=/dev/hdb

    Em seguida de enter e aguarde…
    O processo é demorado, só para se ter uma base, eu clonei um HD de 20GB/5400rpm pra um HD de 80GB/7200, o tempo da clonagem foi de 57 minutos.

    Ao termino do processo, o dd lhe informara os dados referentes a clonagem e pronto, agora você tem um clone de seu HD.

  • IPTABLES PARA QUEM NÃO CONHECE IPTABLES..

    0 comentários

    por: admin, na categoria Linux, Servidores dia 14/09/2009

    1 Conceito de segurança

          A segurança da informação é, sem dúvida, um dos assuntos mais importantes dentre as pautas de reunião de tecnologia em qualquer entidade.

          Autenticidade, confidencialidade em manter as informações a salvo de acesso e divulgação não autorizadas, confiabilidade, compartilhamento de dados, disponibilidade e integridade da informação estão diretamente ligados à segurança. Segurança da informação são mecanismos que promovem a integridade de uma estrutura de rede que se aplicam nos conceitos mais simples, que vão desde políticas de troca periódica de senhas até a trituração de documentos impressos.

          Mobilidade e facilidade já fazem parte do nosso dia-a-dia, comprar e configurar um roteador Wi-Fi tornou-se trivial, já com as mais diversas distribuições de Linux, instalar e configurar um servidor como proxy acaba sendo tarefa de 15 minutos. É exatamente neste tipo de facilidade que pessoas mal intencionadas aplicam as mais diversas formas comumente utilizadas para explorar estas “vulnerabilidades”, com o simples uso de ferramentas desenvolvidas especialmente para esta finalidade, a invasão.

         Ataques direcionados às redes além de comprometer os recursos e a disponibilidade comprometem o principal: as informações. Como os ataques podem ser originados de qualquer posição dentro ou fora da área da rede em questão, acaba dificultando a tarefa de localização precisa da origem do ataque e do atacante. O intruso que consiga entrar em uma rede ficará com um acesso privilegiado para lançar ataques aos elementos constituintes dessa rede havendo risco acrescido para ocorrência das situações exemplificadas a seguir:

    • Furto ou violação da informação e dos serviços da rede;
    • Abuso da conexão com à Internet;
    • Utilização dessa conexão “ponte” para prática de atos ilícitos, o que, em caso de posterior investigação policial, envolverá o utilizador titular do link invadido;
    • Vandalismo – destruição de dados, interferência ao normal funcionamento da rede, etc.

    A contra medida simples configurada em separado ou em conjunto não devem ser consideradas medidas de segurança suficientes para impedir um indivíduo motivado a entrar na rede.

    2 Mecanismos de segurança

    Contamos com os mecanismos de segurança físicos e lógicos:

    • os métodos físicos são barreiras que limitam o contato ou acesso à informação ou a infra-estrutura de dados que contém as informações, podem ser exemplificados como: portas, trancas, acesso por identificação biométrica, blindagem, entre outros.
    • os métodos lógicos destacam-se por controles eletrônicos que impedem ou limitam o acesso à informação.

    Adicionalmente, agregamos aos mecanismos lógicos:

    - Criptografia: É a forma de cifrar dados, utilizando algoritmos altamente complexos, ou não, para tornar a informação ininteligível à terceiros. A decriptografia é utilizada pela parte autorizada a receber esta informação e devidamente com o algoritmo de decriptação é realizado o processo inverso.

    - Assinatura digital: Código utilizado para verificar a integridade de um documento, porém, não garante sua confidencialidade.

    - Garantia da integridade da informação: Conseguimos facilmente utilizando funções de “Hashing”, seria como tirar uma “foto” do documento antes de enviar, e então para o receptor verificar sua integridade ele tiraria outra “foto” do documento e realizava a comparação.

    - Controle de acesso: destacam-se por senhas, sistemas biométricos, controle de acesso explícito, como por exemplo, um firewall…
    3 Conceitos de Firewall

         Firewall, não é nada mais do que um porteiro ou um segurança com sua árdua função de verificar quem pode entrar e sair, além de manter a consonância das coisas, atualmente, já se tornou imprescindível sua utilização.
         Existem firewalls comerciais, muitos; também existe um método de construção onde podemos definir as próprias regras, onde você define o que quer controlar; praticidade? Nem tanto para uma corporação com mais de 5 mil regras. De qualquer forma, com um pouco de organização, conseguimos trabalhar, e muito bem, com o iptables.
         No Linux, o iptables é embutido no kernel, o que o torna, sem dúvida, superior em relação aos seus concorrentes. Obviamente nenhum firewall irá corrigir os erros de sua rede, mas ele poderá limitar o uso destes serviços à certos computadores. Não faz sentido disponibilizar um serviço de FTP a toda a internet sendo que apenas a filial necessita deste acesso, muito menos manter um serviço web ativo no seu servidor, se nem ao menos você necessita dele lá. Então, como definir políticas de acesso aos serviços em que eu realmente necessito mante-los?

    Iptables
    Para entendermos o iptables, veremos como ele trabalha para então conhecermos o quê ele pode nos proporcionar. Teremos agora, um método bem didático de explicação. Preparado??

    O iptables está organizado por 3 tabelas, a saber:

    Filter: Onde é controlado o de filtro de pacotes, basicamente, quem entra e quem sai da sua rede. É composta por três funções:

    • INPUT: Controla o que entra no servidor.
    • FORWARD: Controla o que entra no servidor mas deve ser redirecionado a uma outra máquina.
    • OUTPUT: Controla o que sai do servidor.

    NAT: Ela trabalha com funções de NAT (Network Address Translation), seria uma troca do endereço de rede. As funções dela são:
    • PREROUTING: Utilizada quando necessitamos tomar ações ANTES do datagrama ser roteado.
    • POSTROUTING: Utilizada quando necessitamos tomar ações APÓS o roteamento do datagrama.
    • OUTPUT: Utilizada quando necessitamos realizar alterações nos datagramas após eles serem roteados.

    Mangle: Trabalha com alterações especiais nos pacotes, por exemplo alterar a prioridade de um datagrama IP, ou marcar um determinado datagrama para que ele seja trabalhado por um roteamento especial, como sair por outro gateway. As funções dela são:
    • PREROUTING: Utilizada quando necessitamos modificar os datagramas dando um tratamento especial antes que eles sejam roteados.
    • OUTPUT: Modifica especialmente os datagramas gerados pelo servidor antes que eles sejam roteados.
    Veja um exemplo didático:

     
    Agora que já sabemos tudo sobre as situações das tabelas, vamos conhecer alguns comandos:

    Comandos do iptables

    iptables: o binário
    iptables-save: binário que salva as regras em memória.
    ip6tables: iptables para IPv6.
    iptables-restore: binário responsável carregar em memória as regras que foram salvas pelo ‘iptables-save’.

    Forma de utilização:
    # iptables –t nat
    diz ao iptables que será usado a tabela nat

    # iptables –t filter
    diz ao iptables que será usado a tabela filter

    # iptables –t mangle
    diz ao iptables que será usado a tabela mangle
    iptables -<comando> [cadeia]
    Ex: iptables -A INPUT

    -A chain Ex: iptables –A INPUT

    Iptables, insira as regras ao final da chain INPUT.

    -D chain Ex: iptables –D INPUT

    Iptables, apague as regras da chain INPUT, não vou mais utilizá-las.

    -D chain regra_num Ex: iptables –D FORWARD 25

    Iptables, apague da chain FORWARD a regra residente na posição 25.

    -R chain regra_num Ex: iptables –R FORWARD 20 –s 192.168.30.10 –d 192.168.40.0/24

    Iptables, substitua a regra 20 da chain FORWARD pela regra dada ‘–s 192.168.20.10 –d 192.168.30.0/24 -j DROP.’

    -I chain Ex: iptables –I INPUT

    Iptables, insira no inicio da lista a regra.

    -L chain Ex: iptables –L INPUT

    Iptables, liste as regras da chain INPUT. Nota: Caso não haja nenhuma chain especificada, todas as regras em todas as chains são listadas.

    -F chain Ex: iptables –F FORWARD

    Iptables, remova todas as regras da chain FORWARD. Nota: Se nenhuma chain for especificada, remove as regras de todas as chains existentes, inclusive as do usuário

    -Z chain Ex: iptables –Z

    Iptables, zere os contadores de datagramas e de bytes em todas as regras da chain especificada, ou para todas as chains se nenhuma for especificada.

    -N chain Ex: iptables –N VIRUS

    Iptables, crie uma chain chamada VIRUS, utilizado para tratar diversos casos com o mesmo ALVO.

    -e chain Ex: iptables –e WORMS worms

    Iptables, renomeie a chain WORMS para worms

    -X chain Ex: iptables –X WORMS

    Iptables, apague a chain WORMS, não vou mais utilizá-la. Nota: o iptables apagará todas se não for especificada uma.

    -C chain Ex: iptables –C WORMS

    Iptables, verifique o datagrama descrito pela regra especificada contra a chain especificada. Este comando retorna uma mensagem descrevendo como a chain processou o datagrama. Isso é muito útil para testar a configuração do firewall, e para uma análise posterior.

    -P chain política Ex: iptables –P INPUT DROP
    Iptables, defina a política padrão para a chain INPUT dentro de uma política especificada a DROP. As políticas válidas são: ACCEPT, DROP, QUEUE e RETURN.

     
    Controles a serem tomados:

    -p <protocolo> Ex: -p tcp.

    Iptables, é sobre o protocolo tcp! (você encontra uma tabela de protocolos em /etc/protocol)

    -i <interface> Ex: -i eth0, -i eth1, -i eth+ (todas eth)

    Iptables, controle tudo o que ENTRA (-i de INPUT) pela interface ethX . Esta regra também se aplica a chain FORWARD.

    -o <interface> Ex: -o eth0, -o eth1, -o eth+ (todas eth)

    Iptables, controle o que SAI (-o de OUTPUT). Esta regra também se aplica nas chains FORWARD e OUTPUT

    -s <ip> Ex: -s 192.168.0.1/24

    Iptables, controle o que vier da ORIGEM (-s de SOURCE) 192.168.0.1/24

    -d <ip> Ex: -d 192.168.0.2/24

    Iptables, controle o que vai com DESTINO (-d de DESTINATION)

    ! <pacote|ip> Ex: -d ! 192.168.0.2/24, ou –p ! udp

    Iptables, com qualquer DESTINO (-d de DESTINATION) EXCETO 192.168.0.2, o mesmo para protocolo, qualquer um exceto udp.

    -j <ação> Ex: -j ACCEPT, -j DROP, -j REJECT, -j LOG

    Iptables, o que casar com as ações definidas voce vai ACEITAR, vai NEGAR, vai REJEITAR ou vai GRAVAR.

    –sport <porta> Ex: –sport 22

    Iptables, o que for da PORTA de ORIGEM (–sport de SOURCE PORT) 22

    –dport <porta> Ex: –dport 80

    Iptables, o que for para a PORTA de DESTINO 80 (–dport de DESTINATION PORT)

     
    DICA: Tanto para –sport quanto para –dport podemos utilizar range de portas:
    Ex: –dport 6881:6889
    Ou multiportas:
    Ex: -m multiport –dport 5190,4000,53

    Ações a serem tomadas quando alguma regra combina ou casa (para os íntimos)

    ACCEPT Aceitar o datagrama IP
    DROP Bloquear o datagrama IP, descarta o datagrama sem informar ao emissor
    REJECT Rejeita o datagrama IP, informa o emissor, Ex: icmp destination host unreacheable
    LOG Cria Logs das ações solicitadas.
    SNAT Modifica o endereço de origem (SOURCE NAT) dos datagramas IP antes deles serem roteados. Ex: Dizer que um datagrama enviado do host X para o Y originou-se do host Z.
    DNAT Modifica o endereço de destino (DESTINATION NAT) dos datagramas IP das máquinas clientes. Ex: Encaminhar um datagrama com destino a porta 80 para a 3128 (do squid!)
    REDIRECT Redireciona a porta. Ex: o que vier para a porta 7153 redirecionar para a porta 3389 (a porta do Terminar Service)
    TOS Tratamento especial no datagrama, veremos mais adiante!

     

          Nossa! Quanta coisa hein? Se você conseguiu chegar até aqui, é sinal de que apenas passou os olhos pelas tabelas, não!? Tome notas, leia, imprima, releia e tenha as tabelas no bolso, se entendê-las dominará o iptables facilmente!
    Agora chega de “bla bla bla” e vamos as reais situações.

    A maioria das situações abaixo foram retiradas da lista linux-board do YahooGroups, a qual sempre presto uma ajuda nas horas vagas.

    Vamos tomar como exemplo a situação de rede, a quase padrão na maioria dos casos:

    Rede: eth0 interna
    Rede: eth1 externa

    Trabalhando com NAT em sua rede

    Mascarar conexão

    Devemos habilitar, antes, o nat em seu kernel:

    echo 1 > /proc/sys/net/ipv4/ip_forward

    E então:

    iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j MASQUERADE
    Iptables, adicione na tabela nat (-t nat), após ser roteado (-A POSTROUTING):
    • O que for de origem da minha rede (-s 192.168.0.0/24)
    Qual o alvo, o que fazer?
    • -j MASQUERADE (mascarar a conexão)
    SNAT: modificação do endereço de origem das máquinas para um único IP ou faixa de IP’s.
    Qualquer regra que utilize SNAT deve ser aplicada a chain POSTROUTING.

    DNAT: modificação do endereço de destino das máquinas para um único IP ou fixa de IP’s.
    Qualquer regra que utilize DNAT deve ser aplicada a chain PREROUTING.
    E então, fácil? Calma, veremos muitos exemplos, até você decorá-los. Vejamos uma regra:

    iptables –t nat –A POSTROUTING –s 192.168.0.1 –o eth0 –j SNAT -–to 192.168.2.12
    Iptables, adicione na tabela POSTROUTING (-t nat –A POSTROUTING):
    • o que vier com origem do host (-s 192.168.0.1)
    • e especificamente o que sai pela rede eth0 (-o eth0)
    • deverá ter seu endereço alterado (-j SNAT) para 192.168.2.12

    Tá ficando bom, vejamos uma com DNAT:

    Redirecionar conexões que entrem na porta 7155 para a porta 3389 (Terminal Service) de uma máquina interna de sua rede.

    iptables -t nat -A PREROUTING -p tcp -m tcp –dport 7152 -j DNAT –to 192.168.0.126:3389
    iptables como vai? Adicione na tabela PREROUTING (-t nat –A PREROUTING):
    • O que for TCP e que vier com destino à porta 7152 (–dport 7152)
    terá seu destino de rede alterado para 192.168.0.126 (-j DNAT –-to 192.168.0.126:3389)
    Quando não especificamos uma origem ou um destino (-s <IP>, -d <IP>) o iptables segue o padrão que é ANY, ou seja, qualquer (0/0). É redundante colocarmos algo como –s 0/0 ou –d 0/0. Note que na regra acima, deixamos explícito a porta destino do pacote, já que ele viria pela 7152 e além de alterarmos o IP de destino, alteramos também a porta para 3389.
    Redirecionar conexões da porta 80 para 3128

    iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -i eth0 –dport 80 -j REDIRECT –to-port 3128
    iptables, adicione na tabela nat (-t nat), antes de ser roteado (-A PREROUTING) :
    • O que for de origem (-s, de source) 192.168.0.0./24
    • E que seja do protocolo tcp (-p tcp)
    • E que entre pela interface eth0 (-i de input, eth0)
    • Com destino a porta 80 (–dport 80)
    Qual o alvo, o que fazer? :
    • Redirecionar para a porta 3128 (-j REDIRECT –to-port 3128)

     
    Trabalhando com filtros de pacote

          Há pessoas que trabalham, de cara, bloqueando tudo e liberando apenas o necessário. Há outras que trabalham liberando tudo o que necessita e bloqueia o resto, veja, é diferente…

    Note que quando se lista uma tabela do iptables (iptables –t filter –L), você vê que a política padrão é ACCEPT:

    # iptables -t filter -L
    Chain INPUT (policy ACCEPT)

    Então, vamos montar a política de que, por padrão o pacote é bloqueado.

    iptables –P INPUT DROP
    iptables –P OUTPUT DROP
    iptables –P FORWARD DROP

    Bloquear tudo com destino ao site www.pornografia.com

    iptables –A FORWARD –s 192.168.0.0/24 –d www.pornografia.com –j DROP

    iptables, adicione na tabela de encaminhamento de pacotes (iptables –A FORWARD):
    • Tudo o que for de origem (-s, de source, origem ) 192.168.0.0/24
    • e com destino a (-d, de destination, destino) www.pornografia.com
    • seja bloqueado (-j alvo, “o que fazer?”) DROP (bloquear, negar)
    Liberar tudo o que vier do site www.empresa.com.br

    iptables –A FORWARD –s www.empresa.com.br –d 192.168.0.0/24 –j ACCEPT
    iptables, adicione na tabela de encaminhamento (iptables –A FORWARD):
    • O que vier da origem (-s www.empresa.com.br)
    • Com destino a minha rede interna (-d 192.168.0.0/24)
    • Será liberado (-j ACCEPT)
    Bloquear totalmente aquele cara que esta consumindo sua banda:

    iptables –A FORWARD –s 192.168.0.15 –d 192.168.0.1 –j DROP
    Adicionar na tabela de encaminhamento (-A FORWARD):
    • o que for de origem (-s) do IP 192.168.0.15 e com destino ao gateway de internet (-d) 192.168.0.1 será bloqueado (-j DROP).
    Já deu um susto? Então você pode excluir a regra:

    iptabes –D FORWARD –s 192.168.0.15 –d 192.168.0.1 –j DROP

    Há uma forma de excluir a regra pelo seu número, para listar as regras e sua ordem fazemos:

    # iptables -t filter -nL –line-numbers
    26 DROP 0 — 192.168.0.15 192.168.0.1

    E então, excluímos:

    # iptables -D FORWARD 26

    Tratamentos especiais em pacotes, TOS

          “O tipo de serviço é um campo existente no cabeçalho de pacotes do protocolo ipv4 que tem a função especificar qual é a prioridade daquele pacote. A prioridade é definida usando o algoritmo FIFO do próprio kernel, sendo uma das alternativas de controle/priorização de tráfego das mais simples e rápidas.
    Uma das vantagens da utilização do tipo de serviço é dar prioridade ao tráfego de pacotes interativos (como os do ICQ, IRC, servidores de chat), etc. Com o TOS especificado, mesmo que esteja fazendo um download consumindo toda a banda de sua interface de rede, o tráfego com prioridade interativa será enviado antes, aumentando a eficiência do uso de serviços em sua máquina.” – Guia Foca Linux.
    Antes de começar, algumas definições:

    Tipo de TOS

    AJUSTE

    Espera mínima (Minimize-delay)

    16

    Máximo processamento (Maximize-throughput)

    8

    Máxima confiança (Maximize-reability)

    4

    Customínimo (Minimize-cost)

    2

    Prioridade normal (Normal-service).

    0

     

    Prioridade máxima para conexões SSH:

    iptables –t mangle –A PREROUTING –i eth1 –p tcp –-sport 22 –j TOS –-set-tos 16
    iptables, adicione na tabela mangle (-t mangle) antes de ser roteado (-A PREROUTING):
    • o que entrar pela interface eth1 (-i eth1) que for tcp (-p tcp)
    • com origem da porta 22 (–sport 22) dar o máximo de processamento (-j TOS –-set-tos 16)

    Você deve ter notado, na regra de DNAT láaa em cima, há uma coisinha estranha (-p tcp -m tcp) –m tcp… o que seria isto? Módulos!

    Módulos

    Os módulos ampliam o poder do iptables, é uma forma de explandir ainda mais suas regras, afinal, já somos expert em iptables!

    Veja alguns módulos:

    TIPO

    DESCRIÇÃO

    limit Limita o número de vezes de uma regra
    state Estado da conexão, (NEW,ESTABLISHED, RELATED e INVALID “já obsoleto”)
    mac Isto mesmo, podemos trabalhar por endereços MAC, bacana, não?
    multiport Já pensou especificar 10 regras de tratamento de portas? O Multiport faz isto por você!
    string Dá uma espiada no conteúdo do pacote em busca de uma “string”
    owner Observa quem criou o pacote, trabalha apenas com a chain OUTPUT.

     
    A opção limit limita a quantidade de vezes que a regra deve ser executada em um intervalo de tempo, estremamente útil para trabalhar com tentativas de ataques. Ataque DoS (Denial of Service), entende?

    iptables –A INPUT –p icmp –icmp-type echo-request –m limit –limit 1/s –j ACCEPT
    Definimos que aceitaremos pacotes de icmp (-p icmp) tipo do ping (–icmp-type echo-request) se eles forem recebidos apenas no limite de um segundo (-m limit –limit 1/s). Podemos ter s, m, h, d (segundo, minuto, hora e dia).

    Certo, se eu desejar bloquear estes tipos de requisições, afinal, ninguém precisa saber se estamos vivos ou não, a regra seria … ?

    iptables –A INPUT –p icmp –j DROP

    Bloquear tudo o que entrar e que seja do tipo icmp. Esta ficou fácil, não?

    Mas… Como ele controla isto, a quantidade de vezes… é memória, banco de dados?

    Não, ele utiliza as flags de inicialização de um datagrama IP, elas são:

    FLAG

    Descrição

    ACK Acknowledgement. Informa ao receptor o próximo número da seqüência do pacote
    SYN Syncronize. Utilizada para realizar o sincronismo dos números seqüênciais.
    FIN Finalização. Flag utilizada para indicar a finalização de uma conexão
    PSH Push. Informa ao tcp que se deve enviar todos os pacotes que estejam no buffer ao destinatário
    URG Urgent. Prioridade no envio.

     

    Para um melhor entendimento, veja:

     

     

    - O Cliente envia um datagrama com a flag SYN, para o firewall, é uma nova conexão;
    - O servidor recebe a requisição, e responde com a dupla SYN+ACK;
    - Para o firewall, há uma conversa, estabilizou!

    Fechamento de uma conexão:

     
    Imagine o que aconteceria se enviássemos vários pacotes SYN forjando a origem para um Host B, este host B enviaria um pacote SYN+ACK de volta para o Host A e ficaria aguardando o estabelecimento de conexão (ora se forjamos a origem, é óbvio que nunca o receberá), este é o tipo de conexão three-way e várias requisições neste estado de ‘half-connection’ geram o famoso Syn-flood, muitas conexões abertas aguardando um pacotinho ACK de confirmação que nunca chegará.
    A opção state trabalha com o estado da conexão:

    NEW: nova conexão
    ESTABLISHED: conexão já pertencente e estabilizada entre as duas pontas.
    RELATED: conexão que se relaciona com um outro pacote, por exemplo mensagens de erro.
    INVALID: Conexões inválidas, pacotes com problemas ou não formados corretamente.
    iptables –A INPUT –m state –state INVALID –i eth1 –j DROP

    Bloqueia o que entrar (-A INPUT) pela interface eth1 (-i eth1) e com estado inválido (–state INVALID).

    A opção mac permite-nos trabalhar por este tipo de endereçamento:

    iptables –A INPUT –m mac –mac-source 00:50:04:EE:3D:FD –j DROP

    Bloqueia o que for do endereço mac de origem (–mac-source)

    A opção multiport permite-nos trabalhar com várias portas, por exemplo:

    iptables -A FORWARD -p udp -m multiport –dport 5190,4000 -j DROP

    Bloqueia o encaminhamento de mensagens udp das portas 5190 e 4000

    iptables -A FORWARD -s 192.168.0.0/24 -p tcp -m multiport –dports domain,ftp-data,ftp,https,pop3,smtp,21 -j ACCEPT

    Libera o encaminhamento de mensagens das portas de destino domain,ftp-data,ftp,https,pop3,smtp,21. Uma relação de portas está disponível em /etc/services

    Se você quer liberar um range de portas, pode fazer:

    iptables -A INPUT -p udp -i eth+ –dport 33435:33525 -j DROP

    Bloquear tudo o que for udp e que entrar por qualquer interface (-i eth+) para as portas de 33435 até 33525. Bloqueia o traceroute =)

    A opção string permite-nos vasculhar o conteúdo do pacote, por exemplo, bloquear o que contém a string Kazaa.

    iptables –A INPUT –m string –string “X-Kazaa” –j DROP

    Hum… vamos ver o que está acontecendo? Log nele!

    iptables –A INPUT –m string –string “sexo” –j LOG –log-prefix “IPTABLES: Log da string sexo, masculino ou feminino? =)”
    Dicas

    Não esqueça de sempre logar e depois bloquear, sempre liberar o chefe e depois bloquear o restante da empresa, e assim por diante, pois o iptables irá ler suas regras de cima para baixo, sempre.

    O seu arquivo de firewall nada mais é que um “shell script”, permitindo, então você fazer:

    # Redireciona VPN e TS para o PDC
    PORTS=”1723 3306”
    PROTOCOLOS=”tcp udp”
    IFACEWEB=”eth1”
          for PORTA in $PORTS;do
                for PROTO in $PROTOCOLOS;do
                      $IPTABLES -t nat -A PREROUTING -p $PROTO -m $PROTO –dport $PORTA -i $IFACEWEB -j DNAT –to 192.168.0.3
          done
    done

    Resumão

    # Ativando o NAT e definindo variáveis.

    echo 1 > /proc/sys/net/ipv4/ip_forward
    IPTABLES=”/sbin/iptables”
    LAN=”192.168.0.0/24”
    IFACEWEB=”eth1”

    # Apagando as regras anteriores

    $IPTABLES -t nat -F
    $IPTABLES -t nat -X
    $IPTABLES -t nat -Z
    $IPTABLES -t filter -F
    $IPTABLES -t filter -Z
    $IPTABLES -t filter –X
    # Configurando NAT e redirecionamento para SQUID, NINGUEM SAI PELA
    # porta 80
    $IPTABLES -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j MASQUERADE
    $IPTABLES -t nat -A PREROUTING -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 3128
    $IPTABLES -t nat -A PREROUTING -p tcp -m tcp –dport 80 -j DROP

    # Liberando acesso remoto Terminal Service a uma máquina da rede.
    # Lembre-se, tudo o que entrar pela porta 7150 será redirecionado para
    # a máquina interna 192.168.0.117 na porta 3389.

    $IPTABLES -t nat -A PREROUTING -p tcp -m tcp –dport 7150 -j DNAT –to 192.168.0.117:3389

    # Liberando acesso a uma determinada porta de um programa especifico
    # (ERP) vindas da Filial (200.200.200.200)

    $IPTABLES -A FORWARD -s 200.200.200.200 -p tcp -m tcp –dport 1494 -j ACCEPT

    #Bloqueando ping com resposta unreachable

    $IPTABLES -I INPUT -i $IFACEWEB -p icmp -j REJECT –reject-with icmp-host-unreachable

    # Bloquear Bittorrent, ou outras portas, SQUID, Samba, DNS, etc…

    $IPTABLES -I INPUT -p tcp -m tcp –dport 6881:6889 -j DROP
    $IPTABLES -I OUTPUT -p tcp -m tcp –dport 6881:6889 -j DROP

    # Bloquear conexões de algum programa que utilize algum destino ou
    # alguma porta de destino, KAZAA, Emule

    $IPTABLES -A FORWARD -d 216.35.208.0/24 -j DROP
    $IPTABLES -A FORWARD -p tcp –dport 6346 -j DROP
    $IPTABLES -A FORWARD -d 209.61.186.0/24 -j DROP

     Fonte: http://www.flaviotorres.com.br/fnt/artigos/firewall_iptables.php

  • Integrar o Service Pack 1 no cd do Office 2007

    0 comentários

    por: admin, na categoria Windows dia 15/08/2009

    office-2007-boxVocê pode assim como no Windows, integrar os Service Packs diretamente nos seus arquivos de instalação, assim economizando tempo e a garantia de ter o Service Pack mais atual.

    Como funciona? Fácil. O instalador do Office, vai instalar qualquer atualização que esteja dentro da pasta ‘Updates’ na mídia de instalação. Para que o mesmo instale, as atualizações deverão estar no formato .msp (MSP ou Windows Installer Patch) para que sejam reconhecidas pelo instalador.

    1. Copie todos os arquivos do Office 2007 que estão no seu CD do Office para uma pasta temporária (Ex.: C:\Office2007).
    2. Faça o download do SP1 e do SP2 e salve em outra pasta temporária (Ex.: C:\Office2007SP1 para o SP1 e C:\Office2007SP2 para o SP2)
    3. Abra o Prompt de Comando e digite o seguinte comando C:\Office2007SP1\office2007sp1-kb936982-fullfile-pt-br.exe/extract:C:\Office2007\Updates\ ou C:\Office2007SP1\office2007sp1-kb936982-fullfile-pt-pt.exe/extract:C:\Office2007\Updates\ para a versão lusitana.
    4. Aceite o Termos de Licensa do Software Microsoft para integrar o Service Pack à instalação, esse comando criará vários arquivos .msp na pasta Updates.
    5. Caso queira o Service Pack 2 também, repita o passo 4 com o comando C:\Office2007SP2\office2007sp2-kb953195-fullfile-pt-br.exe/extract:C:\Office2007\Updates\ ou C:\Office2007SP2\office2007sp2-kb953195-fullfile-pt-pt.exe/extract:C:\Office2007\Updates\ para a versão lusitana.
    6. Agora grave os arquivos dentro da pasta C:\Office2007 para ter o seu CD do Office atualizado.

    Pronto, agora durante a instalação, o Service Pack será instalado automaticamente. Bom trabalho com seu Office

  • Fazer o Crontab não enviar e-mail

    0 comentários

    por: admin, na categoria Linux, Servidores dia 05/08/2009

    Às vezes, algumas tarefas que são executadas através do crontab não queremos receber informações sobre o status da tarefa, ou seja, não queremos ser avisados em caso de execução com sucesso.
    Para isso, podemos utilizar um “truque” que existe para não receber esse tipo de informação. Basta acrescentar 1> /dev/null
    Explicando melhor, caso a tarefa tenha sido executada com sucesso, ou seja, não teve erro nenhum, as informações que ela traria, como por exemplo: “OK” ou “SUCESSO” são enviadas para o diretório “escuro” (buraco negro) do Linux o /dev/null.
    Linha do crontab
    Antiga
    30 2 * * * /bin/tarefa.sh
    Nova
    30 2 * * * /bin/tarefa.sh 1> /dev/null

    Fonte: http://www.brunorusso.eti.br/dicas/diversos/fazer-o-crontab-no-enviar-e-mail/

  • Pré-venda do Windows 7 derruba servidores da Microsoft

    0 comentários

    por: admin, na categoria Windows dia 18/07/2009

    timthumb.phpAs cópias comercializadas somente serão entregues no lançamento oficial, com data marcada inicialmente para o dia 22 de outubro.

    O site da loja online da Microsoft na Europa também registrou tráfego intenso, a página oferece desconto de quase 50% nas versões Home e Professional do Windows 7 entre os dias 15 de julho e 9 de agosto. Os acessos foram tão altos que tornaram a página inacessível devido a queta dos servidores em alguns momentos desta quarta-feira. Os internautas encontravam, no lugar da loja, um pedido de desculpas no qual estava explicado os motivos que tiraram o site do ar, no caso, um número excessivo de acessos simultâneos.