Professional Documents
Culture Documents
Sistema de Arquivo
Sistema de arquivos a um conjunto de estruturas lgicas e de rotinas, que permitem ao sistema operacional controlar o acesso ao dispositivo de armazenamento.
Caractersticas importantes de um sistema de arquivo : independente do hardware e da BIOS; Sem ele, impossvel utilizar qualquer dispositivo para armazenamento de informaes; Responsvel pela segurana e acesso dos arquivos. Partio Sistema de Arquivo
Hierrquico (compost0 de arquivos e diretrios); Case sensitive ; Suporte a muitos tipos de sistemas de arquivos; Os arquivos/diretrios so disponibilizados (ou montados) para manipulao atravs do comando mount, geralmente acionado no processo de inicializao. Ao desligar o computador, corretamente, os sistemas de arquivos so desmontados e no podem mais sofrer mudanas. Para criar sistemas de arquivos utilizamos o comando mkfs A sintaxe : # mkfs [opes] dispositivo [blocos]
Para saber quais sistemas de arquivos so atualmente suportados pelo seu Linux, digite o comando: $ ls /sbin/mk*
Tipo Ext2
Descrio
Sistema de arquivos mais utilizado no LInux por muito tempo Sucessor do Ext2
Vantagem
Suporte a tipos padres do Unix. Suporte a nomes longos Possui Journaling Total compatibilidade com o Ext2 Rpido Journaling nativo Boa performance. Gravao muito rpida Journaling. -
Desvantagem
Sem journaling
Ext3
Para ser totalmente compatvel com o Ext2 algumas funes no foram implementadas. Alto consumo da CPU
ReiserFS
Uso de uma nova estrutura de dados chamada B+Trees Ideal para banco de dados . Espao reservado para troca de dados com a memria RAM Usada para mdias removveis
Substituto do fsck Capacidade de acompanhar as mudanas que sero feitas no sistema de arquivos antes que realmente sejam feitas. Divide a fase de escrita dos dados em duas partes: Agendamento e Escrita. A perda de performance praticamente inexistente
Diret rio / /bin /boot /etc /home /var /tmp /opt /usr /lib /root /sbin /proc /dev
Descrio Raiz Binrios de comandos essenciais do sistema Inicializao do sistema (Grub, kernel do Linux, etc) Arquivos de configurao do sistema Armazenamento de dados pessoais dos usurios Logs do sistema Arquivos temporrios Projetos diversos ou programas no oficiais Arquivos nativos do usurio Bibliotecas e mdulos do sistema Superusurio Comandos binrios de uso exclusivo do root Acesso direto aos processos existentes na memria Dispositivos do sistema Exemplo de um layout padro no Linux:
Entidade do ncleo do Linux responsvel pela interface entre as requisies de arquivos dos processos e o acesso aos diferentes tipos de sistemas de arquivos suportados. Divididos em trs categorias:
Baseados em discos (DVD-Roms, ext3, ReiserFS, etc) De suporte a rede (NFS, SMB, etc); e Sistemas de arquivos especiais (ramfs, devfs, etc)
Usurio
System Call
Disco
Diferente de outros sistemas operacionais tudo no Linux tratado como um arquivo e cada arquivo possui associado a ele, um conjunto de atributos. Um deles so as permisses relativas a ele prprio.
Tipo e Permisso
QD Dono
Grupo
T.Arq.
Data e Hora
Nome do arquivo
Flag d l c s p Descrio Arquivos Comuns Diretrio Links Dispositivo de caracteres Sockets Pipes
S Setgid
Ativa Nenhum Bit stick Bit setgid Bits sticky e segid Bit setuid Bit setuid e sticky Bit setuid e setgid
T Sticky
r w x Dono
Atributo 0 1 2 3 4 5 6 7 Permisso Nenhuma Execuo Escrita
r w x Grupo
r w x Outros
Escrita e execuo Leitura Leitura e execuo Leitura e escrita Leitura, escrita e execuo
chmod Altera as permisses de acesso aos arquivo chmod [opes] <modo_arquivo> <arquivo> Bits de Atributos definem um controle adicional s permisses de proteo:
Setuid Setgid Sticky
Arquivos imutveis so um dos recursos mais poderosos de segurana e administrao do sistema disponveis em sistemas Linux. No podem ser escritos por qualquer usurio, somente superusurio, independentemente das permisses de arquivo. No podem ser excludos ou renomeados, e nenhum link direto pode ser criado a partir deles. So ideais para proteger arquivos de configurao ou outros arquivos para o qual voc deseja evitar alteraes e que voc sabe que no vai ou no deve ser alterado.
Usa-se o comando chattr (apenas usurios root) # chattr -V +i /etc/passwd chattr 1.34 (05-Jun-2010) Flags of /etc/passwd set as ----i-------O arquivo agora passou a ser imutvel, ao tentar remover aparecer o seguinte: # rm /etc/passwd rm: remove write-protected regular file `/etc/passwd'? y rm: cannot remove `/etc/passwd': Operation not permitted
Localizar todos os arquivos do sistema com os bits setuid ou setgid ligados. # find / -type f -a \( -perm 0400 -o -perm 0200 \) ls Identificar todos os arquivos com permisso de escrita universal. # find / -perm -2 ls Identificar arquivos que no pertencem a nenhum usurio ou a nenhum grupo. # find / -nouser -o -nogroup ls Aps a instalao de um sistema, gerar um arquivo que liste a configurao inicial dos arquivos do sistema e guardar em um local seguro: # ls -aslgR /bin /etc /usr >> MasterChecklist Para pesquisar alteraes no sistema de arquivos, execute o comando acima novamente e compare-o com o arquivo mestre: # diff MasterChecklist Currentlist
Colocar os principais diretrios do sistema, em parties separadas. Instale somente o necessrio para um ambiente de Produo e documente as instalaes desses programas. Como root, verificar a PATH e certificar-se de que realmente esteja executando o programa que deseja, no local que este deveria estar. Faa backups frequentes do sistema de arquivos. Nunca mude as permisses de um arquivo para tornar seu trabalho mais fcil. Antes de alterar a permisso de qualquer arquivo do sistema, primeiro tenha certeza de que voc est fazendo. Em casos de extrema de segurana, onde o prprio acesso ao disco rgido no garantido, pode ser interessante criptografar os dados contidos no sistema de arquivos.
Podemos criptografar dados, usando chave privada, de forma simples e rpida. Para fazer essa criptografia simtrica convencional, usamos o gpg. # gpg -c teste.txt Enter passphrase: Repeat passphrase: Aps a concluso do comando gpg -c, uma verso criptografada do arquivo teste.txt ser criada,chamada teste.txt.gpg . Se no precisar da verso no criptografada, exclua.
Opo -a --ciper-algo name --version -o file -v Descrio Cria uma sada ASCII blindada Usa um algoritmo de criptografia particular Mostra a lista de algoritmos de criptografia disponveis Escreve a sada para um arquivo especificado Habilita o modo verbose.
Criando um arquivo encriptado e escolhendo a cifra que vai ser utilizada: # gpg -c-a cipher-algo [cifra_opo] [arquivo]
No fim ser solicitado uma senha que ser usada toda vez que voc quiser assinar ou descriptografar uma mensagem. Para listar as chaves: #gpg --list-keys pub 1024D/D485CFG4A 2007-07-29 [expira: 2010-09-10] uid Joao Galdino <email>
Criptografar um sistemas de arquivo inteiro, permite proteger todo o volumes de dados (por exemplo, backups), registros e arquivos privados, significando que mesmo que um invasor tenha penetrado no sistema, ele no ser capaz de ler qualquer coisa. Interessante pra ser usado por donos de dispositivos mveis (laptops, etc) com dados crticos deixando-o mais seguro de dados . Antigamente, criptografar sistemas de arquivo no Linux, eram feitas por por solues de terceiros, tais como sistemas de circuito CFS5 ou criptografia de arquivos, tais como Loop-AES.6 Posteriormente progressos foram feitos para incorporar essa funcionalidade diretamente no kernel, primeiro com Cryptoloop e depois com dm-crypt.
Usaremos o dm_crypt para criar um sistema de criptografia de arquivos loop. Isso permitir o armazenamento de arquivos particulares em um nico sistema de arquivos criptografados em vez de criptografar todos os arquivos individuais. necessrio que o kernel esteja na verso 2.6 ou superior. Para usar as funcionalidades do dm-crypt necessrio instalar um pacote chamado cryptsetup (# yum install cryptsetup) e dois pacotes adcionais: libgcrypt e libgpg-error
Depois de tudo pronto e instalado e atualizado , estamos pronto para criar um sistema de arquivo criptografado. 1. Criar um Arquivo de Imagem Vazio: # dd if=/dev/urandom of=/home/bob/safe.img bs=1k count=10024 2. Criar um Dipositivo de Loop # losetup /dev/loop0 /home/bob/safe.img 3. Criar um Sistema de Arquivo Criptografado # cryptsetup -y create safe /dev/loop0 Enter passphrase: Verify passphrase:
Introduo
Verses
NFSv4
Segurana NFSv4 Pontos Negativos NFSv4
NFS
NFS (Network File System) protocolo criado para ter acesso a arquivos remotos. Caractersticas: quase transparente para o usurio Sem estado: nenhuma informao perdida quando um servidor NFS trava Os clientes podem aguardam o servidor voltar e continuam a trabalhar como se nada tivesse acontecido Implementado originalmente como substituto para mquinas cliente sem disco Protocolo mostrou ser bem projetado e til como soluo genrica para compartilhamento de arquivos Praticamente toda distribuio Linux moderna conta com pelo menos um suporte mnimo a NFS
Linux suporta ambas as verses a partir do kernel2.6 O NFS 4 est em desenvolvimento e suportado parcialmente pelo kernel2.6 em diante
Originalmente o NFS usava UDP O NFS faz sua prpria remontagem de seqncia de pacotes e verificao de erros, mas no tem algoritmos de controle de congestionamento TCP foi introduzido e permitiu uso do NFS atravs de roteadores na Internet
Foi projetado sem preocupaes com segurana (preo da convenincia) Linux implementa alguns recursos para reduzir fragilidades do NFS
O acesso aos volumes NFS dado por um arquivo /etc/exports Frgil: servidor confia nos clientes para informarem quem so fcil fazer os clientes mentirem sobre suas identidades Voc deve ter o cuidado de exportar somente para os clientes que confia, tomando cuidado para no exportar acidentalmente para o mundo todo
Como acontece com sistemas de arquivos locais, o controle de acesso em nvel de arquivo controlado pelos UIDs e GIDs e as permisses do arquivo. Importante manter UIDs e GIDs nicos em toda a rede Usurios com acesso root em um sistema podem mudar seu UID para o que bem entender, e assim o servidor inocentemente dar acesso aos arquivos correspondentes
Como padro o servidor Linux NFS intercepta solicitaes que chegam feitas em nome de UID 0 e as altera para que paream vir de outro usurio Essa modificao chamada squashing root(encurralando o root) A conta root fica limitada s habilidades de um usurio comum Uma conta substituta chamada nobody definida para esse pseudo-usurio O UID tradicional de nobody 65534
Pode ser alterado atravs de opes de exportao anonuid e anongid Tambm podemos usar a opo all_squash para associar os UIDs de todos os clientes ao mesmo UID no servidor
til para um sistema de arquivo de acesso pblico Temos a opo no_root_squash que desabilita a associao do UID para root Perigosa, mas as vezes necessria
Os protocolos NFSv2 e NFSv3, da forma em que foram especificados, utilizam o protocolo RPC verso 2, que no possui qualquer mecanismo que possibilite a garantia da integridade, privacidade ou no-repdio dos dados. Exemplo Privacidade: Portanto, nas verses 2 e 3 do NFS, um atacante pode realizar um ataque conhecido como sniffing,que consistem simplesmente em capturar todo o trfego no cabo de rede e, dessa forma, conseguir ter acesso de leitura a todos os dados (arquivos e diretrios) acessados naquele instante. Exemplo Integridade: Utilizando um conhecido ataque chamado man-in-themiddle, o adulterador poderia interceptar uma mensagem RPC e dessa forma alterar o contedo das requisies e respostas do NFS. Com esse ataque pode-se, por exemplo, alterar o contedo das chamadas WRITE() em andamento naquele instante e, desse modo, alterar o contedo de arquivos gravados no servidor.
Exemplo No-Repdio: um usurio pode negar que tenha realizado certas operaes no servidor. Uma situao emblemtica desse problema o caso de um usurio que deleta arquivos importantes do servidor e que poder negar que o tenha feito. O NFSv3 utilizado atualmente no prov nenhum mecanismo que permita que o cliente autentique o servidor. O cliente no tem como descobrir se o servidor , de fato, o servidor legtimo, ou se alguma outra mquina est se passando pelo servidor. Exemplo : O atacante poderia utilizar para impersonar o servidor e explorar a falta de autenticao do NFS. Tcnicas como IPspoofing, DNS spoofing e man-in-themiddle, so comprovadamente eficientes para tal objetivo. O atacante poderia utilizar um servidor falso, por exemplo, para receber arquivos ou para disponibilizar arquivos falsos.
Integrao do NFS com firewalls: O servidor NFS com verso 2 e 3 no utiliza um nmero de porta fixo, ou seja, no se pode saber de antemo em qual porta o servidor aguarda requisies. Apesar desse servio estar sempre executando na porta 2049, possvel que ele esteja aguardando em outra porta. Logo, necessrio consultar um outro servio chamado portmapper para se descobrir em qual porta est registrado o servio NFS. O grande problema disso que, como o nmero da porta varivel, fica extremamente difcil projetar regras de filtragem do trfego de NFS.
O NFSv4 apresenta uma ruptura com as verses anteriores. O protocolo foi extremamente modificado, inclusive em questes tidas como alicerces da antiga verso. Exemplo disso o fato do novo protocolo manter estados das operaes no servidor. Na verso antiga, o servidor no mantinha estados (stateless). As operaes eram independentes e por isso no se fazia necessrio qualquer mecanismo de recuperao de falhas. Dentre as principais mudanas no protocolo destacam-se: O uso do TCP mandatrio, embora continue suportando o UDP. Permite chamadas de RPC compostas, ou seja, vrias operaes em uma mesma mensagem. O NFSv4 combina diferentes protocolos (Mount, NLM, etc) em nico protocolo. Introduz delegao de arquivos, o que permite mecanismos eficientes de cache. Diversos mecanismos de segurana usando criptografia forte em carter mandatrio, com suporte negociao do nvel de segurana.
O NFSv4, assim como as outras verses, baseia-se no modelo de Segurana do RPC para garantir a segurana de seus servios. Porm, o NFSv4 obriga a implementao do esquema RPCSEC_GSS que baseado na Generic Security Services API (GSS-API) . Uma implementao compatvel com o NFSv4 obrigatoriamente deve implementar dois mecanismos de segurana sob a interface GSS. So eles: Kerberos V5 e LIPKEY. Tendo em vista que o NFSv4 pode oferecer diversos mecanismos de segurana, o cliente precisa de algum mtodo para negociar qual o mecanismo de segurana a ser usado na comunicao com o servidor. Um servidor que exporta diversos pontos de montagem pode especificar quais os algoritmos adequados para cada uma dessas entradas.Para realizar essa negociao, foi introduzida uma nova operao no NFS chamada SECINFO, que permite que o cliente pergunte qual a segurana que o servidor requer para acessar determinado diretrio.
O NFSv4 eliminou a necessidade do portmapper para descobrir a porta onde o servidor aguarda conexes. O novo protocolo fixa a porta 2049 como a porta padro do NFS verso 4. Essa mudana, aliada ao uso do TCP, favorece o uso do NFS na Internet e facilita a filtragem desse protocolo atravs de firewalls.
H mecanismos para garantir autenticao, integridade e privacidade, de forma bastante confivel. Apesar de no haver autenticao da mquina cliente e servidora, isso no to preocupante, pois h a autenticao do usurio e da aplicao servidora. Dessa forma possvel que um usurio legtimo obtenha acesso a partir de uma mquina no permitida, mas isso pode ser impedido com o uso de firewalls.
Complexidade. A especificao do protocolo bastante extensa e incompleta Diversos assuntos como replicao e migrao de servidores esto em aberto. Muitos algoritmos e mecanismos de segurana so especificados como mandatrios para que a implementao seja considerada compatvel com o NFSv4 .
Samba
O Samba um "software servidor" para Linux (e outros sistemas baseados em Unix) que permite o gerenciamento e compartilhamento de recursos em redes formadas por computadores com o Windows. Assim, possvel usar o Linux como servidor de arquivos, servidor de impresso, entre outros, como se a rede utilizasse servidores Windows (NT, 2000, XP, Server 2003).
Vias de Instalao: Gerenciador synapt (ubuntu), apt-get install, rpm (make, make install)
Inicio em 1991 por Andrew Tridgell DEC => eXcursion + Patchworks Clockspy = teste entre ms-dos e solaris Recebeu uma e-mail de uma pessoa que testou na aplicao LanManeger onde permitia compartilha arquivos no unix com MS-DOS. Em 1992 : Server 0.1, Server 0.5 Em 1993: SmbServer 1.5 - 1.6.4 Em 1994: Samba 1.6.05 samba4 (atual) Tambm a Mirosoft liberou a SMB
Vias: Gerenciador synapt (ubuntu), apt-get install, rpm (make, make install)
Prtica!
Gerenciador de log Apartir do samba 3.4 foi incluido um mdulo de auditoria dentro do smb.conf.
vfs objects = full_audit full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir, chmod, chown full_audit:prefix = %u|%I|%S full_audit:failure = none full_audit:facility = local5 full_audit:priority = notice
Para funcionar:
/etc/syslog.conf
Local5.notice /var/log/samba-full_audit.log
#cat /var/log/samba-full_audit.log | grep joao|192.168.1.23 #cat /var/log/samba-full_audit.log | grep |arquivos| #cat /var/log/samba-full_audit.log | grep |arquivo| > arquivo.log