sábado, 26 de fevereiro de 2011

Instalando e configurando um sistema RAID 1 no Debian Lenny ou qualquer outra distribuição linux

Introdução

Este artigo foi baseado nos seguintes sites:

1. Implementando RAID1 em um sistema sem perder dados - Devin
2. Corrigindo falhas e solucionando problemas de RAID no Ubuntu Intrepid (Ubuntu 8.10) « Andre Ferraro

e nas várias tentativas que fiz de fazer, usando vários caminhos que não deram certo.

O que é RAID?

(texto retirado de: Entendendo os Níveis de RAID (Redundant Array of Inexpensive Disks), texto de Danilo Montagna)

RAID é um acróstico de Redundant Array of Independent Drives - Conjunto Redundante de Discos Independente. Num bom português, o RAID é um sistema que utiliza de vários discos rígidos para criar uma redundância nos dados armazenados. Ao invés de ficar em apenas 1 HD, os dados são replicados em outros, ou seja, se um dos HDs falhar, outro HD assume até que o primeiro seja trocado e o sistema novamente sincronizado.

Tipos de RAID

RAID 0 - striping sem tolerância à falha

Este nível tem o nome de "striping". Os dados do computador são divididos entre dois ou mais discos rígidos, o que oferece uma alta performance de transferência de dados, porém não oferece segurança de dados, pois caso haja alguma pane em um disco rígido, todo o conteúdo gravado neles irá ser perdido. O RAID 0 pode ser usado para se ter uma alta performance, porém não é indicado para sistemas que necessitam de segurança de dados.

É possível usar de dois a quatro discos rígidos em RAID 0, onde os mesmos serão acessados como se fosse um único disco, aumentando radicalmente o desempenho do acesso aos HDs. Os dados gravados são divididos em partes e são gravados por todos os discos. Na hora de ler, os discos são acessados ao mesmo tempo. Na prática, temos um aumento de desempenho de cerca de 98% usando dois discos, 180% usando 3 discos e algo próximo a 250% usando 4 discos. As capacidades dos discos são somadas. Usando 4 discos de 10 GB, por exemplo, você passará a ter um grande disco de 40 GB.

Este modo é o melhor do ponto de vista do desempenho, mas é ruim do ponto de vista da segurança e da confiabilidade, pois como os dados são divididos entre os discos, caso apenas um disco falhe, você perderá os dados gravados em todos os discos. É importante citar que neste nível você deve usar discos rígidos idênticos. É até possível usar discos de diferentes capacidades, mas o desempenho ficará limitado ao desempenho do disco mais lento.

RAID 1 (mirror e duplexing)

O RAID 1 também é conhecido como "espelhamento", ou seja, os dados do computador são divididos e gravados em dois ou mais discos ao mesmo tempo, oferecendo, portanto, uma redundância dos dados com segurança contra falha em disco. Esse nível de RAID tende a ter uma demora maior na gravação de dados nos discos, pelo fato da replicação ocorrer entre os dois discos instalados, mais sua leitura será mais rápida, pois o sistema terá duas pontes de procura para achar os arquivos requeridos.

Neste nível são utilizados dois discos, sendo que o segundo terá uma cópia idêntica do primeiro, ou seja, um CLONE. Na prática, será como se existisse apenas um único disco rígido instalado, pois o segundo seria usado para espelhamento dos dados gravados no primeiro - mas caso o disco principal falhe por qualquer motivo, você terá uma cópia de segurança armazenada no segundo disco. Este é o modo ideal se você deseja aumentar a confiabilidade e a segurança do sistema.

Um detalhe importante em RAID 1 é que, caso os dois discos estejam na mesma IDE, (1º em master e o 2º em slave), você teria que resetar o micro caso o primeiro disco quebrar, usando um disco por IDE a placa fará a troca automaticamente, sem necessidade de reset.

RAID 10 (mirror e striping com alta performance)

O RAID 10 pode ser usado apenas com 4 discos rígidos. Os dois primeiros trabalharão em modo Striping (aumentando o desempenho), enquanto os outros dois armazenarão uma cópia exata dos dois primeiros, mantendo uma tolerância à falhas. Este modo é na verdade uma junção do RAID 0 com o RAID 1 e é muito utilizado em servidores de banco de dados que necessitem alta performance e tolerância à falhas.

RAID 0+1 (alta performance com tolerância)

Ao contrário do que muitos pensam, o RAID 0+1 não é o mesmo que o RAID 10: embora ambos exijam no mínimo quatro discos rígidos para operarem e funcionam de uma maneira similar, o RAID 0+1 e tem a mesma tolerância à falha do RAID 5. No RAID 0+1, se um dos discos rígidos falhar, ele se torna essencialmente um RAID 0

RAID 2 (ECC)

Este nível de RAID é direcionado para uso em discos que não possuem detecção de erro de fábrica. O RAID 2 é muito pouco usado uma vez que os discos modernos já possuem de fábrica a detecção de erro no próprio disco.

RAID 3 (cópia em paralelo com paridade)

O RAID 3 divide os dados, a nível de byte, entre vários discos. A paridade é gravada em um disco em separado. Para ser usado este nível, o hardware deverá possuir este tipo de suporte implementado. Ele é muito parecido com o RAID 4.

RAID 4 (paridade em separado)

O RAID 4 divide os dados, a nível de "blocos", entre vários discos. A paridade é gravada em um disco separado. Os níveis de leitura são muito parecidos com o RAID 0, porém a gravação requer que a paridade seja atualizada toda as vezes que ocorrerem gravações no disco, tornando-a mais lenta a gravação dos dados no disco. O RAID 4 exige no mínimo três discos rígidos.

RAID 5 (paridade distribuída)

O RAID 5 é comparável ao RAID 4, mas ao invés de gravar a paridade em um disco separado, a gravação é distribuída entre os discos instalados. O RAID 5 aumenta a velocidade em gravações de arquivos pequenos, uma vez que não há um disco separado para a paridade. Porém como o dado de paridade tem que ser distribuído entre todos os discos instalados, durante o processo de leitura, a performance deverá ser um pouco mais lenta que o RAID 4. O RAID 5 exige no mínimo três discos rígidos.

Existem outros RAID que são utilizados em menor escala e/ou são baseados naquele acima mencionados:

RAID 6 (dupla paridade)

É essencialmente uma extensão do RAID 5 com dupla paridade

RAID 7 (altíssima performance)

As informações são transmitidas em modo assíncrono que são controladas e cacheadas de modo independente, obtendo performances altíssimas.

RAID 53 (alta performance)

É essencialmente um RAID 3 com cinco discos rígidos.

Com certeza pode-se afirmar que o Sistema de arquitetura RAID é o mais utilizado entre empresas que querem manter segurança de dados em seus servidores. Algumas soluções são bastante caras, mas permitem um nível de segurança compatível com o investimento realizado.

Descrição do RAID feito por Danilo Montagna - obrigado pelo texto!

Montando o sistema RAID

Depois de analisar o cenário que estamos inseridos, optei pelo RAID 1. Fazer a redundância entre 2 HDs resolvia eficientemente nosso problema.

Nosso hardware:
  • Pentium dual core
  • 4 gigas de RAM
  • 2 HDS sata de 500 gigas
  • placa mãe asus

Instalando o Debian no primeiro HD, /dev/sda

A instalação do Debian não tem segredo. Os passos não serão descritos aqui neste artigo. Um artigo, aqui mesmo do VOL trata detalhadamente do assunto: Instalação do Debian GNU/Linux - Passo a passo

No meu caso específico, a instalação foi default, a única interação de minha parte foi no particionamento:
  • /dev/sda1 - / - raiz - ext3 - 300.1 gigas
  • /dev/sda5 - /home - ext3 - 198 gigas
  • /dev/sda6 - swap - 2 gigas

Instalação do mdadm

Depois de instalado o Debian, a instalação do pacote mdadm é fundamental para a configuração do RAID.

# apt-get install mdadm

Configurando o HD e as partições

Depois de instalado o mdadm, vamos utilizar o cfdisk para alterar o tipo de filesystem das partições. Durante a criação das partições na instalação, a raiz e o home foram formatadas como ext3 e a memória virtual como swap.

Alteração das partições sda1, sda5 e sda6 para "FD":

# cfdisk /dev/sda

O cfdisk é um dos programas para criação e alteração das partições do HD. Para alterar o tipo de filesystem das partições, depois de executar o comando cfdisk, com as setas do teclado, as setas PARA BAIXO e PARA CIMA, selecione a partição "sda1".

Com as setas PARA A ESQUERDA e PARA A DIREITA, selecione TYPE , serão mostradas todos os filesystens que o Linux suporta, escolha a opção LINUX RAID AUTODETECT, ou digite na caixinha as letras referentes a esta opção: "FD".

Repita a operação para todas partições. Depois é só selecionar a opção ESCREVER. A nova tabela de partições será refeita. Para que as novas configurações sejam efetivadas, vamos reiniciar o micro.

Copiando a tabela de particionamento

Depois de reiniciar, as modificações feitas já foram efetivadas. Como temos dois HDs, temos que fazer o particionamento deste. Uma alternativa é abrir o cfdisk, desta vez trabalhando com o /dev/sdb, ou usar o sfdisk para copiar a tabela de partições do HD master (/dev/sda) para um arquivo txt e depois pegar a tabela de partições descritas neste arquivo e importar para o segundo HD.

É bom lembrar e deixar bem claro que os dois HDs não precisam obrigatoriamente ser do mesmo tamanho, o fundamental é que as partições tenham exatamente o mesmo tamanho. No meu caso, os dois HDs eram exatamente iguais, então a tabela de particionamento é a mesma para ambos. No caso de HDs com tamanhos diferentes, ou mesmo fazer o RAID em uma ou duas partições, o uso do cfdisk talvez seja a opção mais adequada.

Se os dois HDs forem idênticos, é só seguir a próxima etapa. O sfdisk é um manipulador das tabelas de partições do Linux, o "-d" fará um dump do /dev/sda e a saída será redirecionada para /root/partitions.txt.

# sfdisk -d /dev/sda > /root/partitions.txt

Depois é só fazer o caminho inverso, pegar a tabela de particionamento que está descrita no arquivo /root/partitions.txt e jogar no copiar depois a tabela de partições do arquivo partitions.txt para o o segundo HD, (sdb):

# sfdisk /dev/sdb < /root/partitions.txt

Para efetivar as mudanças, reiniciar o computador.

Criando os dispositivos RAID

Com todos os HDs e partições já configurados para trabalharem como RAID, agora está na hora de fazer a configuração.

Relembrando a estrutura criada na hora da instalação do Ubuntu.
  • O /dev/sda tem 3 partições: Raiz, /home e swap
  • O /dev/sdb tem 3 partições: Raiz, /home e swap, feitas a partir do sfdisk.

O RAID irá trabalhar utilizando um dos HDs e suas respectivas partições e atualizando as partições do outro HD, deixando-as sempre em sincronia para uma eventual falha. Desde modo, podemos dizer que a estrutura do RAID será:
  • a raiz é /dev/sda1 e /dev/sdb1
  • o home é /dev/sda5 e /dev/sdb5
  • swap é /dev/sda6 e /dev/sda6

Criando o primeiro dispositivo md0

Até este ponto de nossa instalação, criamos toda a estrutura para que o RAID fosse implementado, mas ele ainda não foi efetivamente feito. A partir de agora usaremos toda a estrutura para implementar o sistema.

O mdadm foi instalado e está pronto para ser usado.

# mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdb1

A sintaxe e os parâmetros do comando:
  • --create: cria o dispositivo;
  • /dev/md0: ao invés de ser um dispositivo do tipo /dev/md0, ele cria um dispositivo MD, que significa Multiple Device, ou seja, pode-se ter múltiplos dispositivos neste array;
  • --level=1: é o nível do RAID, estamos usando RAID 1
  • --raid-devices=2: número de devices/HDs no RAID. No nosso caso são 2 HDs;
  • missing: uma partição está faltando no array (momentaneamente, depois será adicionada)
  • /dev/sdb1: Partição que será adicionada ao array /dev/md0

Criando o segundo dispositivo md1

Vamos criar agora o /dev/md1. Ele será o /home:

# mdadm --create /dev/md1 --level=1 --raid-devices=2 missing /dev/sdb5

Criando o terceiro dispositivo md2

Vamos criar agora o /dev/md2. Ele será a swap:

# mdadm --create /dev/md2 --level=1 --raid-devices=2 missing /dev/sdb6

Vamos reiniciar o sistema para o kernel ler as novas configurações (não é necessário, mas é bom né?).

Depois do reboot, vamos verificar se os novos dispositivos foram criados.

Digite:

# cat /proc/mdstat

Provavelmente eles estarão como: --active (auto-read-only)

Depois de criados o sistema de arquivos os dispositivos (md0 e md1) ficarão: active raid1 sdb1

Criando o sistema de arquivos das partições RAID

Com o segundo HD, e suas respectivas partições, já inserido no array, vamos criar o filesystem para cada uma destas partições.

Criar um filesystem ext3 na partição /dev/md0 - RAIZ:

# mke2fs -j /dev/md0

Cria um filesystem ext3 na partição /dev/md1 - /home:

# mke2fs -j /dev/md1

Criar um filesystem swap na partição /dev/md2:

# mkswap /dev/md2

Copiando o conteúdo do primeiro HD para o segundo

O segundo HD já está pronto, o filesystem já foi criado, mas as partições ainda estão vazias, sem a estrutura de diretórios e seus respectivos arquivos.

Antes de iniciar a cópia dos dados, vamos alterar o menu.lst.

1) Alterar o menu.lst

title           Debian  GNU/Linux, kernel 2.6.24-1-686
root            (hd1,0)
kernel          /vmlinuz-2.6.24-1-686 root=/dev/md0 ro
initrd          /initrd.img-2.6.24-1-686
savedefault

Este é o menu.lst de meu Debian. Em outro Linux, a versão do kernel e do initrd podem ser diferentes.

As alterações ocorreram nas linhas:
root            (hd1,0)
kernel          /vmlinuz-2.6.24-1-686 root=/dev/md0 ro

Esta alteração vai fazer com que o sistema dê o boot pelo /dev/md0, a partição raiz, mas no segundo HD, o hd1,0.

Antes o boot era dado no HD (hd0,0), primeiro HD, primeira partição. Agora é dado no (hd1,0), segundo HD, primeira partição, ou seja, no HD RAID.

Criando o sistema de arquivos das partições RAID - cont

Copiando para o segundo HD (hd1) os dados das partições do primeiro HD (hd0).

Vamos agora copiar os dados do /dev/sda para /dev/sdb. Primeiro vamos montar as partições do segundo HD em /mnt.

Nós temos duas partições com dados: raiz e /home. Primeiro copiaremos a partição raiz.

# cd /mnt
# mkdir raiz
# mount -t ext3 /dev/md0 raiz
# cd raiz
# mkdir initrd mnt proc sys
# cp -a /boot /bin /cdrom /dev /etc /initrd.img /lib /media ./
# cp -a /opt /root /sbin /selinux /srv /tmp /usr /var /vmlinuz ./


Foram criados dentro do diretório raiz algumas pastas, mas não foram copiados para elas nenhum dado. Isto se deu porque estes diretórios são diretórios com conteúdos dinâmicos.

A cópia dos outros diretórios tem o parâmetro "-a". Este parâmetro faz a cópia dos arquivos com suas respectivas permissões.

Seguindo o mesmo raciocínio, copiaremos a partição /home:

# cd /mnt
# mkdir home
# mount -t ext3 /dev/md1 home
# cd home
# cp -a /home/* ./


Este processo de cópia poderá demorar devido o tamanho do HD, então é só esperar.

O próximo passo é alterar o arquivo /etc/fstab que está no diretório /mnt/raiz/etc/fstab. A alteração deste arquivo é importante pois ele montará os devices do sistema. O fstab que foi lido na hora do boot não reflete o novo ambiente com o RAID 1 configurado. No novo fstab, os devices devem ser alterados para md0 e md1. /etc/fstab: proc/procprocdefaults        0       0
/dev/md1/ext3 defaults,errors=remount-ro 0       1
/dev/md1 /home ext3defau02
/dev/sda6        none            swap    sw              0       0
/dev/hda        /media/cdrom0   udf,iso9660 user,noauto     0    0

Agora é hora de reiniciar o sistema. Com a cópia do conteúdo das partições para o novo HD montado em /mnt, a alteração do menu.lst dando o boot em (HD1,0) e do fstab montando os devices /dev/md0 e /dev/md1 o sistema carregará o novo HD.

É só cruzar os dedos e esperar que dê boot corretamente.

Adicionando o primeiro HD ao RAID 1

Se tudo correu bem, o gdm pediu o usuário e a senha. Depois do login o Debian abriu direitinho. Parece que nada mudou, tudo estava igual como era antes. Mas há um pequeno detalhe, o boot foi dado no segundo HD, recém configurado.

Nós adicionamos inicialmente o segundo HD ao RAID 1, agora com o sistema rodando no segundo HD do RAID, vamos adicionar o primeiro HD.

# mdadm /dev/md0 -a /dev/sda1
# mdadm /dev/md1 -a /dev/sda5
# mdadm /dev/md2 -a /dev/sda6


A adição de cada elemento no RAID pode demorar dependendo do tamanho da partição. Depois do primeiro comando mdadm que adicionou o /dev/md0 a sincronização começa imediatamente, só depois que terminar a sincronização é que o terminal estará livre para o segundo comando e a sincronia do segundo elemento.

Para verificar o processo de sincronização pode-se usar o comando:

# watch --interval 1 'cat /proc/mdstat'

Este comando lhe passará o conteúdo do arquivo /proc/mdstat (que contém o status atual dos dispositivos RAID do sistema) em um intervalo de 1 segundo.

Depois do término da sincronização pode-se ver o conteúdo o do arquivo /proc/mdstat:

# cat /proc/mdstat

Repita a adição de cada partição.

Instalando o Grub nos dois HDs

Depois da sincronização dos 2 HDs, o /boot/grub/menu.lst deixou de refletir o estado real do sistema, então é fundamental a instalação do grub. Para a instalação, abra um terminal e logue como root.

Digite:

# grub (o programa de configuração do grub é executado)
grub> device (hd0) /dev/sda - habilita o /dev/sda como primeiro HD do sistema
grub> root (hd0,0) - especifica a partição onde está instalado o sistema
grub> setup (hd0) - especifica onde será gravado o grub

Depois é preciso repetir a mesma operação para o segundo HD, o /dev/sdb

grub> device (hd0) /dev/sdb
grub> root (hd0,0)
grub> setup (hd0)

A diferença na execução dos 2 grupos de comandos é que no primeiro ele assume o /dev/sda como partição de trabalho, no segundo ele assume o /dev/sdb. Isto foi feito para escrever na MBR de cada HD as informações de onde está o /boot.
 

Tecnologia RAID

Ai galera Meu nome é Luciano Sou Gerente de Redes e tou aqui para + um poster dessa vez a Tecnologia RAID Bons estudos Pra vcs...

Introdução
Este artigo visa explicar os conceitos da tecnologia RAID, muito utilizada para operações críticas, onde não se pode perder dados ou ter serviços fora de funcionamento. Para um usuário normal, a perda de dados até que pode não fazer muita falta (mesmo que tenha, inclusive, valores sentimentais). Mas para empresas ou profissionais, a perda de informações pode significar prejuízos enormes. A tecnologia RAID, já consolidada e usada há alguns anos, é uma forma bastante eficiente de proteger informações e, no caso de empresas, garantir a permanência de seus negócios. Conheça, nas próximas linhas, os conceitos desta tecnologia.
O que é RAID
RAID é a sigla para Redundant Array of Independent Disks. Sua definição em português seria "Matriz Redundante de Discos Independentes". Trata-se de uma tecnologia que combina vários discos rígidos (HD) para formar uma única unidade lógica, onde os mesmos dados são armazenados em todos (redundância). Em outras palavras, é um conjunto de HDs que funcionam como se fossem um só. Isso permite ter uma tolerância alta contra falhas, pois se um disco tiver problemas, os demais continuam funcionando, disponibilizando os dados. O RAID é uma tecnologia consolidada, já que surgiu pelas mãos de pesquisadores da Universidade de Berkesley, na California (EUA) no final da década de 1980.
Para que o RAID seja formado, é preciso utilizar pelo menos 2 HDs. O sistema operacional, neste caso, enxergará os discos como uma unidade lógica única. Quando há gravação de dados, os mesmos se repartem entre os discos do RAID (dependendo do nível). Com isso, além de garantir a disponibilidade dos dados em caso de falha de um disco, é possível também equilibrar o acesso às informações, de forma que não haja "gargalos".
Os níveis de RAID
A tecnologia RAID funciona de várias maneiras. Tais maneiras são conhecidas como "níveis de RAID". No total, existem 6 níveis básicos, os quais são mostrados a seguir:
RAID nível 0 - Este nível também é conhecido como "Striping" ou "Fracionamento". Nele, os dados são divididos em pequenos segmentos e distribuídos entre os discos. Este nível não oferece tolerância a falhas, pois não existe redundância. Isso significa que uma falha em qualquer um dos HDs pode ocasionar perda de informações. Por essa razão, o RAID 0 é usado para melhorar a performance do computador, uma vez que a distribuição dos dados entre os discos proporciona grande velocidade na gravação e leitura de informações. Quanto mais discos houver, mais velocidade é obtida. Isso porque, se os dados fossem gravados em um único disco, esse processo seria feito de forma sequencial. Com o RAID, os dados cabíveis a cada disco são gravados ao mesmo tempo. O RAID 0, por ter estas características, é muito usado em aplicações de CAD e tratamento de imagens e vídeos.
RAID nível 1 -  também conhecido como "Mirroring" ou "Espelhamento", o RAID 1 funciona adicionando HDs paralelos aos HDs principais existentes no computador. Assim, se por exemplo, um computador possui 2 discos, pode-se aplicar mais um HD para cada um, totalizando 4. Os discos que foram adicionados, trabalham como uma cópia do primeiro. Assim, se o disco principal recebe dados, o disco adicionado também os recebe. Daí o nome de "espelhamento", pois um HD passa a ser uma cópia praticamente idêntica do outro. Dessa forma, se um dos HDs apresentar falha, o outro imediatamente pode assumir a operação e continuar a disponibilizar as informações. A conseqüência neste caso, é que a gravação de dados é mais lenta, pois é realizada duas vezes. No entanto, a leitura dessas informações é mais rápida, pois pode-se acessar duas fontes. Por esta razão, uma aplicação muito comum do RAID 1 é seu uso em servidores de arquivos.
RAID nível 2 - este tipo de RAID, adapta o mecanismo de detecção de falhas em discos rígidos para funcionar em memória. Assim, todos os discos da matriz ficam sendo "monitorados" pelo mecanismo. Atualmente, o RAID 2 é pouco usado, uma vez que praticamente todos os discos rígidos novos saem de fábrica com mecanismos de detecção de falhas implantados.
RAID nível 3 - neste nível, os dados são divididos entre os discos da matriz, exceto um, que armazena informações de paridade. Assim, todos os bytes dos dados tem sua paridade (acréscimo de 1 bit, que permite identificar erros) armazenada em um disco específico. Através da verificação desta informação, é possível assegurar a integridade dos dados, em casos de recuperação. Por isso e por permitir o uso de dados divididos entre vários discos, o RAID 3 consegue oferecer altas taxas de transferência e confiabilidade das informações. Para usar o RAID 3, pelo menos 3 discos são necessários.
RAID nível 4 - este tipo de RAID, basicamente, divide os dados entre os discos, sendo que um é exclusivo para paridade. A diferença entre o nível 4 e o nível 3, é que em caso de falha de um dos discos, os dados podem ser reconstruídos em tempo real através da utilização da paridade calculada a partir dos outros discos, sendo que cada um pode ser acessado de forma independente. O RAID 4 é indicado para o armazenamento de arquivos grandes, onde é necessário assegurar a integridade das informações. Isso porque, neste nível, cada operação de gravação requer um novo cálculo de paridade, dando maior confiabilidade ao armazenamento (apesar de isso tornae as gravações de dados mais lentas).
RAID nível 5 - este é muito semelhante ao nível 4, exceto o fato de que a paridade não fica destinada a um único disco, mas a toda a matriz. Isso faz com que a gravação de dados seja mais rápida, pois não é necessário acessar um disco de paridade em cada gravação. Apesar disso, como a paridade é distribuída entre os discos, o nível 5 tende a ter um pouco menos de performance que o RAID 4. O RAID 5 é o nível mais utilizado e que oferece resultados satisfatórios em aplicações não muito pesadas. Este nível precisa de pelo menos 3 discos para funcionar.
RAID 0 + 1 - O RAID 0 + 1 é uma combinação dos níveis 0 (Striping) e 1 (Mirroring), onde os dados são divididos entre os discos para melhorar o rendimento, mas também utilizam outros discos para duplicar as informações. Assim, é possível utilizar o bom rendimento do nível 0 com a redundância do nível 1. No entanto, é necessário pelo menos 4 discos para montar um RAID desse tipo. Tais características fazem do RAID 0 + 1 o mais rápido e seguro, porém o mais caro de ser implantado. A ilustração abaixo ilustra este tipo de RAID:


Tipos de RAID
Sistema RAIDExistem 2 tipos de RAID, sendo um baseado em hardware e o outro baseado em software. Cada uma possui vantagens e desvantagens. O primeiro tipo é o mais utilizado, pois não depende de sistema operacional (pois estes enxergam o RAID como um único disco grande) e são bastante rápidos, o que possibilita explorar integralmente seus recursos. Sua principal desvantagem é ser um tipo caro inicialmente. A foto ao lado mostra um poderoso sistema RAID baseado em hardware. Repare que na base da direita estão armazenados vários discos:
O RAID baseado em hardware, utiliza dispositivos denominados "controladores RAID", que podem ser, inclusive, conectados em slots PCI da placa-mãe do computador. Já o RAID baseado em software não é muito utilizado, pois apesar de ser menos custoso, é mais lento, possui mais dificuldades de configuração e depende do sistema operacional para ter um desempenho satisfatório. Este tipo ainda fica dependente do poder de processamento do computador em que é utilizado.
Finalizando
A tecnologia RAID é um dos principais conceitos quando o assunto é armazenamento de dados. Sua eficiência é comprovada por se tratar de uma tecnologia em uso há vários anos e que mesmo assim "não sai de moda". Grandes empresas, como a Intel, oferecem soluções de RAID, e essa tecnologia é possível de ser encontrada até mesmo em computadores domésticos. É muito provável que o RAID ainda venha a apresentar novos meios de funcionalidades, ampliando seu uso para os mais diversos tipos de necessidade de armazenamento e acesso à dados.

Fonte de Pesquiza... Google Nossa Amiga e Parceira da Winfox nos Desenvolvimentos de Rost.

E-mails e informações falsos sobre o Orkut

Olá pessoal,
Sabemos que algumas mensagens falsas sobre o Orkut costumam circular na internet, por isso queremos deixar claro que:
- O Orkut não tem planos de se tornar pago
- O Orkut não vai acabar
- Os perfis do Orkut não são apagados por falta de acesso. Seu perfil só será excluído quando você pedir a exclusão
- O Orkut nunca fez e não está fazendo nenhum tipo de recadastramento
- O Orkut não manda correntes. Se você recebeu algum email pedindo para você encaminhar a mensagem para um número grande de amigos, saiba que este email é falso
Fique atento e não acredite em qualquer mensagem que você receba. Temos uma página com várias dicas para você descobrir se um email é falso ou verdadeiro, dê uma olhada aqui: http://goo.gl/Ss90
Se você já recebeu alguma mensagem falsa, não entre em nenhum link e nem repasse aos seus amigos, apenas ignore e apague essa mensagem.
Abs :)

Fonte: Suporte Orkut.

sexta-feira, 25 de fevereiro de 2011

Servidor de E-mail iRedMail

Introdução
O e-mail é a forma de comunicação mais utilizada hoje em dia. Se o servidor de e-mails de uma empresa parar, é como se o mundo acabasse para os usuários! O telefone não vai parar de tocar, e-mails importantes não serão entregues/recebidos podendo gerar grandes prejuízos financeiros para empresas.
Imaginando um cenário desses, você com certeza não escolheria qualquer solução para implantar na sua empresa, certo? Atualmente, um dos melhores, mais seguros e mais estáveis softwares MTA (Mail Transport Agent) disponíveis é o Postfix.
Embora ele seja simples para quem já possui experiência na administração de servidores Linux, ele pode ser um pouquinho complicado para quem está apenas começando na administração de sistemas.
Por isso, neste artigo vou mostrar uma solução para facilitar a configuração do Postfix: o iRedMail. Este é um software que automatiza todo o processo de instalação e configuração de um servidor de e-mails utilizando as distribuições CentOS e Red Hat. Ele permite que você escolha o backend de gerenciamento de usuários (MySQL ou OpenLDAP), qual o webmail que você quer utilizar, gerenciador MySQL ou OpenLDAP, entre várias outras opções.
Aqui, vou assumir que você já possui um servidor CentOS configurado e funcional com acesso à Internet.
Quais os softwares que o iRedMail utiliza?
O iRedMail faz o download de todos os softwares automaticamente. Porém, obviamente você precisa saber quais são estes softwares que ele utiliza e suas versões também.
Segue uma lista de alguns dos softwares utilizados por ele:
·         Amavisd-new 2.6.2-2
·         Clamav 0.94.2-1
·         Dovecot 1.1.11
·         Postfix 2.5.6
Claro que esta não é a lista completa. Para verificar todos os pacotes que foram baixados para a sua máquina entre no diretório pkgs/rpms dentro do diretório criado quando você descompacta o iRedMail.
Download do iRedMail
O site oficial do iRedMail é http://code.google.com/p/iredmail/.
Vá até a seção “Downloads”. Lá você irá encontrar todas as versões do iRedMail que foram publicadas. Até a data de publicação deste texto, a versão mais recente é a 0.4.0, que pode ser obtida no link: http://iredmail.googlecode.com/files/iRedMail-0.4.0.tar.bz2.
Instalação
O script de instalação do iRedMail cuida de todo o processo, inclusive do download de todos os RPM’s necessários para que a instalação seja feita sem problemas. Vamos à instalação.
Primeiro, descompacte o arquivo que você baixou do site oficial:
# tar xjvf iRedMail-0.4.0.tar.bz2
Será criado um diretório chamado iRedMail-0.4.0. Entre nele:
# cd iRedMail-0.4.0
O seu diretório se parecerá com este:
Entre no diretório pkgs e execute o script que faz o download de todos os pacotes necessários:
# bash get_all.sh
E vá tomar um café. Dependendo da velocidade da sua conexão esta etapa poderá demorar um pouco para ser concluída. Quando ela terminar, podemos começar a configuração do nosso servidor de e-mail.
Para isso, faça o seguinte. Suba um nível em relação ao diretório pkgs (o diretório raíz do iRedMail) e execute o script iRedMail.sh:
# cd .. ; bash iRedMail.sh
Você verá a tela inicial da instalação do iRedMail:
Esta tela é apenas informativa. Aperte enter para passarmos para a próxima tela.
Esta tela permite que você escolha qual será o diretório home do usuário vmail. Como não serão criados usuários no sistema (todos os usuários serão virtuais), todos os e-mails serão entregues ao vmail e ele irá “distribuir” estas mensagens aos usuários certos.
Como este diretório irá conter todos os e-mails que chegam ao sistema, pode ser que ele cresça bastante com o tempo, portanto pense no futuro e reserve um espaço considerável para o home do usuário vmail.
Você pode deixar o padrão ou modificar para outro diretório que você queira. Depois selecione “OK”.
Agora, devemos escolher qual vai ser o backend do nosso servidor de e-mail. Isto irá informar ao iRedMail como nós queremos que ele guarde as informações de contas de usuários, autenticação, etc.
Se você escolher MySQL, o webmail será o RoundCube (um webmail excelente) e a ferramenta de administração será o PostfixAdmin. Se você escolher o OpenLDAP ele irá utilizar o SquirrelMail como webmail (o RoundCube não suporta OpenLDAP) e a ferramenta de administração será o phpLDAPadmin.
O MySQL é o recomendado, aqui iremos utilizá-lo. Obviamente, os passos daqui para frente serão diferentes dependendo do que você escolher aqui. Em outro artigo tratarei a configuração do OpenLDAP como backend. Vamos para a próxima tela.
Aqui devemos informar ao iRedMail qual a senha queremos utilizar para o usuário root do MySQL. Informe a senha com cuidado pois não haverá chance de confirmá-la mais tarde. Tenha certeza que digitou a senha corretamente.
Nesta tela devemos informar a senha do usuário administrador do Vmail. Aqui acontece a mesma coisa que aconteceu com a senha do root do MySQL: você não vai poder confirmar a senha que escreveu. Portanto, tenha certeza que digitou a senha corretamente.
Aqui acabam as diferenças de configuração entre MySQL e OpenLDAP.
Você precisa informar o domínio que você quer utilizar. Lembre-se, este é um domínio virtual. Você poderá adicionar outros domínios sem problema algum quando precisar.
Nesta tela você deve definir qual será o nome de usuário do administrador do domínio. O padrão em todos os servidores de e-mail é definir “postmaster” para este usuário. Seguiremos o padrão aqui.
Aqui devemos definir qual será a senha da conta “postmaster”, o administrador do domínio.
Nesta tela você pode criar o primeiro usuário “normal” do seu domínio. Ele não terá direito especial algum, é apenas um usuário.
Nesta tela você pode definir a senha para o usuário. Ele irá utilizar esta senha quando for ler o e-mail ou acessar o webmail.
Aqui você deve escolher se quer habilitar ou não o suporte a SPF e DKIM. Segue uma breve descrição sobre o que são ambos:
·         DKIM: DomainKeys Identified Mail. Basicamente, o DKIM oferece um método para validar um nome de domínio associado a um e-mail através de autenticação criptográfica.
·         SPF: O objetivo do SPF é impedir que worms, vírus e spammers utilizem endereços arbitrários (ou inexistentes) no campo “sender” do envelope do e-mail. Os administradores do domínio devem publicar registros SPF no DNS e os administradores do servidor de e-mail devem utilizar MTAs (como o Postfix) que possuam suporte ao SPF para que ele compreenda os registros SPF. Estes registros informam quais servidores possuem autoridade para enviar e-mails. Qualquer outro servidor enviando e-mails destes domínios não possui credibilidade e os e-mails são descartados.
Você pode habilitar ambos ou nenhum, fica à sua escolha.
O pysieved é um serviço que gerencia scripts Sieve que os usuários utilizam.
Sieve é uma linguagem especializada no tratamento e filtragem de e-mails. Não é uma linguagem de programação completa.
Ela permite que se desenvolva pequenos scripts (que podem ser implementados no cliente ou no servidor de e-mails) que filtram e-mails, como por exemplo recusando e-mails maiores de 1MB e enviando uma mensagem de aviso de volta à origem da mensagem (ao remetente).
O pysieved permite que os usuários executem scripts Sieve no servidor sem precisar de uma conta nele.
Nesta tela você pode escolher se vai prover suporte a POP3/IMAP utilizando SSL.
É recomendado que se utilize o SSL pois ele criptografa todo o conteúdo das mensagens impedindo que sniffers e ataques como “man in the middle” consigam ler todo o conteúdo transferido por estas mensagens.
Nesta tela você pode escolher o webmail que deseja utilizar no seu servidor. Escolha o seu favorito e selecione “OK”.
Neste passo da instalação você poderá definir qual será a língua principal utilizada no seu webmail. Basta utilizar a seta para baixo para rolar por todas as opções e utilizar a barra de espaço para selecionar.
Nesta tela você pode escolher se quer instalar o phpMyAdmin (para administrar o banco de dados MySQL via web), o PostfixAdmin (para gerenciar domínios e contas de usuários via web) e o AwStats (para verificar estatísticas sobre o servidor de e-mails).
Aqui você escolhe o usuário administrador do PostfixAdmin (não do domínio). O padrão é usar o “postmaster”, mas você pode usar qualquer usuário que deseje.
Aqui você irá criar um “alias”, um nome alternativo, para o usuário root. Isso é necessário pois é o usuário root quem irá receber as mensagens de falhas, problemas, etc do sistema.
Isso conclui toda a configuração do seu servidor de e-mail.
Depois, responda “Y” e pressione a tecla “enter” para dar continuidade ao processo de instalação do sistema.
Agora o iRedMail irá instalar e configurar (de acordo com os parâmetros passados a ele nos passos anteriores) todos os softwares envolvidos com o serviço de entrega de e-mails. Além disso, ele também irá atualizar todos os pacotes que já estão na máquina. O processo irá levar bastante tempo, seja paciente e aguarde até o final.
Quando o iRedMail perguntar se você deseja remover o sendmail, diga que sim.
Depois, o programa irá perguntar se você quer utilizar as regras de IPTables configuradas no iRedMail ou não. Se você quiser fazer as suas próprias regras, responda não. Caso deseje utilizar estas regras, responda sim. Se utilizar as regras, reinicie o IPTables quando for questionado.
Se você já estiver utilizando o MySQL para outras finalidades, responda não quando for questionado se quer sobrescrever o arquivo de configuração do MySQL utilizando um modelo fornecido pelo iRedMail. Caso não esteja utilizando o MySQL para outras finalidades, pode resopnder afirmativamente sem problemas.
Logo após, ele irá perguntar se você quer atualizar o Clamav. É recomendado que já faça isso para que você não corra o risco de esquecer de fazê-lo mais tarde. Para atualizar, responda “Y”.
Por último, o software irá perguntar se você quer inicializar o Postfix. Responda que sim. Ele irá inicializar o Postfix e todos os serviços que ele necessitar para funcionar corretamente.
Pronto! Seu servidor de e-mail está ativo! Basta agora você adicionar outros usuários ao banco de dados para que os outros usuários também possam utilizar o seu servidor (você pode utilizar o PostfixAdmin para isso).
Acessando webmail e o PostfixAdmin
Para acessar todos os serviços web configurados no seu servidor de e-mails, recomendo que configure um registro no seu DNS para facilitar as coisas.
Para acessar o webmail utilize a URL http://servidor/mail ou http://servidor/webmail. Isto irá acessar o webmail que você escolheu durante a configuração do iRedMail.
O Postfixadmin ficará ativo no endereço http://servidor/postfixadmin.
Estas e muitas outras informações como localização de logs, arquivos de configuração utilizados, etc. estão localizados no arquivo dentro do diretório criado quando você descompacta o pacote do iRedMail, chamado iRedMail.tips. Nele você irá encontrar todas as informações que precisar.
Conclusão
O iRedMail é uma excelente ferramenta que simplifica e muito o processo de configurar um servidor de e-mails para a sua empresa. Porém, não confie 100% nele.
Faça todas as análises de segurança necessárias para garantir que seu servidor não será comprometido. Atualize sempre os softwares utilizados, tente configurar CHRoot, atualize sempre o anti-vírus, utilize senhas fortes, etc. Sempre tente garantir que seu servidor está o mais seguro possível.
Gostou do blog? Me siga no Twitter e sempre seja avisado quando um novo post for publicado! Você também pode assinar o feed RSS!

Tutorial completo Ubuntu Server Como Roteador, Samba e SSH Para Iniciantes.

Olar Pessoal Meu nome é: Luciano sou Gerênte de Redes da Winfox ha 15 Anos e vou passar um pouco dos meus conhecimentos ai pra vcs, Como vcs estão vendo o meu blogger é novo ainda não divulguei, E espero que vcs possam aproveitar ai o maximo o conteudo que postei depois de muito trabalho que tive ai na net com pesquisas livros olhei bastante muito tutorial e o mais simplificado que pude chegar foi esse ai espero que vcs aproveite bastante especialmente os amigos ai que tão começando agora no linux, Bons Estudos a Todos e Vamos Lá...

Introdução
Quando as conexões de banda larga começaram a se tornar populares, por volta de 2000, compartilhar a conexão se tornou uma dúvida comum, já que compartilhar uma conexão ininterrupta faz muito mais sentido do que compartilhar a conexão via modem. No começo, era muito comum serem usados PCs com o Windows 98 ou 2000, compartilhando a conexão através do ICS, ou micros antigos rodando mini-distribuições Linux especializadas na tarefa, como o antigo Coyote.
Hoje em dia, compartilhar a conexão deixou de ser um problema, já que praticamente qualquer modem ADSL pode ser configurado como roteador, sem falar dos pontos de acesso com funções de roteador e da enorme variedade de servidores domésticos que temos no mercado.
Vamos então a um tutorial rápido de como compartilhar a conexão no Linux, usando um PC com duas placas de rede, aproveitando para incluir também alguns recursos adicionais no servidor, instalando também um proxy transparente e um servidor DHCP. Este mesmo servidor pode ser configurado também como um servidor de arquivos e impressoras para a rede, assumindo também o papel de NAS.
Os passos a seguir podem ser usados em praticamente qualquer distribuição, de forma que você pode usar a que tiver mais familiaridade. Também não é necessário reservar um PC só para compartilhar a conexão: você pode perfeitamente usar seu próprio micro, ou outro que fique ligado continuamente.
Se você não se importar em fazer a configuração via linha de comando, você pode utilizar um PC antigo, instalando a versão server do Ubuntu. Ela está disponível no http://www.ubuntu.com/getubuntu/downloadmirrors, juntamente com a versão principal, mas é um pouco menor, com cerca de 500 MB.
Ao contrário da versão desktop, que carrega o ambiente gráfico por padrão e precisa de um PC com pelo menos 256 MB de memória RAM para rodar, a versão server usa um instalador simples, em modo texto (o mesmo usado nas primeiras versões), e pode ser instalada mesmo em micros com apenas 32 MB de memória RAM: Esta versão instala apenas os pacotes básicos, sem o ambiente gráfico, por isso o boot depois da instalação é feito em modo texto. Logue-se usando a conta criada durante a instalação e use o comando "sudo passwd" para definir a senha de root. A partir daí você pode se logar diretamente como root, como em outras distribuições:
$ sudo passwd
Inicialmente, o Ubuntu server vem apenas com o vi instalado, que não é um editor de texto particularmente amigável, mas, depois de fazer a configuração inicial da rede (editando o arquivo "/etc/network/interfaces"), você pode instalar outro editor mais amigável, como o mcedit (que faz parte do pacote "mc"), o "joe" ou o "nano". Não importa muito qual editor resolva usar, o importante é que você se sinta confortável com pelo menos um deles.
Um exemplo de arquivo "/etc/network/interfaces" configurado é:
# /etc/network/interfaces
auto lo eth0
iface lo inet loopback
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

O arquivo é dividido em duas partes. A linha "auto ..." lista as interfaces que devem ser ativadas automaticamente e as demais contém a configuração de cada uma. Para configurar uma nova placa de rede, você adicionaria a configuração relacionada a ela no final do arquivo e a adicionaria na linha "auto", como em "auto lo eth0 eth1". Se, por outro lado, você quiser desativar uma interface, precisa apenas removê-la da linha auto, não é preciso remover as demais linhas.
A interface "lo" é a interface de loopback, usada para a comunicação local entre diversos aplicativos e componentes do sistema, por isso nunca deve ser desativada. Embora o uso da interface de loopback pareça ser uma exclusividade do Linux, ela é usada também no Windows; a única diferença é que no Windows ela não aparece na configuração.
Em seguida temos a configuração de cada interface, que vai em uma seção separada. No caso da interface lo é usada uma única linha, "iface lo inet loopback", usada em qualquer instalação, seguida pelas demais interfaces.
Como você pode ver, as últimas 5 linhas na configuração da placa eth0 especificam o IP utilizado pelo PC e o restante da configuração da rede, com exceção dos endereços dos servidores DNS, que vão no arquivo "/etc/resolv.conf".
Se você quisesse que a interface fosse configurada via DHCP, poderia substituir as 6 linhas referentes a ela por:
iface eth0 inet dhcp

Ao configurar um servidor com duas placas de rede, onde a eth0 está ligada à rede local e a eth1 ao cable modem (obtendo o endereço via DHCP), por exemplo, o arquivo ficaria:
# /etc/network/interfaces
auto lo eth0 eth1
iface lo inet loopback
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
iface eth1 inet dhcp

Veja que nesse caso a configuração da interface eth0 não inclui o gateway, pois é a eth1 que será usada para acessar a web.
Depois de editar o arquivo, você pode aplicar as alterações reiniciando o serviço relacionado a ele:
# /etc/init.d/networking restart

Um problema comum que afeta versões do Debian, Ubuntu e distribuições baseadas neles é as interfaces mudarem de endereço a cada reset em micros com duas ou mais interfaces de rede. A placa eth0 passa então a ser a ath1 e assim por diante, o pode ser uma grande dor de cabeça ao configurar um servidor para compartilhar a conexão, já que se as duas interfaces mudam de posição, nada funciona.
A solução para o problema é um pequeno utilitário chamado "ifrename", que permite fixar os devices utilizados para as placas. Utilizá-lo é bem simples. Comece instalando o pacote via apt-get:
# apt-get install ifrename

Crie o arquivo "/etc/iftab" e, dentro dele, relacione o device de cada interface com o endereço MAC correspondente, seguindo o modelo abaixo:
#/etc/iftab
eth0 mac 00:11:D8:76:59:2E
eth1 mac 00:E0:7D:9B:F8:01

Em caso de dúvida, use o comando "ifconfig -a" para ver a configuração atual das placas e o endereço MAC de cada uma. Uma vez criado, o arquivo é verificado a cada boot e a configuração se torna persistente, resolvendo o problema. Este bug das interfaces itinerantes afeta apenas algumas distribuições, por isso você não precisa se preocupar com ele até que perceba que está usando uma das afetadas.
O Ubuntu server vem com o servidor SSH instalado por padrão, de forma que depois de configurar a rede, você pode fazer todo o resto da configuração confortavelmente a partir do seu micro. Uma dica é que ao utilizar o joe, o nano ou o vi (o mcedit não suporta o uso do clipboard), você pode usar o botão central do mouse para colar texto dentro do terminal, o que é muito útil quando você tem um modelo de configuração pronto pra usar.
Depois de configuradas as duas interfaces de rede, ativar o compartilhamento da conexão é bastante simples. No Linux o trabalho é feito pelo iptables, o firewall padrão do sistema, que incorpora a função de compartilhamento através do módulo "iptable_nat". Para ativar o compartilhamento, precisamos apenas carregar o módulo, ativar o roteamento de pacotes e em seguida executar o comando que ativa o compartilhamento propriamente dito. Explicando assim pode parecer difícil, mas na prática isso é feito usando apenas 3 comandos:
# modprobe iptable_nat
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

O "eth0" no terceiro comando indica a placa onde está a conexão com a Internet. Não se esqueça de indicar a interface apropriada ao executar o comando (na dúvida você pode checar a configuração da rede usando o ifconfig). Se você acessa via ADSL, usando o pppoeconf ou o adsl-setup (com o modem configurado como bridge) será criada a interface "ppp0".
A partir daí, todas as requisições recebidas na interface de rede local serão mascaradas e roteadas usando a interface especificada e as respostas serão devolvidas aos PCs da rede local.
É possível compartilhar qualquer tipo de conexão, incluindo conexões discadas, wireless, conexões via celular e assim por diante. O servidor simplesmente passa a rotear os pacotes dos demais micros da rede, transmitindo todas as requisições através da conexão que possui. Você precisa apenas configurar os demais PCs da rede para o utilizarem como gateway.
Nem todas as distribuições instalam o executável do iptables por padrão. No Mandriva, por exemplo, ele é instalado ao marcar a categoria "firewall" durante a instalação. Para instalá-lo posteriormente, use o comando "urpmi iptables".
Os três comandos devem ser colocados em algum dos arquivos de inicialização do sistema para que passem a ser executados automaticamente durante o boot. No caso do Ubuntu e outras distribuições derivadas do Debian, você pode utilizar o arquivo "/etc/rc.local". No Fedora, Mandriva e outras distribuições derivadas do Red Hat, use o arquivo "/etc/rc.d/rc.local".
Você pode aproveitar para proteger o servidor usando um firewall simples, que bloqueie as portas de entrada, deixando passar apenas pacotes de respostas e conexões em portas indicadas manualmente. Com isso, o firewall garante um bom nível de proteção, com um mínimo de efeitos colaterais.
Para isso, utilizaremos o próprio iptables, complementando os três comandos anteriores. Estes comandos podem ser incluídos no arquivo /etc/rc.local ou /etc/rc.d/rc.local, logo abaixo dos comandos para compartilhar a conexão:
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP

O primeiro comando faz com que o seu servidor deixe de responder a pings. Muitos ataques casuais começam com uma varredura de diversas faixas de endereços de conexões domésticas, enviando um ping para todas as máquinas. Responder ao ping indica não apenas que a máquina está online, mas também que provavelmente ela está com o firewall desativado, o que estimula o atacante a continuar o ataque, lançando um portscan e iniciando o ataque propriamente dito. Deixando de responder aos pings, o volume de ataques ao servidor cai bastante.
Os dois comandos seguintes protegem contra IP spoofing (uma técnica usada em diversos tipos de ataques, onde o atacante envia pacotes usando um endereço IP falseado como remetente, tentando assim obter acesso a PCs da rede interna) e contra pacotes inválidos, que são comumente utilizados em ataques DoS e ataques de buffer overflow.
As três últimas linhas autorizam pacotes provenientes da interface de loopback (lo), juntamente com pacotes provenientes da rede local e descartam novas conexões na interface de Internet, deixando passar apenas pacotes de resposta. Não se esqueça de substituir o "eth1" pela interface de rede local correta, caso contrário você vai acabar fazendo o oposto, ou seja, bloqueando as conexões dos PCs da rede local e deixando passar as provenientes da Internet :).
Se você quiser abrir portas específicas adicione a regra "iptables -A INPUT -p tcp --dport 22 -j ACCEPT" (onde o "22" é a porta e o "tcp" é o protocolo) antes da regra que bloqueia as conexões. Você pode repetir a regra caso necessário, abrindo assim todas as portas desejadas.
No final, incluindo os comandos para compartilhar a conexão e regras para abrir as portas 22 (SSH) e 6881 (bittorrent), os comandos a adicionar no script de inicialização seriam:
#!/bin/sh
# Compartilha a conexão
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Bloqueia pings e protege contra IP spoofing e pacotes inválidos
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state --state INVALID -j DROP
# Abre para a interface de loopback e para a interface de rede local
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
# Abre para as portas especificadas
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 6881 -j ACCEPT
# Bloqueia as demais conexões, deixando passar apenas pacotes de resposta
iptables -A INPUT -p tcp --syn -j DROP

Você pode também criar um filtro simples de conteúdo indicando manualmente endereços que devem ser bloqueados, usando o comando "iptables -A FORWARD -d dominio.com -j DROP". Isso faz com que o servidor se recurse a encaminhar pacotes destinados aos endereços citados, impedindo que eles sejam acessados a partir dos micros da rede local. Você só precisa adicionar uma regra para cada domínio a ser bloqueado no seu script de firewall, como em:
iptables -A FORWARD -d orkut.com -j DROP
iptables -A FORWARD -d msn.com -j DROP
iptables -A FORWARD -d myspace.com -j DROP

Usada dessa forma, a regra bloqueia o acesso aos domínios especificados usando qualquer protocolo. Ou seja, se você adicionar uma regra bloqueando um tracker bittorrent, por exemplo, os clientes bittorrent rodando nas máquinas da rede não conseguirão se conectar a ele para fazerem download dos arquivos. Praticamente qualquer programa que precise se conectar a um servidor central, com um endereço fixo, pode ser bloqueado usando esta regra, desde que você saiba indicar o endereço correto.
A limitação é que esta regra se aplica apenas ao servidor relacionado ao domínio, por isso ela não bloqueia subdomínios hospedados em servidores diferentes. Por exemplo, você pode bloquear o domínio "uol.com.br", mas isso não bloqueará o "tvuol.uol.com.br", que é hospedado em um servidor separado. Em casos como este, a única solução é bloquear ambos.
Outra dica é que, ao compartilhar uma conexão discada ou uma conexão via celular (que também é uma forma de conexão discada, já que você precisa usar o kppp ou o gnome-ppp), você pode fazer com que o sistema execute o script de compartilhamento ao efetuar a conexão usando a aba "Executar" nas propriedades da conexão.
Adapte o script de compartilhamento para compartilhar a interface ppp0 e coloque o comando que executa o script no campo "Ao conectar":

Com isso o compartilhamento é automaticamente ativado ao conectar. A principal observação é que para usar o script de compartilhamento dessa forma você deve abrir o kppp como root, ou modificar o script de forma que ele use o sudo em todos o comandos que precisarem ser executados como root, de forma que ele possa ser executado usando seu login de usuário.
Os servidores proxy são a forma mais antiga de compartilhar a conexão entre vários micros. Diferente de um servidor configurado para compartilhar a conexão via NAT, que simplesmente roteia pacotes da rede local para a Internet e da Internet para a rede local, mascarando os endereços, um servidor proxy oferece um acesso mais limitado, intermediando a conexão, vasculhando o conteúdo dos pacotes e permitindo apenas o acesso a portas específicas. A grande desvantagem é que todos os micros da rede precisam ser configurados manualmente para utilizarem o proxy.
Usar um servidor proxy permite logar os acessos, impor restrições diversas, baseadas em horários, endereços e outras condições, limitar o uso de banda e assim por diante, o que faz com que eles sejam bastante populares em redes empresariais, onde a redução no uso da banda e o possível aumento na produtividade compensam o trabalho necessário.
Em uma rede doméstica, você pode configurar o servidor proxy para trabalhar em modo transparente, onde ele passa a fazer seu trabalho de forma invisível, sem que você precise configurar os micros da rede para utilizarem-no. O proxy complementa então o compartilhamento via NAT, cacheando os arquivos e as páginas acessadas.
O servidor passa então a armazenar atualizações do Windows Update, downloads diversos, páginas e imagens, pacotes instalados através do apt-get e tudo mais que for acessado via http. Com isso, muita coisa passará a ser acessada a partir do cache do servidor proxy, reduzindo o uso de banda e agilizando o acesso.
A principal limitação é que o proxy transparente irá cachear apenas o tráfego http, através da porta 80. Não é possível usar um proxy transparente para FTP e SSL, a menos que você configure os programas em cada PC manualmente para utilizarem o proxy. No Firefox por exemplo, a configuração de proxy vai dentro do menu "Editar > Preferências", em "Rede > Configurações > Configuração manual de proxy":
Marcando a opção "Usar este proxy para todos os protocolos" você faz com que todo o tráfego passe pelo proxy e seja armazenado no cache, incluindo os arquivos baixados via FTP e https. O problema é que você precisaria fazer essa configuração em todos os micros da rede, o que anula a principal vantagem de usar um proxy transparente, que é a possibilidade de ter ganhos na velocidade de acesso sem precisar fazer modificações nos PCs da rede.
De qualquer forma, a configuração que utilizaremos atende tanto aos PCs configurados para acessar a web diretamente quanto aos PCs configurados manualmente para usar o proxy, de forma que a configuração dos clientes fica a seu critério.
O primeiro passo é configurar o servidor Linux com duas placas de rede para compartilhar a conexão, como vimos nos tópicos anteriores. O proxy transparente é apenas um add-on, que complementa o compartilhamento da conexão via NAT.
Com tudo funcionando, o próximo passo é instalar o Squid, o que é feito através da instalação do pacote "squid" usando o gerenciador de pacotes, como em:
# apt-get install squid

ou:
# yum install squid

A configuração do Squid é feita através de um único arquivo, o "/etc/squid/squid.conf". O arquivo de exemplo, instalado junto com o pacote é assustadoramente grande, com mais de 3000 linhas, incluindo comentários sobre todas as opções disponíveis. Ele é uma boa leitura se você quiser se aprofundar na configuração do Squid, mas se você quer apenas ver seu proxy transparente funcionando, é mais fácil renomear o arquivo e começar com um arquivo de configuração vazio:
# mv /etc/squid/squid.conf /etc/squid/squid.conf.modelo
# touch /etc/squid/squid.conf

Abra o arquivo /etc/squid/squid.conf em branco que foi criado e copie o modelo de configuração abaixo. As opções em negrito são as opções que você precisa alterar:
# /etc/squid/squid.conf
http_port 3128 transparent
visible_hostname gdh
cache_mem 64 MB
maximum_object_size_in_memory 128 KB
maximum_object_size 512 MB
cache_dir ufs /var/spool/squid 4096 16 256
cache_access_log /var/log/squid/access.log
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80 21 280 443 488 563 591 777 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 redelocal src 192.168.1.0/24http_access allow localhost
http_access allow redelocal
http_access deny all

A primeira linha indica a porta utilizada pelo Squid (3128) e que ele deve operar em modo transparente (transparent). A segunda indica o nome do servidor (gdh), que você deve substituir pelo nome do seu.
As quatro linhas seguintes indicam a configuração do cache. O Squid trabalha com dois caches distintos, um cache mais rápido, feito na memória RAM, e outro mais lento (porém maior) feito usando espaço do HD.
O "cache_mem 64 MB" indica o tamanho do cache na memória RAM (é recomendável que você utilize no máximo 1/3 da memória total instalada), enquanto o "4096" na linha cache_dir ufs /var/spool/squid 4096 16 256" indica o tamanho do cache que será feito no HD, em megabytes.
A linha "acl redelocal src 192.168.1.0/24" indica a faixa de endereços e a máscara utilizada na sua rede local (o /24 equivale à mascara 255.255.255.0). Combinada com as regras "http_access allow redelocal" e "http_access deny all" ela faz com que apenas micros da rede local possam utilizar o proxy, afastando qualquer possibilidade de que ele fique aberto para a Internet, independentemente da configuração do firewall.
A linha maximum_object_size 512 MB indica o tamanho máximo de arquivo que será armazenado no cache (arquivos maiores do que isso serão ignorados), o que evita que arquivos muito grandes, (como imagens ISO) que você vai baixar apenas uma vez, desperdicem espaço no cache.
Depois de terminar, reinicie o Squid para que a configuração entre em vigor:
# /etc/init.d/squid restart

Com isso, a configuração do servidor proxy está pronta, mas falta um passo igualmente importante, que é ativar a regra de firewall que faz com que os acessos destinados à porta 80, provenientes da rede local sejam encaminhados para o Squid. Sem isso, as requisições continuam sendo roteadas diretamente, sem passarem pelo proxy:
# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

Note que o "eth1" no comando especifica a interface de rede local, que deve ser alterada de acordo com a sua configuração. Este comando deve ser colocado no script de inicialização (juntamente com os comandos para compartilhar a conexão) para que seja executado automaticamente durante o boot.
Depois de ativar a regra de firewall, você pode testar o proxy navegando em algum dos micros da rede local (que use o servidor como gateway) e verificar o conteúdo do arquivo "/var/log/squid/access.log" no servidor. Conforme as requisições passam pelo proxy, o arquivo é alimentado com um grande volume de informações sobre as conexões realizadas, como em:
1201780615.239 1337 192.168.1.10 TCP_MISS/302 884 GET http://192.168.112.2o7.net/b/ss/mxmacromedia/1/F.3-XELvs - DIRECT/216.52.17.136 text/plain
1201780615.753 248 192.168.1.10 TCP_MISS/200 1526 GET http://wwwimages.adobe.com/www.adobe.com/lib/com.adobe/template/gnav/google.gif - DIRECT/204.245.162.8 image/gif
1201780647.918 29013 192.168.1.10 TCP_MISS/200 3036521 GET http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_9_linux.tar.gz - DIRECT/72.246.38.70 application/x-gzip

Pela presença das entradas no arquivo você percebe que os acessos estão realmente passando pelo proxy.
Uma última observação é que esta configuração vale para as versões recentes do Squid, do 2.6 em diante. Em versões antigas do Squid eram usadas 4 linhas adicionais no final do arquivo, no lugar do parâmetro "transparent" na primeira linha:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

A menos que você esteja usando o Debian Sarge, ou outra distribuição antiga, é improvável que esteja usando uma versão do Squid anterior à 2.6. De qualquer forma, fica a observação. A maior parte dos tutoriais disponíveis na web são anteriores à mudança e por isso ensinam a usar esta configuração antiga, que não funciona mais nas versões atuais. Em caso de dúvida, você pode checar a versão do Squid instalada usando o comando "squid -v".

Complementando o compartilhamento da conexão, você pode configurar também um servidor DHCP, especificando a configuração que deve ser fornecida aos PCs da rede. É importante enfatizar que você deve manter apenas um servidor DHCP ativo na rede, de forma que se você já está usando o servidor DHCP do modem ou do roteador wireless, você deve primeiro desativá-lo, antes de ativar o DHCP no servidor.
Com dois servidores DHCP na rede, ambos irão responder às requisições e as máquinas vão simplesmente usar a configuração que receberem primeiro. Mesmo que ambos os servidores DHCP estejam configurados para fornecer a configuração correta, você poderá ter problemas com máquinas recebendo endereços repetidos (um servidor DHCP não tem como saber quais foram os endereços fornecidos pelo outro) e assim por diante. Confie em mim, manter um único servidor DHCP ativo vai tornar sua vida bem mais simples. :)
Para instalar o servidor DHCP, instale o pacote "dhcp3-server" usando o gerenciador de pacotes, como em:
# apt-get install dhcp3-server

No Fedora o pacote se chama "dhcp" e no Mandriva se chama "dhcpd". Você pode instalá-lo usando (respectivamente) os comandos:
# yum install dhcp
# urpmi dhcpd

Nas distribuições derivadas do Debian o arquivo de configuração é o "/etc/dhcp3/dhcpd.conf" e no Fedora e Mandriva é o "/etc/dhcpd.conf". Apesar disso, em ambos os casos a configuração é a mesma.
Você pode usar o modelo de configuração abaixo. Assim como no caso do Squid, as opções em negrito são as que você deve alterar de acordo com a configuração da sua rede:
# dhcpd.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.250;
option routers 192.168.1.1;
option domain-name-servers 208.67.222.222,208.67.220.220;
option broadcast-address 192.168.1.255;
}

A opção "default-lease-time" controla o tempo de renovação dos endereços IP. O servidor DHCP checa periodicamente se a estação ainda está ativa e, ao perceber que ela foi desligada ou desconectada da rede, libera o endereço para uso de outro micro, evitando que os endereços disponíveis se esgotem. O "default-lease-time" indica o intervalo entre as checagens e o "max-lease-time" determina o tempo máximo antes de liberar o endereço. Em condições normais, essas duas opções não são muito importantes. O que interessa mesmo é o bloco que vai abaixo, onde ficam as configurações da rede.
A opção "range" determina a faixa de endereços IP que será usada pelo servidor. No exemplo, configurei o DHCP para fornecer os endereços de 192.168.1.100 a 192.168.1.250, de forma a ficar com os demais endereços livres para o uso em estações com IP fixo, mas você poderia reservar toda a faixa de endereços da rede para o DHCP (deixando de fora apenas o endereço do gateway), como em "range 192.168.1.2 192.168.1.254;".
Na "option routers" vai o endereço do default gateway da rede, ou seja, o endereço do servidor que está compartilhando a conexão, enquanto a opção "option domain-name-servers" contém os dois servidores DNS que serão usados pelas estações, separados por vírgula.
O endereço de broadcast é sempre o último endereço da rede, como em "192.168.1.255" ou "10.255.255.255". Ele simplesmente acompanha a faixa de endereços e a máscara utilizada.
Depois de terminada a configuração, reinicie o servidor DHCP para que ela entre em vigor:
# /etc/init.d/dhcp3-server restart

(no Debian e derivados) ou:
# service dhcp restart

(no Fedora e Mandriva)
Ao configurar um servidor com duas placas de rede no Ubuntu ou outra distribuição derivada do Debian, abra o arquivo "/etc/default/dhcp3-server" e indique qual é a placa da rede local, como em:
INTERFACES="eth0"
Isso faz com que o servidor forneça endereços apenas para micros ligados à interface indicada e não mais em qualquer uma das interfaces. Isso evita que ele responda a conexões provenientes da Internet.
Se você quiser também que o servidor atue como um servidor DNS, instale também o pacote "bind", como em:
# apt-get install bind

Ao contrário do DHCP, ele não precisa de configuração, pois vem de fábrica configurado para trabalhar como um servidor DNS de cache, que simplesmente repassa as requisições para um dos 13 root servers da Internet e faz um cache das respostas.
Como vimos no capítulo 2, um servidor DNS local será geralmente mais lento, mas é interessante ter um para testar problemas de conectividade. Afinal, se você consegue navegar usando seu DNS local, mas não navega usando o DNS do provedor, significa que a conexão está funcionando e o problema é apenas no DNS.
Servidor de Arquivo Para rede Local
Servidor de Arquivo no Linux
Como vimos no tutorial sobre configuração de redes Windows, compartilhar arquivos no Windows XP é bastante simples. Em resumo, você precisa ativar o "Cliente para redes Microsoft" e o "Compartilhamento de arquivos e impressoras para redes Microsoft" nas propriedades da conexão local e, a partir daí, compartilhar as pastas desejadas através do Windows Explorer. O XP usa o simple sharing por padrão, o que permite que todos os usuários da rede tenham acesso aos compartilhamentos, sem que você precise cadastrar logins de acesso para cada um.
Vamos ver agora como fazer o mesmo usando um pequeno servidor Linux, rodando o Samba. O objetivo do servidor é compartilhar arquivos e impressoras com a rede local de uma forma simples, funcionando como uma espécie de NAS. Você pode tanto fazer esta configuração na sua própria máquina, ou em outro desktop da rede, quanto usar alguma máquina antiga, dedicada à tarefa. Os passos podem ser seguidos na grande maioria das distribuições.
O primeiro passo é instalar o servidor Samba, o que é feito instalando o pacote "samba" usando o gerenciador de pacotes. No Ubuntu ou Debian você usaria o apt-get (apt-get install samba), no Fedora usaria o yum (yum install samba), no Mandriva usaria o urpmi (urpmi samba) e assim por diante.
Muitos preferem configurar o Samba usando o swat, mas com tantas opções ele seria overkill no nosso caso e só iria atrapalhar. Ao invés dele, vamos a uma lista de passos rápidos para configurar o servidor via terminal.
Comece logando-se como root no terminal usando o comando "su -". No caso do Ubuntu você precisa primeiro definir uma senha para o root, usando o comando "sudo passwd".
$ su -
O primeiro passo para configurar o Samba é cadastrar pelo menos uma conta de usuário, usando o comando "smbpasswd -a". Isso é necessário para que o Samba possa autenticar os usuários remotos e possa ler os arquivos dentro das pastas compartilhadas. Apesar de rodar como um serviço, o Samba está subordinado às permissões de acesso do sistema.
Você pode adicionar a sua própria conta de usuário, como em:
# smbpasswd -a gdh
New SMB password:
Retype new SMB password:
Se preferir, você pode também criar uma nova conta, exclusiva para uso do Samba, como em:
# adduser joao
# smbpasswd -a joao
Normalmente, você precisaria cadastrar várias contas de usuário e distribuir as senhas entre todos que fossem acessar os compartilhamentos. Entretanto, é possível fazer uma configuração mais simples usando uma conta guest. Esta configuração permite que os usuários da rede local acessem os compartilhamentos sem precisarem de um login válido, algo similar ao simple sharing do Windows XP. Não é o tipo de configuração que você usaria em uma grande rede, mas é muito prático para usar em uma pequena rede, onde você conhece todo mundo e simplesmente quer compartilhar os arquivos de uma forma simples.
Depois de cadastrar o usuário, falta configurar o Samba, o que é feito editando o arquivo "/etc/samba/smb.conf". Você pode editá-lo usando o editor que preferir, como em:
# mcedit /etc/samba/smb.conf
ou
# gedit /etc/samba/smb.conf
Muitas distribuições vem configuradas por padrão para não executarem aplicativos gráficos quando você está logado como root no terminal. Ao tentar rodar o programa, você recebe um erro "cannot open display"
Nesses casos, você tem duas opções:
a) Logar-se como root usando o comando "sux" no lugar do "su -", ele ajusta as permissões necessárias, eliminando o problema. Ele é instalado através do pacote de mesmo nome.
b) Usar o sudo para abrir o programa, como em "sudo gedit /etc/samba/smb.conf", nesse caso executando o comando o comando com seu login de usuário e confirmando a sua senha, quando solicitado.
Voltando à edição do arquivo, apague todo o conteúdo do arquivo, deixando-o com o seguinte conteúdo:
[global]
netbios name = Sparta
server string = Servidor Samba
workgroup = Grupo
local master = yes
os level = 100
preferred master = yes
wins support = yes

printing = cups
load printers = yes

map to guest = bad user
guest account = gdh

[printers]
comment = Impressoras
print ok = yes
guest ok = yes
path = /var/spool/samba

[arquivos]
path = /media/hda3/arquivos
writable = yes
guest ok = yes
[videos]
path = /home/gdh/videos
writable = yes
guest ok = yes
As opções a alterar são:
netbios name: Indica o nome do servidor, com o qual ele aparecerá no ambiente de rede.
workgroup: O grupo de trabalho, o mesmo especificado na configuração das outras máquinas da rede.
guest account: Aqui você especifica a conta que cadastramos anteriormente usando o comando "smbpasswd -a".
Os compartilhamentos do Samba seguem uma estrutura muito simples, onde você indica o nome do compartilhamento (da forma como ele aparecerá no ambiente de rede) entre chaves e indica a pasta a que ele dará acesso na opção "path". A opção "writable = yes" faz com que o compartilhamento seja para leitura e escrita e a "guest ok = yes" faz com que ele fique disponível para qualquer usuário da rede, já que qualquer tentativa de acesso com um login de usuário que não existe será mapeada para o usuário "gdh".Você pode criar mais compartilhamentos usando este mesmo modelo, mudando apenas o nome e a pasta a compartilhar. Com esta configuração, o servidor irá também compartilhar as impressoras instaladas automaticamente, você precisará apenas fornecer os drivers de impressão ao instalá-las nos clientes.
O único cuidado é que o usuário usado na opção "guest account" (o gdh no exemplo) precisa ter acesso completo ao conteúdo das pastas compartilhadas, já que todos os acessos serão feitos através dele. Caso necessário, altere as permissões de acesso às pastas, usando o comando "chown -R", como em:
# chown -R gdh.gdh /media/hda3/arquivos
O "-R" no comando faz com que as alterações seja aplicadas de forma recursiva, atingindo todos os subdiretórios dentro da pasta, enquanto o "gdh.gdh" indica o usuário e o grupo que assumirá o controle.
Uma última observação é que este arquivo de configuração faz com que seu servidor Samba assuma a função de master browser da rede, fornecendo aos clientes a lista dos compartilhamentos disponíveis em toda a rede. Se você for usar esta configuração em mais de um servidor na mesma rede, remova a linha "local master = yes", ou use um número mais baixo na opção "os level =" (nos demais servidores), caso contrário os servidores ficarão continuamente disputando o cargo, o que prejudicará a navegação dos clientes.
As alterações feitas no arquivo de configuração do Samba são aplicadas automaticamente após alguns minutos, mas se você quiser verificar rapidamente uma alteração que acabou de fazer, pode forçar o reinicio do servidor usando o comando:
# /etc/init.d/samba restart
(ou /etc/init.d/smb restart, no Fedora e no Mandriva)
Os arquivos dentro dos compartilhamentos podem ser acessados usando o ambiente de redes nos clientes Windows ou clientes como o Smb4K nos clientes Linux. Mas, se você pretender manter o servidor ligado continuamente, o ideal é mapear os compartilhamentos, de forma que eles fiquem acessíveis permanentemente e a conexão seja restaurada durante o login.
Nos clientes Windows, você pode mapear compartilhamentos clicando com o botão direito sobre o "Meu Computador" e usando a opção "Mapear unidade de rede".
Nos clientes Linux, a melhor opção para criar um mapeamento permanente é inserir uma linha diretamente no arquivo "/etc/fstab", que contém a lista das partições e compartilhamentos de rede que o sistema deve montar durante o boot.
O arquivo "/etc/fstab" é um dos principais arquivos de inicialização do sistema e por isso deve ser sempre editado com cuidado. Adicione apenas a nova linha, sem alterar as demais, tomando o cuidado de deixar uma linha em branco no final do arquivo. A linha segue o seguinte modelo:
//servidor/arquivos /mnt/smb smbfs username=gdh,password=1234,uid=joao 0 0
O "//servidor/arquivos" é o caminho para o compartilhamento na rede, incluindo o endereço IP ou nome do servidor e o nome do compartilhamento que será montado, o "mnt/smb" é a pasta local onde ele será montado, o "smbfs" indica o sistema de arquivos, o "username=gdh,password=1234" indica o login e senha que serão usados para acessar o servidor, o "uid=joao" indica o usuário local (no cliente Linux) que terá acesso completo aos arquivos dentro da pasta montada, enquanto o "0 0" é um "nada a declarar", que indica que não temos opções adicionais.
Dentro do nosso exemplo, poderíamos usar a linha:
//192.168.1.254/videos /media/videos smbfs username=fulano,password=1234,uid=gdhnet 0 0
Veja que, por segurança, preferi especificar diretamente o endereço IP do servidor, de forma a evitar qualquer possibilidade de problemas relacionado à resolução do nome. Como nosso servidor foi configurado para permitir o acesso usando a conta guest, posso colocar qualquer login na opção "username=" e qualquer senha na "password=". O "gdhnet" indica a conta que uso no cliente Linux, com a qual vou acessar a pasta onde o compartilhamento será montado.
Para que a alteração entre em vigor sem precisar reiniciar o micro, use o comando "mount -a" (no cliente), como root.
Com o compartilhamento montado, você pode acessar os arquivos da mesma forma que acessaria uma partição local, inclusive abrindo arquivos e vídeo e audio sem precisar copiá-los para a sua máquina previamente. A única observação é que a banda da rede precisa ser suficiente para transferir o arquivo na velocidade necessária para exibí-lo, de forma que assistir um vídeo em alta resolução, através de uma rede wireless lenta ou congestionada pode resultar em um vídeo saltado.
SSH Para Iniciante
Introdução
O SSH é uma ferramenta de acesso remoto bastante poderosa, que permite acessar máquinas Linux remotamente de forma segura. Ele se baseia no uso de criptografia assimétrica para criar um túnel seguro onde são transmitidos os dados, garantindo a segurança mesmo em casos onde a transmissão pode ser interceptada, como no caso de uma rede wireless sem encriptação.
As chaves assimétricas são um sistema muito interessante, onde temos um par de chaves em vez de uma única chave simétrica. Uma (a chave pública), permite apenas encriptar dados, enquanto a segunda (a chave privada) permite desencriptar as informações embaralhadas pela primeira. O grande segredo é que qualquer informação embaralhada usando a chave pública pode ser recuperada apenas usando a chave privada correspondente. Como o nome sugere, a chave pública pode ser distribuída livremente, pois serve apenas para gerar as mensagens encriptadas, sem permitir lê-las posteriormente. Quando você se conecta a um servidor SSH, seu micro e o servidor trocam suas respectivas chaves públicas, permitindo que um envie informações para o outro de forma segura.
Instalar o servidor SSH é bastante simples, basta instalar o pacote "openssh-server" usando o gerenciador de pacotes. No Ubuntu, por exemplo, você usaria: $ sudo apt-get install openssh-server
A partir daí, você pode acessar a máquina remotamente a partir de outras máquinas Linux usando o comando "ssh", seguido do login usuário (na máquina remota) e o endereço, como em:$mailto:$sshgdh@192.168.1.192 Da primeira vez que fizer a conexão, ele exibe um aviso, confirmando a identificação do servidor. Depois de fornecer a senha a conexão é efetuada e você obtém um prompt de comando da máquina remota. A partir daí, todos os comandos são executados na outra máquina. A sua passa apenas a exibir a saída de texto, funcionando como um terminal remoto: No Linux, todos os aplicativos podem ser chamados via linha de comando. Quase sempre, o comando é o próprio nome do aplicativo, como em "firefox", "konqueror", "nautilus" e assim por diante. Experimente abrir alguns programas; você verá que eles são exibidos na sua máquina local, muito embora estejam sendo executados na outra máquina. O uso de aplicativos gráficos funciona muito bem (permitindo que você use o SSH como um sistema de terminal server) via rede local e pode até mesmo ser usado via internet, embora nesse caso a velocidade de atualização seja muito baixa: Você logo perceberá que ao abrir qualquer aplicativo, ele bloqueia o terminal, impedindo que você abra outros antes de finalizá-lo. Para evitar isso, edicione um "&" no final do comando, como em:
$ firefox &
Isso faz com que ele rode em segundo plano. O terminal ainda exibirá algumas mensagens de erro e avisos relacionados ao aplicativo, mas é melhor do que ficar inteiramente bloqueado.
Para fechar a conexão com o servidor, pressione "Ctrl+D" no terminal, ou use o comando "exit". (ela é também automaticamente encerrada se você fechar o terminal). Se você quiser apenas encerrar o aplicativo atual, pressione "Ctrl+C".
O SSH possui vários mecanismos de segurança, que tornam praticamente impossível capturar os dados transmitidos durante a conexão. Isso faz com que ele seja a ferramenta de acesso remoto mais usada no mundo. Por outro lado, os sistemas empregados podem complicar um pouco as coisas em diversas situações. Vamos a alguns problemas comuns que podem ser rapidamente solucionados.
A primeira dica é que, para rodar aplicativos gráficos, você deve se logar usando diretamente o usuário desejado. Se você quer rodar algum utilitário como root, você deve logar-se diretamente como root, como em:
# ssh root@servidor
Lembre-se de que no Ubuntu/Kubuntu e distribuições derivadas deles é necessário primeiro definir uma senha para o root usando o comando "sudo passwd" antes de conseguir se logar:
$ sudo passwd
Se você se logar usando um login e depois mudar para o root (ou outro login qualquer) usando o "su", as permissões de acesso ao ambiente gráfico não são atualizadas, de forma que os aplicativos gráficos deixam de funcionar. Uma solução é instalar o pacote "sux" e passar a usar o comando no lugar do su. O "sux" atualiza as permissões do ambiente gráfico, solucionando o problema.
Algumas distribuições, como o Ubuntu e o Slackware desativam (no cliente) o uso de aplicativos gráficos por padrão. Nesses casos, você deve adicionar o parâmetro "-X" no comando de conexão, como em:
$ ssh -X usuario@servidor
Se você estiver tentando se logar no servidor como root e ele teimar em recusar a senha (que você sabe estar correta), é provável que a distribuição usada venha configurada para recurar os logins como root por padrão. Nesse caso, logue-se usando um login de usuário, use o comando "su -" (ou o sux) para se logar como root e abra o arquivo "/etc/ssh/sshd_config" (que é o principal arquivo de configuração do servidor SSH), usando um editor de texto, como em:
# mcedit /etc/ssh/sshd_config

(o editor mcedit faz parte do pacote "mc")
Dentro do arquivo, procure pela linha "PermitRootLogin no" e substitua o "no" por "yes" por:
PermitRootLogin yes
Salve o arquivo e reinicie o servidor SSH (ainda logado como root) usando o comando "/etc/init.d/ssh restart" para que a alteração entre em vigor.
Ao conectar, o SSH verifica a identificação do servidor remoto (comparando com a chave que ele grava ao efetuar a primeira conexão) e aborta a conexão caso o servidor tenha sido substituído por outra máquina. Isso evita que alguém mal intencionado consiga roubar sua senha ao substituir o servidor por outra máquina configurada para usar o mesmo endereço: O problema é que isso também acontece quando você reinstala o sistema ou troca o servidor por outra máquina. Nesse caso, é necessário apagar a chave antiga manualmente. Para isso abra o arquivo ".ssh/know_hosts" que fica dentro do seu diretório home (no cliente), usando qualquer editor de texto e apague a linha que começa com o endereço do servidor:
$ kedit ~/.ssh/know_hosts
Continuando, existem também clientes SSH para o Windows. Além de permitirem que você acesse máquinas Linux remotamente, eles ao uma boa forma de rodar aplicativos Linux em máquinas Windows, sem precisar usar o VMware ou outro software de virtualização. Sempre que você se conecta a outra máquina usando o SSH, é aberta uma nova sessão, se forma que você pode rodar aplicativos remotamente sem atrapalhar o usuário que está usando a máquina. A única recomendação é que você use dois logins separados, já que muitos aplicativos não aceitam ser abertos duas vezes.
O cliente SSH Windows mais usado é o Putty, um programa gratuito e bastante completo, que não precisa sequer ser instalado para rodar. Basta baixar o "putty.exe" no http://www.putty.nl/ e executar o programa.
Na tela principal, forneça o endereço do servidor e clique no "Open". Ele abre um terminal solicitando o login e senha e efetua a conexão: O Putty oferece várias opções de personalização e solução de problemas. Ao conectar a um PC com o Ubuntu ou outra distribuição que use UTF, por exemplo, você vai perceber que muitos caracteres ficam trocados. Para solucionar o problema, acesse a opção "Windows > Translation" e escolha a opção "UTF-8" no campo "Received data assumed to be in which character set".
Continuando, o terminal do Putty permite rodar comandos e qualquer aplicativo em modo texto sem limitações, mas ao tentar rodar algum aplicativo gráfico, você vai receber uma mensagem avisando que não é possível se conectar ao display: Isso acontece por que para ser executado, o programa precisa que um servidor X (o servidor gráfico usado no Linux e outros sistemas Unix) esteja sendo executado no cliente, o que naturalmente não é o caso do Windows.
Para solucionar o problema, precisamos instalar um servidor X. Existem diversas opções de softwares comerciais, como o Win32 (http://xwin32.dk) e o WinaXe (http://labf.com), mas uma opção muito melhor é o Xming, um software gratuito e de código aberto, disponível no:http://www.straightrunning.com/XmingNotes/
Além do "Xming" (o pacote principal) é necessário instalar o "Xming-fonts", que contém fontes de tela usadas pelo servidor X (ele não funciona sem elas). Quando aberto, o Xming fica residente ao lado do relógio, esperando que algum aplicativo precise dele: Para usá-lo em conjunto com o Putty, marque (no Putty) a opção "Connection > SSH > X11 > Enable X11 X11 forwarding" (sem colocar nada no campo "X display location"). Isso faz com que o Putty encaminhe todas as requisições gráficas para o Xming, permitindo que os aplicativos gráficos rodem normalmente, mesmo no Windows! Os aplicativos rodam normalmente, com a mesma aparência. A única diferença visível é que eles passam a usar a decoração de janela do Windows: Se você se conecta sempre nas mesmas máquinas, você pode também usar o Xming para criar ícones no desktop, que abram os aplicativos gráficos diretamente. Para isso, use o Xlaunch, que faz parte do pacote.
Na tela inicial, use a opção "Multiple windows" (que faz o programa rodar em sua própria janela, como se fosse um aplicativo nativo) e na segunda marque a opção "Start a program" Na terceira janela (a mais importante) vai o comando para abrir o programa desejado, o endereço do servidor, o login e a senha. Marque a opção "Using Putty (plink.exe)", que usar o próprio cliente SSH incluído no Xming. Na tela final, use o botão "Save configuration" para criar o atalho (existe uma opção para salvar a senha, mas ela não é muito recomendável, pois a salva em texto puro dentro do arquivo): Além de criar atalhos para um ou dois programas específicos, você pode criar um para abrir um terminal ("gnome-terminal", "konsole", "xterm" ou outro), que pode então ser usado para abrir outros programas desejados. É uma boa forma de impressionar os amigos, já que a maioria não vai saber explicar como é que você está conseguindo rodar aplicativos Linux dentro do Windows, sem usar o VMware:
Como se não bastasse, o SSH permite também transferir arquivos, através do módulo SFTP, que vem ativo por padrão. Ele utiliza o mesmo túnel encriptado usado para rodar os aplicativos remotamente, garantindo a segurança da transmissão.
O SFTP utiliza a mesma porta do SSH, a porta 22, de forma que você não precisa se preocupar em deixar nenhuma outra porta aberta no firewall. Desde que o SSH esteja ativo, o SFTP também estará.
Nos clientes Linux, você pode acessar os arquivos do servidor usando o Konqueror (no KDE), ou o Nautilus (no Gnome). Se nenhum dos dois estiver disponível, é possível usar também o GFTP, que pode ser instalado usando o gerenciador de pacotes.
No Konqueror, digite "fish://", seguido pelo login e o endereço do servidor (separados por uma arroba) na barra de endereços, como em "fish://gdh@192.168.1.22". Ele exibe uma janela gráfica pedindo a confirmação da identidade do servidor (apenas na primeira conexão) e em seguida outra solicitando a senha: Uma dica é que você pode usar o recurso do Konqueror de separar a janela em duas (Janela > Separar a visão em Topo/Base) para facilitar as transferências de arquivos. Você pode ter então uma metade exibindo os arquivos do servidor remoto e outra exibindo os arquivos locais, podendo assim arrastar os arquivos de uma para a outra.
No Nautilus, clique em "Arquivo > Conectar ao servidor". Na janela seguinte, escolha "SSH" na opção "Tipo de serviço" e forneça o endereço do servidor e o login que será usado, no campo "Nome do Usuário". O campo com a pasta permite especificar qual pasta será acessada por padrão ao efetuar a conexão, mas ela é opcional. O campo "Porta" é usado apenas caso você tenha configurado o servidor SSH para escutar uma porta diferente da 22: Isso cria um ícone de acesso, que aparece tanto no desktop quanto na barra "Locais" do Nautilus. Para finalmente efetuar o acesso, você clica sobre o ícone e fornece a senha. Para encerrar o acesso, clica sobre ele com o botão direito e usa a opção "Desmontar": Para acessar usando o GFTP, você deve mudar a opção de protocolo (o campo do lado direito da tela) de "FTP" para "SSH2". Com isso ele automaticamente acessa o servidor na porta 22, usando o protocolo SFTP. Assim como no caso do Nautilus, só é necessário especificar a porta caso o servidor tenha sido configurado para usar uma porta diferente da 22: No Windows você pode utilizar o Filezilla, um cliente de FTP gráfico e bastante amigável, que inclui suporte ao SFTP. Você pode baixá-lo no http://filezilla.sourceforge.net/.
Para conectar a servidores SSH, use a opção "File > Site Manager > New Site" (os campos na tela principal servem apenas para servidores FTP).
Na tela seguinte, informe o IP do servidor, a porta (22) e a conta de acesso. Uma vez conectado, você acesso os arquivos usando a interface tradicional dos clientes de FTP, com as duas janelas, uma mostrando os arquivos locais e outra mostrando os do servidor. Para transferir arquivos, basta arrastá-los entre as duas: É possível também acessar os arquivos via linha de comando usando o comando "sftp usuario@servidor" (no Linux) ou o PSFTP (disponível na mesma página do Putty) no Windows. Em ambos os casos, você usa o comando "cd" para alternar entre os diretórios e os comandos "put" e "get" para transferir arquivos.
Proximo Tutorial vou mostrar Como vcs podem Configurar o Ubuntu Server como um Keche full com o  thunder cache.
Então até a Proxima Galerra e Qualquer Duvidas: deixem comentarios ai ou mandem e-mail: winfox@winfoxtw.com.br