TrueNAS Core = FreeNAS
TrueNAS-CORE/FreeNAS
Rápido e Fácil
Servidor Open-Source Gratuito de Arquivos e Backup
Versionado para Windows, Mac, Linux, Dropbox e Google Drive.
Integrando Windows, Mac e Linux através de Compartilhamento
de Arquivos SMB.
O Servidor Open-Source TrueNAS-CORE/FreeNAS possui recursos
de Storage e interface WEB para configuração.
É baseado no FreeBSD e dele herda o ZFS, Raid-Z, discos de
Spare, SSDs de Cache, Snapshots, compressão de dados e deduplicação de arquivos.
Sem Licenças onerosas, o TrueNAS-CORE/FreeNAS consegue usar
Snapshots para fazer rapidamente Backups Versionados dos Arquivos da Rede
Local, do Dropbox e do Google Drive ocupando pouco espaço.
O TrueNAS-CORE/FreeNAS protege você do Ransomware e das corrupções
silenciosas de discos.
Edson
Kazuto Tagusagawa edson.kazuto@gmail.com 55-11-94955-1100
Para minha esposa Taeko, meus filhos Rosana, Luisa, Roberto,
Lucas, Talita e para meus queridos irmãos Eduardo e Eliana
Sumário
- Sobre o autor
- Introdução
- Revisão
- Histórico do TrueNAS-CORE/FreeNAS
- Open-Source
- Fork
- Licença BSD
- Rede Local ou LAN
- Servidor de Arquivos
- VSS
- Mirror ou Espelhamento
- Ransomware
- Backup
- Backup Versionado
- Storage
- Snapshot
- ZFS
- Raid-Z
- FreeBSD
- SAMBA ou Servidor SMB
- ACL
- Tipos de ACLs no SMB (não Posix):
- Dropbox
- Google Drive
- Mais sobre o TrueNAS-CORE/FreeNAS
- TrueNAS-CORE/FreeNAS
- Os requisitos mínimos para TrueNAS-CORE/FreeNAS
- Configuração ideal para testes
- Instalando e usando o VirtualBox
- Configuração para VM do TrueNAS-CORE/FreeNAS
- Criando a VM do TrueNAS-CORE/FreeNAS
- Configurando a VM do TrueNAS-CORE/FreeNAS
- Primeiros Passos da Configuração
- Vamos entender o TrueNAS-CORE/FreeNAS
- Testando os discos
- HDDSCAN.exe
- Smartmontools
- Tabela SMART
- Usuários e Grupos do TrueNAS-CORE/FreeNAS
- Exemplo de Usuários e Grupos
- Pool
- Stripe
- Mirror (Espelhamento)
- Raid-Z
- Raid-Z2
- Raid-Z3
- Spare
- Cache
- Dataset
- Share
- AFP
- NFS
- WebDAV
- SMB
- iSCSI
- SSH/Rsync
- Abrindo a Edição da ACL
- Posix
- 3 tipos de acesso aos arquivos Posix
- Dono e Grupo Default do Dataset
- Variáveis owner@ e group@
- rwxrwxrwx
- Configurando as ACLs
- Informações padrão de um Dataset novo
- Como se organiza a Tela das ACLs
- Lado Esquerdo da Tela
- Tornando owner@ e group@ mais seguro
- Lado Direito da Tela
- ACL 3 (ti, crie sempre esta ACL):
- ACL 4 (Acesso Total para everyone@):
- ACL 5 (Dataset para somente leitura):
- ACLs sem owner@, group@ e everyone@
- Snapshot no ZFS
- Formas de Snapshot
- Snapshot Manual
- Snapshot automático (Cron)
- Nomes de Snapshots
- Alvo do Snapshot
- Sem Snapshot se não houver alterações
- Restaurando um Snapshot
- Voltando uma versão e sobrescrevendo
- Clonando um Snapshot
- Copiar apenas um arquivo específico
- Backup do Dropbox e do Google Drive
- A operação de sincronia entre o TrueNAS-CORE/FreeNAS e o Dropbox ou Google Drive é agendada
- Por não ser on-line, a operação de Backup é Cliente-Servidor
- Cada serviço de sincronia precisa de um Dataset respectivo
- Caso você deseje urgentemente uma solução 100% on-line
- Modos de sincronia com a nuvem
- Modo SYNC
- Modo COPY
- Modo MOVE
- Configuração recomendada para Backup Versionado de Dropbox e do Google Drive
- Quantidade de Contas Simultâneas de Dropbox e do Google Drive
- Scrubs
- Backup das Configurações
- Comentários importantes
- Desempenho Real de um TrueNAS-CORE/FreeNAS
- Problema com Credenciais do Windows
- Controladores de HD e Hardware Certificado
- Overview
- Configurando um TrueNAS-CORE/FreeNAS sem usuários
- Roteiro da configuração para uso sem usuários
- Criando uma Pool com um único disco
- Criando uma Pool com um Stripe de discos
- Faça um Backup das configurações
- Agora você vai apagar a Pool antiga
- Faça um backup das configurações
- Para criar uma Pool de Stripe
- Criando o Inseguro-Dataset
- Criando o Inseguro-Share
- Criando ACL everyone@ Full Control
- Testes de uso
- Criando um TrueNAS-CORE/FreeNAS básico e seguro
- Roteiro para TrueNAS-CORE/FreeNAS com 1 usuário
- Criando usuário e um grupo para os direitos de acesso
- Criar um grupo no TrueNAS-CORE/FreeNAS
- Criando o User = usuario com Grupo Principal = TrueNAS-CORE/FreeNAS
- Antes de criar a Pool faça um Backup das configurações:
- Apagando a Pool antiga
- Faça um backup das configurações
- Pool-Raid-Z com disco Spare e Cache
- Criando o Seguro-Dataset
- Criando o Seguro-Share
- Criando a ACL usuario Full Control
- Testes de uso
- Criando um TrueNAS-CORE/FreeNAS Corporativo
- Convertendo o TrueNAS-CORE/FreeNAS do exemplo anterior em um Servidor Corporativo
- Roteiro para implantar múltiplos usuários no TrueNAS-CORE/FreeNAS
- Criando usuários
- Testando acessos criados
- Um sub-Dataset somente leitura que somente 1 usuário pode alterar
- Roteiro para pasta somente leitura alterável pelo User = usuario:
- Criando um sub-Dataset = Circulares dentro do Seguro-Dataset
- Criando uma ACL específica para o sub-Dataset
- Testando
- Utilizando uma ACL temporária
- Roteiro para adicionar novas ACLs temporárias a um Dataset.
- Editando ACL do Dataset Circulares
- Testando
- Utilizando ACL de grupo
- Roteiro
- Criando o grupo = Circulares
- Acrescentando os usuários = usuario, user1 como membros do grupo = Circulares
- Selecionando o Dataset Circulares e editando sua ACL para que o Group = Circulares seja o administrador da pasta
- Logando com os 4 usuários e verificar se as ACLs estão funcionando.
- TrueNAS-CORE/FreeNAS Simulando um Projeto Real
- Roteiro
- Apagando Seguro-Dataset
- Backup do TrueNAS-CORE/FreeNAS
- Listando Grupos, usuários, pastas e direitos de acesso
- Grupos:
- Usuários / grupos secundários:
- Estrutura de pastas
- Datasets Secundários / grupos administradores
- Criando os grupos departamentais, de projeto, de controle e mistos.
- Criando usuários associando-os as grupos
- Criando o Windows-Dataset
- Criando o Windows-Share
- Criando ACL do Windows-Share no modo somente leitura
- Criando os sub-Datasets do Windows-Dataset
- Criando diferentes ACLs
- Configurando a pasta publico:
- Configurando a pasta adm:
- Configurando a pasta circulares:
- Configurando a pasta circulares_gerentes:
- Configurando a pasta comercial:
- Configurando a pasta compras:
- Configurando a pasta diretoria:
- Configurando a pasta financeiro:
- Configurando a pasta gerentes:
- Configurando a pasta prod:
- Configurando a pasta rh:
- Configurando a pasta ti:
- Testando configurações
- Exemplo de alteração no Dataset publico
- Alterando ACLs para eliminar grupo wheel dos arquivos e diretórios
- Fazendo Backup do Dropbox e do Google Drive
- Roteiro para implantar o Backup da nuvem no TrueNAS-CORE/FreeNAS:
- Criando o Group = nuvem
- Adicionando o User = usuario no Group = nuvem
- Criando um novo usuario para o Dropbox
- Criando um novo Dataset para o Dropbox
- Criando um novo Share para o Dropbox
- Criando um novo ACL para o Share do Dropbox
- Ativando as Credenciais do Dropbox
- Ativando a Tarefa de Sincronia da Cloud (Cloud Sync Task)
- Rodando o primeiro Backup do Dropbox manualmente
- Criando o Backup do Google Drive
- Adicionando o User = usuario no Group = nuvem
- Criando um novo usuario para o Google Drive
- Criando um novo Dataset para o Google Drive
- Criando um novo Share para o Google Drive
- Criando um novo ACL para o Share do Google Drive
- Ativando as Credenciais do Google Drive
- Ativando a Tarefa de Sincronia da Cloud (Cloud Sync Task)
- Rodando o primeiro Backup manualmente
- Desbloqueando o Google Drive
- Recriando o ACL para o Share do Google Drive
- Fazendo Backup no TrueNAS-CORE/FreeNAS
- Fazendo Snapshots manualmente.
- Restaurando um Snapshot completo
- Restauração manual de 1 arquivo
- Automatizando o Backup Versionado
- Roteiro dos Backups automatizados
- Agendando backup do Pool-Raid-Z
- Agendando backup do financeiro
- Quebrou o HD
- Roteiro
- Removendo 1 HD
- Removendo Segundo HD
- Testando Raid-Z
- Recolocando 1 HD
- Recolocando segundo HD
- Testes Finais
- Conclusões
Sobre o autor
Edson Kazuto Tagusagawa é Analista de Sistemas formado pela
Fatec-SP.
Estudou também na Escola Técnica Federal de São Paulo, atual
IFSP, Escola Politécnica da USP, Escola de Comunicação e Artes da USP e
Faculdade de Economia, Contabilidade e Atuária da USP.
Semestralmente, desde 2017, ministra palestras inaugurais
sobre Open-Source na disciplina de Software Livre na Fatec-SP nos cursos de
Análise e Desenvolvimento de Sistemas.
Iniciou sua carreira na Itautec em 1988 e em 2002 ingressou
no Universo Open-Source utilizando Servidores Red Hat Linux.
Participou de diversos cursos na 4Linux realizando treinamentos
de Linux, de Segurança de Servidores, de Zimbra, de Bacula e de Zabbix.
Com o passar dos anos, incorporou as tecnologias do TrueNAS-CORE/FreeNAS
e do Pfsense que são baseados no FreeBSD, o qual utiliza o sistema de arquivos ZFS,
Raid-Z e Snapshot.
Especializou-se no firewall para Linux Shorewall,
trabalhando na implantação de redes com múltiplas conexões de Internet, com
criação de DMZs e VPNs através do OpenVPN.
Introdução
Graças ao TrueNAS-CORE/FreeNAS nunca foi tão Rápido e Fácil
montar um Storage usando hardware de baixo custo, mas com alta segurança,
redundância e eficiência.
O TrueNAS-CORE/FreeNAS mostrou que é possível criar um
projeto Open-Source Gratuito de alto valor agregado com tecnologia de Storage
para todos os públicos, especialmente as pequenas e médias empresas e pessoas
físicas que necessitam de segurança para seus dados a custo zero.
Grandes empresas também se beneficiam desta Tecnologia
graças ao irmão mais velho do TrueNAS-CORE/FreeNAS, o TrueNAS, um Applience que
já vem com Hardware Certificado e suporte 24x7.
Seja qual for o seu
uso ou o seu porte é importante saber que seus Arquivos, seu Dropbox e seu
Google Drive podem ser Versionados no TrueNAS-CORE/FreeNAS.
Com o Backup Versionado eles podem ser armazenados com
segurança e protegidos do Ransomware graças aos Snapshots do ZFS que
possibilitam um Backup seguro e eficiente.
Revisão
Qual é a origem do nome TrueNAS-CORE/FreeNAS?
O que é Open-Source?
O que é Fork?
O que é Licença BSD?
O que é Rede Local ou LAN?
O que é Servidor de Arquivos?
O que é VSS?
O que é Mirror ou Espelhamento?
O que é Ransomware?
O que é Backup?
O que é Backup Versionado?
O que é Storage?
O que é Snapshot?
O que é o ZFS?
O que é Raid-Z?
O que é FreeBSD?
O que é o SAMBA ou Servidor SMB?
O que é ACL?
O que é o Dropbox?
O que é o Google Drive?
Mais sobre o TrueNAS-CORE/FreeNAS
Se você sabe isto tudo, pode pular este capítulo, mas para
quem não conseguiu responder a todas estas perguntas seguem explicações básicas
de cada item que você vai precisar saber.
Histórico do TrueNAS-CORE/FreeNAS
O TrueNAS-CORE/FreeNAS é um projeto gratuito baseado no
FreeBSD e no SAMBA.
Muito além de gratuito, o TrueNAS-CORE/FreeNAS é Open-Source,
distribuído com a Licença BSD.
O TrueNAS-CORE/FreeNAS começou em 2005.
A Sigla NAS significa Network Attached Storage =
Armazenamento Conectado à Rede.
O NAS nada mais é do que um Servidor Dedicado ou Applience
que exerce o papel de Servidor de Arquivos.
O TrueNAS-CORE/FreeNAS começou como um NAS de baixo custo e
permitiu o fácil compartilhamento de arquivos em rede utilizando hardware
doméstico numa época em que isto era difícil e caro.
Hoje o TrueNAS-CORE/FreeNAS evoluiu para o TrueNAS uma solução
completa profissional de altíssima performance que integra as mais avançadas
tecnologias de Armazenamento de Dados em uma interface gráfica WEB de fácil
configuração e Hardware Certificado com suporte 24x7.
Open-Source
Open-Source, ou Código-Fonte Livre, ou ainda Software Livre
é uma filosofia de desenvolvimento de Tecnologias com o foco no
compartilhamento universal e gratuito do conhecimento.
Para quem não sabe o que é Código-fonte, ele é a matriz, a
receita de bolo que origina o Aplicativo que você utiliza no seu notebook ou
smartphone.
O Windows tem um Código-Fonte, o Android tem um
Código-Fonte, o TrueNAS-CORE/FreeNAS tem um Código-Fonte, ou seja, ter acesso
ao Código-Fonte permite a você alterar, criar novos recursos no Software,
conhecer os segredos do Software, etc.
Existem diversos tipos de Licenças Open-Source, as mais
conhecidas são a GPL e a BSD.
Quando você desenvolve um Software adotando a Licença BSD
por exemplo, você libera o acesso do seu Código-Fonte para qualquer pessoa que
deseje auditá-lo, alterá-lo, tomar posse dele para utilizar em um projeto novo
sem que esta pessoa precise pagar algo ou dar satisfações dos novos usos para o
criador original.
PlayStation 3 e 4, MacOS, IOS (do Iphone) são exemplos de
sistemas que hoje são pagos e fechados e que utilizaram o Código-Fonte do FreeBSD.
Fork
Fork é um acontecimento frequente no universo Open-Source e
nada mais é que uma derivação de um Código Fonte Open-Source em um novo produto
ou vertente.
Por exemplo, o banco de dados MySQL que teve um Fork gerando
o MariaDB.
Outro exemplo é o Oracle Linux que derivou do Red Hat.
Ou o Centos que também derivou do Red Hat.
E mais recentemente o navegador da Microsoft Edge que
derivou do Chrome da Google.
Como o Código Fonte é Open-Source qualquer pessoa pode, nas
condições da licença, derivar o Software e gerar uma nova vertente também
Open-Source ou não, dependendo do tipo de licença original.
Licença BSD
Texto da Licença BSD de 2 cláusulas:
“Copyright
<YEAR> <COPYRIGHT HOLDER>
Redistribution
and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met:
1.
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2.
Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
THIS
SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.”
O texto acima da Licença BSD é inserido como comentário
dentro do Código-Fonte do Software que é então distribuído.
Rede Local ou LAN
Rede Local ou LAN (Local Area Network) é um grupo de
computadores fechados, que compartilham um mesmo Endereço de Rede IP através do
qual se comunicam usando o protocolo TCP/IP.
Estes computadores não são acessíveis para quem está na
Internet, pois estão protegidos por um Firewall/Gateway, que é um destes
computadores.
O Firewall/Gateway possui uma configuração especial pois é dotado
de 2 placas de rede:
- uma placa de rede ligada à LAN
- outra placa de rede ligada à WAN (Internet).
O Firewall/Gateway é o único dispositivo da LAN que possui
esta configuração, portanto é a porta de saída para a Internet.
Este dispositivo o Firewall/Gateway, ou roteador se
preferir, nem sempre é um micro ou servidor, na maior parte das vezes é um
roteador Wi-fi ou um modem de internet que faz o papel de roteador.
Por ter 2 placas de rede o Firewall/Gateway torna-se o elo
entre a Internet e os micros da LAN permitindo aos computadores que não possuem
contato com a Internet navegar nela através do Firewall/Gateway.
Se o Firewall/Gateway é desligado os micros da Rede Local ou
LAN não conseguem mais acessar a Internet, por isso sua configuração é tão
importante.
Servidor de Arquivos
Servidor de Arquivos é um dos computadores da LAN que pode
ser Windows, Linux, Mac, Unix, TrueNAS-CORE/FreeNAS, Storage ou um NAS
dedicado.
Geralmente o Servidor de Arquivos possui um IP-Fixo para ser
mais facilmente localizado na Rede Local (LAN).
Como o nome diz o Servidor de Arquivos permite a
concentração, armazenamento e compartilhamento centralizado de arquivos na Rede
Local (LAN).
Ele hospeda um serviço especial de compartilhamento de
arquivos SMB que utiliza as portas 137, 138, 139 e 445 do protocolo TCP/IP para
escutar as tentativas de acesso ao Compartilhamento de Arquivos.
Por centralizar os dados da Rede Local (LAN), ele também é o
lugar mais adequado para realizar um Backup.
Ao fazermos o Backup do Servidor de Arquivos, também
copiamos todos os dados mais importantes compartilhados da Organização, com
isso temos uma proteção maior contra o Ransomware.
VSS
Shadow Copies ou VSS (Volume Snapshot Service) é o recurso
do Windows de copiar arquivos mesmo quando eles estão abertos em uso.
O Windows 10 e Servidores Windows oferecem Shadow Copies.
Se você não habilita Shadow Copies, o TrueNAS-CORE/FreeNAS
não permite este recurso no Share SMB.
Habilite sempre que possível o VSS no Windows Share, mas não
se esqueça que isso pode consumir espaço.
O VSS permite acessar versões mais antigas de arquivos como
planilhas, documentos, etc.
Usando o Windows Explorer dentro de um Compartilhamento de
Arquivos SMB com o Shadow Copies ativo você:
> clica com o mouse em um arquivo
> clica no arquivo com o botão direito do mouse
> seleciona Propriedades
> clica em Versões Anteriores
> Seleciona a versão anterior que deseja
> clica em Restaurar
Pronto, agora você conseguiu restaurar uma versão antiga do
arquivo através do VSS
Mirror ou Espelhamento
Mirror ou Espelhamento é o recurso mais antigo de
redundância de HDs.
Espelhamento para quem não sabe é um recurso que sincroniza
2 HDs deixando-os com o mesmo conteúdo.
Caso 1 dos 2 HDs falhe fisicamente, o HD que restou continua
trabalhando e o Servidor não para.
Porém no Espelhamento, se você altera uma planilha ou apaga
um arquivo importante, ele é apagado nos 2 HDs de forma simultânea.
Você perde tudo em todos os HDs assim que a sincronia
termina.
A Sincronia, ao mesmo tempo que é um fator de segurança
contra problemas físicos, também é um grande perigo para sua informação lógica,
pois pode alterar e apagar coisas importantes num piscar de olhos em ambos os
HDs.
Isto acontece no Espelhamento pois apagar um arquivo não é
um erro físico, é uma operação lógica normal autorizada pelo usuário ou pelo
Sistema Operacional.
O Espelhamento não detecta isso como um problema deixando
acontecer tragédias.
Resumindo: Espelhamento o protege do dano físico, como a
queima de um HD, mas não do dano lógico que é um arquivo alterado, ou apagado,
ou criptografado por um Ransomware.
Ransomware
Ransomware é um vírus que infecta de forma furtiva seu
computador, tablet, smartphone, servidor, NAS, ou Storage.
Enquanto você não percebe a presença do Ransomware, ele
rouba os seus dados, criptografando-os e deixando-os inacessíveis, para depois
cobrar bitcoins pelo sequestro dos seus dados criptografados.
Caso você não pague o resgate seus dados ficam embaralhados por
um programa de segurança cuja senha só o hacker conhece.
Talvez o que você não saiba é que um ataque de Ransomware
pode durar meses sem que você perceba.
O hacker, vai tentar invadir todos os micros da Rede Local
(LAN) e principalmente os Servidores de Arquivos, Sistemas e Bancos de Dados,
deixando neles Backdoors, ou acessos privados que são usados pelos hackers para
voltar a qualquer momento no computador ou servidor invadido.
A única forma de escapar de um Ransomware é possuir uma
estratégia de Backup bem planejada e regularmente testada.
Este Backup contra o Ransomware precisa estar armazenado em
um lugar Off-Line ou HD Externo normalmente desligado, pois recursos como
Mirror (Espelhamento de Discos) e HDs acessíveis pelos usuários são facilmente
atingidos pelo Ransomware.
Backup
Backup ou Cópia de segurança é um recurso indispensável para
te salvar do Ransomware.
O Backup consiste em copiar de forma versionada os seus
dados em pelo menos 3 lugares diferentes: 1 cópia no seu Servidor, outra cópia
em outro disco de backup separado inacessível pelos usuários normais e uma
terceira cópia em um equipamento externo removido fisicamente.
A terceira cópia física externa permite que torne-se
possível recuperar as informações versionadas mesmo que o prédio do Servidor
pegue fogo e seja destruído completamente, como foi o caso das Torres Gêmeas
nos EUA em 11 de Setembro.
Se você grava sempre um Backup sem Versionamento “usando
sempre o mesmo nome para os arquivos copiados” você está fazendo apenas um
Espelhamento pois cada Backup Novo se sobrepõe ao Backup Antigo e você só
possui 1 versão de retorno.
Com 1 versão de retorno se o dado que você precisa foi
escrito na semana passada você não consegue mais recuperá-lo, pois você só tem
o dia de ontem armazenado.
Dropbox e Google Drive também fazem Espelhamento e por isso
não podem ser considerados uma forma de Backup Verdadeira, apenas uma
estratégia de compartilhamento de dados, ou no máximo um Espelhamento mais
demorado.
O Dropbox e Google Drive podem ser afetados pelo Ransomware,
por isso muito cuidado.
Backup Versionado
Versionamento de Backup para quem não sabe é guardar uma
sequência de versões diárias, semanais, mensais ou anuais por um dado período,
por exemplo:
- versões de 10 em 10 minutos de uma pasta muito importante
da rede para guardar por 3 dias
- versões de hora em hora das 8:00 às 18:00 dos arquivos da
rede para guardar por uma semana
- os últimos 365 dias (você terá 365 versões diferentes das pastas
do Servidor)
- as últimas 5 semanas (você guarda 5 versões dos últimos 5
domingos)
- os últimos 12 meses (você terá 12 versões do primeiro dia
de cada mês do Servidor)
- os últimos 5 anos (você terá 5 versões dos últimos 5 anos)
Com o Backup Versionado você consegue retornar os dados
originais a partir das versões armazenadas no Storage com grande segurança e
precisão pois estas informações estão preservadas de forma eficiente e estão
inacessíveis para os usuários comuns e para o Ransomware.
Storage
Storage é um equipamento/sistema muito avançado de
armazenamento de alta capacidade e performance.
O Storage combina diversos tipos de discos, SSDs e Robôs de Fitas
Magnéticas para garantir uma ampla gama de configurações além de possuir a
capacidade de gerar rapidamente Snapshots, que implementam rotinas de backup
avançadas e mais precisas.
Ele é utilizado em Datacenters e Servidores Corporativos e
seu custo é elevado devido à sua complexidade.
Na essência ele continua sendo um Servidor de Dados, mas os
protocolos e conexões que ele utiliza são diferentes para garantir baixa
latência e alta taxa de transferência de dados, como fibra ótica por exemplo.
Quando você possui um Storage (Sistema de Armazenamento), o
Backup é feito com Snapshots que permitem realizar de forma transparente o
Backup Versionado.
Com Snapshots você economiza espaço, realiza Backups de
forma rápida e ganha flexibilidade na restauração dos dados.
O TrueNAS-CORE/FreeNAS, como Servidor de Arquivos derivado
do FreeBSD, possui a Tecnologia de Storage incorporada via Software no seu File
System ZFS, assim sendo, você consegue fazer Snapshots de tudo o que está
armazenado no TrueNAS-CORE/FreeNAS a custo zero, bastando para isso ter espaço
físico disponível para armazenar os dados dos Snapshots.
Snapshot
Snapshot é um recurso de fotografar o sistema de arquivos,
congelando um determinado dado para uso posterior:
- para backup
- para auditoria
- para realização de testes
Todo Storage possui a capacidade de fazer Snapshots de forma
rápida e transparente.
Os usuários usam normalmente o Storage, lendo, gravando arquivos
nele enquanto o Snapshot é gerado simultaneamente ao uso dos arquivos, mesmo
quando eles estão sendo alterados.
O Storage realiza manual ou automaticamente o Snapshot
implementando o Backup sem necessidade de parar o Servidor.
O LVM do Linux também suporta Snapshot, porém sua
implementação não é dinâmica e tem que ser planejada previamente, pois depende
do hardware para viabilização.
Quando você usa Snapshot no LVM do Linux alterações de
configuração só podem ser feita na instalação do Servidor ou nas Manutenções dele,
o que tira toda a flexibilidade do recurso caso a configuração do Snapshot mude
a toda hora.
ZFS
O Zettabyte File System, ou ZFS é um sistema avançado de
armazenamento de dados, que implementa tecnologias de Storage em micros comuns.
Em linhas gerais ele é superior aos demais sistemas de
arquivos pois ele permite a criação transparente e instantânea de Snapshots
infinitos, desde que haja espaço nos discos.
O ZFS consegue fazer Snapshots infinitos pois ele possui uma
propriedade que os demais sistemas de arquivos não possuem:
O ZFS jamais grava arquivos em lugares onde já houve alguma
informação anterior.
O ZFS sempre busca novos lugares e só grava em lugares
vazios.
Por não sobrescrever dados e manter o registro das versões
anteriores de arquivos de forma indexada, o ZFS consegue voltar rapidamente no
tempo e criar Snapshots sem uso de processamento dos dados.
Para criar um Snapshot, o ZFS congela uma relação de dados
antigos de um determinado instante em um bloco referenciado que não ocupa
nenhum espaço adicional ao já ocupado anteriormente.
Para funcionar corretamente, recomendamos não usar mais do
que 80% da capacidade de espaço do disco, para que sempre haja mais espaço vago
disponível para o ZFS consumir.
Outro recurso fantástico do ZFS é sua auto verificação, uma
ação agendada semanalmente, para verificar os discos e identificar precocemente
falhas antes que o dado se corrompa.
Para tanto ele realiza testes chamados scrubs que detectam
as corrupções silenciosas de dados, fornecendo alertas de falhas iminentes nos
discos.
Raid-Z
Raid-Z é uma implementação do ZFS semelhante ao Raid-5 em
termos de funcionamento físico.
A partir de 3 discos o Raid-Z sacrifica um dos discos para
paridade oferecendo recursos de redundância para o espaço dos 2 discos que
sobraram, por exemplo:
Com 3 discos de 1 Terabyte, ao invés de termos 3 Terabytes
de armazenamento, temos apenas 2 Terabytes, porém quando qualquer dos 3 discos
quebra, o Raid-Z não para pois ele suporta a falha de qualquer um dos 3 discos.
Se 2 discos quebrarem simultaneamente no Raid-Z ele para de
funcionar pois isto está além do seu escopo.
O Raid-Z também é possível a partir de discos de tamanhos
diferentes, mas a Pool criada terá como base o tamanho do menor dos discos.
Por exemplo, se você tiver para formar um Raid-Z:
- 2 HD de 1Terabyte
- 1 HD de 2 Terabytes
- 1 HD de 4 Terabytes
Iremos criar um Raid-Z considerando 4 unidades de 1
Terabyte, o resultado é um Raid-Z de tamanho disponível de 3 Terabytes, mas com
a redundância de um disco, o que em certos casos é mais importante do que
espaço disponível.
O Raid-Z por ser uma implementação via Software oferece
Snapshots, ao contrário de um Raid-5 padrão.
Existe também:
- Raid-Z2 que é semelhante ao Raid-6 e que suporta a perda
de até 2 discos
- Raid-Z3 que seria um Raid-5 com 3 discos de paridade e,
portanto, pode perder até 3 discos.
Pode parecer exagero usar um Raid-Z3, mas quando temos Raids
com 16 discos, 3 discos de paridade é muito pouco.
FreeBSD
O FreeBSD é um sistema operacional Posix.
O FreeBSD não é Linux, pois seu kernel derivou de outra
versão de Unix, o 386BSD.
O FreeBSD é um sistema operacional completo ao contrário do
Linux que é apenas um kernel.
Apesar disto os 2, Linux e FreeBSD, são Posix.
Por isso o FreeBSD pode rodar programas feitos para o Linux,
bastando para isso recompilar os códigos fonte destes programas com um
compilador C.
Outra diferença é que o FreeBSD é voltado ao uso em
servidores modo texto, muito mais seguros e que consomem menos recursos por não
necessitarem de interface gráfica.
O FreeBSD pode também ser usado em Desktops, porém o Linux
oferece muito mais opções de Interfaces Gráficas neste caso.
A Netflix por exemplo usa muito o FreeBSD devido à sua alta
performance.
SAMBA ou Servidor SMB
O SAMBA é fruto de um trabalho de engenharia reversa feito
por usuários Linux para trazer para o Linux o serviço de Compartilhamento de Arquivos
do Windows que na época era de código fechado e não tinha nenhuma documentação
sobre seu funcionamento.
O protocolo do SAMBA é o SMB que usa as portas 137,138, 139
e 445 do protocolo TCP/IP.
Se você bloquear estas portas no seu Firewall, o SAMBA não
vai funcionar.
ACL
ACL quer dizer Access Control List, ou seja, Lista de
Controle de Acesso, e sua função é garantir a segurança do acesso aos arquivos do
protocolo SMB em Sistemas de Compartilhamento de Arquivos Windows e SAMBA.
Obviamente se você não é administrador de redes, ou não
trabalha com Open-Source esse papo de ACL é algo que você nunca viu, pois,
usuários normais não utilizam estes recursos no dia a dia.
As ACLs não obedecem à especificação Posix, são um tipo
diferente de controle de acesso próprio do Windows e podem ser atribuídas a muitas
pessoas e a muitos grupos no mesmo diretório.
Temos basicamente 4 tipos de ACLs.
Tipos de ACLs no SMB (não Posix):
- read : arquivos e diretórios somente leitura
- write : permite criar, modificar e apagar arquivos e
diretórios
- modify : permite apenas modificar arquivos e diretórios
(não existe no Posix)
- Full Control : Acesso Completo (não existe no Posix)
As opções acima são os tipos de ACLs que podem ser criadas
no TrueNAS-CORE/FreeNAS em pastas chamadas de Datasets.
Dropbox
O Dropbox, está disponível para Windows, Mac e Linux e
permite compartilhar dados com várias pessoas através da Internet.
O Dropbox é um serviço de nuvem para compartilhamento de
arquivos que estabelece um mecanismo de sincronia (Espelhamento) entre a nuvem
Dropbox e um programa cliente Dropbox instalado no Sistema Operacional do
usuário.
Tudo que está no seu Desktop dentro da pasta do Dropbox é
espelhado com a nuvem e acessado por outras pessoas desde que você autorize o
acesso delas.
Estas pessoas precisam também ter o Dropbox instalado em
seus Sistemas Operacionais.
Quando você não compartilha estes dados da nuvem e usa
somente para si, o Dropbox se torna uma opção bem simples de Backup não
Versionado.
Lembre-se que o Dropbox é um Espelhamento, não um Backup
seguro e confiável pois não é Versionado.
Se planilhas e dados forem alterados no seu notebook, o
Dropbox também vai copiar a planilha danificada para a nuvem e tudo estará perdido
quando a sincronia entre o seu notebook e a nuvem terminar.
Por isso, neste livro ensinamos como se implementa um Backup
Versionado off-line do seu Dropbox em um servidor TrueNAS-CORE/FreeNAS para
garantir que nada mais seja perdido.
E o melhor de tudo, sem custos de licença ou serviço.
O TrueNAS-CORE/FreeNAS é Open-Source e gratuito e você só
gasta com Hardware.
Google Drive
O Google Drive é a versão do Dropbox criado pelo Google,
basicamente eles fazem a mesma coisa, porém o Google Drive é vinculado ao
usuário Google do seu Gmail e seu objetivo é ser usado 100% WEB.
Caso você deseje sincronizar suas pastas do Google Drive com
uma pasta no seu computador isto também é possível através do programa installbackupandsync.exe,
mas isto não é muito recomendado, pois se fosse para isso, o Google faria mais
divulgação deste serviço.
Apesar do nome Backup and Sync, a ferramenta do Google faz
apenas Espelhamento e não um Backup Versionado.
Com o TrueNAS-CORE/FreeNAS, além de conseguir fazer o Backup
correto do seu Google Drive você fica totalmente imune ao Ransomware.
Você passa a ter infinitas versões dos seus arquivos do
Google Drive sem nada pagar, desde que é claro, haja espaço físico para
armazenar suas versões.
Mais sobre o TrueNAS-CORE/FreeNAS
O TrueNAS-CORE/FreeNAS é uma Distribuição derivada do FreeBSD
dedicada ao compartilhamento de arquivos em uma Rede Local (LAN).
A próxima versão já será a integrada com o TrueNAS, o nome TrueNAS-CORE/FreeNAS
vai desaparecer.
Ambas as distribuições serão uma só: o TrueNAS.
A dupla (TrueNAS-CORE/FreeNAS + TrueNAS) será substituída
pelo (“TrueNAS Core” + TrueNAS).
O TrueNAS para quem não sabe é a versão comercial e paga do TrueNAS-CORE/FreeNAS
que já vem na forma de Appliance, ou seja, com o Hardware Certificado, pronto
para uso, com suporte 24x7.
O Código-Fonte do “TrueNAS Core” será o mesmo do TrueNAS,
porém o TrueNAS terá alguns recursos mais avançados ativados, os quais para o
usuário normal não farão a menor diferença.
Mesmo assim, tão próximo da mudança, ainda vale a pena
conhecermos o TrueNAS-CORE/FreeNAS pois é o que temos de imediato
O TrueNAS-CORE/FreeNAS é Open-Source e pode ser alvo de um
Fork.
Conhecê-lo, mesmo que vá mudar de versão ou nome não é tempo
perdido pois do jeito que ele está já é muito útil.
O TrueNAS-CORE/FreeNAS é um Storage Open-Source de baixo
custo pois suporta nativamente o uso de Snapshots.
Por ser Open-Source, pode ser baixado gratuitamente e sua
instalação é rápida e fácil, desde que se entenda como ele funciona (teoria).
Ele permite o compartilhamento de arquivos nos formatos
- SMB do Windows
- NFS do Unix/Linux
- AFP da Apple
- WebDAV
- Serviço de blocos iSCSI.
- Rsync
Sua instalação se dá a partir de um DVD.
O TrueNAS-CORE/FreeNAS pode ser instalado em um pendrive
simples ou em 2 pendrives em Mirror para garantir maior segurança.
Com o TrueNAS-CORE/FreeNAS instalado (e dando boot) pelo pendrive
você consegue otimizar ao máximo o espaço dos HDs e SSDs que passam a ficar
100% disponíveis para a criação das Pools (os Raids por Software do Sistema de
Arquivos ZFS).
A configuração e administração do TrueNAS-CORE/FreeNAS ocorre
em uma estação remota através de interface WEB de forma leve e flexível, mas
com alta facilidade de uso e segurança.
O TrueNAS-CORE/FreeNAS possui recursos de backup de suas configurações
via WEB, e os arquivos de backup das configurações é muito pequeno.
Por ser baseado no FreeBSD, o TrueNAS-CORE/FreeNAS usa o ZFS
e o Raid-Z, isso o torna altamente flexível e econômico em termos de espaço de
disco devido à capacidade de criar rapidamente Snapshots para uso em Backups
Versionados.
Os Raids do TrueNAS-CORE/FreeNAS ainda suportam discos de
Spare e SSDs de Cache, sem que você tenha que pagar nada mais por isso.
TrueNAS-CORE/FreeNAS
No momento da edição deste livro o TrueNAS-CORE/FreeNAS está
na versão 11.3-U2.1
O instalador do TrueNAS-CORE/FreeNAS é uma imagem ISO
Atualmente ele pode ser baixado do site: do TrueNAS mas está atualmente descontinuado, mas disponíviel para Download
www.TrueNAS-CORE/FreeNAS.org/download-TrueNAS-CORE/FreeNAS-release
Você normalmente grava a iso num DVD para realizar a
instalação no TrueNAS-CORE/FreeNAS.
Como usaremos o VirtualBox não haverá necessidade de gerar o
DVD.
Para instalar o TrueNAS-CORE/FreeNAS é suficiente ter um PC sem nenhum HD ou SSD.
Você instala o TrueNAS-CORE/FreeNAS num Pendrive de Boot
permanentemente conectado numa porta USB.
Concluída a instalação você conecta os HDs e SSDs nas portas
SATA livres do seu PC mantendo o Pendrive de Boot Permanente que contém o
Sistema Operacional do TrueNAS-CORE/FreeNAS.
O ZFS utiliza fortemente a memória RAM para fazer Cache dos
HDs e o valor recomendado é 8Gb de RAM, mas para testes 2Gb já são suficientes
caso sua máquina hospedeira tenha apenas 4Gb de RAM.
Os requisitos mínimos para TrueNAS-CORE/FreeNAS
- Memória RAM de 8GB
- CPU 64bits de preferência Intel, não roda em CPUs 32bits
- 1 pendrive Sandisk de 16Gb
- pelo menos 1 HD de 1 Tb para dados
- 1 HD de 1 Tb para Mirror é opcional para garantir a
redundância.
Configuração ideal
para testes
- Memória RAM de 16GB
- CPU de preferência Intel
- 2 pendrives Sandisk de 32Gb
- pelo menos 4 HD de 2 Tb para montar um Raid-Z
- 1 SSD M2 para cache
Instalando e usando o VirtualBox
Usaremos o VirtualBox, assim não é necessário ter 2 micros
para usarmos o TrueNAS-CORE/FreeNAS facilitando muito a parte prática que pode
ser congelada e retomada quando necessário.
Recomenda-se ter pelo menos 8 Gb de RAM e 60Gb de espaço em
disco.
Caso você só tenha 4Gb no seu notebook ou computador, terá
de limitar a memória da máquina virtual do TrueNAS-CORE/FreeNAS em 2048Mb, que
é o mínimo do mínimo.
Baixe o VirtualBox na página:
https://www.virtualbox.org/wiki/Downloads
https://download.virtualbox.org/virtualbox/6.1.6/VirtualBox-6.1.6-137129-Win.exe
Baixe também as configurações de extensão do VirtualBox.
Instale ambos os programas clicando 2 vezes no VirtualBox e
depois no arquivo de Extensões.
Veja a seguir a tela inicial do VirtualBox:
Configuração para VM do TrueNAS-CORE/FreeNAS
- Memória RAM de 4GB (o mínimo necessário é 2Gb)
- 1 núcleo de CPU
- 1 disco para sistema de 16Gb
- 3 discos de 20 Gb para montar um Raid-Z
- 1 disco de 20 Gb para Spare
- 1 disco de 10 Gb para Cache
Criando a VM do TrueNAS-CORE/FreeNAS
Abra o VirtualBox e clique no botão Novo para criar
uma nova máquina virtual:
Preencha :
- Nome = TrueNAS-CORE/FreeNAS
- Tipo = BSD
- Versão = FreeBSD
(64bits).
Clique em “Próximo”
Preencha a memória com 4096Mb de RAM, mas não menos que 2048Mb caso você tenha apenas 4Gb
de memória no seu computador
Clique em “Próximo”
Escolha “Criar um novo disco rígido Virtual agora”
E clique no botão “Criar”
Escolha
o formato “VDI (Virtual Disk Image)”
E clique no botão “Próximo”
Clique em disco “Dinamicamente alocado”
E no botão “Próximo”
Escolha o tamanho de “16Gb”
E clique em “Criar”
A VM está criada.
Pronto, agora a VM do TrueNAS-CORE/FreeNAS foi criada, mas
ainda não está pronta para uso, pois precisamos configurar os discos
adicionais, a imagem do DVD e a interface de rede.
Configurando a VM do TrueNAS-CORE/FreeNAS
Agora você tem uma Máquina Virtual (VM) para uso neste livro.
Se você preferir pode usar um PC de verdade.
Para todos os efeitos vamos utilizar máquinas virtuais pois nos
permitem Clonar e realizar Backups dos testes com maior facilidade.
Clique em Configurações
Escolha a imagem ISO do TrueNAS-CORE/FreeNAS
Adicione as controladoras adicionais AHCI e NVMe
Para criar os 4 HDs de 20 Gb na controladora AHCI
Selecione a linha da controladora AHCI e clique no ícone de
“adiciona disco rígido”
Selecione o HD com o mouse e clique em Escolher
Vai ficar assim:
Selecione agora a linha da Controladora NVMe e clique no
ícone de criar HD
Anexando os discos veja como deverá ficar:
- Controladora IDE = TrueNAS-CORE/FreeNAS.vdi, TrueNAS-CORE-xxx.iso
- Controladora AHCI = TrueNAS-CORE/FreeNAS_1.vdi, TrueNAS-CORE/FreeNAS_2.vdi,
TrueNAS-CORE/FreeNAS_3.vdi, TrueNAS-CORE/FreeNAS_4.vdi
- Controladora NVMe = TrueNAS-CORE/FreeNAS_5.vdi
Não esqueça de ativar o disco TrueNAS-CORE/FreeNAS_5.vdi
como Estado Sólido.
Configure agora a placa de rede em modo Bridge e clique em
“OK’
- Adaptador 1 > Placa em modo Bridge > OK
Clique em OK para finalizar as Configurações.
Agora é só iniciar o TrueNAS-CORE/FreeNAS
Escolha a opção “1” de Install/Upgrade
O TrueNAS-CORE/FreeNAS
vai detectar que você tem menos de 8Gb de RAM e vai pedir para autorizar a
continuidade da instalação:
Selecione a unidade de boot de ada0 de 16Gb com a
barra de espaço
Prossiga clicando em Yes
Digite a senha e anote para não esquecer e tecle OK.
No VirtualBox escolha Boot via Bios, pois o modo UEFI
não funcionou no VirtualBox, mas em computadores reais e novos o modo UEFI é a
única opção que funciona.
Preste atenção na próxima tela.
Caso a barra de progresso demore demais, troque o seu pendrive
de boot quando estiver usando um PC.
Quando instalei o TrueNAS-CORE/FreeNAS num servidor de
verdade eu estava usando um pendrive genérico e esta etapa demorou demais.
Então troquei por um pendrive Sandisk original de 16Gb e a
demora acabou, em poucos minutos a instalação terminou.
Aqui, como estamos no VirtualBox não pode demorar muito,
mais ou menos uns 10 minutos no máximo.
No VirtualBox escolha 4 = Shutdown System pois você
terá que desabilitar o CD-ROM para liberar o Boot para o TrueNAS-CORE/FreeNAS
Agora
entre nas configurações da máquina virtual:
A seguir remova o CD de inicialização do VirtualBox e
o deixe Vazio como na figura abaixo
Inicie
a VM do TrueNAS-CORE/FreeNAS
Anote o Endereço IP que aparece na tela do seu TrueNAS-CORE/FreeNAS
Pronto agora é só entrar no Navegador de Internet e colocar
o endereço HTTP://172.16.1.214
Primeiros
Passos da Configuração
Agora que seu TrueNAS-CORE/FreeNAS
está ativo você poderá mudar o IP configurando o servidor DHCP da Rede Local
(LAN), caso não saiba o que é isso não se preocupe, pode continuar usando o
Endereço IP que foi reconhecido:
Faça Login com o
usuário = root
E a senha que você
utilizou e que deveria ter anotado = ???????
A tela inicial do TrueNAS-CORE/FreeNAS
mostra as configurações principais do NAS:
A partir de agora
faremos configurações do TrueNAS-CORE/FreeNAS que nada tem a ver com o
Compartilhamento de Arquivos, mas que são importantes para o funcionamento do TrueNAS-CORE/FreeNAS.
São por exemplo
configurações de rede, de e-mail, de atualizações via Internet, as quais quando
feitas oferecem recursos importantes ao administrador que passa a contar com
alertas via e-mail e coisas do tipo.
A primeira coisa que
faremos é alterar o tema de cores do TrueNAS-CORE/FreeNAS para um tema mais
claro, para tanto clique na engrenagem que fica no canto superior direito do
navegador:
Escolha
- Choose Theme = High Contrast
- Clique em UPDATE SETTINGS
Clique na Barra
Lateral Esquerda em System e depois em General
System > General
- Language = English
- TimeZone = America/Sao_Paulo
- Clique em SAVE
Importante!
Nesta Tela do System
> General os botões que ficam em baixo
- SAVE
- SAVE CONFIG
- UPLOAD CONFIG
- RESET CONFIG
Devem ser manuseados
com extremo cuidado principalmente o RESET CONFIG
O botão SAVE CONFIG
faz o Backup das configurações do TrueNAS-CORE/FreeNAS
O botão do UPLOAD
CONFIG faz o Restore das configurações do TrueNAS-CORE/FreeNAS a partir de
arquivos de configuração salvos
O botão de RESET
CONFIG apaga todas as configurações do TrueNAS-CORE/FreeNAS
System > Advanced
- ativar Enable Autotune
- ativar Show Console Messages
- clique em SAVE
Antes de prosseguir vamos
entrar nas configurações de rede do TrueNAS-CORE/FreeNAS e definir o Gateway e
os DNSs para o TrueNAS-CORE/FreeNAS poder enviar e-mails e buscar atualizações
na Internet.
O Gateway/Firewall é
o equipamento que permite o acesso à Internet como foi explicado na Revisão.
No meu exemplo o
Endereço IP do Gateway é 172.16.1.1, mas que na maioria dos casos é:
- Redes Vivo:
192.168.15.1
- Redes Claro/Net:
192.168.0.1
- Roteadores
genéricos wi-fi: 192.168.0.1, ou 192.168.1.1, ou 10.0.0.1
Já o DNS não tem
variação, vocês podem todos colocar a mesmíssima configuração.
Estes IPs de DNS são
do Google (8.8.8.8 e 8.8.4.4) e da Vivo (200.204.0.10) e podem ser utilizados
em qualquer lugar do planeta sem necessidade de modificação.
As configurações
são:
Network >
Global Configuration
- IPv4 Default Gateway = 172.16.1.1
- Nameserver1 = 8.8.8.8
- Nameserver2 = 200.204.0.10
- Nameserver3 = 8.8.4.4
Precisaremos de um
Servidor de envio de email SMTP, e neste exemplo utilizaremos os servidores de
e-mail do Google, para tanto você vai precisar de uma conta de Gmail do Google.
Caso você não
possua, crie uma para poder seguir com as configurações.
O Gmail vem por
padrão com o SMTP desativado, para tanto você precisará ativar este serviço nas
configurações do Gmail:
- Confgurações >
Encaminamento e POP/IMAP > Ativar Imap > Salvar alterações
Mas ainda não
acabou, tem que liberar outra opção na sua Conta Google, esta configuração fica
escondida pois o SMTP mesmo com SSL é inseguro, para tanto se logue no Gmail e
com seu e-mail e senha e acesse o seguinte site na opção Segurança:
https://myaccount.google.com/security
Clique no item
Segurança da barra lateral esquerda > Selecione Acesso a App menos seguro
Clique em = Ativar o
acesso (não recomendado) >>> como estava antes
Que mudará para = Desativar
o Acesso (recomendado) >>> deixe assim
Agora Ative a opção Permitir
aplicativos menos seguros = ATIVADA
Vamos agora
configurar o e-mail do root para ativar as mensagens de e-mail automáticas:
Accounts > Users > root > Edit
Altere as seguintes
informações:
email = edson.tagusagawa@gmail.com
(o seu email do Gmail)
Shell = bash:
Observe que o e-mail
da figura anterior é necessário para configurar a próxima tela onde você terá
que preencher o mesmo e-mail e configurar os parâmetros do servidor SMTP e
fazer um “Send Test Mail”.
System > Email
- From Email = edson.tagusagawa@gmail.com
(seu email do Gmail)
- Outgoing Mail Server = smtp.gmail.com
- Mail Server Port = 465
- Security = SSL (implicit TLS)
- SMTP
Authentication = sim
- Username = edson.tagusagawa@gmail.com (seu email do Gmail)
- Password =
********************
- Clique em = SEND TEST MAIL
Se as configurações
estiverem corretas vai aparecer a tela abaixo:
Clique em
- CLOSE
- SAVE
Agora vamos
atualizar o TrueNAS-CORE/FreeNAS:
System > Update
Pronto, as
configurações de Sistema estão feitas.
Resumindo, até agora
tudo que fizemos não está relacionado ao compartilhamento de arquivos, são
configurações básicas, muito úteis, mas que não definem o funcionamento do NAS
propriamente dito de forma que você pode muito bem deixar de fazer estas configurações,
pois o seu TrueNAS-CORE/FreeNAS vai funcionar normalmente.
Vamos
entender o TrueNAS-CORE/FreeNAS
O TrueNAS-CORE/FreeNAS não é simples, nem intuitivo, e
requer um certo estudo teórico para que o administrador possa entender a lógica
do seu funcionamento antes de colocar a mão na massa.
Neste capítulo vamos abordar os conceitos usados no TrueNAS-CORE/FreeNAS
para implementar um NAS SMB, ou Servidor SAMBA se preferir, conciliando o
universo Windows com o universo Posix do FreeBSD.
É preciso ficar bem claro o que é uma Pool, um Dataset e uma
ACL.
As configurações serão mostradas depois, passo a passo nos
capítulos seguintes, mas agora concentre-se em aprender como o TrueNAS-CORE/FreeNAS
se organiza e quais são as etapas para configurá-lo.
Testando os discos
O item Zero é verificar se os discos estão em bom estado.
Muitas vezes temos discos sobrando, mas os mesmos, apesar da
boa aparência podem estar comprometidos.
Antes de usar os discos no TrueNAS-CORE/FreeNAS teste-os no
seu PC usando o HDDSCAN (Windows) ou o Smartmontools (Linux) para verificar a
tabela SMART do mesmo.
HDDSCAN.exe
No Windows devido à interface gráfica fica bem simples
realizar a leitura da tabela SMART do HD, basta ligar o mesmo no micro e clicar
no botão SMART do HDDSCAN que pode ser baixado facilmente da Internet.
https://hddscan.com/download.html
Caso ele não funcione, existe também o smartmontools para
Windows que é mais difícil de usar.
http://www.netpower.fr/sites/default/files/soft/bin/smartmontools-win-6.6-1_0.exe
Instale primeiro e depois no Prompt do DOS
executar o CMD como Administrador
cd C:\Arquivos de
Programas\smartmontools for Windows\bin
smartctl.exe -a d:
Smartmontools
No Linux, você precisa instalar o smartmontools para testar
o disco /dev/sdb (segundo HD do micro), se for o terceiro HD do micro será
/dev/sdc e assim por diante:
- No Debian, Ubuntu e derivados
apt-get update
apt-get install smartmontools
smartctl -a /dev/sdb
- No Red Hat, Centos, e derivados
yum install smartmontools
smartctl -a /dev/sdb
Tabela SMART
Caso os HDs apresentarem erros no item “current pending
errors” descarte imediatamente o HD pois ele está comprometido fisicamente de
forma irreparável e não é mais confiável.
De qualquer forma se recomenda que sejam apenas utilizados
HDs que não apresentem nenhum erro na tabela do SMART.
Usuários e Grupos do TrueNAS-CORE/FreeNAS
A primeira coisa que se faz no TrueNAS-CORE/FreeNAS é criar
Usuários e Grupos pois ele é um sistema Posix.
Todo sistema Posix precisa das informações de
usuários/grupos/direitos_de_acesso para funcionar.
Nada é feito no Posix sem antes criarmos os usuários e os
grupos, já os direitos_de_acesso podem ser atribuídos depois.
Exemplos de Grupos: TrueNAS-CORE/FreeNAS, diretoria, adm,
vendas, compras, prod, rh, adv, seg, etc.
Exemplos de Usuários: diretor, supervisor, vendedor,
comprador, operário, rh, advogado, segurança, etc.
Exemplo de Grupos Gerais: comunicados, circulares, modelos,
pasta_publica, etc.
Criando usuários e grupos, o uso do TrueNAS-CORE/FreeNAS
fica mais seguro e organizado e aderente à especificação Posix tão necessária
para a segurança.
Sem usuários e sem grupos não é possível controlar e
garantir a segurança do TrueNAS-CORE/FreeNAS.
Para criar usuários e grupos entre no menu Accounts.
Exemplo de Usuários e Grupos
User = usuario (usuário
que pode ser compartilhado num cenário simples de uso)
Group = TrueNAS-CORE/FreeNAS
Com as configurações acima já é possível utilizar de forma
insegura o TrueNAS-CORE/FreeNAS no modo compartilhado pois todos os usuários da
Rede Local (LAN) vão usar o mesmo User = usuario.
Como consequência se alguma pessoa apagar todo o servidor,
não será possível saber quem fez isso, pois todos usam as mesmas credenciais de
usuário e senha para acessar o Servidor TrueNAS-CORE/FreeNAS.
O Grupo TrueNAS-CORE/FreeNAS é o Grupo Primário de todos os
usuários criados neste livro, isto é feito para garantir a compatibilidade de
arquivos e diretórios que precisem ser eventualmente compartilhados.
O Grupo TrueNAS-CORE/FreeNAS pode ser substituído pelo nome
da empresa (não recomendado), desde que este nome não seja muito comprido, nem
tenha acentos ou caracteres especiais.
Pool
A segunda coisa a ser feita no TrueNAS-CORE/FreeNAS é criar
a Pool.
Uma Pool nada mais é que um apelido dado à um Raid.
Uma Pool é uma unidade lógica de armazenamento de dados que
pode conter 1, 2, 3, vários, dezenas de discos físicos e SSDs.
A Pool agrupa discos físicos e SSDs em conjuntos ZFS que
oferecem diferentes graus de tolerância a falha, redundância, cache e
performance.
A Pool associa um apelido a cada grupo de discos criado
fisicamente, que é o nome da Pool.
O nome da Pool facilita a manipulação e configuração dos
recursos físicos que passam a ser tratados pelo apelido criado (nome da Pool) e
não mais por códigos complexos que podem confundir e induzir ao erro.
Em um mesmo TrueNAS-CORE/FreeNAS você pode ter múltiplas
Pools, por exemplo:
- uma Pools com Stripe
- outra com Mirror
- outra com Raid-Z e Cache
- outra com Raid-Z2 e Spare
Tudo no mesmo TrueNAS-CORE/FreeNAS, imaginem isso sem o uso
de Pools para simplificar.
É muito importante saber projetar as configurações das
Pools, pois elas serão a Base para a criação dos Snapshots no TrueNAS-CORE/FreeNAS.
Dados que devem estar no mesmo Snapshot precisam também
estar dentro da mesma Pool.
A maior unidade lógica que pode ser backupeada com um Snapshot
é a Pool, portanto seu projeto deve prever isto.
Vejamos agora as possíveis configurações de Pools:
Stripe
Quando os discos possuem tamanhos diferentes e não precisam
de redundância.
O Stripe soma o tamanho dos discos resultando em uma Pool
com o tamanho total dos discos que o formam, mesmo que eles sejam de tamanhos
diferentes.
O stripe pode ser usado sem problemas no dia a dia e muitos
servidores rodam com Stripe por anos sem quebrar, mas recomendamos que esses
dados possuam um bom Backup Externo para garantir.
Mirror (Espelhamento)
O Mirror é o método mais antigo e simples de redundância.
Atenção! Mirror não é uma técnica de Backup, é apenas um
método de sincronia que pode levar à perda de dados facilmente, pois ele é
tolerante a falhas físicas apenas, não a oferece nenhuma garantia contra o
Ransomware.
Quando temos 2 discos de mesmo tamanho (Raid-1), ou 4 discos
de mesmo tamanho (Raid-10) podemos usar o Mirror (Espelhamento).
Podemos criar facilmente um Mirror com uma quantidade par de
discos de mesmo tamanho.
O tamanho resultante de um Mirror é a metade da capacidade
total dos discos somada.
O Mirror é muito veloz e exige pouco processamento.
O Mirror usa dois blocos de HDs e espelha um bloco no outro,
sincronizando-os.
Em caso de quebra de 1 disco, o bloco de discos que sobrar
mantém o Mirror utilizável.
Em um Mirror com 4 discos quando 2 HD falham ao mesmo tempo
nem sempre o Mirror sobrevive, por isso recomenda-se para 4 discos usar o
Raid-Z2 que suporta perda de 2 discos simultâneos.
A regra geral é evite usar o Mirror, mas às vezes conforme a
aplicação ele é necessário pela boa performance.
Raid-Z
De forma grosseira é a implementação do Raid5 no ZFS.
Neste tipo de Pool que pode ser usado a partir de 3 discos,
você consome um disco do seu conjunto físico para paridade, desta forma com 3
discos gastos no Raid-Z você tem espaço equivalente a 2 discos para dados, se
você perder 1 dos 3 discos, os 2 restantes ficam funcionando normalmente até a
troca do disco defeituoso.
Se você tiver preparado um disco de Spare, esta troca é
feita automaticamente.
O Raid-Z também pode ser dotado de um disco SSD de Cache
para ficar mais eficiente.
O Raid-Z quando configurado no TrueNAS-CORE/FreeNAS é
associado a uma Pool, que nada mais é que um apelido para o Raid-Z, com o
objetivo de facilitar a organização e uso do TrueNAS-CORE/FreeNAS
Raid-Z2
Idêntico ao Raid-Z, mas com 2 discos de paridade.
Partindo de 4 discos você consegue montar um Raid-Z2.
Atenção: um Mirror de 4 discos (Raid-10), apesar de mais
rápido, pode eventualmente perder uma dupla de discos simultaneamente e
conforme a combinação dos discos no Raid-10 perder todos os dados!
Já o Raid-Z2 mantém a integridade de todos os dados mesmo
perdendo 2 discos simultaneamente em qualquer combinação, seja qual for a ordem
dos 2 discos perdidos, pois sua arquitetura é individual, não importando quais
foram os 2 discos que quebraram.
Trabalhando com 6 ou 8 discos o Raid-Z2 é muito vantajoso
pois o aproveitamento do espaço de dados é superior ao Mirror além da maior
disponibilidade em caso de quebras.
Raid-Z3
Idêntico ao Raid-Z, mas com 3 discos de paridade, assim para
controladoras de 16 discos, você utiliza 15 discos em Raid-Z3 e deixa um como
Spare para substituir automaticamente qualquer dos 15 discos do Raid-Z3 que
falhar.
Spare
Pode ser utilizado no Raid-Z, Raid-Z2, Raid-Z3 e Mirror, é
um disco reserva que fica ligado o tempo todo no TrueNAS-CORE/FreeNAS e que é utilizado
para substituir um disco defeituoso automaticamente, para isso é preciso adicionar
o Spare antes de finalizar a criação da Pool.
Cache
Geralmente o Cache é um pequeno disco SSD muito veloz que é
utilizado para aumentar a velocidade do TrueNAS-CORE/FreeNAS.
O Cache não é utilizado para armazenamento, contudo, ele
guarda em seu interior dados que são acessados com maior frequência para
acelerar a leitura e escrita dos mesmos.
Para dar números, um HD mecânico transfere cerca de 100Mb/s
e um SSD-M2 chega a transferir 3.500Mb/s, porém a maior diferença é o tempo de
latência que é quase instantâneo, comparado ao do HD mecânico que tem em média 20ms.
Um Cache precisa ser selecionado na criação da Pool,
portanto, se tiver um SSD instalado no seu Servidor TrueNAS-CORE/FreeNAS não se
esqueça de adicioná-lo antes da finalização da criação da Pool.
Dataset
A terceira coisa a fazer é criar o Dataset (Conjunto de
Dados).
Dataset é algo extremamente abstrato, mas depois que você
aprende a usar é algo extremamente útil e prático.
O Dataset é criado logo abaixo da Pool.
São como subdiretórios de uma Pool.
Você pode ter várias Pools e uma Pool pode ter infinitos
Datasets dentro dele.
Com diversos Datasets dentro de uma mesma Pool para cada
Dataset pode ter uma configuração diferente, por exemplo:
- Dataset Windows (SMB) com ACL
- Dataset Linux (Generic) com permissões Posix
O Dataset flexibiliza muito o uso da Pool removendo da Pool
qualquer configuração de direito de acesso, separando a administração física da
administração lógica dos recursos existentes.
Para quem programa, entenda o Dataset como uma variável, que
pode ter várias outras variáveis dentro dele.
Os Datasets podem criar árvores hierárquicas com Datasets
Pai, vários Datasets Filho, Datasets Netos, etc.
Recomenda-se no máximo 3 níveis de Dataset.
Os nomes dos Datasets devem ser o mais curto possível, pois
nomes muito longos costumam dar problemas na prática.
O Dataset em si não tem nenhuma configuração a não ser seu
Type = SMB que é definido na sua criação.
Todo Dataset SMB recebe como propriedade um conjunto de ACLs
ativas que podem ser configurados e reconfigurados a qualquer tempo.
Todo Dataset precisa ter pelo menos 1 ACL ativa que é
obrigatória.
Mas no TrueNAS-CORE/FreeNAS todo Dataset é criado sempre com
2 ACLs padrão para o owner@ e para o group@.
Essas 2 ACLs padrão podem ser alteradas a qualquer tempo
pois elas são ACLs inúteis quando automaticamente criadas pelo próprio TrueNAS-CORE/FreeNAS, pois o padrão deixa as ACLs como bloqueadas
impedindo os usuários de acessarem o Dataset.
Cada Dataset é também a base para a criação de Snapshots.
Se você precisar fazer Backup de um pequeno diretório,
deverá criar antes um pequeno Dataset para este diretório, pois um Snapshot não
consegue selecionar menos do que um Dataset de informação.
Com relação à ocupação da Pool, você pode definir através de
Quotas quanto da Pool cada Dataset pode utilizar.
Caso não faça nada, por padrão, todo Dataset recebe
automaticamente uma Quota de 80% da Pool e um gatilho de aviso quando a
ocupação chega a 95%.
Configurações de Quota podem ser alteradas no item opções
avançadas do Dataset.
Share
A quarta coisa a fazer é criar um Share (Compartilhamento).
O Share (Compartilhamento) é um conceito histórico e
tecnológico que nos remete ao parque de computadores antigos que temos.
Cada Share está associado à um diferente protocolo de
comunicação de rede.
Se temos Macs antigos os mesmos usam AFP como protocolo.
Se usamos Linux/Unix podemos usar o NFS.
Apesar destes diferentes tipos de Share, apenas um deles o
SMB/SAMBA é mais utilizado na prática por ser um protocolo universal que
interconecta Windows, Mac, Linux, BSD, e Unix, todos os demais são mais
específicos e menos usados em Redes Locais (LAN) hoje em dia.
AFP
Apple Filing Protocol, este protocolo já caiu em desuso em
favor do SAMBA ou SMB que é mais acessível.
NFS
Network File System, este antigo protocolo é usado entre
servidores Unix, Linux e FreeBSD.
WebDAV
É um compartilhamento via Browser.
Não é tão flexível como o SAMBA/SMB pois não permite
usuários diferentes e possui muitas limitações de uso.
SMB
Server
Message Block, antigo CIFS.
Atualmente este é o protocolo universal que interliga
Windows, Mac, Linux, Unix e FreeBSD.
Um Share SMB precisa ter um Dataset criado com Type = SMB.
O Type só pode ser definido na criação do Dataset.
Se você por acidente criar o Dataset como Generic (que é
mais voltado ao Linux e não possui ACLs), apague-o e o recrie-o como Dataset
com Type = SMB, só assim você poderá criar o Share Windows.
Quando você cria um Share Windows sempre selecione a opção Enable
Shadow Copies, pois isso ativa o serviço VSS no servidor TrueNAS-CORE/FreeNAS,
algo que pode vir a ser muito útil em caso de alterações indevidas de arquivos.
iSCSI
Este é um serviço de Bloco, e difere dos demais por ser uma
partição física virtual de rede que é compartilhada para os micros da Rede
Local (LAN).
O cliente do iSCSI acha que está conectado a um HD físico,
quando na verdade está acessando um servidor que possui um bloco de
armazenamento zvol dentro de uma Pool no TrueNAS-CORE/FreeNAS.
A vantagem do iSCSI do TrueNAS-CORE/FreeNAS, é que o mesmo
se beneficia dos recursos avançados do ZFS, pois mesmo que o cliente formate o
bloco como NTFS em seu computador, por baixo do bloco iSCSI NTFS existe toda
uma camada de ZFS garantindo a integridade dos dados do Cliente Windows,
inclusive com a possibilidade de fazer Snapshot.
SSH/Rsync
Além das 5 opções de Share ainda existe uma sexta opção que
é o acesso e cópia de arquivos via SSH/Rsync uma vez que o TrueNAS-CORE/FreeNAS
é um BSD/Unix, mas isto não é um Share, pois é um acesso tunelado ponto a ponto
que usa criptografia.
Você acessa o SSH apenas usando usuários Posix criados no TrueNAS-CORE/FreeNAS.
Abrindo a Edição da ACL
A quinta coisa a fazer é editar a ACL.
Assim como a Pool é uma variável que simboliza um Raid
físico, o Dataset é uma variável que simboliza um Conjunto de Dados e
respectivos ACLs + Snapshots.
O Dataset em si não tem nenhuma configuração além do Type =
SMB, contudo as ACLs de um Dataset podem ser complexas e variadas, tornando
muito flexível a administração de um compartilhamento SMB no TrueNAS-CORE/FreeNAS.
A partir de agora todo Dataset que usaremos será do Type =
SMB, não usaremos outro tipo.
Dentro de uma ACL teremos basicamente 2 tipos de informação:
- informações User dono do Dataset e Group dono do Dataset
- ACL 1 do owner@, ACL 2 do group@, ... (infinitas ACLs para
everyone@, Users e Groups)
O User dono do Dataset e Group dono do Dataset são derivados
do Posix que é a base do Sistema Operacional do TrueNAS-CORE/FreeNAS e não
podem ser deixados em branco jamais.
As ACLs basicamente são de 3 tipos:
- ACLs de Who = owner@, group@ e everyone@, é apenas 1 cada
- ACLs de Who = User / User = usuario por exemplo, podem ser
infinitos
- ACLs de Who = Group / Group = TrueNAS-CORE/FreeNAS por
exemplo, podem ser infinitos
Para configurar a ACL do Windows-Dataset você o faz na
opção:
Sharing
> Windows Share (SMB) > Windows-Share > Edit ACL
Outra forma
é:
Storage
> Pools > Pool-Raid-Z > Windows-Dataset > Edit ACL
Apesar dos caminhos diferentes o resultado é o mesmo, pois
tanto indo pelo Storage, quanto indo pelo Sharing, ambos chegamos à ACL do
Windows-Dataset.
Em muitos casos, quando você não coloca um nome num Share
SMB, o Share adota o nome do Dataset e assim ambos os caminhos ficariam com os
mesmos nomes.
Quando você possui Datasets que são Subdiretórios de um
Dataset principal temos:
Storage
> Pools > Pool-Raid-Z > Windows-Dataset > Circulares > Edit ACL
Para poder configurar ACLs no TrueNAS-CORE/FreeNAS você
necessitará ter um conhecimento básico sobre o Posix, que é o padrão Unix de
controlar acessos e segurança.
Apesar da ACL não seguir a orientação do Posix, os arquivos
que ficam armazenados no TrueNAS-CORE/FreeNAS podem ser utilizados como
trampolim para invasões de hackers devido à direitos de acesso desconfigurados
ou muito inseguros.
Posix
Os direitos de acesso Posix são uma informação que diz
respeito à segurança do sistema operacional FreeBSD do TrueNAS-CORE/FreeNAS.
Para quem não sabe ainda o Windows 10 agora é Posix também,
assim como o Linux e todos os demais sistemas operacionais Unix like como o
FreeBSD no qual se baseia o TrueNAS-CORE/FreeNAS.
Os direitos do Posix funcionam em Shares NFS do Linux/Unix e
na segurança do Sistema Operacional, mas não em Shares SMB.
Apesar disso, o sistema de arquivos ZFS atribui
automaticamente direitos Posix a todos arquivos e diretórios gravados no
sistema operacional do TrueNAS-CORE/FreeNAS.
Em caso de uma invasão, direitos Posix errados podem
originar grandes problemas devido ao poder que possuem de executar códigos
maliciosos introduzidos intencionalmente por Hackers.
3 tipos de acesso aos arquivos Posix
No Posix nem todo mundo tem os mesmos direitos de acesso.
Para controlar o acesso a arquivos e diretórios existem
apenas 3 formas de fazê-lo:
- pelo o dono do Dataset – apenas 1 pessoa utiliza este
acesso, o dono do Dataset owner@
- pelo o grupo do Dataset - apenas 1 grupo utiliza este
acesso, o grupo do Dataset group@
- por todo mundo do grupo everyone@ – todo mundo utiliza este
acesso
Dono e Grupo Default do Dataset
Cada Dataset no TrueNAS-CORE/FreeNAS quando é criado possui
sempre um dono default e um grupo default que são:
- User
default do Dataset = root = owner@
- Group
default do Dataset = wheel = group@
Para quem não sabe root é o usuário administrador do TrueNAS-CORE/FreeNAS
e wheel é o grupo administrador do TrueNAS-CORE/FreeNAS
Variáveis owner@ e group@
As variáveis owner@ e group@ mudam de valor conforme as
configurações do “File Information” de um Dataset que fica do Lado Esquerdo da Tela
de uma ACL SMB.
- owner@ é uma variável que recebe o dono atual do Dataset
para uso na ACL, caso o dono do Dataset mude, o owner@ muda de valor e passa a
ser o do novo dono.
- group@ é uma variável que recebe o grupo atual do Dataset
para uso na ACL, caso o grupo do Dataset mude, o group@ muda de valor e passa a
ser o do novo grupo.
rwxrwxrwx
Estes são direitos de acesso usados no Sistema Operacional
do TrueNAS-CORE/FreeNAS, não no Compartilhamento de Arquivos SMB!
Eles precisam ser conhecidos para configurarmos a segurança
do TrueNAS-CORE/FreeNAS com relação à ataques de hackers que possam
eventualmente acontecer, principalmente quando deixamos os direitos do grupo
everyone@ abertos publicamente.
Basicamente rwx = (direitos de Read, Write, eXecute)
Ou seja no Posix:
- read : permite ler o arquivo ou diretório
- write : permite criar, alterar, apagar arquivo ou
diretório
- execute : permite rodar arquivo como executável ou se for
diretório, entrar no mesmo.
E porque rwx aparece 3 vezes?
O Posix só suporta 3 ACLs (rwxrwxrwx) por arquivo ou pasta:
- o primeiro (rwx --- ---) é do dono do arquivo (owner@)
- o segundo (--- rwx ---) é do grupo do arquivo (group@)
- o terceiro (--- --- rwx) é de todo mundo (everyone@)
Pois (rwx,rwx,rwx) = (direitos do dono, direitos do grupo,
direitos de todo mundo)
Ou (rwx,rwx,rwx) = (direitos do owner@, direitos do group@,
direitos do everyone@)
Agora que você já tem uma idéia do que é rwxrwxrwx vamos a
outros exemplos Posix.
Você deseja que apenas o dono do arquivo (owner@) leia,
altere e execute um arquivo, o direito será:
> rwx------
Agora você deseja que o usuário owner@ e o grupo group@
leiam, alterem e executem um arquivo, o direito será:
> rwxrwx---
Agora você quer que todo mundo somente leia o arquivo sem
alterar ou apagar nada o direito será
> r--r--r--
Agora você quer que apenas o dono owner@ leia e escreva no
arquivo e todos do group@ somente leiam o arquivo:
> rw-r-----
Por último uma configuração nada recomendável pois é
altamente insegura, liberando todos os direitos para todo mundo everyone@ no
Posix
> ------rwx
ou
> rwxrwxrwx
Com isso você agora é especialista em direitos de acesso Posix
a arquivos e diretórios.
Configurando as ACLs
A sexta coisa que faremos agora é definir as ACLs pois as
ACLs que vem por default no TrueNAS-CORE/FreeNAS não funcionam e nascem
bloqueadas para os usuários normais.
Todo Dataset SMB precisa de uma ACL no TrueNAS-CORE/FreeNAS.
Muito importante frisar que a ACL de um Share SMB se
sobrepõe aos direitos do Posix rwxrwxrwx que vimos a pouco.
O Compartilhamento SMB (Share SMB) é muito mais flexível,
prático de se configurar graças às muitas ACLs que ele pode possuir
simultaneamente, algo que no Posix é impossível pois o Posix só permite 3 ACLs,
para o owner@, para o group@ e para everyone@.
Não entendeu nada?
Não se preocupe, memorize apenas que a partir de agora cada
Dataset SMB precisa ter pelo menos 1 ACL obrigatória.
Informações padrão de um Dataset novo
Quando criamos um Dataset SMB ele vem sempre com 4 elementos
padrão:
- Dono do Dataset (vem User = root como padrão, mas
pode ser alterado)
- Grupo do Dataset (vem Group = wheel como padrão,
mas pode ser alterado)
- ACL 1 Who
= owner@ = root / ACL type = Allow / Permissions = Full Control
- ACL 2 Who
= group@ = wheel / ACL type = Allow / Permissions = Full Control
Como na prática ninguém usa o usuário root e o grupo wheel (pois
isso é altamente inseguro), o resultado é que as ACLs default (ACL 1 e ACL 2) não
permitem acesso ao Dataset que estamos configurando, portanto você pode “INICIALMENTE”
ignorá-las e criar outras ACLs mais adequadas ao seu uso pois as mesmas não
servem para nada por enquanto.
Como se organiza a Tela das ACLs
A Tela de Configuração de ACLs é dividida na metade, lado
esquerdo (File Information) e lado direito (Access Control List).
Lado Esquerdo da Tela
No Lado Esquerdo da Tela (File Information) você define o
conteúdo das variáveis owner@ e group@:
- User = root, assim sendo owner@ passa a ser
= root
- Group = wheel, assim sendo group@ passa a
ser = wheel
Tornando owner@ e group@ mais seguro
Veremos mais a frente que é muito importante alterar o
User e o Group default (Lado Esquerdo da Tela) pois as configurações padrão
podem criar vulnerabilidades devido aos direitos de acesso Posix dos arquivos e
diretórios, mesmo que as ACLs não utilizem eles.
- User = usuario
- Group = TrueNAS-CORE/FreeNAS = Grupo Primário Posix
Com estas alterações de segurança acima sugeridas do Lado
Esquerdo da Tela (File Information) as variáveis owner@ e group@ ficam assim:
- owner@ = usuario
- group@ = TrueNAS-CORE/FreeNAS
Lado Direito da Tela
No Lado Direito da Tela (Access Control List) você visualiza
as ACLs ativas default que sofreram os efeitos da mudança das variáveis owner@
e group@, mesmo que nada nelas tenha sido alterado:
- ACL 1 Who
= owner@ = usuario / ACL type = Allow / Permissions = Full Control
- ACL 2 Who
= group@ = TrueNAS-CORE/FreeNAS / ACL type = Allow / Permissions = Full
Control
No Lado Direito da Tela (Access Control List) você pode
manter estas 2 ACLs default caso elas atendam a sua necessidade com os novos
valores de owner@ e de group@ que agora são totalmente seguros, pois não são
mais administrativos com superpoderes no Sistema Operacional do TrueNAS-CORE/FreeNAS.
Do modo que ficou, tanto o User = usuario, quanto os
usuários do Group = TrueNAS-CORE/FreeNAS podem ter acesso Full Control do
Dataset SMB que está sendo configurado.
ACL 3 (ti, crie sempre esta ACL):
Uma boa prática é sempre criar uma terceira ACL supervisora
para o seu uso, colocando um Group como Supervisor, o Group “ti”, e dentro
deste grupo “ti” coloque o seu User = usuario, sempre que possível, como no
exemplo abaixo:
- ACL 3 Who
= Group / Group = ti / ACL type = Allow / Permissions = Full Control
Accounts > Groups > ti > 3 pontinhos > Members
Grupo ti = usuario
Com isso agora você passa a ter plenos poderes para acessar
o Dataset SMB quando for necessário.
ACL 4 (Acesso Total para everyone@):
Agora tanto o User = usuario quanto os usuários que
pertencem ao Grupo TrueNAS-CORE/FreeNAS podem acessar o Windows-Share com Full
Control.
Porém as pessoas do grupo everyone@ (todo mundo) não
conseguem acessar o Windows-Share, mesmo ele tendo sido criado com a opção de
permitir Allow Guest Access.
Isso demonstra a grande segurança do TrueNAS-CORE/FreeNAS
que exige de você a liberação manual para o grupo = everyone@.
Para liberar o acesso a todo mundo (everyone@) é preciso que
no Lado Direito da Tela das Configurações de ACLs (Access Control List) seja
adicionada uma nova ACL 4.
- ACL 4 Who
= everyone@ / ACL type = Allow / Permissions = Full Control
Agora sim qualquer pessoa do mundo pode, na Rede Local
(LAN), acessar o compartilhamento Windows-Share sem problema, ler, gravar,
alterar e apagar arquivos e diretórios.
Este é apenas um exemplo didático, recomenda-se que você
nunca faça isso pois é muito inseguro!
ACL 5 (Dataset para somente leitura):
Removendo a ACL 4 e adicionando a ACL 5 para everyone@
restringimos totalmente a capacidade de alterar alguma coisa para o grupo
everyone@.
- ACL 5 Who
= everyone@ / ACL type = Allow / Permissions = Read
Pessoas desconhecidas podem entrar no compartilhamento
Windows-Share e consultar somente leitura arquivos e diretórios, mas não
poderão escrever, modificar, nem apagar nada.
ACLs sem owner@, group@ e everyone@
Em certos casos, ou melhor, na maioria dos casos você
deveria definir usuários e grupos diferentes de owner@, group@, everyone@ nas
ACLs.
Nestes casos você pode forçar configurações específicas das
ACLs (Lado Direito da Tela) como as abaixo que não usam as configurações padrão
owner@ e group@ das ACLs:
- Who = User
/ User = diretor / ACL Type = Allow / Permissions = Full Control
- Who = Group
/ Group = vendas / ACL Type = Allow / Permissions = Read
Snapshot no ZFS
Agora veremos uma breve introdução sobre o uso do ZFS para
que vocês possam entender que é muitos simples e fácil de criar Snapshots, bem
como igualmente restaurar, clonar e restaurar arquivos específicos de um dado
Snapshot.
Formas de Snapshot
Basicamente, o Snapshot pode ser rodado de 2 formas:
Snapshot Manual
O administrador define um momento e um determinado Pool ou
Dataset para Backapear com um Snapshot
Snapshot automático (Cron)
Neste caso o Cron (agendador do TrueNAS-CORE/FreeNAS) roda
periodicamente a criação das cópias de segurança (Snapshots) com uma
regularidade de minutos, horas, dias, meses e dias da semana. Pode ser rodado a
cada 10 minutos, a cada hora, a cada dia meia noite ou meio dia, uma vez por
mês, uma vez por semana ou ainda em dias específicos da semana.
Nomes de Snapshots
Cada Snapshot possui um nome padronizado como =
auto-2020-03-31_12-00
- modo = automático
- ano = 2020
- mês = 03 (março)
- dia = 31
- horário = 12:00
Outro exemplo é = manual-2020-04-11_05-24, neste caso o
backup foi feito manualmente.
Alvo do Snapshot
Outro aspecto muito importante do Snapshot é que ele pode
rodar diretamente na Pool, englobando todos os Datasets que nele estão contidos
de uma única vez
Outra forma é rodar o Snapshot em um Dataset ou sub-Dataset
específico, de forma que é possível otimizar ao máximo o espaço e as políticas
de Backup, como por exemplo:
- rotina de Snapshot mensal para toda a Pool
- rotina de Snapshot semanal para os arquivos da empresa
- rotina diária para o Sistema Contábil da empresa.
Observe, porém, que a unidade básica de backup e menor
unidade enxergada pelo Snapshot é o Dataset, ou o sub-Dataset.
Se você precisar backapear um subdiretório de um Dataset
você cria um sub-Dataset dentro deste Dataset com o nome do subdiretório e roda
o Snapshot neste sub-Dataset.
Sem Snapshot se não houver alterações
Durante o agendamento do Snapshot existe uma opção muito importante
que você precisa ativar:
- não criar um Snapshot se não houver alterações de conteúdo
no Dataset ou Pool.
Se isso for ativado só fica registrado um Snapshot quando
alguma informação é criada, modificada, ou apagada dentro do Dataset ou da
Pool.
Isso é extremamente útil pois você não precisa ficar
procurando em cada dia, ou hora, você vai saber quais dias ou horas que houve
alterações e se concentrar na busca dos Snapshots com conteúdo, descartando, de
cara os dias em que não houve modificações.
Restaurando um Snapshot
A parte fácil foi esta, contudo, o mais importante vem
agora, que é o restauro do Snapshot.
Para restaurar um Snapshot você pode fazê-lo de 3 formas:
Voltando uma versão e sobrescrevendo
Nesta opção ideal para ataques de Ransomware, você detecta a
última data em que os dados estavam intactos e retorna tudo para a data
detectada.
O problema é que os arquivos que foram atualizados depois do
ataque e que ainda continuam acessíveis são perdidos
Clonando um Snapshot
Nesta opção você cria um novo Dataset clone/cópia de um
Snapshot+Dataset_de_origem, podendo disponibilizar para o acesso este
compartilhamento novo via Share.
Isso mantém o original atacado por Ransomware e o Clone em
paralelo disponíveis ao mesmo tempo para os usuários poderem salvar tudo que
necessitam.
Copiar apenas um arquivo específico
Imagine que você apagou um arquivo específico hoje, ontem,
semana passada, mês passado, a 6 meses, etc.
Neste caso, você precisa usar o Shell do TrueNAS-CORE/FreeNAS
para entrar no diretório
/mnt/Pool-Raid-Z/Windows-Dataset/.ZFS/snapshot/auto-2020-03-31_12-00
e localizar e copiar os arquivos que você perdeu ou que
foram criptografados pelo Ransomware.
Backup do Dropbox e do Google Drive
Vamos falar deste assunto muito importante para evitar
falsas expectativas a respeito deste recurso que apesar de ser muito útil tem
fortes limitações no que diz respeito à usabilidade.
Pessoalmente, como profissional de Ti eu aprecio e valorizo
este recurso, mas pessoas de fora da área, talvez não achem bom o suficiente os
recursos que aqui estão apresentados devido à uma limitação de ordem prática,
que é a relação entre o TrueNAS-CORE/FreeNAS e os aplicativos de nuvem citados.
A configuração usada para o Dropbox é idêntica à usada para
o Google Drive, sem pôr nem tirar.
Por isso, vou explicar rapidamente o recurso de backup nas
nuvens, para facilitar a tomada da decisão e evitar implantações desastrosas do
recurso que levem à perda de dados.
A operação de sincronia entre o TrueNAS-CORE/FreeNAS
e o Dropbox ou Google Drive é agendada
A sincronia entre o TrueNAS-CORE/FreeNAS e a nuvem não é
on-line.
Ela é agendada e off-line, configurada para rodar de minuto
em minuto, de hora em hora, diariamente, semanalmente ou mensalmente, isso de
cara desmotiva muitas pessoas que desejam uma integração totalmente on-line e
instantânea, com a atualização imediata de cada alteração feita pelos usuários
do serviço de nuvem.
A granularidade do recurso tem suas limitações, por exemplo,
se a sincronia demora meia hora, a sincronia não pode ser agendada de 10 em 10
minutos pois senão uma sincronia se sobrepõe a duas outras que não terminaram,
causando lentidão no servidor e problemas de consistência nos dados.
Por não ser on-line, a operação de Backup é
Cliente-Servidor
No TrueNAS-CORE/FreeNAS uma unidade é Cliente e outra
Servidor, de forma que se o Servidor é a nuvem (modo Pull), o TrueNAS-CORE/FreeNAS
é apenas o Cliente que pode receber as atualizações e disponibilizar cópias
somente leitura para a Rede Local (LAN) e figura para todos os efeitos como um
bom Backup do Dropbox ou Google Drive.
No modo Pull você grava, modifica e apaga apenas na nuvem e
o TrueNAS-CORE/FreeNAS apenas faz o Backup da mesma, porém com os maravilhosos
recursos do ZFS e do Backup Versionado com Snapshot que protegem 100% dos dados
da nuvem contra o Ransomware.
Por outro lado, se o TrueNAS-CORE/FreeNAS é o Servidor
principal (modo Push), então, a nuvem será a unidade de Backup Secundária que
receberá uma cópia que não poderá ser utilizada para alterações por parte dos
usuários da mesma, em outras palavras, apenas os usuários da Rede Local (LAN)
poderão gravar no Dropbox ou Google Drive por intermédio do TrueNAS-CORE/FreeNAS
que é o Servidor.
No modo Push quem acessar a nuvem poderá receber apenas
cópias dos arquivos que para ela são transferidos por isso não recomendamos
esta configuração modo Push, recomendamos apenas a primeira do modo Pull, pois
na atualidade a nuvem é o centro de interligação entre, LAN, Celulares, Tablets
e Notebooks.
Cada serviço de sincronia precisa de um Dataset
respectivo
É preciso criar um Dataset com o Type = SMB para originar um
Share somente leitura (modo Pull) para facilitar o acesso dos dados aos
usuários da LAN.
Caso você deseje urgentemente uma solução 100%
on-line
Nesse caso a solução é o uso de Linux que possui cliente
para Dropbox.
Você poderá com muita facilidade implantar um Servidor de
Arquivos Compartilhados SAMBA usando o Centos Linux e um cliente Dropbox para
um ÚNICO login.
O SAMBA compartilha os arquivos Dropbox na Rede Local (LAN)
em alta velocidade sem a necessidade de fazer sincronização na nuvem.
Os usuários Windows da Rede Local (LAN) não precisam mais ter
o Dropbox instalado em suas máquinas.
O Dropbox instalado individualmente em muitos computadores
causa lentidão extrema devido ao uso de banda da Internet proporcional ao
número de notebooks.
Usando um único acesso (que economiza muita banda de
Internet), o Servidor Centos Linux acessa o Dropbox na nuvem e sincroniza todos
os dados para que todos os notebooks Windows da Rede Local (LAN) possam acessar.
Como o Linux não oferece os recursos de Storage do ZFS, você
não terá Snapshot, e precisará implantar uma rotina de backup Rsync agendada em
um segundo HD interno.
Modos de sincronia com a nuvem
O TrueNAS-CORE/FreeNAS oferece para o serviço de Backup da
nuvem 3 modalidades de sincronia sendo o único seguro e recomendado o COPY:
Modo SYNC
O SYNC copia da nuvem arquivos modificados para TrueNAS-CORE/FreeNAS
apagando inclusive arquivos que foram apagados na nuvem.
Modo COPY
O COPY copia tudo que é criado e alterado na nuvem mantendo
no TrueNAS-CORE/FreeNAS inclusive arquivos que já foram apagados da nuvem (isso
é muito bom para evitar o Ransomware)
Modo MOVE
O MOVE copia os dados da nuvem e depois os apaga da nuvem,
deixando a copia das informações apenas no TrueNAS-CORE/FreeNAS.
Configuração recomendada para Backup Versionado de Dropbox
e do Google Drive
Conclusão, a operação ideal de sincronia entre o TrueNAS-CORE/FreeNAS
e a nuvem é off-line e agendada 1 ou 2 vezes ao dia, e recomendamos o modo Pull
com a opção COPY, sendo que a principal e mais relevante vantagem desta
arquitetura é que a mesma é totalmente imune ao Ransomware e à perda de dados,
sendo uma importante ferramenta de Backup Versionado graças ao Snapshot do
sistema ZFS.
Quantidade de Contas Simultâneas de Dropbox e do
Google Drive
Muito importante, um mesmo Servidor TrueNAS-CORE/FreeNAS
pode copiar dezenas de contas Dropbox e Google Drive de diferentes pessoas,
bastando apenas haver espaço para o armazenamento dos dados e Snapshots.
Assim se você tiver que sincronizar 5 contas Google Drive
terá que criar 5 usuários novos no TrueNAS-CORE/FreeNAS e 5 Datasets-Google, um
para cada conta a ser sincronizada.
Por outro lado, se você tiver mais 20 contas Dropbox você
cria mais 20 usuários novos no TrueNAS-CORE/FreeNAS e mais 20 Datasets-Dropbox,
um para cada conta Dropbox.
Caso nestes vários usuários haja arquivos idênticos
repetidos, você pode ativar a deduplicação automática de dados que copia apenas
1 arquivo e cria referência para os demais. Mas lembre-se, deduplicação exige
memória e processamento adicionais.
A configuração da deduplicação, assim como a configuração da
compressão de dados, fica localizada na Pool ou no Dataset.
No Linux você consegue sincronizar apenas uma única conta de
Dropbox pois o usuário cliente precisa estar logado na interface gráfica do
Linux, o que é uma importante limitação.
Scrubs
Este item é extremamente relevante.
O Scrub é um serviço agendado que roda no TrueNAS-CORE/FreeNAS
na opção Tasks/Scrub Tasks.
O Scrub vai garantir que se algo acontecer com os seus
discos físicos, tais problemas não passarão despercebidos, pois o Scrub vai
verificar o estado de saúde dos discos regularmente toda semana.
Se você não sabe configurar o Scrub, não se preocupe, pois,
ele já vem configurado junto com o TrueNAS-CORE/FreeNAS.
Na sua configuração padrão ele roda semanalmente às zero
horas ao domingo, dia em que geralmente o Servidor TrueNAS-CORE/FreeNAS está
sem uso, por isso é importante que você não desligue o TrueNAS-CORE/FreeNAS nos
finais de semana, principalmente no domingo.
O sistema de arquivos ZFS é dotado de uma estrutura de
Checksums em cada unidade básica de armazenamento.
O Scrub varre o disco comparando o valor do Checksum
armazenando com o valor do Checksum calculado na leitura atual do disco físico,
havendo diferença no valor dos Checksums significa que o existem erros de
leitura no disco e um e-mail é automaticamente enviado para o administrador,
por isso é importante deixar as configurações de rede e e-mail sempre prontas
para uso.
Rodar o Scrub durante a semana não é recomendável pois esta
tarefa pode durar horas e prejudicar a performance do Servidor TrueNAS-CORE/FreeNAS.
Backup das Configurações
O TrueNAS-CORE/FreeNAS por ter uma interface gráfica de
configuração WEB, ao contrário do SAMBA/Linux que é todo modo texto, apresenta
a questão do backup das configurações:
Como fazer o Backup das Configurações?
No SAMBA/Linux, você copia um arquivo texto de smb.conf e
pronto, já no TrueNAS-CORE/FreeNAS isso não é possível, porém, os
desenvolvedores resolveram isso pra você e basta clicar num botão:
System/General/SAVE CONFIG
E o TrueNAS-CORE/FreeNAS gera um arquivo de backup, o qual
nada mais é que um arquivo tar com todas as configurações do seu Servidor TrueNAS-CORE/FreeNAS,
incluindo aí as senhas se você optar por salvá-las também.
Comentários importantes
Pelo que vocês puderam perceber a quantidade de informação
relevante é grande, não são conceitos intuitivos, ou que nós já conhecemos e
utilizamos no dia a dia.
Leia e releia com atenção até entender completamente o
conteúdo deste capítulo, pois isto vai te dar uma visão sobre o que você fará
nos capítulos seguintes.
Da versão anterior do TrueNAS-CORE/FreeNAS para a atual, a
interface gráfica e os recursos mudaram enormemente, e muita documentação
existente na Internet encontra-se desatualizada.
Para mim, aprender a usar o TrueNAS-CORE/FreeNAS não foi
simples e só foi possível graças à leitura de livros sobre ZFS e Raid-Z,
artigos sobre o TrueNAS-CORE/FreeNAS e vídeos do desenvolvedor do sistema.
Em cada lugar eu aprendi um pedaço, mas em nenhum deles
achei uma receita pronta de como usar na prática os conhecimentos que estavam
publicados.
Na verdade, tecnicamente falando, as explicações que eu dei
foram superficiais, mas são as explicações na medida exata para você conseguir
com clareza iniciar as configurações finais do TrueNAS-CORE/FreeNAS sem se
atrapalhar ou deixar de fazer algo importante que depois poderá lhe causar
perda de dados.
Para quem esperava uma melhor integração entre o TrueNAS-CORE/FreeNAS
e o Dropbox / Google Drive, eu digo apenas que estar on-line num universo onde
o Ransomware está livre é muito arriscado e perigoso.
Uma solução off-line agendada é muito mais segura pois caso
algo aconteça e apague seus dados na nuvem, no TrueNAS-CORE/FreeNAS os mesmos
estarão preservados e seguros com cópias de tudo principalmente graças ao seu
sistema de arquivos ZFS e Snapshots.
Quando você utiliza o Centos Linux juntamente com o Cliente
Dropbox, a sincronia se torna on-line, porém o que você não sabe é que o
Dropbox possui uma falha grave no que diz respeito às senhas e direitos de
acesso, por isso, quando você o usa no Linux, também herda este problema de
senha e direito de acesso.
Desempenho Real de um TrueNAS-CORE/FreeNAS
Em implantações reais utilizei a seguinte configuração:
- Processador AMD A8 9600 quad core e 3.4Ghz
- 8Gb de RAM DDR4-2400Mhz (mínimo recomendado)
- Pendrive Sandisk de 16Gb ( Boot do TrueNAS-CORE/FreeNAS)
- Placa mãe Asrock A320M-HD com suporte para 4 HDs Sata e um
SSD M2
- Placa de rede Gigabit on-board
- 4 HDs Sata de 1 Terabyte Seagate ( Pool Raid-Z )
- 1 SSD Adata de 128Mbytes ( Cache da Pool Raid-Z )
- 1 DVD USB para instalação do sistema
- 1 Switch Gigabit TP link de 24 portas
- Cabeamento Cat5-e
Com estas configurações obtive taxas de transferência de
arquivos reais de 100Mbytes/s porém devido à pequena quantidade de acessos
simultâneos não foi possível avaliar a performance do Cache SSD M2 de 128Gb,
nem a carga da CPU.
Problema com Credenciais do Windows
Outro aspecto muito importante é que acessando um Compartilhamento
do TrueNAS-CORE/FreeNAS o mesmo exige que você salve as credenciais do seu
usuário SMB/SAMBA no seu Windows, caso contrário ele ficará rejeitando a
tentativa de login com credenciais temporárias, exceção feita quando o Dataset
aceita usuários anônimos e possui direitos de acesso ACL liberados para
everyone@ (todo mundo).
A questão das credenciais temporárias que foram rejeitadas é
algo inesperado, pois quando você instala e testa o TrueNAS-CORE/FreeNAS pela
primeira vez, você consegue entrar,
copiar e modificar os arquivos do compartilhamento, mas no dia seguinte,
simplesmente surge a mensagem de que o acesso não é permitido sem o uso de
credenciais válidas.
Para resolver isso basta você salvar a Credencial com login
e a senha e reiniciar o micro para voltar a aceitar o Compartilhamento SMB do TrueNAS-CORE/FreeNAS.
Quando isto aconteceu comigo, eu achei que fossem direitos
de acesso e fiquei configurando o TrueNAS-CORE/FreeNAS porém sem sucesso até
descobrir no final que o problema era com as credenciais do Windows que
precisavam ser salvas, ou ainda melhor, que os usuários precisavam ter os
mesmos logins e senhas dos que foram cadastrados no TrueNAS-CORE/FreeNAS.
Feito isso os problemas de acesso desapareceram.
Controladores de HD e Hardware Certificado
Muito importante, o ZFS e o sistema Raid-Z são mais eficazes
com controladoras de disco burras, ou seja, controladoras que não gerenciam de
forma inteligente ou automática os Raids.
O Raid-Z é uma solução que implementa o sistema Raid via
Software, e desta forma pode apresentar conflitos quando utilizado com
controladoras de Raid Inteligentes que vão enganar o Raid-Z criando conflitos e
eventualmente problemas de funcionamento devido às diferenças de conceito e
arquitetura.
Caso você tenha gostado do TrueNAS-CORE/FreeNAS, mas sua
empresa necessite de um Hardware certificado, existe a linha TrueNAS, na qual
você já compra Hardware + Software certificados obtendo ainda suporte 24x7
direto do desenvolvedor do TrueNAS-CORE/FreeNAS e não precisa ficar se
preocupando se a sua controladora de discos é inteligente ou não.
Overview
Agora que você já conhece bem a lógica do TrueNAS-CORE/FreeNAS
está pronto para a parte prática, na qual passo a passo executaremos a
implantação de diversos cenários de uso, partindo do mais simples e inseguro,
até chegar ao mais completo seguro e profissional.
As configurações simples e inseguras são boas para uso em
situações de teste e emergência, principalmente quando você não tem tempo de
ficar configurando os usuários para levantar um servidor de arquivos temporário
enquanto o servidor principal está sendo reparado.
Se você aprender bem o TrueNAS-CORE/FreeNAS vai perceber que
ele também é um ótimo Servidor de Arquivos e que ele pode muito bem substituir
com grandes vantagens o seu atual Servidor Windows ou Linux, oferecendo a você
toda a tecnologia dos mais modernos Storages com custo Zero de Licenças.
Configurando um TrueNAS-CORE/FreeNAS sem usuários
Neste exemplo muito simples configuraremos a situação mais
insegura possível, contudo, pela simplicidade, ela é muito fácil e simples de
implementar e em casos de extrema necessidade ela pode ser utilizada para subir
um servidor temporário que depois pode ser desativado para dar lugar a outra configuração
mais segura.
Neste exemplo, ainda, não será necessário sequer criar um
usuário, pois usaremos o grupo everyone@ para liberar o compartilhamento de
arquivos
Roteiro da configuração para uso sem usuários
- Criar uma Pool com um único disco, ou com um Stripe de
discos = Pool-Insegura
- Criar um Dataset SMB = Inseguro-Dataset
- Criar um Share = Inseguro-Share
- Criar uma ACL = everyone@ / ACL type = Allow / Permissions
= Full Control
- Testes de uso
Criando uma Pool com um único disco
Uma Pool de um único disco no TrueNAS-CORE/FreeNAS
incrivelmente é configurado como Stripe.
Storage
> Pools > ADD
- Selecionar
= Create New Pool
- Clica em Create Pool
- Atribui nome à Pool = Pool-Insegura
- Seleciona um único disco = ada1
- Clica em seta ->
- Clica no botão = Create
- Clique em Confirm e em Create Pool
Pronto a Pool ficou assim
A Pool-Insegura foi criada com sucesso, é um Stripe de 16,95
Gb montada num disco de 20 Gb com compressão lz4 ativa.
Observe do lado direito da Pool-Insegura 3 pontinhos na
vertical que são muito importantes para a criação dos Datasets.
Já a Engrenagem que existe no lado direito acima da linha da
Pool-Insegura é utilizada para apagar Pools sem uso na Opção Export/Disconnect.
Já a opção Status mostra a saúde da Pool e de seus discos
físicos.
Criando uma Pool com um Stripe de discos
Muitas vezes você tem um monte de discos de diversos
tamanhos sem uso e precisa montar um servidor com um disco grande.
O TrueNAS-CORE/FreeNAS permite que você agrupe todos estes
discos em uma Pool para uso temporário.
Faça um Backup das configurações
System > GENERAL > SAVE CONFIG
Agora você vai apagar a Pool antiga
Storage > Pools
Selecione a Linha da Pool-Insegura e clique no botão de
engrenagem que fica na lateral superior direita escolhendo a opção (Export /
Disconnect)
Selecione 2
opções
- Delete
configuration of shares that used this pool?
- Confirm
Export/Disconnet
- Clique em
EXPORT/DISCONNECT
Pronto sua Pool já foi excluída.
Faça um backup das configurações
System > General > SAVE CONFIG
Para criar uma Pool de Stripe
Storage
> Pools > ADD
Selecione =
Create New Pool
Clica em Create Pool
Atribui nome à Pool = Pool-Insegura
Seleciona os discos = ada1 ada2 ada3 ada4
Clica em seta ->
Muito importante!
Antes de concluir selecione a opção de criação do Pool em
Stripe e não em Raid-Z2 conforme é sugerido na opção Default que já vem
pronta para criar a Pool.
Clica no botão = Create
Clique em Confirm e em Create Pool
Agora que a Pool-Insegura foi criada, vamos entender o que
aconteceu:
- Name
=Pool-Insegura
- Type =
dataset
- Used = 854.44KiB
- Available
= 50.32GiB
-
Compression = lz4
-
Compression Ratio = 1.00x
- Reaonly = false
- Dedup off
Observe que usamos 4 HDs de 20Gb mas ao invés de 80Gb a Pool
tem apenas 50.32Gb, ou seja, parte do espaço é consumido pelo sistema,
lembre-se que neste exemplo usamos discos de 20Gb com discos maiores esta perda
é irrelevante
A Taxa de compressão está em 1.00x pois não existe nada
gravado na Pool-Insegura, porém a medida que os dados passam a ser gravados,
esta taxa sobre para 1.05x na média.
A Deduplicação está desligada, a ativação dela causa
impactos em performance e exige mais memória RAM que passa para 32Gb no mínimo,
sendo o ideal 64Gb.
Criando o Inseguro-Dataset
Para criar o Inseguro-Dataset, abra a tela do
Storage > Pools
No final da linha da Pool-Insegura existem 3 pontinhos
Clique nos 3 pontinhos e escolha a opção Add Dataset
- Name =
Inseguro-Dataset
- Comment =
Dataset para uso emergencial
- Share
Type = SMB
Clique em
SAVE
Observe que o Inseguro-Dataset criado herda as propriedades
da Pool-Insegura e fica vinculado como um item subordinado da Pool-Insegura
criando uma relação de hierarquia.
Futuramente, dentro da Pool-Insegura podem ser criadas outros
Datasets com outros tipos de direitos de acesso também.
Criando o Inseguro-Share
Com o Inseguro-Dataset criado com o tipo SMB podemos
prosseguir com a configuração do SAMBA:
Sharing > Windows Shares (SMB) > ADD
No Path navegue para baixo selecionando o Inseguro-Dataset
(ACL)
Observe que este (ACL) aparece do lado do Inseguro-Dataset,
sinalizando que este Dataset é compatível com o SMB.
Preencha o Name = Inseguro-Share (caso você deixe isso em
branco o Name será preenchido com o nome do Inseguro-Dataset)
Muito importante, ative a opção Allow Guest Access
Clique em SAVE
Clique em ENABLE SERVICE
Clique em CLOSE
Pronto, meio caminho andado, agora só falta liberar o acesso
através da criação da ACL everyone@ Full Control.
Criando ACL everyone@ Full Control
Com o Inseguro-Share criado observe que no final da linha
tem 3 pontinhos , clique nele e escolha a opção Edit ACL.
As opções acima não permitem ao grupo everyone@ (todo mundo)
acessar o compartilhamento de arquivos, mesmo ele tendo sido criado com a opção
de Allow Guest Access, portanto vamos criar uma ACL que permita Full Control do
Inseguro-Share que criamos para qualquer pessoa da Rede Local (LAN).
- Clique no botão azul ADD ACL ITEM no Lado Esquerdo
da Tela
Agora vá para o lado Direto da Tela e edite a nova ACL que
surgiu:
- Mude Who para = everyone@
- Permissions para = Full Control
- Clique em SAVE
Pronto as configurações terminaram, agora é só acessar via
Windows e testar as configurações
Testes de uso
Para testar o compartilhamento criado basta ir no campo de
busca ou no Windows Explorer e digitar no \\172.16.1.214
Usando o Shell do TrueNAS-CORE/FreeNAS podemos verificar os
direitos de acesso dos arquivos que são criados nesse compartilhamento aberto e
inseguro que não exige usuário nem senha para ser acessado.
Vejam que os direitos de acesso são 777 ou rwxrwxrwx
em todos os arquivos e diretórios, isso para qualquer micro que acessa o
Inseguro-Share, observe também que os arquivos e diretórios são criados com o
usuário nobody e o grupo wheel.
Sendo o grupo wheel o grupo do Administrador do TrueNAS-CORE/FreeNAS
e sendo os direitos de acesso dos arquivos e diretórios todos com a opção rwxrwxrwx
com “x” de executáveis, criar este tipo de compartilhamento é muito
arriscado e deve ser evitado ao máximo.
Na sua casa, para efeitos de teste você pode implementar uma
configuração do TrueNAS-CORE/FreeNAS como esta, contudo, mesmo em casa existem
configurações mais adequadas, que é a que veremos a seguir.
Criando um TrueNAS-CORE/FreeNAS básico e seguro
Agora que você já pôde brincar um pouco com o TrueNAS-CORE/FreeNAS
e percebeu o quão rápido é configurá-lo, vamos ao segundo exemplo prático que pode ser usado sem restrições na
sua casa ou em pequenos escritórios.
Este exemplo é adequado quando não há necessidade de
administrar os direitos de acesso por User e Group, e onde todos podem escrever
e acessar documentos de todos sem uma hierarquia definida bloqueando certos
acessos.
Vamos também criar uma Pool mais profissional com disco de Spare
e disco de Cache SSD.
Nesta configuração vamos criar um usuário Posix e um grupo
Posix que serão usados para todos os computadores e usuários da Rede Local
(LAN).
User = usuario
Group = TrueNAS-CORE/FreeNAS
Todos os micros e usuários da rede vão usar este login, o
que impedirá que pessoas que não conheçam o login usem abertamente o
compartilhamento de arquivos como no exemplo passado.
Lembrando um pouco, o exemplo passado permitia que invasores
entrassem na sua Rede Local (LAN) e acessassem o TrueNAS-CORE/FreeNAS no modo
inseguro com direitos de administrador (grupo wheel) e de executar arquivos simples como
programas mesmo sendo usuário do grupo everyone@ (rwxrwxrwx).
Atenção para a senha que não poderá ser fácil, para
dificultar ao máximo o acesso indevido de Hackers que por ventura consigam
entrar na sua Rede Local (LAN), não use 123456, ou 102030, ou coisas do tipo
que são muito usadas e que na prática facilitam o acesso aos seus dados e
sistemas por pessoas não autorizadas.
Roteiro para TrueNAS-CORE/FreeNAS com 1 usuário
- Criar um usuário e um grupo para configurar os direitos de
acesso (usuario, TrueNAS-CORE/FreeNAS)
- Criar uma Pool completa com disco Spare e Cache =
Pool-Raid-Z
- Criar um Dataset SMB = Seguro-Dataset
- Criar um Share = Seguro-Share
- Criar uma ACL = usuario / ACL type = Allow / Permissions =
Full Control
- Testes de uso
Criando usuário e um grupo para os direitos de acesso
Toda vez que você vai configurar um sistema você acha que
primeiro tem que criar os usuários e depois os grupos.
Esta lógica, apesar de intuitiva está totalmente errada, na
prática, você cria os grupos antes, todos os grupos possíveis e imagináveis, e
só depois parte para criar os usuários.
O motivo é simples, o Unix, na sua concepção e implantação
estabeleceu que o vínculo dos usuários aos grupos PODE ser feito durante a
criação dos usuários.
Assim sendo, criando os grupos antes você aproveita o design
do Unix e economiza um tempo razoável pois não precisa mais colocar os usuários
nos grupos manualmente.
Neste exemplo criaremos apenas 1 grupo, mas no próximo
exemplo teremos a ativação de mais grupos e você verá como é simples e mais
prático usar grupos do que configurar os direitos de usuários um por um.
Outra informação muito relevante é que todo usuário pode ter
2 tipos de grupos:
- Grupo Principal – grupo vinculado a todos os arquivos e
diretórios que o usuário cria.
- Grupos Secundários – permitem o acesso a outros
compartilhamentos, mas não ficam registrados nos arquivos e diretórios que
usuário cria.
Como usaremos compartilhamentos SAMBA/SMB isto não é tão
importante, mas fica aqui o conceito para te ajudar quando for trabalhar com
sistemas Posix em geral.
Então a sequência de nosso trabalho será:
- Criar o Group = TrueNAS-CORE/FreeNAS.
- Criar o User = usuario usando o grupo TrueNAS-CORE/FreeNAS
como Grupo Principal dele.
Criar um grupo no TrueNAS-CORE/FreeNAS
Accounts > Groups > ADD
Name = TrueNAS-CORE/FreeNAS
SAVE
Criando o User = usuario com Grupo Principal = TrueNAS-CORE/FreeNAS
Accounts
> Users > ADD
Full Name =
usuario
Password =
x
Confirm
Password = x
Desativar a opção = New Primary Group
Primary
Group = TrueNAS-CORE/FreeNAS
SAVE
Pronto seu usuário foi criado e agora você já é um usuário
Posix.
Antes de criar a Pool faça um Backup das
configurações:
System > GENERAL > SAVE CONFIG
Apagando a Pool antiga
Storage > Pools
Selecione a Linha da Pool-Insegura e clique no botão de
engrenagem que fica na lateral superior direita escolhendo a opção (Export /
Disconnect)
Selecione 2
opções
- Delete
configuration of shares that used this pool?
- Confirm
Export / Disconnet
- Clique no
botão EXPORT/DISCONNECT
Com a eliminação do Inseguro-Pool também é eliminado o
Inseguro-Dataset e o Inseguro-Share automaticamente.
Pronto sua Pool já foi excluída.
Faça um backup das configurações
System > General > SAVE CONFIG
Pool-Raid-Z com disco Spare e Cache
Para criar uma Pool Raid-Z você vai em:
Storage
> Pools > ADD
Seleciona =
Create New Pool
Clica em
Create Pool
Name = Pool-Raid-Z
Seleciona apenas os discos = ada1 ada2 ada3
Clica em seta ->
Por termos apenas 3 discos, o default da Pool é mesmo Raid-Z
de 36Gb que não será mudado, porém iremos acrescentar agora um Spare e um
Cache.
Clique no botão ADD SPARE que fica em baixo da tela e
depois selecione o disco ada4 com a setinha para a direita
Clique na setinha -> para mover o ada4 para a posição
de SPARE.
Agora vamos adicionar o Cache
Selecione o item nvd0 e cliquem em ADD CACHE
na setinha -> para mover o nvd0 para a posição de CACHE
Verifique se o seu novo Pool = Pool-Raid-Z está como mostra
a figura acima e prossiga
Clica no botão = Create
Clique em Confirm e em Create Pool
Pronto criamos a Pool-Raid-Z perfeita, com Spare e Cache SSD
Os passos seguintes não têm segredo, são praticamente iguais
aos das configurações anteriores mas com foco agora na segurança, vamos remover
a opção Allow Guest Access e o acesso do grupo everyone@ (todo mundo).
Criando o Seguro-Dataset
Para criar o Seguro-Dataset, abra a tela do
Storage > Pools
No final da linha da Pool-Raid-Z existem 3 pontinhos
Clique nos 3 pontinhos e escolha a opção Add Dataset
- Name = Seguro-Dataset
- Comment = Dataset para uso residencial e PME
- Share
Type = SMB
Clique em
SAVE
Criando o Seguro-Share
Com o Seguro-Dataset criado com o tipo SMB podemos
prosseguir com a configuração do SAMBA:
Sharing > Windows Shares (SMB) > ADD
No Path navegue para baixo selecionando o Seguro-Dataset
(ACL)
Path =
/mnt/Pool-Raid-Z/Seguro-Dataset
Observe que este (ACL) aparece do lado do Seguro-Dataset,
sinalizando que este Dataset é compatível com o SMB.
Preencha o Name = Seguro-Share (caso você deixe isso em
branco o Name será preenchido com o nome do Seguro-Dataset)
Clique em SAVE
Pronto, meio caminho andado, agora só falta liberar o acesso
através da criação da ACL usuario Full Control.
Criando a ACL usuario Full Control
Com o Seguro-Share criado observe que no final da linha tem
3 pontinhos, clique nele e escolha a opção Edit ACL
Basicamente você pode aproveitar todas as configurações da
ACL padrão, bastando apenas troca o nome do dono da Seguro-Dataset para =
usuario e o grupo para = TrueNAS-CORE/FreeNAS conforme a figura a seguir, mas
antes clique em SAVE
- User = usuario
- Group = TrueNAS-CORE/FreeNAS
- SAVE
Neste exemplo, como você só tem um usuário, apenas as ACLs 1
e 2 padrão funcionam perfeitamente, pois as variáveis (owner@ e group@) mudaram
para (usuario e TrueNAS-CORE/FreeNAS).
Pronto as configurações por hora terminaram, agora é só
acessar via Windows e testar as configurações
Testes de uso
Para testar o compartilhamento criado basta ir no campo de
busca ou no Windows Explorer e digitar no \\172.16.1.214
Quando aparecer a tela de login pedindo usuário e senha,
preencha com os dados que você criou para o User = usuario e sua senha, tendo o
cuidado de ativar a opção de “Lembrar minhas credenciais”, pois sem isso no
próximo acesso pode ser que o TrueNAS-CORE/FreeNAS o impeça de acessar os
arquivos compartilhados pois um recurso de segurança impede acessos que não
possuem credenciais confiáveis.
- usuario
- senha
- ativar “Lembrar minhas credenciais”
Esta é a mensagem que aparece quando o problema de
credencial surge:
Memorizando, salvando as credenciais do Windows e
reiniciando o notebook voltamos a acessar o TrueNAS-CORE/FreeNAS obtendo acesso
imediato ao compartilhamento:
Usando o Shell do TrueNAS-CORE/FreeNAS podemos verificar os
direitos de acesso dos arquivos que são criados nesse compartilhamento seguro
que exige usuário e senha na forma de credencial Windows.
Como você poderá constatar agora os direitos de acesso estão
totalmente bloqueados para everyone@ (todo mundo) e vinculados ao User =
usuario e ao Grupo TrueNAS-CORE/FreeNAS eliminando o risco de segurança que
apresentava o exemplo anterior que registrava os arquivos e diretórios criados
ao grupo wheel que é do administrador root.
Com este exemplo muito básico, 90% das necessidades
residenciais e de PME (Pequenas e Médias Empresas) podem ser atendidas, porém,
quando o usuário é corporativo ele irá precisar de uma estrutura hierárquica e
diferentes direitos de acesso (ACLs), então no próximo exemplo vamos trazer
algumas mudanças que serão aplicadas ao exemplo atual, o qual será apenas
modificado e não mais apagado como o anterior, pois o mesmo já suporta as novas
configurações que vamos necessitar, pois o Pool-Raid-Z já está do jeito que
precisamos com todos os recursos possíveis habilitados.
Lembrando que um Pool-Raid-Z pode ter infinitos Datasets,
podemos manter o Dataset deste exemplo e ir acrescentando muitos outros em
paralelo, porém o Pool-Raid-Z não apaguem, a não ser que queiram refazer para
memorizar as etapas necessárias.
Veremos agora, como se comporta o TrueNAS-CORE/FreeNAS com
mais grupos e mais usuários, faremos novas ACLs agora profissionais.
Vocês perceberão que a flexibilidade do TrueNAS-CORE/FreeNAS
é muito útil, lembrando sempre que a cada alteração recomendamos que façam
antes o Backup das Configurações.
System > General > SAVE CONFIG
Criando um TrueNAS-CORE/FreeNAS Corporativo
Muito já foi dito a respeito da necessidade de hierarquia e
diferentes direitos de acesso ou ACLs num ambiente corporativo, mesmo em uma
pequena empresa.
O Dono da empresa não vai querer que seus dados financeiros
sejam lidos pelo vendedor, por exemplo, e assim por diante.
Desta forma nas empresas criamos grupos por diversas
afinidades:
- Área de atuação
- Por projeto definido
- Informações públicas somente leitura
- Por nível hierárquico
Estes recursos são encontrados nos sistemas de nuvem
profissionais do Dropbox e no Google Drive mas não da forma flexível que o TrueNAS-CORE/FreeNAS
oferece.
Por ter sua configuração feita por interface WEB, o TrueNAS-CORE/FreeNAS
é muito fácil de configurar, bastando para isso elaborar um rápido planejamento
do que se pretende, como veremos neste exemplo prático que será realizado por
etapas.
Convertendo o TrueNAS-CORE/FreeNAS do exemplo anterior em um
Servidor Corporativo
O TrueNAS-CORE/FreeNAS do exemplo anterior com poucas
alterações pode ser transformado em um Servidor Corporativo.
Basta criar um login para cada usuario de forma a
identificar quem cria cada documento, assim desta forma torna-se possível ter
um maior controle sobre os arquivos da organização.
Inicialmente, para efeito didático, iremos criar novos
usuários no grupo TrueNAS-CORE/FreeNAS, a saber:
- user1
- user2
- user3
E a seguir iremos ao compartilhamento Seguro-Share já
existente para analisar como se comporta a criação de arquivos e os direitos de
acesso dos 3 usuários sem alterarmos nada na ACL do Seguro-Share.
Roteiro para implantar múltiplos usuários no TrueNAS-CORE/FreeNAS
- Através da interface gráfica WEB do TrueNAS-CORE/FreeNAS
criar os novos usuários user1, user2, user3, utilizando como Grupo Primário o
grupo já existente TrueNAS-CORE/FreeNAS.
- Logar com cada usuário distinto e criar no
compartilhamento arquivos e diretórios para saber como ficam os direitos de
acesso
Criando usuários
Criando os usuários user1
Accounts
> Users > ADD
Full Name =
user1
Password =
x
Confirm
Password = x
Desativar a
opção = New Primary Group
Primary Group = TrueNAS-CORE/FreeNAS
SAVE
Criando os usuários user2
Accounts
> Users > ADD
Full Name =
user2
Password =
x
Confirm
Password = x
Desativar a
opção = New Primary Group
Primary Group = TrueNAS-CORE/FreeNAS
SAVE
Criando os usuários user3
Accounts
> Users > ADD
Full Name =
user3
Password =
x
Confirm
Password = x
Desativar a
opção = New Primary Group
Primary
Group = TrueNAS-CORE/FreeNAS
SAVE
Os 3 novos usuários foram criados todos utilizando o Grupo
Primário = TrueNAS-CORE/FreeNAS.
Testando acessos criados
Entrando no Shell do TrueNAS-CORE/FreeNAS e verificando os
direitos de acesso dos arquivos criados temos:
Antes de mais nada os 3 novos usuários criados = user1,
user2, user3 puderam entrar no compartilhamento de arquivos Seguro-Share, pois
no exercício anterior configuramos o mesmo para permitir acesso ao grupo group@
= TrueNAS-CORE/FreeNAS = Full Control.
Como os 3 novos usuários possuem o Grupo Primário = TrueNAS-CORE/FreeNAS,
eles se beneficiaram dos direitos de acesso deste grupo para entrar, criar,
apagar arquivos e diretórios na pasta compartilhada Seguro-Share.
Os arquivos e diretórios criados pelos usuários ficaram
vinculados aos seus respectivos logins, e como todos pertencem ao grupo TrueNAS-CORE/FreeNAS
(Grupo Primário de todos estes usuários) todos podem ler, alterar, renomear e
apagar os arquivos uns dos outros, a prova é o arquivo criado pelo User =
usuario e que foi alterado e renomeado pelos usuários user1, user2 e user3,
porém o arquivo final continua a estar vinculado ao User = usuario que o criou.
O que quero demonstrar com este exemplo é que existem
limitações relativas ao registro de uso dos arquivos e diretórios, pois as
alterações não deixam rastros, mas o dono que cria tais arquivos e diretórios
fica registrado para todos os efeitos.
Um sub-Dataset somente leitura que somente 1 usuário pode alterar
Mais uma vez veremos como é simples e fácil utilizar o TrueNAS-CORE/FreeNAS
e seu conceito de Dataset para administrar os recursos da rede.
Para melhorar um pouco o entendimento do TrueNAS-CORE/FreeNAS,
vamos criar dentro da pasta Seguro-Share um sub-Dataset que pode ser alterado
pelo User = usuario e disponibilizado somente leitura para os demais usuários =
user1, user2, user3 do Group = TrueNAS-CORE/FreeNAS.
Este exemplo pode ser aplicado a documentos como circulares
e dados da empresa que precisam ser publicados, mas que não podem ser apagados,
nem alterados que não pelo User = usuario.
Roteiro para pasta somente leitura alterável pelo User
= usuario:
- Criar um sub-Dataset = Circulares dentro do Seguro-Dataset
- Criar uma ACL específica para o sub-Dataset = Circulares
que permite ao User = usuario criar, alterar e apagar arquivos e diretórios
dentro do mesmo, liberando aos demais usuários do grupo TrueNAS-CORE/FreeNAS
acesso com direitos de apenas leitura.
- Logar nos 4 usuários e realizar testes de direitos de
acesso.
Criando um sub-Dataset = Circulares dentro do
Seguro-Dataset
Storage > Pools > Seguro-Dataset > 3 pontinhos >
Add Dataset
Name = Circulares
Comments = Pasta somente leitura - documentos importantes
Share Type = SMB
SAVE
Criada o novo Dataset = Circulares, veja como ficou a
hierarquia.
Criando uma ACL específica para o sub-Dataset
Criando uma ACL específica para o sub-Dataset = Circulares
que permite ao User = usuario criar, alterar e apagar arquivos e diretórios dentro
do sub-Dataset = Circulares, liberando aos demais usuários do grupo TrueNAS-CORE/FreeNAS
acesso com direitos de apenas leitura.
Selecione a linha onde está o novo Dataset = Circulares e no
final da linha clique nos 3 pontinhos, selecionando a opção Edit ACL
Storage > Pools > Seguro-Dataset > Circulares >
3 pontinhos > Edit ACL
Altere agora os 3 parâmetros:
User = usuario
Group = TrueNAS-CORE/FreeNAS
ACL 1 do Who = owner@ nada muda
ACL 2 do
Who = group@ / ACL Type = Allow / Permissions = Read
SAVE
Testando
Logar nos 4 usuários e realizar testes de direitos de acesso
Observe que a Pasta Circulares (rwxr-x---) é um subdiretório
de Seguro-Share e pertence ao User = usuario, com direitos de escrita para ele
e somente leitura para os usuários do grupo TrueNAS-CORE/FreeNAS.
Testes realizados com os 3 demais usuários logados (user1,
user2, user3) demonstraram que eles podem ler e navegar dentro da Pasta
Circulares mas não podem apagar, nem alterar nada, somente ler.
Utilizando uma ACL temporária
Mas quando temos que fazer com que mais de uma pessoa possa
alterar a mesma pasta, por exemplo:
- O User = usuario sairá de férias
- Quem vai publicar as Circulares é o user1
- Como proceder para liberar uma ACL temporária?
- Depois do final das
férias do User = usuario como retirar a liberação temporária?
No TrueNAS-CORE/FreeNAS, bem como ocorre no Windows, existe
a possibilidade de ter mais de uma ACL por Dataset, ou seja, manteremos tudo
como está, para quando o User = usuario voltar de férias, enquanto isso,
criamos uma ACL temporária adicional que permitirá que o user1 altere também a
Pasta = Circulares.
Roteiro para adicionar novas ACLs temporárias a um
Dataset.
- Selecionar o Dataset = Circulares e editar sua ACL,
acrescentando uma nova ACL temporária que dê direitos de acesso também para o
user1
- Logar com os 4 usuários e verificar se as ACLs estão
funcionando.
Editando ACL do Dataset Circulares
Selecionar o Dataset = Circulares e editar sua ACL ,
acrescentando uma nova ACL temporária que dê direitos de acesso também para o
user1
Storage > Pools > Seguro-Dataset > Circulares >
3 pontinhos > Edit ACL > ADD ACL ITEM
Who = User
User =
user1
Permissions
= Full Control
SAVE
Testando
Logar com os 4 usuários e verificar se as ACLs estão
funcionando
Com a alteração do Dataset = Circulares, a nova ACL
temporária criada permitiu ao user1 realizar alterações em todos os arquivos
existentes na pasta Circulares.
Porém, quando o user1 tentou alterar um subdiretório que
estava dentro da pasta Circulares (criado pelo User = usuario antes da criação
da nova ACL) verificou-se que o user1 não conseguia alterar este diretório antigo
que permaneceu somente leitura mesmo com a nova ACL temporária.
Ou seja subdiretórios não herdam automaticamente as
configurações de ACL do diretório principal quando as ACLs mudam.
Para corrigir este problema foi criada um novo subdiretório
na pasta Circulares depois da criação da nova ACL temporária pelo User =
usuario antes dele sair de férias.
Desse modo o user1 conseguiu gravar e alterar os documentos
que estavam dentro deste novo subdiretório criado pelo User = usuario antes dele sair de férias.
Quanto aos demais usuários user2 e user3 , ambos não
conseguiram apagar ou alterar os documentos da Pasta Circulares criados pelo
user1 como era esperado.
Outro ponto importante foi que um subdiretório criado dentro
da Pasta Circulares pelo user1 e outro subdiretório criado dentro da Pasta
Circulares criada pelo User = usuario antes de ele sair de férias já com a nova
ACL temporária, ambas após a remoção da ACL temporária continuaram aceitando
alterações do user1 como se a ACL temporária ainda estivesse ativa.
Fica registrado que o uso de ACLs temporárias baseadas em
usuários causa problemas de gestão, pois as ACLs temporárias baseadas em
usuários no TrueNAS-CORE/FreeNAS não atualizam os direitos dos subdiretórios
criados durante a sua vigência e não removem automaticamente estes direitos de
acesso quando as ACLs temporárias são removidas.
Para contornar este problema, existem os grupos e a gestão
através de grupos que deve resolver este problema.
Utilizando ACL de grupo
Neste outro exemplo tentaremos resolver o problema de
integridade do exemplo anterior usando o conceito de grupo pra administrar uma
pasta somente leitura.
Roteiro
- Criar o grupo = Circulares
- Acrescentar os usuários no grupo Circulares = usuario e
user1
- Selecionar o Dataset = Circulares e editar sua ACL para
que o grupo = Circulares seja o administrador da pasta
- Logar com os 4 usuários e verificar se as ACLs estão
funcionando.
Criando o grupo = Circulares
Accounts > Groups > ADD
Name = Circulares
SAVE
Acrescentando os usuários = usuario, user1 como
membros do grupo = Circulares
Accounts > Groups > Circulares > 3 pontinhos >
Members
Selecionar = usuario
Setinha para direita para adicionar User = usuario ao grupo
= Circulares
Selecionar = user1
Setinha para direita para adicionar user1 ao grupo =
Circulares
SAVE
Selecionando o Dataset Circulares e editando sua ACL
para que o Group = Circulares seja o administrador da pasta
Storage > Pools > Seguro-Dataset > Circulares >
3 pontinhos > Edit ACL
Alterar ACL 1 > Who = owner@ mudar para Group
Group = Circulares
Permissions
= Full Control
SAVE
Logando com os 4 usuários e verificar se as ACLs
estão funcionando.
Primeiro, para realizar os testes de forma adequado com o User
= usuario apagamos todos os arquivos e diretórios da Pasta Circulares.
Verificamos que alguns arquivos ainda estavam com os
direitos da ACL temporária antiga e tivemos que logar como user1 para remover
todos os arquivos e diretórios.
Com tudo limpo, realizamos novos testes verificando que o
problema anterior desapareceu.
Removemos o user1 do grupo = Circulares e verificamos que a
Pasta Circulares aceitou a atualização do grupo = Circulares e não permitiu
mais que o user1 pudesse voltar a alterar documentos e apagar diretórios dentro
da Pasta = Circulares.
Com isso, finalizamos a questão da gestão do acesso aos
compartilhamentos do TrueNAS-CORE/FreeNAS a nível de usuários, grupos, Datasets
e ACLs, concluindo que um projeto mal feito de direitos de acesso, pode causar
problemas futuros.
Além disso podemos fazer a afirmativa que sempre
deveremos usar grupos, ao invés de usuários para administrar recursos dos
compartilhamentos, pois como vimos no exemplo da ACL temporária, que as
alterações de ACL não se propagam automaticamente dentro de subdiretórios, pois
os sub-diretórios antigos não são atualizados.
TrueNAS-CORE/FreeNAS Simulando um Projeto Real
Voltando um passo atrás vamos elaborar um roteiro para a
instalação de um Servidor Corporativo com vários departamentos com diversos
usuários e mais cenários de configurações.
Desta vez, vamos tentar ser mais objetivos e menos visuais,
agora que você já fez um laboratório e conheceu o potencial do TrueNAS-CORE/FreeNAS.
As explicações já foram dadas, os conceitos já apresentados,
agora é mão na massa, vamos ao roteiro.
Roteiro
- Apagar Seguro-Dataset
- Fazer Backup do TrueNAS-CORE/FreeNAS
- Listar grupos, usuários, pastas, direitos de acesso,
comentários, etc.
- Criação dos grupos departamentais, de projeto, de controle
e mistos.
- Criação dos usuários vinculando-os ao Grupo Primário = TrueNAS-CORE/FreeNAS,
mas também associando-os as grupos departamentais, de projeto, de controle e
mistos aos quais eles possam pertencer
- Criar um novo Dataset SMB = Windows-Dataset
- Criar Windows-Share
- Criar ACL do Windows-Share deixando este Dataset somente
leitura
- Criar os sub-Datasets do Windows-Dataset configurando
diferentes ACLs conforme documentação criada
- Testar configurações
Apagando Seguro-Dataset
Storage > Pools > Seguro-Dataset > 3 pontinhos >
Delete Dataset
Preencha o nome Seguro-Dataset
Confirm > DELETE DATASET
Backup do TrueNAS-CORE/FreeNAS
Novamente faça um backup das configurações antes de
prosseguir:
System > General > SAVE CONFIG
Listando Grupos, usuários, pastas e direitos de
acesso
Como já foi dito, primeiro listaremos os grupos, depois os
usuários
Grupos:
- TrueNAS-CORE/FreeNAS (Grupo Primário)
- ti
- diretoria
- financeiro
- adm
- comercial
- compras
- prod
- rh
- circulares
- gerentes
Usuários /
grupos secundários:
Obs: todos terão como Grupo Primário o TrueNAS-CORE/FreeNAS
- usuario (Gestor de Ti) / ti
- diretor / diretoria
- financeiro / financeiro, gerentes
- adm1 / adm, gerentes, circulares
- adm2 / adm
- vendedor1 / comercial, gerentes
- vendedor2 / comercial
- comprador / compras, gerentes
- prod1 / prod, gerentes
- prod2 / prod
- rh / rh, gerentes
Estrutura de pastas
- Pool =
Pool-Raid-Z
- Dataset
Principal = Windows-Dataset = Windows-Share = ACL / Permissions = Read
- ACL do
Administrador = Who = Group / Group = ti / ACL Type = Allow / Permissions =
Full Control
A configuração básica será uma pasta compartilhada somente
leitura = Windows-Share, dentro dela haverão outras pastas graváveis
(sub-Datasets) cada qual com um grupo administrador (além do Administrador =
Grupo ti + diretoria) e respectivos direitos de acesso
Datasets Secundários / grupos administradores
- publico / TrueNAS-CORE/FreeNAS (nesta pasta todos do grupo
TrueNAS-CORE/FreeNAS terão Full Control)
- ti / ti
- diretoria / diretoria, ti
- financeiro / financeiro, diretoria, ti
- adm / adm, diretoria, ti
- comercial /
comercial, diretoria, ti, financeiro
- compras / compras, diretoria, ti, financeiro
- prod / prod, diretoria, ti
- rh / rh, diretoria, ti, financeiro
- circulares / circulares, diretoria, ti / TrueNAS-CORE/FreeNAS
= Read (todos do TrueNAS-CORE/FreeNAS poderão ler tudo)
- gerentes / gerentes, diretoria, ti
- circulares_gerentes / diretoria, ti (será sub-pasta
somente leitura)
Criando os grupos departamentais, de projeto, de
controle e mistos.
Para criar grupos não populados é muito simples e rápido,
siga os comandos a seguir:
Accounts
> Groups > ADD
Name = TrueNAS-CORE/FreeNAS
(Name already in use – não precisa recriar este grupo)
CANCEL
Accounts
> Groups > ADD
Name = ti
ADD
Accounts
> Groups > ADD
Name =
diretoria
ADD
Accounts
> Groups > ADD
Name =
financeiro
ADD
Accounts
> Groups > ADD
Name = adm
ADD
Accounts
> Groups > ADD
Name =
comercial
ADD
Accounts
> Groups > ADD
Name =
compras
ADD
Accounts
> Groups > ADD
Name = prod
ADD
Accounts
> Groups > ADD
Name = rh
ADD
Accounts
> Groups > ADD
Name =
circulares
ADD
Accounts
> Groups > ADD
Name =
gerentes
ADD
Pronto agora você já criou todos os grupos que embora
estejam vazios logo mais estarão cheios quando os usuários forem criados.
Criando usuários associando-os as grupos
Esta etapa é mais trabalhosa, mas você fará isso só uma vez.
O único detalhe é que o User = usuario já existe, portanto
iremos configurá-lo ao invés de criá-lo do zero para que vocês aprendam.
Accounts > Users
> usuario > setinha no final da linha apontando para a direita
> EDIT
Auxiliary Groups > selecione = ti
SAVE
Verificamos também que quando os nomes são mais compridos, o
TrueNAS-CORE/FreeNAS costuma cortar o Username que deveria ser igual ao Full
Name, nestes casos você deve completar o Username e forçar a configuração desde
que o nome tenha até 15 caracteres, que é o limite permitido para um Username.
Accounts
> Users > ADD
Full Name =
diretor
Password =
x
Confirm
Password = x
desativar
New Primary Group
Primary
Group = TrueNAS-CORE/FreeNAS
Auxiliary
Groups = diretoria
SAVE
Accounts
> Users > ADD
Full Name =
financeiro
User Name = financeiro (nomes mais compridos precisam ser
forçados)
Password =
x
Confirm
Password = x
desativar
New Primary Group
Primary
Group = TrueNAS-CORE/FreeNAS
Auxiliary
Groups = financeiro, gerentes
SAVE
Accounts
> Users > ADD
Full Name =
adm1
Password =
x
Confirm
Password = x
desativar
New Primary Group
Primary
Group = TrueNAS-CORE/FreeNAS
Auxiliary
Groups = adm, gerentes
SAVE
Accounts
> Users > ADD
Full Name =
adm2
Password =
x
Confirm
Password = x
desativar
New Primary Group
Primary
Group = TrueNAS-CORE/FreeNAS
Auxiliary
Groups = adm
SAVE
Accounts
> Users > ADD
Full Name =
vendedor1
Username =
vendedor1
Password =
x
Confirm
Password = x
desativar
New Primary Group
Primary
Group = TrueNAS-CORE/FreeNAS
Auxiliary
Groups = comercial, gerentes
SAVE
Accounts
> Users > ADD
Full Name =
vendedor2
Username =
vendedor2
Password =
x
Confirm
Password = x
desativar
New Primary Group
Primary
Group = TrueNAS-CORE/FreeNAS
Auxiliary
Groups = comercial
SAVE
Accounts
> Users > ADD
Full Name =
comprador
Username =
comprador
Password =
x
Confirm
Password = x
desativar
New Primary Group
Primary
Group = TrueNAS-CORE/FreeNAS
Auxiliary
Groups = compras, gerentes
SAVE
Accounts
> Users > ADD
Full Name =
prod1
Password =
x
Confirm
Password = x
desativar
New Primary Group
Primary
Group = TrueNAS-CORE/FreeNAS
Auxiliary
Groups = prod, gerentes
SAVE
Accounts
> Users > ADD
Full Name =
prod2
Password =
x
Confirm
Password = x
desativar
New Primary Group
Primary
Group = TrueNAS-CORE/FreeNAS
Auxiliary
Groups = prod
SAVE
Accounts
> Users > ADD
Full Name =
rh
Password =
x
Confirm
Password = x
desativar
New Primary Group
Primary
Group = TrueNAS-CORE/FreeNAS
Auxiliary
Groups = rh, gerentes
SAVE
Criando
o Windows-Dataset
Storage
> Pools > Pool-Raid-Z > 3 pontinhos > Add Dataset
Name =
Windows-Dataset
Type = SMB
SAVE
Criando
o Windows-Share
Sharing
> Windows Share (SMB) > ADD
Path =
/mnt/Pool-Raid-Z/Windows-Dataset (navegue até chegar no Windows-Dataset)
Name =
Windows-Share
Deixar
Enable Shadow Copies Ativo
SAVE
Criando ACL do Windows-Share no modo somente leitura
Sharing
> Windows Share (SMB) > Windows-Dataset > 3 pontinhos > Edit ACL
ADD ACL
ITEM
Who = Group
Group = TrueNAS-CORE/FreeNAS
ACL Type =
Allow
Permissions
= Read
ADD ACL
ITEM
Who = Group
Group = ti
ACL Type =
Allow
Permissions = Full Control
SAVE
Pronto o ACL do Windows-Share está concluído no modo somente
leitura para o grupo TrueNAS-CORE/FreeNAS e com Full Control para o grupo ti
dentro do qual está o usuário = usuario.
Criando os sub-Datasets do Windows-Dataset
Um detalhe muito importante: como já criamos um Share
vinculado ao Windows-Dataset, os computadores da rede local (LAN) conseguirão
abrir o Windows-Share através de nosso endereço IP = \\172.16.1.234 (ou o que
você estiver vendo na sua tela do TrueNAS-CORE/FreeNAS).
Desta forma, para outros Datasets que forem criados abaixo
do Windows-Dataset não será mais preciso criar novos Shares, o principal só já
é suficiente.
Este detalhe é importante pois agora a criação de ACLs fica
muito mais simples pois você só tem que criar os sub-Datasets e as ACLs, pois
os grupos já estão criados e o Share principal também.
Vamos criar os sub-Datasets
Storage > Pools > Windows-Dataset > 3 pontinhos
> Add Dataset
Name =
publico
Share Type
= SMB
SAVE
Storage
> Pools > Windows-Dataset > 3 pontinhos > Add Dataset
Name = ti
Share Type
= SMB
SAVE
Storage
> Pools > Windows-Dataset > 3 pontinhos > Add Dataset
Name =
diretoria
Share Type
= SMB
SAVE
Storage
> Pools > Windows-Dataset > 3 pontinhos > Add Dataset
Name =
financeiro
Share Type
= SMB
SAVE
Storage
> Pools > Windows-Dataset > 3 pontinhos > Add Dataset
Name = adm
Share Type
= SMB
SAVE
Storage
> Pools > Windows-Dataset > 3 pontinhos > Add Dataset
Name =
comercial
Share Type
= SMB
SAVE
Storage
> Pools > Windows-Dataset > 3 pontinhos > Add Dataset
Name =
compras
Share Type
= SMB
SAVE
Storage
> Pools > Windows-Dataset > 3 pontinhos > Add Dataset
Name = prod
Share Type
= SMB
SAVE
Storage
> Pools > Windows-Dataset > 3 pontinhos > Add Dataset
Name = rh
Share Type
= SMB
SAVE
Storage
> Pools > Windows-Dataset > 3 pontinhos > Add Dataset
Name =
circulares
Share Type
= SMB
SAVE
Storage
> Pools > Windows-Dataset > 3 pontinhos > Add Dataset
Name =
gerentes
Share Type
= SMB
SAVE
Storage
> Pools > Windows-Dataset > 3 pontinhos > Add Dataset
Name =
circulares_gerentes
Share Type
= SMB
SAVE
Criando diferentes ACLs
Vamos criar agora as ACLs:
Configurando a pasta publico:
Storage > Pools > Windows-Dataset > publico > 3
pontinhos > Edit ACL
ADD ACL
ITEM
Who = Group
Group = TrueNAS-CORE/FreeNAS
Permissions
= Full Control
SAVE
Configurando
a pasta adm:
Storage
> Pools > Windows-Dataset > adm > 3 pontinhos > Edit ACL
ADD ACL
ITEM
Who = Group
Group = ti
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
diretoria
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group = adm
Permissions
= Full Control
SAVE
Configurando a pasta circulares:
Storage
> Pools > Windows-Dataset > circulares > 3 pontinhos > Edit ACL
ADD ACL
ITEM
Who = Group
Group = ti
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
diretoria
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
circulares
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group = TrueNAS-CORE/FreeNAS
Permissions = Read
SAVE
Configurando a pasta circulares_gerentes:
Storage
> Pools > Windows-Dataset > circulares_gerentes > 3 pontinhos >
Edit ACL
ADD ACL
ITEM
Who = Group
Group = ti
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
diretoria
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group = gerentes
Permissions = Read
SAVE
Configurando a pasta comercial:
Storage
> Pools > Windows-Dataset > comercial > 3 pontinhos > Edit ACL
ADD ACL
ITEM
Who = Group
Group = ti
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
diretoria
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
comercial
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
financeiro
Permissions
= Full Control
SAVE
Configurando a pasta compras:
Storage
> Pools > Windows-Dataset > compras > 3 pontinhos > Edit ACL
ADD ACL
ITEM
Who = Group
Group = ti
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
diretoria
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
compras
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
financeiro
Permissions
= Full Control
SAVE
Configurando a pasta diretoria:
Storage
> Pools > Windows-Dataset > diretoria > 3 pontinhos > Edit ACL
ADD ACL
ITEM
Who = Group
Group = ti
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
diretoria
Permissions
= Full Control
SAVE
Configurando a pasta financeiro:
Storage
> Pools > Windows-Dataset > financeiro > 3 pontinhos > Edit ACL
ADD ACL
ITEM
Who = Group
Group = ti
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
diretoria
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
financeiro
Permissions
= Full Control
SAVE
Configurando a pasta gerentes:
Storage
> Pools > Windows-Dataset > gerentes > 3 pontinhos > Edit ACL
ADD ACL
ITEM
Who = Group
Group = ti
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
diretoria
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
gerentes
Permissions
= Full Control
SAVE
Configurando
a pasta prod:
Storage
> Pools > Windows-Dataset > prod > 3 pontinhos > Edit ACL
ADD ACL
ITEM
Who = Group
Group = ti
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
diretoria
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
prod
Permissions
= Full Control
SAVE
Configurando
a pasta rh:
Storage
> Pools > Windows-Dataset > rh > 3 pontinhos > Edit ACL
ADD ACL
ITEM
Who = Group
Group = ti
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
diretoria
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group = rh
Permissions
= Full Control
ADD ACL
ITEM
Who = Group
Group =
financeiro
Permissions
= Full Control
SAVE
Configurando a pasta ti:
Storage
> Pools > Windows-Dataset > ti > 3 pontinhos > Edit ACL
ADD ACL
ITEM
Who = Group
Group = ti
Permissions = Full Control
SAVE
Tudo pronto, agora, falta apenas testar as configurações com
os devidos usuários.
Quando um usuário não tem direito de acesso a uma
determinada pasta ela fica oculta para ele só aparecendo se for somente leitura
ou de acesso liberado.
Testando configurações
O User = usuario
conseguiu entrar em todos os compartilhamentos e inclusive conseguiu gravar no
Windows-Dataset onde criou um arquivo texto e uma pasta temp.
O diretor por sua
vez conseguiu gravar em todos os diretórios, menos no Windows-Dataset que para
ele é somente leitura.
O usuário
financeiro respeitou corretamente todos os direitos de acesso, e nas pastas de
circulares e circulares_gerentes ele acessou somente leitura.
O usuário Adm1,
que é um gerente, também não apresentou problemas de acesso, veja que ele
visualiza poucas pastas.
O usuário adm2
por sua vez, acessa ainda menos pastas ainda pois não é gerente.
Via de regra
todas as configurações funcionaram normalmente, e os direitos que foram
planejados funcionaram corretamente.
Pelo fato de
termos seguido um roteiro de configuração, nada foi omitido, e se foi, ficou
fácil de detectar o ponto que foi esquecido pois temos uma boa documentação do
projeto.
Por fim, como
mandam as boas práticas, realize um backup das configurações.
System >
General > SAVE CONFIG
Observe que nas
implementações deste projeto nenhuma vez alteramos as configurações default de
User = root e Group = wheel do Dataset, nem as ACLs padrão de owner@ e group@ do
TrueNAS-CORE/FreeNAS, mesmo assim tudo funcionou perfeitamente.
Veja os direitos
de acesso como ficaram associados ao Group wheel (administrador do TrueNAS-CORE/FreeNAS):
Apesar dos
arquivos estarem associados ao grupo wheel do administrador, não existe
problema nesta configuração que foi feita até agora pois o grupo wheel está vazio, tendo
apenas o root como membro somado ao fato de que os usuários anônimos do grupo everyone@
não tem nenhum acesso
liberado (rwxrwx---).
Mas se você
deseja eliminar até este detalhe basta na ACL remover a ACL 1 e a ACL2 do owner@ e do group@
(lado direito da tela) e alterar
o dono do Dataset para User = usuario e Group = TrueNAS-CORE/FreeNAS (lado
esquerdo da tela).
Fazendo isso em
todas as ACLs de todos os Datasets, você elimina de vez a figura do grupo wheel
mudando-o para TrueNAS-CORE/FreeNAS.
Exemplo de alteração no Dataset publico
Vou dar um
exemplo no sub-Dataset publico com base na figura acima:
Storage > Pools > Windows-Dataset > publico
> 3 pontinhos > Edit ACL
Do lado esquerdo
da tela (File Information) mude:
User = de root
para usuario
Group = de wheel
para TrueNAS-CORE/FreeNAS
Do lado direito
da tela (Access Control List) apague as duas primeiras ACLs clicando no botão
DELETE em amarelo:
ACL do owner@
>>> DELETE
ACL do group@
>>> DELETE
Mantenha as ACLs
que você personalizou e clique em SAVE
Vejam como ficou,
os novos arquivos estão vinculados agora ao grupo TrueNAS-CORE/FreeNAS e,
portanto, não tem mais vínculos com o grupo administrador que é um ponto de
insegurança muito perigoso:
Alterando ACLs para eliminar grupo wheel dos
arquivos e diretórios
Caso você queira
o roteiro para alterar todas as ACLs para o modo mais seguro basta fazer:
Storage > Pools > Windows-Dataset > ti > 3
pontinhos > Edit ACL
Do lado esquerdo
da tela (File Information) mude:
User = de root
para usuario
Group = de wheel
para TrueNAS-CORE/FreeNAS
Do lado direito
da tela (Access Control List) apague as duas primeiras ACLs clicando no botão
DELETE em amarelo:
ACL do owner@
>>> DELETE
ACL do group@
>>> DELETE
Mantenha as ACLs
que você personalizou e clique em SAVE
Storage >
Pools > Windows-Dataset > diretoria > 3 pontinhos > Edit ACL
Do lado esquerdo
da tela (File Information) mude:
User = de root
para usuario
Group = de wheel
para TrueNAS-CORE/FreeNAS
Do lado direito
da tela (Access Control List) apague as duas primeiras ACLs clicando no botão
DELETE em amarelo:
ACL do owner@
>>> DELETE
ACL do group@
>>> DELETE
Mantenha as ACLs
que você personalizou e clique em SAVE
Storage >
Pools > Windows-Dataset > financeiro > 3 pontinhos > Edit ACL
Do lado esquerdo
da tela (File Information) mude:
User = de root
para usuario
Group = de wheel
para TrueNAS-CORE/FreeNAS
Do lado direito
da tela (Access Control List) apague as duas primeiras ACLs clicando no botão
DELETE em amarelo:
ACL do owner@
>>> DELETE
ACL do group@
>>> DELETE
Mantenha as ACLs
que você personalizou e clique em SAVE
Storage > Pools > Windows-Dataset > adm >
3 pontinhos > Edit ACL
Do lado esquerdo
da tela (File Information) mude:
User = de root
para usuario
Group = de wheel
para TrueNAS-CORE/FreeNAS
Do lado direito
da tela (Access Control List) apague as duas primeiras ACLs clicando no botão
DELETE em amarelo:
ACL do owner@
>>> DELETE
ACL do group@
>>> DELETE
Mantenha as ACLs
que você personalizou e clique em SAVE
Storage > Pools > Windows-Dataset > comercial
> 3 pontinhos > Edit ACL
Do lado esquerdo
da tela (File Information) mude:
User = de root
para usuario
Group = de wheel
para TrueNAS-CORE/FreeNAS
Do lado direito
da tela (Access Control List) apague as duas primeiras ACLs clicando no botão
DELETE em amarelo:
ACL do owner@
>>> DELETE
ACL do group@
>>> DELETE
Mantenha as ACLs
que você personalizou e clique em SAVE
Storage > Pools > Windows-Dataset > compras >
3 pontinhos > Edit ACL
Do lado esquerdo
da tela (File Information) mude:
User = de root
para usuario
Group = de wheel
para TrueNAS-CORE/FreeNAS
Do lado direito
da tela (Access Control List) apague as duas primeiras ACLs clicando no botão
DELETE em amarelo:
ACL do owner@
>>> DELETE
ACL do group@
>>> DELETE
Mantenha as ACLs
que você personalizou e clique em SAVE
Storage > Pools > Windows-Dataset > prod >
3 pontinhos > Edit ACL
Do lado esquerdo
da tela (File Information) mude:
User = de root
para usuario
Group = de wheel
para TrueNAS-CORE/FreeNAS
Do lado direito
da tela (Access Control List) apague as duas primeiras ACLs clicando no botão
DELETE em amarelo:
ACL do owner@
>>> DELETE
ACL do group@
>>> DELETE
Mantenha as ACLs
que você personalizou e clique em SAVE
Storage > Pools > Windows-Dataset > rh > 3
pontinhos > Edit ACL
Do lado esquerdo
da tela (File Information) mude:
User = de root
para usuario
Group = de wheel
para TrueNAS-CORE/FreeNAS
Do lado direito
da tela (Access Control List) apague as duas primeiras ACLs clicando no botão
DELETE em amarelo:
ACL do owner@
>>> DELETE
ACL do group@
>>> DELETE
Mantenha as ACLs
que você personalizou e clique em SAVE
Storage >
Pools > Windows-Dataset > circulares > 3 pontinhos > Edit ACL
Do lado esquerdo
da tela (File Information) mude:
User = de root
para usuario
Group = de wheel
para TrueNAS-CORE/FreeNAS
Do lado direito
da tela (Access Control List) apague as duas primeiras ACLs clicando no botão
DELETE em amarelo:
ACL do owner@
>>> DELETE
ACL do group@
>>> DELETE
Mantenha as ACLs
que você personalizou e clique em SAVE
Storage > Pools > Windows-Dataset > gerentes >
3 pontinhos > Edit ACL
Do lado esquerdo
da tela (File Information) mude:
User = de root
para usuario
Group = de wheel
para TrueNAS-CORE/FreeNAS
Do lado direito
da tela (Access Control List) apague as duas primeiras ACLs clicando no botão
DELETE em amarelo:
ACL do owner@
>>> DELETE
ACL do group@
>>> DELETE
Mantenha as ACLs
que você personalizou e clique em SAVE
Storage >
Pools > Windows-Dataset > circulares_gerentes > 3 pontinhos > Edit
ACL
Do lado esquerdo
da tela (File Information) mude:
User = de root
para usuario
Group = de wheel
para TrueNAS-CORE/FreeNAS
Do lado direito
da tela (Access Control List) apague as duas primeiras ACLs clicando no botão
DELETE em amarelo:
ACL do owner@
>>> DELETE
ACL do group@
>>> DELETE
Mantenha as ACLs
que você personalizou e clique em SAVE
Storage > Pools > Windows-Dataset > publico >
3 pontinhos > Edit ACL
Do lado esquerdo
da tela (File Information) mude:
User = de root
para usuario
Group = de wheel
para TrueNAS-CORE/FreeNAS
Do lado direito
da tela (Access Control List) apague as duas primeiras ACLs clicando no botão
DELETE em amarelo:
ACL do owner@
>>> DELETE
ACL do group@
>>> DELETE
Mantenha as ACLs
que você personalizou e clique em SAVE
Após estas
alterações os direitos de acesso ficaram assim na pasta publico e na pasta
gerentes:
Os arquivos da
pasta publico agora estão associados ao grupo TrueNAS-CORE/FreeNAS que não é
mais administrador como o wheel.
Fazendo Backup do Dropbox e do Google Drive
Antes e conhecer
este recurso do TrueNAS-CORE/FreeNAS eu vivia totalmente sem nenhuma segurança
no que diz respeito aos dados do Google Drive.
Dentro dele tenho
muitas coisas importantes e como uso planilhas na nuvem (que ficam armazenadas
no Google Drive) a situação passa a ser crítica, haja visto que o aplicativo do
Google para backup do Google Drive simplesmente não funciona no meu micro.
Durante um tempo
tentei usar o aplicativo Google Backup and Sync e a experiência foi
decepcionante, seu funcionamento foi instável, ele fez backup de coisas que eu
não queria, e não sincronizava coisas que eu realmente precisava.
Quando constatei
o grande erro que foi usar este programa, simplesmente o abandonei e fiquei sem
backup no Google Drive contando com a sorte para não perder meus dados.
Já havia lido a
respeito de sincronizar o TrueNAS-CORE/FreeNAS com o Dropbox, mas como não uso
o Dropbox isso não me despertou interesse, haja visto que como eu mencionei
anteriormente já possuía uma solução de Backup e Sincronia usando o Centos
Linux.
Foi então que me
deparei com um texto de 21 de janeiro de 2020 no site da iXsystems que é a
desenvolvedora do TrueNAS-CORE/FreeNAS ensinando como sincronizar o Dropbox com
o TrueNAS-CORE/FreeNAS.
Fiz os testes e
verifiquei que a solução do TrueNAS-CORE/FreeNAS funciona igualmente para
Google Drive e Dropbox dando uma enorme segurança quanto à perda de dados que é
praticamente impossível, desde que a sincronia esteja ativa todos os dias.
Com a experiência
positiva, adotei ambas soluções ao meu dia a dia, e desde então durmo tranquilo
sem o medo de perder meus documentos de trabalho e pessoais.
Para quem ainda
não leu minhas explicações de como funciona o Backup do Dropbox e do Google
Drive no TrueNAS-CORE/FreeNAS no capítulo “Vamos entender o TrueNAS-CORE/FreeNAS”
recomendo fortemente que o faça agora, pois sem esta base teórica você corre o
risco de apagar todos os seus documentos sem querer.
A partir de agora
para referenciar o Dropbox e o Google Drive usaremos apenas o termo “nuvem”,
pois ficar toda hora digitando os dois nomes é complicado.
Roteiro para implantar o Backup da nuvem no TrueNAS-CORE/FreeNAS:
- Criar o grupo
nuvem
- Adicionar o
User = usuario no Group = nuvem
- Criar um novo
usuario para a nuvem
- Criar um novo
Dataset para a nuvem
- Criar um novo Share para a nuvem
- Criar um novo
ACL para o Share da nuvem
- Ativar as
Credenciais da nuvem
- Ativar a Tarefa
Cloud Sync Task
- Rodar o
primeiro Backup manualmente
Criando o Group = nuvem
Criando o grupo
nuvem
Accounts >
Group > ADD
Name = nuvem
SAVE
Adicionando o User = usuario no Group = nuvem
Accounts > Groups > nuvem > 3 pontinhos >
members
Selecione o User = usuario
Com a setinha -> coloque-o no Group = nuvem
SAVE
Criando um novo usuario para o Dropbox
Accounts > Users > ADD
Full Name = dropbox
Password = x
Confirm Password = x
Desabilitar new Primary Group
Primary Group = TrueNAS-CORE/FreeNAS
Auxiliary
Groups = nuvem
SAVE
Criando um novo Dataset para o Dropbox
Storage > Pools > Pool-Raid-Z > 3 pontinhos
> Add Dataset
Name = dropbox
Share Type = SMB
SAVE
Criando um novo Share para o Dropbox
Sharing > Windows Share (SMB) > ADD
Path = /mnt/Pool-Raid-Z/dropbox
SAVE
Criando um novo ACL para o Share do Dropbox
Sharing > Windows Share (SMB) > dropbox > 3
pontinhos > Edit ACL
File Information > User = usuario
File Information > Group = TrueNAS-CORE/FreeNAS
ADD ACL ITEM
Access Control List > Who = Group / Group = nuvem
/ ACL Type = Allow / Permissions = Full Control
Access Control List > Who = owner@ > DELETE
Access Control List > Who = group@ > DELETE
SAVE
Ativando as Credenciais do Dropbox
System > Cloud
Credentials > ADD
Name = dropbox
Provider =
Dropbox
clique em >
LOGIN TO PROVIDER
na tela que abrir
clique em > Proceed
Preencher dados
de Login do Dropbox
Clicar em >
Acessar Conta
Clique em >
VERIFY CREDENTIAL > CLOSE
SAVE
Ativando a Tarefa de Sincronia da Cloud (Cloud Sync
Task)
Tasks > Cloud Sync Tasks > ADD
Description = dropbox
Direction = PULL
Credential > Selecione a Credential = dropbox
(DROPBOX)
Folder (origem) =
/
Directory Files
(destino) = /mnt/Pool-Raid-Z/dropbox
Transfer Mode =
COPY
SAVE
Rodando o primeiro Backup do Dropbox manualmente
Tasks > Cloud
Sync Tasks > dropbox > setinha para direita > Run Now
Criando o Backup do Google Drive
Criando o grupo
nuvem (já criado no exemplo do Dropbox)
Accounts > Group > ADD
Name = nuvem
SAVE
Adicionando o User = usuario no Group = nuvem
(Este item já foi feito no exemplo do Dropbox)
Accounts > Groups > nuvem > 3 pontinhos >
members
Selecione o User = usuario
Com a setinha -> coloque-o no Group = nuvem
SAVE
Criando um novo usuario para o Google Drive
Accounts > Users > ADD
Full Name = google
Password = x
Confirm Password = x
Desabilitar new Primary Group
Primary Group = TrueNAS-CORE/FreeNAS
Auxiliary Groups = nuvem
SAVE
Criando um novo Dataset para o Google Drive
Storage > Pools > Pool-Raid-Z > 3 pontinhos
> Add Dataset
Name = google
Share Type = SMB
SAVE
Criando um
novo Share para o Google Drive
Sharing > Windows Share (SMB) > ADD
Path = /mnt/Pool-Raid-Z/google
SAVE
Criando um novo ACL para o Share do Google Drive
Sharing > Windows Share (SMB) > google > 3
pontinhos > Edit ACL
File Information > User = usuario
File Information > Group = TrueNAS-CORE/FreeNAS
ADD ACL ITEM
Access Control List > Who = Group / Group = nuvem /
ACL Type = Allow / Permissions = Full Control
Access Control List > Who = owner@ > DELETE
Access Control List > Who = group@ > DELETE
SAVE
Ativando as Credenciais do Google Drive
System > Cloud Credentials > ADD
Name = google
Provider = Google
Drive
clique em > LOGIN
TO PROVIDER
na tela que abrir
clique em > Proceed
Preencher dados
de Login do Google Drive
Clicar em >
Acessar Conta
Clicar em >
VERIFY CREDENTIAL
SAVE
Ativando a Tarefa de Sincronia da Cloud (Cloud Sync
Task)
Tasks > Cloud Sync Tasks > ADD
Description = google
Direction = PULL
Credential > Selecione a Credential = google
(GOOGLE_DRIVE)
Folder (origem) = /
Directory Files (destino) = /mnt/Pool-Raid-Z/google
Transfer Mode =
COPY
SAVE
Rodando o primeiro Backup manualmente
Tasks > Cloud
Sync Tasks > google > setinha para direita > Run Now
Ao tentar pela
primeira vez realizar o Backup do Google Drive verificamos que havia um
problema de sincronia entre o TrueNAS-CORE/FreeNAS e o Google Drive no que diz
respeito aos horários que cada servidor usava para controlar a sincronia, isso
pode não acontecer com você, mas caso aconteça o procedimento para desbloquear
é simples.
Desbloqueando o Google Drive
Para resolver
este problema foi necessário logar na conta do Google Drive e no link :
https://myaccount.google.com/u/1/dashboard
Selecionar >
GERENCIAR A SINCRONIZAÇÃO DO GOOGLE CHROME
Selecionar >
REDEFINIR SINCRONIZAÇÃO
Feito isso a
sincronia iniciou corretamente.
Porém ao
tentarmos acessar a pasta do google pelo compartilhamento de rede SMB
verificamos que perdemos os direitos de acesso e tivemos que voltar à ACL do
Dataset do google para voltar os direitos de User = usuario e Group = TrueNAS-CORE/FreeNAS,
apagando as ACL do owner@ e group@,
criando a ACL do grupo = nuvem, além de habilitar um item adicional que
é uma nova ACL para o usuário root.
Recriando o ACL para o Share do Google Drive
Sharing > Windows Share (SMB) > google > 3
pontinhos > Edit ACL
File Information > User = usuario
File Information > Group = TrueNAS-CORE/FreeNAS
ADD ACL ITEM
Access Control List > Who = Group / Group = nuvem
/ ACL Type = Allow / Permissions = Full Control
Access Control List > Who = owner@ > DELETE
Access Control List > Who = group@ > DELETE
ADD ACL ITEM
Access Control List > Who = User / User = root /
ACL Type = Allow / Permissions = Full Control
SAVE
Entrando no Shell
do TrueNAS-CORE/FreeNAS encontramos a seguinte situação no diretório
/mnt/Pool-Raid-Z/google
Por causa destes
direitos de acesso vinculados ao usuário root e ao grupo wheel, não é possível
visualizar os arquivos sincronizados e copiados do Google Drive no \\172.16.1.214 (ou seu endereço do TrueNAS-CORE/FreeNAS).
Para resolver
isso logue no Shell do TrueNAS-CORE/FreeNAS e execute o seguinte comando:
cd /mnt/Pool-Raid-Z/google
chown -R root:TrueNAS-CORE/FreeNAS
*
Aguardamos um
tempo até as sincronias acabarem e verificamos que ambas foram bem sucedidas
Agora você já tem
uma solução profissional de Backup do Dropbox e do Google Drive imune ao
Ransomware, pois como a sincronia é agendada e Off-Line, não existe risco das
suas cópias de arquivos serem apagadas.
Veremos no
próximo capítulo a questão do Versionamento do Backup através dos Snapshots do TrueNAS-CORE/FreeNAS,
e com este recurso a mais, você poderá inclusive acessar diversas versões de um
mesmo documento ao longo do tempo, impedindo que o Ransomware cause perdas
invisíveis, ou seja, de arquivos que aparentemente estão OK, mas que
internamente estejam comprometidos.
Com o
Versionamento de Backup, você tem 365 dias de versões para cada arquivo e pode
recuperar a última versão válida, antes do ataque do Ransomware.
Fazendo Backup no TrueNAS-CORE/FreeNAS
Agora que já
temos um ambiente operacional completo adequado às mais diferentes
configurações de organização podemos abordar o tema mais importante do TrueNAS-CORE/FreeNAS
que é a sua capacidade de fazer Backup Versionado através de Snapshots.
O TrueNAS-CORE/FreeNAS
cria Snapshots e viabiliza um Backup mais eficiente em termos de tempo (pois é
muito rápido), de espaço (pois é apenas da diferença do que foi alterado), e em
termos de operacionalidade pois ele pode ser feito a quente enquanto os
usuários estão usando os arquivos no mesmo instante em que o Snapshot é criado.
Outro aspecto
muito importante é que o Backup com Snapshot pode ser hierárquico, ou seja,
você pode fazer um Backup Global associado à Pool, ou mais direcionado quando o
Backup é associado ao Dataset ou ao sub-Dataset.
Temos em nosso
exemplo os seguintes Pools e Datasets:
- Pool-Raid-Z
- Windows-Dataset + 12 sub-Datasets
- dropbox
- google
Ou seja, se
criamos uma regra para fazer Backup da Pool-Raid-Z, então todos os 3 Datasets
acima são backupeados ao mesmo tempo.
Mas se a
periodicidade dos Backups dos 3 Datasets for diferente, então você separa o
Backup de cada Dataset e os Snapshots ficam vinculados aos Datasets e não mais
à Pool-Raid-Z.
E ainda tem mais,
caso o seu servidor possua mais de uma Pool, o que não é raro, mais combinações
de Backup se tornam possíveis.
Fazendo Snapshots manualmente.
Nesta modalidade
você entra no Storage > Pools e simplesmente seleciona a Pool ou o Dataset
que você deseja fazer um Snapshot e pronto
Storage > Pools > Pool-Raid-Z >
Windows-Dataset > publico > 3 pontinhos > Create Snapshot
Será gerado um
nome automático para o snapshot com data e hora do backup
CREATE SNAPSHOT
Restaurando um Snapshot completo
Para restaurar o
Snapshot, basta
Storage >
Snapshots
Selecionar
Snapshot
na linha do
Snapshot selecionar setinha para direita
Vão aparecer 3
opções:
- DELETE
- CLONE TO NEW
DATASET
- ROLLBACK
Onde ROOLBACK
retorna todo o conteúdo do Snapshot para a Pool apagando os dados atuais e substituindo-os
pelo conteúdo antigo.
CLONE TO NEW
DATASET é a opção mais adequada pois cria um novo Dataset que pode ser
disponibilizado via Share para os usuários utilizarem.
Veja na figura
que existe o parâmetro de REFERENCED = 128K
Esta informação é
o tamanho de espaço em disco ocupado pelo Snapshot.
Restauração manual de 1 arquivo
Se você deseja
realizar restaurar apenas 1 arquivo e não voltar todos os arquivos precisará
entrar no Shell do TrueNAS-CORE/FreeNAS e fazer isso manualmente
cd /mnt/Pool-Raid-Z/Windows-Dataset/publico/.ZFS/manual-2020-04-14_14-51
ls -lah
cp ShowMyPC3520.exe
/mnt/Pool-Raid-Z/Windows-Dataset/ti
Automatizando o Backup Versionado
Fazer manualmente
um backup é algo nada confiável e com muita margem de erros, portanto a forma
mais adequada é localizar os horários de menor atividade do servidor e nestes
horários da madrugada agendar a operação dos backups, ou ainda o oposto,
localizar os horários mais críticos de operação e agendar muitos backups para
possibilitar maior precisão no restauro das informações.
Exemplificando:
- Fazer backup da
Pool-Raid-Z todos os dias às 00:00 horas guardando por 365 dias
- Fazer backup do
sub-Dataset financeiro a cada 10 minutos guardando por 30 dias.
Estas 2 regras
podem ser implantadas simultaneamente permitindo uma granularidade fantástica
no que diz respeito ao Macro e ao Micro no Backup da Organização.
Roteiro dos Backups automatizados
- Agendar backup
do Pool-Raid-Z para 1 vez ao dia 00:00 horas por 365 dias
- Agendar backup
do Pool-Raid-Z/Windows-Dataset/financeiro a cada 10 min por 30 dias
Agendando
backup do Pool-Raid-Z
Tasks > Periodic Snapshot Tasks > ADD
Dataset = Pool-Raid-Z
Recursive ativado
Snapshot Life Time = 365 Days
Desativar Allow Taking Empty Snapshots
SAVE
Agendando
backup do financeiro
Tasks > Periodic Snapshot Tasks > ADD
Dataset = Pool-Raid-Z/Windows-Dataset/financeiro
Recursive = ativado
Snapshot Life Time = 30 Days
Desativar Allow Taking Empty Snapshots
Schedule the Periodic Snapshot Task* = Custom
Minutes = */10 (vai executar o backup de 10 em 10 minutos)
Hours = *
Begin = 1:00:00
End = 23:00:00
SAVE
Veja abaixo os
arquivos gravados pelo Snapshot automático do sub-Dataset financeiro
Com isso
finalizamos o tema do Backup.
Nada complicado
Tudo funcional e
com configuração rápida e fácil.
Importante as
pastas .zfs que contém os Snapshots são inacessíveis para os usuários dos
Compartilhamentos SMB/SAMBA.
Para que o
Ransomware acesse estas pastas .zfs, seria necessário que seu TrueNAS-CORE/FreeNAS
seja invadido no Sistema Operacional, por isso recomendamos sempre usar senhas
difíceis para o usuário = root e não ativar o serviço de SSH do seu TrueNAS-CORE/FreeNAS.
Quebrou o HD
Vamos ver agora o que fazer quando quebra um HD.
Um HD do seu Raid-Z quebrou.
Você nem percebe o problema pois o Raid-Z continua
funcionando normalmente sem apresentar erros, contudo, no Dashboard do TrueNAS-CORE/FreeNAS
aparece o Status de Pool Degradada.
Isto significa que o disco de Spare que nós configuramos
passa receber o conteúdo que iria para o disco defeituoso até que ele seja
trocado.
O Raid-Z com Spare suporta a perda de até 2 HDs, vamos então
simular a perda de 1 HD e depois a perda de um segundo HD e observar o
comportamento do Raid-Z.
E depois veremos como se faz para restaurar os HDs
defeituosos.
Roteiro
- Remover 1 HD
- Remover segundo HD
- Testar Raid-Z
- Recolocar 1 HD
- Recolocar segundo HD
- Testes Finais
Removendo 1 HD
Pare a máquina Virtual.
Faça um clone dela.
Abra as Configurações de Armazenamento
Selecione o HD_Quebrou-disk1.vdi e remova-o da máquina
virtual
Reinicie a VM
No instante em que o Pool-Raid-Z fica degradado o TrueNAS-CORE/FreeNAS
também te avisa via E-mail, mandando para o seu E-mail a seguinte mensagem:
TrueNAS-CORE/FreeNAS TrueNAS-CORE/FreeNAS.local: Alerts
edson.tagusagawa@gmail.com 18:06 (há 1 hora)
TrueNAS-CORE/FreeNAS
@ TrueNAS-CORE/FreeNAS.local
New
alerts:
* Pool
Pool-Raid-Z state is DEGRADED: One or more devices is currently being
resilvered. The pool will continue to function, possibly in a degraded state..
Para ver o Status da Pool-Raid-Z entre em:
Storage > Pools > Pool-Raid-Z > Engrenagem do lado
direito da tela > Status
Observe que o Spare é ativado e fica indisponível pois está
substituindo o disco perdido.
Removendo Segundo HD
Vamos agora remover o segundo HD.
Desligue a máquina virtual e remova o segundo HD
Observe que apenas 1 partição continua ativa do Raid-Z
original a ada1p2
Testando Raid-Z
Agora sem 2 HDs faltando vamos acessar o Compartilhamento
Windows-Share para ver como está se comportando o Raid-Z.
O Raid-Z está perfeito e funcionando normalmente.
Recolocando 1 HD
Vamos parar novamente a máquina virtual e recolocar um HD de
tamanho 30Gb
para testar.
Para reinstalar um HD você tem que selecionar uma linha e
ativar a opção de REPLACE
Recolocando segundo HD
Agora que você viu como é simples recolocar um HD no Raid-Z
vamos completar sua configuração com todos os 4 discos dele.
Observem que remontamos o Raid-Z com discos de tamanhos
diferentes 20Gb , 30Gb e 40 Gb, isso não importa, todos serão utilizados como
se fossem de 20Gb de tamanho e o tamanho excedente será descartado.
Pronto tudo recuperado, o Pool-Raid-Z está perfeito e
On-Line.
Muitos se perguntam se ao invés de Spare seria melhor criar
um Raid-Z2 com 2 discos de paridade, mas observe bem que o disco de Spare por
não ser usado o tempo todo fica com seu mecanismo preservado de forma que seu
desgaste só ocorre se um HD quebra e precisa ser substituído.
Um Raid-Z2 causaria um desgaste permanente nos seus 2 discos
de paridade diminuindo a vida útil deles, ao contrário do Spare que fica em
imobilidade à espera para ser usado sem se desgastar.
Testes Finais
Conclusões
Ao longo do livro
abordamos teoria e prática, pois sem a teoria você perde a visão do que está
fazendo e pode acabar perdendo dados importantes.
Nos primeiros
exemplos o conteúdo foi mais detalhado para que o leitor pudesse se
familiarizar com as telas, mas na medida em que as coisas passaram a se repetir
passamos a mostrar os comandos em modo texto pois fica mais fácil para
configurar e memorizar.
Seguindo as
receitas, é muito possível que você consiga adaptar os modelos que o livro traz
sem se preocupar muito com a perda de dados.
Os nomes das
Pools, Datasets, Shares, ACLs, Usuários e Grupos utilizados neste livro podem
ser muito bem aproveitados por você, pois são genéricos e não causam problemas
junto ao usuário final que consegue identificar seu nome de login facilmente.
Vimos também o
mais importante que é a manutenção de um Raid-Z com a remoção e substituição de
discos no TrueNAS-CORE/FreeNAS, vocês puderam verificar que toda a operação é
simples e feita pela interface gráfica WEB do TrueNAS-CORE/FreeNAS, sem grandes
problemas ou dificuldades.
Quando uma Pool/Raid
fica degradada, vimos também que o TrueNAS-CORE/FreeNAS envia um e-mail de
aviso por isso é tão importante configurarmos a rede e o e-mail do
administrador = root como é feito no início do livro.
Todo cuidado é
pouco, e um e-mail pode te salvar de situações muito difíceis que é a perda de
mais de um HD simultaneamente na mesma Pool/Raid.
Lembre-se também
de sempre deixar o TrueNAS-CORE/FreeNAS ligado nos Finais de Semana, quando o
Scrub realiza os testes de funcionamento dos HDs físicos.
Sem o Scrub, toda
a segurança dos Snapshots pode ficar comprometida, pois sem testes constantes,
você pode perder tudo sem perceber.
Nos casos reais,
o tempo para a sincronização do Raid-Z será muito maior e demorado, pois o
volume de dados precisará ser processado, mas neste laboratório foi quase
instantâneo, por isso quando algum disco quebrar e o seu Pool-Raid-Z ficar
degradado substitua imediatamente o disco defeituoso, pois levará um bom tempo
para que ele volte a funcionar normalmente, e durante este período de tempo
você estará vulnerável à perda de dados caso outro HD também quebre.
Isso não é
difícil, ainda mais se os HDs forem do mesmo lote com o mesmo erro de
fabricação afetando-os, ou ainda pelo mesmo tempo de desgaste físico pois estão
sendo usados pelo mesmo período de tempo.
Para quem tiver
dúvidas, deixo o meu e-mail para contato,
edson.tagusagawa@gmail.com, mas acredito que o conteúdo é bem
completo e funciona.
Boa sorte e que o
TrueNAS-CORE/FreeNAS possa te ajudar muito no seu dia a dia e abrir novos
caminhos.
