Criando servidor de arquivos GNU/Linux com RAID virtual e DFS em rede Windows

O que descrevo aqui, são os passos que utilizei para criar um servidor de arquivos de baixo custo com RAID1 (mirror) virtual (via software) e, de quebra, melhorar a estrutura de minha rede, utilizando de uma abstração de acesso aos dados (DFS - Distribution File System). Divirtam-se!

[ Hits: 38.232 ]

Por: Tecoberg em 10/02/2014


Permissão de usuários / DFS / SSH / Firewall



Permitindo que usuários do Domain atuem como root do servidor

Para isso, basta alterar o arquivo /etc/sudoers e acrescentar as seguintes linhas:

root        ALL=(ALL:ALL) ALL
<usuário>   ALL=(ALL:ALL) ALL

Configurando o DFS

Para que as pastas compartilhadas pelo Samba possam ser referenciadas pelo serviço DFS do Windows, é necessário ativar este serviço no Samba. Para isso, adicione a seguinte linha no final do bloco [global] do /etc/samba/smb.conf:

host msdfs = yes

Se a intenção é possibilitar ao servidor GNU/Linux agir como DFS, como no meu caso, então, crie a pasta que servirá de pasta raiz do DFS.

Como mencionado no início do tutorial, eu utilizarei o RAID para armazenar esta pasta raiz:

# mkdir /mnt/raid_a/dfsroot
# chmod 755 /mnt/raid_a/dfsroot


Você pode escolher qualquer outro nome, além de dfsroot.

Após o bloco [global], adicione as seguintes linhas para definir o diretório raiz do DFS:

[dfsroot]
    path = /mnt/raid_a/dfsroot
    valid users     = @"Domain Users"
    write list      = @"enterprise admins"
    msdfs root = yes

Agora, criaremos os links necessários para serem disponibilizados pelo DFS.

O primeiro link, será para o diretório Dados, que disponibilizamos anteriormente.

Mas, existe uma ressalva, se digitarmos o caminho \\seuserv\Dados, este será visível. Após criarmos o link no DFS, poderemos acessar a mesma pasta através do caminho \\seuserv\dfsroot\Dados.

Do meu ponto de vista, isso não é elegante. Então, para solucionar esta situação, podemos tornar a pasta \\seuserv\Dados invisível, acrescentando o sinal $ no smb.conf, da seguinte forma:

[Dados$]

Após os devidos ajustes, acesse a pasta /mnt/raid_a/dfsroot e execute o seguinte comando:

# ln -s msfs:seuserv\\Dados$ Dados

Como o DFS não tem muito sentido se não houver referências às pastas compartilhadas em outros servidores, segue alguns exemplos de links que poderão ser criados neste mesmo diretório.

Cria uma pasta compartilhada \\seuserv\dfsroot\OutrasPastas em referência a outro servidor da rede:

# ln -s msdfs:outroserv\\outrapasta OutrasPastas

Cria uma pasta compartilhada com espaço no nome \\seuserv\dfsroot\Pasta 2, em referência a uma pasta também com espaço no nome:

# ln -s "msdfs:outroserv\\pasta com espacos" "Pasta 2"

* Importante: O serviço DFS precisa estar ativo no servidor ao qual você fizer referência, tanto em servidores Windows, quanto em servidores GNU/Linux.

Definindo o acesso ao servidor via SSH

É muito recomendado definir que usuários, ou grupo de usuários, possuam acesso ao servidor via SSH.

Para isso, é necessário alterar o arquivo /etc/ssh/sshd_config. Para definir que somente os administradores do domínio tenham acesso a este servidor, acrescente a seguinte linha no final do arquivo:

AllowGroups admin "domain admins"

E, em seguida, reinicie o serviço SSH:

# service ssh restart

Vale ressaltar que o root (que vem desativado por padrão no Ubuntu) e a conta administrativa criada do GNU/Linux, não terão mais acesso ao sistema via SSH, somente pelo terminal.

Ativando o Firewall

A Canonical (empresa responsável pelo Ubuntu) trouxe a interface UFW (Uncomplicated Firewall), que veio para facilitar o gerenciamento do Firewall do GNU/Linux. O UFW nada mais é do que uma interface para o IPtables. O UFW já vem pré-configurado para diversos serviços como, por exemplo, DHCP Client, DNS Client e ICMP. O UFW vem desativado por padrão.

Como a nossa intenção é utilizá-lo, então, é necessário adicionar algumas regras, simples, para liberar o acesso dos serviços do nosso servidor.

Nós temos apenas dois serviços que precisam ser liberados, que são para o SSH e Samba:

# ufw allow ssh
# ufw allow samba


Também, é uma boa prática incluir uma restrição aos IPs permitidos para acessar o servidor. Minha rede está configurada para a rede Classe C 192.168.1:

# ufw allow from 192.168.1.0/24

Para finalizar, ative o Firewall:

# ufw enable

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. RAID
   3. Árvore de diretórios / Acesso remoto / Sincronizando horário
   4. Associando o servidor / Liberando login de usuários / Active Directory
   5. Permissão de usuários / DFS / SSH / Firewall
   6. Dicas
   7. Fontes de pesquisa
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Modems no GNU/Linux

Instale uma distro dentro de outra

Configuração do modem ADSL Siemens Santis

Servidor de impressão + scanner (multifuncional) em Linux

Deixando o Fluxbox com a sua cara

  
Comentários
[1] Comentário enviado por galactus em 10/02/2014 - 12:21h

Parabéns pelo artigo Menashe e muito obrigado pelos créditos dos artigos no Fórum do Ubuntu. Fico feliz em saber que os tutoriais estão ajudando. Só não imaginava que seria tão longe. :)

Em casa eu tenho um servidor de arquivos com XFS também, só não fiz RAID via software. Na verdade já estou precisando de um storage. Estou sendo um devorador de dados. Heheheheheh


[2] Comentário enviado por junior em 10/02/2014 - 14:08h

Excelente artigo.
+ favorito

[3] Comentário enviado por betoberg em 13/02/2014 - 12:56h

Show de bola.
Muito bem feito o artigo. Vou testar.
Parabéns!

[4] Comentário enviado por DouglasMenger em 09/08/2014 - 09:59h

Tecoberg,

Quero agradecer por criar este artigo, eu estava tentando alguns dias montar um raid via software e com sua ajuda conseguir fazer isso de forma rápida e pratica.

Muito obrigado.

[5] Comentário enviado por tecoberg em 21/01/2015 - 06:37h

Caros amigos

Na versão 14.4 do Ubuntu houve algumas alterações nas instalações dos pacotes winbind e kerberos. Abaixo segue as linhas de comandos respectivas:

# apt-get install samba winbind libpam-winbind libnss-winbind

# apt-get install krb5-user krb5-config

Abraços

Tecoberg

[6] Comentário enviado por invernosantigos em 18/05/2015 - 04:14h


Eita !!! Legal seu tutorial. O tipo de contribuição q tds precisávamos ( e msmo qm n precisa, qr E DEVE saber ! ). Mas... houve algumas falhas, prática e teóricas : Vc n especifica se o disco virtual é automaticamente criado no processo, ou se é preciso criar uma partição com antecedência -- Do jeito q está, só os já meio entendidos escaparão dessa dúvida ( ou erro ). Segudo : vc n especifica o q fazer se algo n sair exatamente como o descrito. No meu caso, o primeiro passo, ao invés de :

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md127 : active raid1 sdb1[0] sdc1[1]
488253248 blocks super 1.2 [2/2] [UU]

saiu :

# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
unused devices: <none>

...e aí, sem saber o q fazer, parei por aí mesmo... Como corrijo, ou n saiu nd errado e era só continuar em frente ? E como corrijo e RETOMO a instalação, já q parei ? O meu sistema d arquivos é btrfs ( Escolhi este p poder fazer scrubing data. Há qm diga q btrfs ainda n é estável, mas essas opniões eram de 2 anos atrás ! ), pensei em fazer o segundo disco com ext4 msmo, já q vc disse -- ou assim entendi -- q n precisava ser o msmo sistema d arquivos p ambos... -- Eu poderia criar uma partição "manualmente" com o Gparted ou coisa q valha ( e assim poder optar por qualquer sistema d arquivos d minha escolha ), e torná-lo espelho depois ? Dúvidas, dúvidas e dúvidas, mas dúvidas q valhem à pena esclarecer ! Vc poderia me responder tds elas ??


[7] Comentário enviado por Tecoberg em 25/05/2015 - 04:59h

Quê bom que você gostou do artigo invernosantigos, entretanto ele foi escrito para pessoas que tenham um conhecimento além do básico em Linux por sua clara complexidade.
Esta foi a solução que encontrei para resolver um problema que eu tinha e resolvi comparti-lha lá para que outros pudessem usá-la como base para resolver problemas semelhantes como você o fez.
Cada alteração dos passos descritos,sejam eles a escolha de um outro hardware, o Sistema Operacional ou até mesmo a versão dele etc, abre um leque de possibilidades de problemas que realmente exige investimento de tempo para pesquisas e testes que somente em "loco" é possível realizar.
Como consolo eu posso contar-lhe que eu investi semanas para a construção da solução descrita e na escrita deste artigo. Tempo este que lhe fora poupado. :)
Boa sorte com este seu desafio e não esqueça de contribuir com a comunidade postando a solução que encontrou para o seu problema.
grandes abraços


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts