FACULDADE CAMPO REAL ESTER DE ARRUDA CAMPOS LUCAS PAULO ZUKOVSKI AUDITORIAS E LIXEIRAS USANDO O SAMBA: compartilhamento de arquivos com acesso total em redes mistas GUARAPUAVA 2008 ESTER DE ARRUDA CAMPOS LUCAS PAULO ZUKOVSKI AUDITORIAS E LIXEIRAS USANDO O SAMBA: compartilhamento de arquivos com acesso total em redes mistas Monografia apresentada à Faculdade Campo Real, como requisito parcial para obtenção do título de Especialista em Redes de Computadores – Academia CISCO na Conclusão do Curso de Especialização . Orientadores: Hermano Pereira GUARAPUAVA 2008 Z946a Campos, Ester de Arruda Auditoria e lixeiras usando samba: compartilhamento de arquivos com acesso total em redes mistas / Lucas Paulo Zukovski, Ester de Arruda Campos. – – Guarapuava: s.n., 2008. 40 f.: il.; 28 cm Trabalho de Curso (TC) apresentado à Faculdade Campo Real, ao Programa de Pós-Graduação e Especialização em Redes de Computadores - ACADEMIA CISCO CCNA, 2008 Orientadores: Hermano Pereira Bibliografia 1. Informática. 2. Redes de Computadores. 3. Compartilhamento de dados. 4. Samba – Programa de Computador. 5. Redes de Computadores – Auditoria. 5. Redes Mistas de Computadores. I. Autor. II. Título. III. Faculdade Campo Real. CDD 004.6 Ficha catalográfica elaborada por Regiane de Souza Martins -CRB9/1372, bibliotecária da Faculdade Campo Real. CAMPOS, Ester de Arruda; ZUKOVSKI, Lucas Paulo. Implementando auditorias e lixeiras usando o Samba sobre compartilhamento de arquivos com acesso total em redes mistas. 127 p. Trabalho de Curso (TC) do Curso de Redes de Computadores Academia CISCO – Faculdade Campo Real, Guarapuava-PR, 2008. RESUMO Com a crescente popularização das redes de computadores, a utilização de arquivos e programas armazenados em diferentes máquinas tornou-se uma tarefa comum tanto em empresas como em pequenas redes domésticas. Nesse tipo de ambiente, por muitas vezes é necessário implementar um esquema de auditoria, de modo que seja possível controlar acessos e alterações realizadas nos arquivos armazenados em um servidor de rede; e também implementar a utilização de lixeiras, provendo segurança contra a exclusão acidental de dados importantes. O protocolo de rede SMB/CIFS implementa o compartilhamento de arquivos em redes locais baseadas em Windows, e através do aplicativo Samba, este mesmo protocolo está disponível em redes baseadas em sistemas Unix (Linux, BSD, Solaris). Este trabalho mostra como é possível implementar auditoria e lixeiras utilizando um servidor Samba executando em um servidor Linux, de modo que possa ser utilizado tanto para grandes redes como para uma pequena rede empresarial ou doméstica. Palavras Chave: Compartilhamento. AUDITORIAS. Redes de Computadores. CAMPOS, Ester de Arruda; ZUKOVSKI, Lucas Paulo. Deploying audits the dumps using the Samba to share files with full access in mixed networks. 127 p. Work of Curso (WC) of the Course of Right – Faculty Campo Real, Guarapuava-PR, 2008. ABSTRACT With the increasing popularization of computer networks, the use of files and programs stored on different machines has become a common task both in companies and in small home networks. In this type of environment, for many times is necessary to implement an audit scheme, so that you can control access and changes made to files stored on a network server, and also implement the use of dumps, providing security against accidental deletion of important data. The network protocol SMB / CIFS implements the sharing of files on local area networks based on Windows, and through the application Samba, the same protocol is available on networks based on Unix systems (Linux, BSD, Solaris). This work shows how you can implement auditing and dumps using a Samba server running on a Linux server, so it can be used both for large networks and for a small business or home network. Words-Key: Sharing. Audits. Computer Networks. LISTA DE ILUSTRAÇÕES Figura 1 – Nome de domínio 24 Figura 2 – Usar as configurações WINS 25 LISTA DE ABREVIATURAS E SIGLAS LAN Local Area Network SMB Server Message Block NetBIOS Network Basic Input Output System IBM International Business Machines CIFS Common Internet File System TCP/IP Transmission Control Protocol/ Internet Protocol OSI Open Systems Interconnection FSMO Flexible Single Master Operation FTP File Transfer Protocol NCP NetWare Core Protocol NetBEUI NetBIOS Enhanced User Interface AD Active Directory PDC Primary Domain Controller BDC Backup Domain Controller AFP Apple Filing Protocol SAP Service Advertising Protocol NFS Network File System SUMÁRIO 1 INTRODUÇÃO.....................................................................................................12 1.1 JUSTIFICATIVA................................................................................................13 1.2 OBJETIVOS......................................................................................................13 1.3 ESTRUTURA DA MONOGRAFIA....................................................................13 1.4 METODOLOGIA UTILIZADA............................................................................14 2 SAMBA................................................................................................................15 2. 1 COMPARTILHAMENTO DE ARQUIVOS........................................................15 2. 2 PROTOCOLOS................................................................................................15 2. 3 SMB/CIFS........................................................................................................16 2.3.1 Histórico NetBIOS..........................................................................................18 2.3.2 Controladores de domínio e clientes.............................................................18 2. 4 APLICATIVO SAMBA......................................................................................20 2.4.1 Arquivo de configuração................................................................................23 2.4.1.1 Alguns parâmetros de seções Samba........................................................24 2.4.1.2 Variáveis mais comuns...............................................................................27 2.4.2 Histórico Samba.............................................................................................28 3 PREPARANDO O SISTEMA ..............................................................................30 3.1 SISTEMA OPERACIONAL...............................................................................30 3.1.1 Codinomes das distribuições Debian............................................................30 3.2 INSTALAÇÃO SAMBA......................................................................................32 3.2.1 Inicialização Automática.................................................................................35 3.2.2 Carregamento durante o Boot.......................................................................36 4 CONFIGURAÇÕES.............................................................................................36 4.1 PASTA AUDITORIA..........................................................................................36 4.2 EDITANDO O smb.conf....................................................................................36 4.3 CONFIGURAÇÃO PROPOSTA........................................................................44 4.3 CENÁRIO DE AUDITORIA...............................................................................44 CONCLUSÃO.........................................................................................................46 REFERÊNCIAS.......................................................................................................48 BIBLIOGRAFIA CONSULTADA............................................................................49 APÊNDICE 1: Compartilhamentos Samba em estações com Windows Vista. 50 APÊNDICE 2: Cron e Crontab................................................................................51 APÊNDICE 3: Linux e Estruturas de Diretórios......................................................52 INTRODUÇÃO Com o aumento da utilização de sistemas informatizados cresceu também a necessidade de manter todos os sistemas interligados, de forma que as pessoas possam compartilhar recursos como pastas de arquivos, impressoras e outros dispositivos de hardware. Atualmente, qualquer computador que esteja em uma rede local (LAN) tem a capacidade de compartilhar esses recursos com outros computadores em sua rede ou até mesmo com toda a Internet. Com isso vários benefícios podem ser disponibilizados, como a agilidade no acesso a dados, economia de equipamentos como impressoras e discos, que podem ser utilizados por várias máquinas, mesmo estando conectados fisicamente em apenas uma delas. 1. 1 JUSTIFICATIVA No começo da década de 1990, os sistemas operacionais Microsoft Windows 3.1/3.11 trouxeram uma enorme evolução com relação ao compartilhamento de arquivos e recursos. Esses sistemas forneceram ao usuário a possibilidade de indicar quais recursos seriam disponibilizados para os outros computadores da rede. Utilizando essa ferramenta e com o crescimento dos acessos a internet os usuários passaram a ter acesso a arquivos sem os seus respectivos direitos autorais, por exemplo. Para ter um controle sobre essas e outras atividades as redes corporativas como empresas, universidades e órgãos governamentais, implementaram políticas de acesso a arquivos e outros recursos e passaram a normatizar a estrutura e funcionamento de suas redes locais. A partir de então todo administrador de rede passou a ser orientado a planejar e manter um ambiente de rede que atenda às necessidades e às exigências de sua corporação. Garantindo o acesso limitado a informações sigilosas com segurança. No entanto, devido ao aumento da utilização ocasionado por esta facilidade de compartilhar recursos, trazida pelos sistemas Windows, começaram a aumentar também o número de transtornos ocasionados com relação à manipulação e exclusão dos arquivos. O fato de um computador remoto poder remover documentos de um servidor de arquivos sem a utilização de uma lixeira pode gerar um grande problema relativo à confiabilidade e à segurança dos dados em rede. −1.2 OBJETIVO A fim de solucionar questões como o problema relativo à confiabilidade e à segurança dos dados em rede, bem como permitir maior controle sobre os dados que estão armazenados em determinado servidor, a implementação de um sistema de auditoria sobre arquivos e pastas compartilhadas torna-se necessário. E isto é possível - Utilizando recursos de hardware modestos e com um custo baixo – Configurar um servidor de modo que ele armazene informações a respeito de qual estação/usuário colocou, alterou ou removeu arquivos. Objetivamos criação da pasta Lixeira para armazenar os arquivos que tenham sido excluídos ou alterados, de forma que possamos recuperá-los, caso necessário. Armazenando todo processo de movimentação de arquivos da pasta compartilhada. −1.3 Estrutura da Monografia O Capítulo 1 irá definir o que vem a ser um compartilhamento de arquivos, apresentar o protocolo SMB/CIFS e sua importância ao tratarmos de assuntos que envolvam a necessidades de compartilhamentos de arquivos. Apresenta-se o Samba como uma opção ao compartilhamento de arquivos e um breve histórico sobre o sistema. No Capítulo 2 será apresentado o sistema operacional necessário e recomendado para que seja possível a implementação dos recursos de auditoria e compartilhamento de arquivos com acesso total. As configurações necessárias para instalação do aplicativo Samba, serão apresentadas bem como alguns procedimentos importantes para realização da instalação. O Capítulo 3 mostrará a configuração necessária para que possamos ter um compartilhamento de arquivos funcionando em uma rede formada por computadores com sistemas operacionais Linux e Windows. Será mostrado como implementar os serviços de auditoria sobre uma pasta de arquivos, com uma pasta atuando como lixeira para arquivos que são excluído e ou renomeados na rede, recursos que são propiciados pelo Samba. Por fim, apresentar-se-á a configuração do arquivo smb.conf como sugestão para solução da situação proposta. No apêndice 1 apresentaremos uma solução para o compartilhamento Samba seja configurado em estações com o sistema operacional Windows Vista. No apêndice 2, uma forma de agendar tarefas em sistemas Linux será apresentada. No apêndice 3, será apresentadas uma explicação sobre o que vem a ser um estrutura de diretórios e permissões para sistemas Linux. −1.4 Metodologia Utilizada Utilizar-se-á o método de pesquisa aplicada cuja meta é contribuir para fins práticos buscando soluções para problemas concretos. −2. SAMBA −2.1. COMPARTILHAMENTO DE ARQUIVOS [Zwicky, 2000] define dois tipos de trocas de arquivos entre computadores que podem ocorrer em uma rede local, denominando-os transferência e compartilhamento de arquivos. Na transferência de arquivos, um usuário copia um arquivo de ou para um servidor, mantendo uma cópia no servidor e outra cópia no cliente. Nesse tipo de troca, uma alteração no arquivo do cliente não é replicada no servidor. Já no compartilhamento, o arquivo permanece no servidor, onde é acessado e modificado pelo cliente, de modo que apenas uma cópia do arquivo existe. Este modelo de compartilhamento é bastante útil em situações onde muitas pessoas precisam trabalhar com um determinado arquivo de modo colaborativo. − 2.2. PROTOCOLOS Um protocolo é definido como um conjunto de normas que viabilizam a comunicação entre computadores. Traçando um paralelo com a comunicação oral (fala), podemos dizer que o meio de comunicação utilizado (cabos de partrançado/sinais elétricos, fibra ótica/sinais de luz, redes sem fio/ondas eletromagnéticas) equivale à fala, enquanto que o protocolo de rede equivale ao idioma utilizado. É o idioma que permite que a fala de várias pessoas seja compreensível entre si. No caso das redes locais (LAN), existem diversos protocolos capazes de compartilhar recursos de rede (impressoras, arquivos, pastas), e sua utilização depende normalmente do sistema operacional utilizado. Redes baseadas em Mac OS utilizam o AFP (Apple Filing Protocol, também conhecido como AppleShare); redes Novell NetWare utilizam os protocolos NCP (NetWare Core Protocol) e SAP (Service Advertising Protocol); redes baseadas em DOS/Windows utilizam o protocolo SMB (Server Message Block), também conhecido como CIFS (Common Internet File System); e os sistemas Unix diversos (incluindo Linux) utilizam o NFS (Network File System) e também o SMB/CIFS. Por fim, para a transferência de arquivos via Internet o padrão de fato é o protocolo FTP (File Transfer Protocol). Existe uma grande variedade de formas de utilizar estes protocolos (por exemplo, máquinas Unix podem se comunicar através do SMB e do NetWare, máquinas Microsoft e Apple podem se comunicar através do NFS, e servidores Microsoft podem traduzir Netware e AppleShare em SMB). Isto permite que plataformas de software diferentes entre si (Windows, Apple e Linux) se comuniquem. Neste trabalho trataremos apenas do protocolo SMB/CIFS em redes que possuem computadores executando os sistemas Windows e Linux. 2.3. SMB/CIFS O Server Message Block/Common Internet File System SMB/CIFS é um protocolo de redes usualmente utilizado para o compartilhamento de arquivos em uma LAN. Com esse protocolo os usuários de uma rede podem trabalhar seus arquivos como se eles estivessem disponíveis em suas estações locais. Isto significa que operações como leitura, escrita, criação, exclusão e renomeação serão permitidas com o diferencial de que esses arquivos, que estão sendo manipulados não estão na estação de trabalho local, mas em uma estação de trabalho remota. Didaticamente, o protocolo SMB/CIFS envia pacotes do cliente para servidor. Esses pacotes caracterizam por requisições do tipo abertura ou leitura de arquivos. O servidor ao receber uma requisição fará uma análise para verificar se a requisição tem validade, isto é, se o cliente tem permissão de leitura, por exemplo. Finalmente, após essa verificação o servidor executa a requisição retornando ao cliente um pacote com a resposta. O cliente então analisará o pacote de resposta para verificar se a requisição inicial foi completada com sucesso ou não. O SMB/CIFS está inserido na camada do modelo OSI como um protocolo de camada de APLICAÇÃO/APRESENTAÇÃO com isso é razoável concluir que ele utiliza protocolos de camadas inferiores como, por exemplo, o protocolo NetBEUI para o transporte. NetBEUI – NetBIOS Enhanced User Interface, protocolo proprietário da Microsoft, que acompanha todos os seus sistemas operacionais e produtos de rede, como Windows 9x/ME, Windows NT, LAN Manager, LAN Server, etc. Esse protocolo atua nas camadas 3 e 4 do modelo de referência OSI. Apesar de ser um protocolo pequeno e rápido, duas desvantagens podem ser observadas quando nos referimos a redes com mais de 50 estações de trabalho: É um protocolo não roteável, impossibilitando seu uso em redes que utilizem roteadores para se comunicar com outras redes. Utiliza mensagens de broadcast1 para comunicar qualquer alteração realizada o que acaba congestionando a rede. Se uma estação de 1 broadcast – Transmissão - Mensagens enviada a todos integrantes de uma rede local. trabalho enviar um pedido de impressão todas as máquinas conectadas na rede receberam uma mensagem com essa solicitação. −2.3.1. Histórico NetBIOS − Inicialmente o Network Basic Input Output System - NetBIOS foi desenvolvido pela International Business Machines - IBM no início da década de 80. É um sistema que realiza troca de mensagens entre máquinas que estão em rede. Opera na camada 5 do modelo de referência OSI (camada de sessão) interligando programas com o protocolo NetBEUI. O NetBIOS pode ser utilizado também com outros protocolos diferentes do NetBEUI, como por exemplo o protocolo TCP/IP (Transmission Control Protocol, Protocolo de controle da transmissão / Internet Protocol, Protocolo de Internet) operando, dessa forma, nas camadas 3 e 4 do modelo OSI e permitindo que programas que utilizam “linguagens” comuns para acessarem a rede, não dependendo do protocolo instalado na rede. Com a popularização dos sistemas Microsoft Windows na década de 90, em especial a partir da versão 3.1, tornou-se fácil e usual compartilhar arquivos em rede. A partir de então cada Ambiente de Trabalho - Desktop começou a ser encarado como um potencial "servidor de arquivos" na rede. Esse recurso só foi possível devido à existência de um protocolo que possibilitou a troca de mensagens na rede. Que em redes Microsoft que ficou conhecido por Server Message Block SMB, sistema esse baseado no NetBIOS criado pela IBM. −2.3.2. Controladores de domínio e clientes Nas redes baseadas em servidores Windows NT, um Controlador de Domínio (DC) é um servidor que responde a requisições de autenticação de usuário (login, permissões, etc) dentro de um domínio. Até a versão 4.0 do sistema Windows NT, para cada domínio é configurado um Controlador de Domínio Primário (PDC, do inglês Primary Domain Controller). Quaisquer outros controladores de domínio existentes atuarão como Backup do Controlador de Domínio (BDC, do inglês Backup Domain Controller). A função do BDC é restrita a autenticar usuários em um domínio, deixando as tarefas que envolvam alterações e atualizações da base de dados de usuários - como a criação de novos usuários, trocas de senhas, configurações de membros de grupos apenas para o PDC. Este, por sua vez, propagará as alterações a todos os BDCs existentes no domínio. Caso um PDC esteja indisponível, não podendo se comunicar com o usuário que requisitou a alteração, ocorrerá uma falha na atualização da base de dados. Se um PDC ficar indisponível permanentemente, um dos BDCs pode ser promovido a PDC. A partir do Windows 2000, foi introduzido o conceito de Active Directory (AD), o qual acabou por eliminar o conceito de PDC e BDC, permitindo que tanto a atualização da base de dados como sua replicação ocorra em todos os servidores AD da rede. Ainda assim há determinadas funções que apenas um dos controladores de domínio pode realizar, as quais são chamadas "Operações Mestre", ou simplesmente FSMO (do inglês "Flexible Single Master Operation"). Estas operações mestre possuem algumas funções referentes ao domínio local e outras que requerem apenas um servidor específico para todo o AD. Em redes baseadas em Windows que possuam os dois tipos de servidores (até Windows NT4 e a partir do Windows 2000) é possível eleger um AD para atuar como um Emulador Principal de PDC, de modo que este atuará como PDC para as estações baseadas em NT4, mantendo a compatibilidade entre as duas diferentes estruturas de domínios. A partir da versão 3, o Samba oferece serviços de compartilhamentos de arquivos e de impressão para vários clientes Microsoft Windows e pode se integrar a um domínio de rede baseado em Windows, tanto como um PDC ou como um membro do domínio. O Samba também pode fazer parte de um domínio baseado em Active Directory (AD). −2.4. APLICATIVO SAMBA Samba é um programa de computador que implementa o protocolo SMB sobre a pilha de camadas do modelo TCP. É capaz de oferecer todas as operacionalidades do compartilhamento de arquivos Microsoft Windows, com o diferencial de que elimina a necessidade de dispender recursos com licenças de software, acaba-se com a necessidade de reinicializar o sistema para uma mudança nas configurações e implementam estabilidade e confiança no sistema. Ao fazer uso do aplicativo Samba tornamos possível compartilhar recursos de servidores Linux para estações Windows e vice-versa: através dos protocolos SMB e CIFS. Toda configuração é feita no arquivo /etc/samba/smb.conf. Como exemplo, observe a configuração abaixo que irá permitir aos usuários de uma rede acesso a todas as impressoras e diretórios de usuário na máquina. Neste caso diretórios pessoais poderão ser acessados apenas por seus donos, mediante fornecimento de senha. [global] #nome do grupo na rede workgroup = Guarapuava #nome do computador netbios name = servidor server string = server [homes] comment = Home Directories read only = No browseable = No [printers] comment = All Printers path = /var/spool/samba printable = Yes browseable = No Clientes Windows poderão visualizar o servidor Samba acessando o ambiente de rede e exibindo assim os compartilhamentos disponíveis, como em um servidor windows. Módulos do pacote Samba: • Smbclient - Ferramenta para navegação e gerenciamento de arquivos, diretórios e impressoras compartilhadas por servidores Windows ou samba. • smbfs – Pacote que possui ferramentas para o mapea- mento de arquivos e diretórios compartilhados por servidores Windows ou samba em um diretório local. • winbind - Daemon que resolve nomes de usuários e grupo através de um servidor NT/SAMBA. • Samba – servidor samba. Esses dois módulos são independentes tornando possível instalar o smbclient em uma máquina e instalar o server somente nas máquinas que irão compartilhar arquivos. −2.4.1. Arquivo de configuração Toda configuração relacionada a nomes, grupos de trabalho, tipos de compartilhamentos, tipo de servidor, log de sistema do Samba é colocado no arquivo de configuração /etc/samba/smb.conf. O arquivo de configuração do Samba é formado por seções, parâmetros e variáveis. Seções – Organizam os parâmetros para que tenham efeito somente em algumas configurações de compartilhamento do servidor. Indicam um compartilhamento específico, com exceção da seção global que é aplicada a todos os compartilhamentos. As seções são definidas por uma palavra colocada entre colchetes. Por exemplo: [global], [public], [printers] etc. O nome da seção é igual ao nome do recurso compartilhado. Alguns nomes de seções foram reservados para configurações específicas do samba, eles são os seguintes: [global] Define configurações que afetam o servidor samba como um todo, fazendo efeito em todos os compartilhamentos existentes na máquina. Por exemplo, o grupo de trabalho, nome do servidor, página de código, restrições de acesso por nome, etc. [homes] Especifica opções de acesso a diretórios, homes de usuários. O diretório home é disponibilizado somente para seu dono, após se autenticar no sistema. [printers] Define opções gerais para controle das impressoras do sistema. Este compartilhamento mapeia os nomes de todas as impressoras encontradas no /etc/printcap. Configurações especiais podem ser feitas separadamente. [profile] Define um perfil quando o servidor samba é usado como PDC de domínio. Qualquer outro nome de [seção] no arquivo smb.conf que não sejam as acima, são tratadas como um compartilhamento ou impressora. Parâmetros – São aqueles que definem os atributos das seções, por exemplo, encrypt passwd = yes. Variáveis – São utilizadas para substituir textos predefinidos, por exemplo, “path = /tmp/%u” pode ser interpretada como “path = /temp/usuario”. − 2.4.1.1. Alguns parâmetros de seções Samba Parâmetros que podem ser utilizados apenas para a seção [global]: • workgroup: define o nome do domínio. • logon script: script que será executado quando o usuário se logar; • domain logons: determina a ativação do login remoto para o domínio especificado acima; • netbios name: define o nome do computador na rede Win- dows; • preferred master: determina se o servidor nmbd deverá ter prioridade de acesso frente a outros servidores do mesmo grupo; • os level: prioridade do servidor. 100 é o número máximo, garantindo que este será o primeiro servidor solicitado (caso existam outros servidores na rede); • logon path: diretório onde serão armazenadas as configu- rações do Windows para o usuário (Perfil, Desktop, menu Iniciar, etc); • logon drive: determina letra de drive que o Windows usará para o diretório Home; • logon home: determina a localização do diretório Home quando a estação logar no PDC do Samba; • string server: comentários sobre o computador; • load printers: diponibiliza o uso de impressoras do arquivo /etc/printcap. • announce as: tipo de servidor de nomes NetBIOS que será divulgado na rede. Pode ser NT, NT Server, NT Workstation, win95 ou wfw. • printcap name: caminho para o arquivo /etc/printcap. • printing: tipo do servidor de impressão. Pode ser bsd, lprng, sysv, aix, hpux e qnx. • security: tipo de acesso. Pode ser share, user, server e domain. • share – todos na rede podem acessar os arquivos com- partilhados. • user – somente usuários cadastrados poderam acessar o compartilhamento. • server – o servidor atuará como um proxy de autentica- ção, repassando as requisições para o servidor de autenticação principal. • domain – o servidor Samba participará do domínio como cliente, autenticando-se em um servidor PDC já existente. • log file: caminho do arquivo de log. • max log file: tamanho do arquivo de log em KB. • log level: nível de log. • encrypt passwords: habilita ou não o uso de senhas crip- tografadas do Samba. • smb passwd file: caminho do arquivo de senhas criptoga- fadas do Samba. • local master: transforma o Samba em um local master browser. • domain master: transforma o Samba em um domain mas- ter browser. • wins support: transforma o Samba em um servidor wins. • wins server: transforma o Samba em um cliente wins. Parâmetros para as demais seções: • gon. path: que determina onde se encontram os scripts de lo- • browseable: permite ou não a visualização do comparti- lhamento. • writable: permite ou não a gravação no recurso de com- partilhamento. • read only: define o compartilhamento como somente leitu- ra. • public: define se o recursos será publico ou não. • available: disponibiliza ou não o recurso compartilhado. • comment: comentário sobre o recurso compartilhado. • admin users: define quais usuários terão privilégios de ad- ministração de compartilhamento. • guest account: define uma conta de visitante. • guest ok: se esse parâmetro for definido como yes, não será solicitada senha. • hosts allow: define quais computadores podem acessar um recurso compartilhado. • hosts deny: define quais computadores não podem aces- sar um recurso compartilhado. • message command: define qual programa irá processar as mensagens do winpopup. • Seção [netlogon] - Responsável por fazer com que as es- tações Windows identifiquem o servidor PDC. 2.4.1.2. Variáveis mais comuns Vejamos abaixo alguns exemplos de variáveis comuns. Extraído do livro RUBEM, E. FERREIRA. Linux Guia do Administrador do Sistema pg 428. %h Nome da máquina (host). %v Exibe a versão do Samba. %S Nome do serviço (compartilhamento) atual. %u Nome do usuário. %g Nome do grupo. %H Nome do diretório pessoal do usuário. %m Nome da máquina cliente, fornecida pelo NetBIOS. %L Nome do servidor NetBIOS. %M Nome da internet da máquina cliente. %a Sistema operacional da máquina remota. %i Endereço IP da máquina cliente. %t Data e horário. 2.4.2 Histórico Samba O Samba foi criado por Andrew Tridgell. A ideia inicial não tinha nenhuma ligação com protocolos da Microsoft. O projeto começou em 1991 quando Tridgell criou um programa servidor de arquivos para sua rede local que suportava um protocolo DEC da Digital Pathworks. Apesar de não saber na época este protocolo seria o SMB. Algum tempo depois de começar a distribuir seu servidor sob o nome de smbserver que foi utilizado até abril de 2004. Tridgell descobriu que este nome, smbserver, já pertencia ao produto de outra empresa, foi quando realizou uma simples busca dentro do dicionário Ispell por palavras que possuíssem as letras S, M e B, de "Server Message Blocks", posicionadas nessa ordem. Foi quando ao executar a seguinte linha de código no Unix: grep -i 's.*m.*b' /usr/dict/words A busca retornou apenas as palavras "salmonberry", "samba", "sawtimber" e "scramble", de forma que a escolha do nome acabou sendo óbvia. 3. PREPARANDO O SISTEMA Neste capítulo, apresentaremos algumas opções para instalação e configuração dos recursos que serão utilizados. 3.1. SISTEMA OPERACIONAL Utilizamos a distribuição estável do sistema operacional Debian. Na ocasião desta escrita, a atual versão da distribuição estável do sistema Debian é a 4.0. Essa versão é recomendada, pois oferece confiabilidade e segurança, visto que reúne aplicativos que foram testados e analisados para que o sistema não apresente falhas críticas. De acordo, com a página oficial do projeto Debian disponível em www.debian.org: “O Debian é um sistema operacional (SO) livre para seu computador. O Debian usa o kernel (núcleo de um sistema operacional), Linux, mas a maior parte das ferramentas do SO vêm do projeto GNU; daí o nome GNU/Linux. A última versão estável do Debian é 4.0. A última atualização desta versão foi feita em 23 de Outubro de 2008”. Na página do projeto Debian podemos obter informações e instruções para a instalação do sistema. 3.1.1. Codinomes das distribuições Debian Para manter uma melhor organização no projeto e em alguns casos evitar downloads desnecessários por parte dos usuários, as distribuições Debian, conhecidas também como coleção específica de pacotes, recebem codinomes para fazer referência a cada versão disponibilizada. Cada distribuição é referenciada a basicamente três tipos: • unstable – instável – Caracterizada por ter os pacotes mais atuais do projeto e é recomendada para desenvolvedores devido a problemas que podem ser causados devido a falta de testes. • testing – em teste – Nessa fase a versão está em fase de testes e vários erros críticos que a versão unstable apresentava foram corrigidos. Nesse ciclo está versão se tornará candidata à versão stable. • stable – estável – Caracterizada por oferecer um conjunto de pacotes que oferecem segurança e confiabilidade ao sistema, pois passou por várias correções de erros e falhas críticas. Algumas alterações e correções ainda podem ser feitas através de um gerenciador de pacotes. Cada um desses tipos indicará o ciclo de liberação para a versão. Utilizamos para esse trabalho a versão Debian Etch que recebe esse nome pois se trata de uma versão estável. Para que possamos compreender a utilização dos codinomes para as versões do projeto Debian, propomos o seguinte exemplo. Antes do lançamento da versão estável Debian 4.0 – Etch, o codinome Etch apontava para a versão testing e o codinome Sarge apontava para a versão stable. Após o lançamento oficial da versão 4.0, a distribuição testing recebeu o codinome de Lenny, que receberá um número assim que se tornar uma versão estável. Além dos codinomes já apresentados podemos listar: - Buzz para a versão 1.1, - Rex para a versão 1.2, - Bo para as versões 1.3.x, - Hamm para a versão 2.0, - Slink para a versão 2.1, - Potato para a versão 2.2, - Woody para a versão 3.0, - Sarge para a versão 3.1. 3.2. INSTALAÇÃO SAMBA Utilizaremos o aplicativo Samba 3.0.24 que está disponível nos repositórios Debian Etch. Pacotes Debian. Servidor: samba samba Cliente: smbclient samba-client Documentação samba-doc samba-doc Para instalar o Samba em uma estação do tipo “client” com documentação: # apt-get install smbclient samba-doc Para instalar o Samba em uma estação do tipo “server” com documentação que compartilhará arquivos: # apt-get install samba smbclient samba-doc Utilizaremos o seguinte commando: #apt-get install samba smbclient samba-doc A instalação do smbclient em estações que só terão acesso as pastas compartilhadas ficará como conseqüência do exemplo abaixo: Ao executar o comando o script de instalação algumas perguntas podem ser feitas: Pergunta 01 - O servidor deve rodar em modo "daemons" ou sob o “inetd”? Nossa resposta será "daemons" para que o servidor rode diretamente. Isso garante um melhor desempenho, segurança e evita problemas diversos de configuração relacionados ao uso do inetd, um tipo de serviço que está entrando em desuso. Pergunta 02 – Gerar a base de dados para senhas /var/lib/samba/passdb.tdb? Responderemos que "Sim", pois dessa forma será criado um arquivo onde serão armazenadas as senhas de acesso. O script de instalação comentará que: "Caso você não o crie, você terá que reconfigurar o samba (e provavelmente suas máquinas clientes) para utilização de senhas em texto puro". Reconfigurar o Samba para utilização de senhas em texto puro é um processo trabalhosos e não o objetivamos. Ao aceitarmos a criação do arquivo que armazenará senhas estaremos aceitando que o sistema utilize senhas encriptadas que é o padrão para a configuração. Pergunta 03 – Solicitará que seja especificado o nome para o grupo de trabalho. Figura 1 – Nome de domínio Pergunta 04 – A pergunta abaixo é para saber se o usuário pretende fazer uso de um servidor DHCP que possa estar disponível na rede oferecendo configurações IP. Ao escolher “sim” o arquivo em arquivo smb.conf será alterado e passará a conter informações do servidor WINS (Servidor de nomes NetBIOS). Por padrão, a escolha é “não” o nome das máquinas não será utilizado. Figura 2 – Usar as configurações WINS A instalação de todos os pacotes será feitas no servidor e nas máquinas que forem compartilhar arquivos. Nos clientes que forem apenas acessar compartilhamentos de outras máquinas, instalaremos apenas o smbclient. Com os pacotes instalados, use os comandos: # /etc/init.d/samba start # /etc/init.d/samba stop Os comandos acima iniciam e param o serviço, respectivamente. 3.2.1 Inicialização Automática Por padrão, essa opção já vem habilitada caso desejemos retirá-la basta utilizarmos o seguinte comando: # desabilita a inicialização automática # update-rc.d -f samba remove #habilita a inicialização automática # update-rc.d -f samba defaults 3.2.2 Carregamento durante o Boot # desabilita o carregamento durante o boot # chkconfig smb off #habilita o carregamento durante o boot #chkconfig smb on 4 CONFIGURAÇÕES 4.1. Pasta para auditoria Criando uma pasta que receberá todos os arquivos excluídos. Essa pasta servirá como a lixeira para a rede de compartilhamentos Samba. Optamos por criar uma pasta oculta aos usuários. Para isso, em um terminal Linux execute a seguinte linha abaixo: #mkdir /var/spool/samba/.lixeira $mkdir -p /home/servidor/samba/lixeira/ $mkdir -p /home/servidor/arquivos 4.2. Editando o smb.conf Para aplicarmos as configurações necessárias para podermos ter uma rede com compartilhamento. Como usuário root iremos abrir o arquivo smb.conf que está no diretório /etc/samba. #vim /etc/samba/smb.conf A partir de então começaremos a realizar as configurações: Dentro da variável global iremos definir nome do grupo da rede, utilizando o parâmetro workgroup conforme sugestão abaixo: [global] workgroup = guarapuava Nome do computador: netbios name = servidor server string = servidor Nível de segurança no compartilhamento. Pelo fato do compartilhamento ser aberto, em uma rede mista (composta de estações de trabalho Windows e Linux) optaremos pelo tipo share pois iremos disponibilizar o compartilhamento a todos os usuários da rede. security = share Servidor e cliente wins: necessário para que o servidor Samba passe a trabalhar como um servidor WINS (Windows Internetworking Name Server) na rede. Esse serviço é o responsável, em redes Microsoft, por fornecer a lista de compartilhamentos, navegação na rede dentre outros recursos disponíveis, basicamente esse protocolo atua como um servidor DNS. Utilizaremos essa opção pois sem um servidor WINS os clientes passariam a usar pacotes broadcast para navegação, o que acarretaria num aumento no tráfego de rede, tornando assim o processo mais passíveis de falhas. wins support = yes Requisições WINS: Este parâmetro pode ser necessário para alguns clientes antigos que tenham problemas no envio de suas requisições WINS wins proxy = no Tabela de endereços: Especifica o máximo de tempo de vida em segundos das máquinas na lista de nomes de endereços das máquinas. max wins ttl = 518400 Pesquisa no DNS: Permite que o servidor WINS pesquise no DNS a localização de nomes de máquinas, caso essas não estejam no cache. dns proxy = no Arquivo de log: Nesse item definiremos onde deverão ser salvos os registros de log do sistema, assim como o nome do arquivo de log. A opção %m nos disponibilizará arquivos de log diferentes para cada máquina que logar no servidor Samba. log file = /var/log/samba/samba-log.%m Com isso, o Samba vai passar a gerar os eventos referentes aos acessos. No entanto é necessário configurar o sysklogd, que é o responsável por logar os eventos, gerando assim o arquivo de log que será usado consultas. Como usuário de sistema editaremos o seguinte arquivo: #vim /etc/syslog.conf e a seguinte linha deverá ser acrescentada: local5.notice /var/log/samba-full_audit.log Observemos que o comando local5.notice faz referência aos valores informados nas opções full_audit:facility e full_audit:priority, já o comando /var/log/samba- full_audit.log faz referência ao arquivo de log que será gerado. Após essas configurações será necessário reiniciarmos os serviços: # /etc/init.d/samba restart # /etc/init.d/sysklogd restart Ao observarmos o arquivo /var/log/samba/samba-log.%m, poderemos analisar as entradas para data e hora, usuário da máquina, ip da máquina, o nome do arquivo ou pasta onde ela foi realizada e a operação realizada como em: Nov 30 14:46:31 localhost smbd_audit: nobody/10.1.1.111/arquivos|unlink| ok|email/cacau_e Nov 30 14:49:51 localhost smbd_audit: nobody/10.1.1.13/arquivos|rename| ok|./estudos|./redes Nov 30 14:49:56 localhost smbd_audit: nobody/10.1.1.6/arquivos|rename| ok|redess/estudos|redes/tcp.txt Nov 30 14:49:58 localhost smbd_audit: nobody/10.1.1.8/arquivos|rmdir|ok| redes/xuva Nov 30 15:05:14 localhost smbd_audit: nobody/10.1.1.7/arquivos|rename| ok|./frutas|./caqui Dec 3 21:40:20 localhost smbd_audit: nobody/10.1.1.7/arquivos|rename| ok|./Nova Pasta|./fotos Dec 3 21:40:59 localhost smbd_audit: nobody/10.1.1.6/arquivos|rename|ok| fotos/Garden.jpg|fotos/jardim.jpg Dec 3 21:41:07 localhost smbd_audit: nobody/10.1.1.13/arquivos|rename| ok|fotos/Des.jpg|fotos/desert.jpg Dec 3 21:41:47 localhost smbd_audit: nobody/10.1.1.111/arquivos|rename| ok|caqui/Novo Documento de Texto.txt|caqui/coquetel-de-frutas.txt Depuração: Aumenta o nível de depuração dos daemons do SAMBA de 0 a 9. Utilizaremos um nível igual a 2, assim teremos a listagem de todos os compartilhamentos acessados, dos usuários que acessaram, assim como data/hora e quais as tentativas de acesso. Dessa forma o administrador poderá ter certeza que o conteúdo não está sendo acessado indevidamente. O nível de depuração 0 é o padrão. debug level = 2sad medida de segurança para que a conta “root” não seja usada para acessar o servidor. invalid users = root arquivos indevíduos veto files = /*.mp3/*.divx/*.eml/* .wmv/*.wma/* auditoria e lixeira O módulo auditoria será habilitado usando o comando abaixo: vfs objects = full_audit recycle operações que devem ser logadas Operações como open, opendir, write, unlink, rename, mkdir, rmdir, chmod, chown estão disponíveis para que sejam gravadas em log. Utilizaremos apenas a operação de renomear e remover diretórios bem como operações de remoção de arquivos, conforme linha abaixo: full_audit:success = rename rmdir unlink informações que serão incluídas no log Conforme variáveis definidas anteriormente, podemos observar que o comando abaixo irá nos fornecer no arquivo de log: o nome da máquina, o IP e o nome do compartilhamento onde foi feito o acesso ou a alteração. full_audit:prefix = %u|%I|%S mensagens de erros A seguinte opção irá proibir que arquivos e mensagens de erros não sejam gravadas no log. full_audit:failure = none nível dos alertas full_audit:facility = LOCAL5 full_audit:priority = NOTICE configurações da lixeira O administrador do sistema poderá utilizar o crontab para agendar a limpeza da lixeira.2 2 Crontab. Ver anexo 2 maxsize=0 indica o tamanho máximo de um arquivo que irá para a lixeira. Para servidores com pouco espaço em disco isso pode significar um problema. Adotaremos maxsize=0. recycle:maxsize = 0 pasta onde ficará a lixeira Nesse item indicaremos o diretório da pasta lixeira e o nome das máquinas que renomearam e/ou removeram diretórios bem como efetuaram operações de remoção de arquivos. As linhas abaixo também definiram as permissões para cada diretório. recycle:repository = /home/servidor/samba/lixeira/%m recycle:directory_mode = 0777 recycle:subdir_mode = 0777 estrutura das pastas Nesta opção definimos que as estruturas de pastas sejam mantidas como foram definidas no compartilhamento. recycle:keeptree = Yes recycle:touch = True bloqueio de arquivos de backup e temporários Definiremos que arquivos de backup e arquivos temporários na lixeira não serão gravados. recycle:exclude = *.tmp, *.temp, *.ldb, *.o, *.obj, ~*.*, *.bak recycle:exclude_dir = tmp, temp, cache cópia de arquivos Definiremos que arquivos que são regravados (sobrescritos) irão armazenar uma cópia do original na lixeira. recycle:versions = yes exceções cópia de arquivos Podemos definir que para arquivos com extensões como .pps ou .ppt não sejam feitas cópias ao serem reescritos. recycle:noversions = .exe|.pps|.ppt Assim o arquivo original não será guardado, caso alguma edição seja feita. Dentro da variável arquivos iremos definir: nome da pasta compartilhada Podemos definir o nome que aparecera na rede e abaixo das configurações da pasta compartilhada. [arquivos] comment = Compartilhando arquivos do Servidor local da pasta compartilhada path = /home/servidor/arquivos usuários que terão acesso Será definido como “yes” para que todos os diretórios de usuários sejam lidos por todos os usuários da rede. public = Yes leitura e gravação de arquivos Neste caso todos os usuários terão acesso a leitura e gravação. read only = no writeable = yes modo criação de arquivos Serão definidas as permissões que as pastas criadas na share irão possuir. Neste caso permissão total de leitura, escrita e execução de arquivos. create mask = 0777 autenticar usuários 3 A linha abaixo é definida para que os usuários não-autenticados possam acessar os compartilhamentos. guest ok = yes 3 esse item torna-se necessário pois o compartilhamento propostos é tipo share e não exige autenticação de usuários. 4.3 Configuração Proposta [global] workgroup = Guarapuava netbios name = servidor server string = servidor security = share wins support = yes wis proxy = no max wins ttl = 518400 dns proxy = no log file = /var/log/samba/samba-log.%m debug level = 2sad invalid users = root veto files = /*.mp3/*.divx/*.eml/* .wmv/*.wma/* vfs objects = full_audit recycle full_audit:success = rename rmdir unlink full_audit:prefix = %u/%I/%S full_audit:failure = none full_audit:facility = LOCAL5 full_audit:priority = NOTICE recycle:maxsize = 0 recycle:repository = /home/servidor/samba/lixeira/%m recycle:directory_mode = 0777 recycle:subdir_mode = 0777 recycle:keeptree = Yes recycle:touch = True recycle:exclude = *.tmp, *.temp, *.ldb, *.o, *.obj, ~*.*, *.bak recycle:exclude_dir = tmp, temp, cache recycle:versions = yes recycle:noversions = .exe|.pps|.ppt [arquivos] comment = Compartilhando arquivos do Servidor path = /home/servidor/arquivos public = Yes read only = no writeable = yes create mask = 0777 guest ok = yes 4.4 Cenário de auditoria Ao observarmos a pasta onde os registros de auditoria estão salvos, poderemos analisar as entradas para data e hora, usuário da máquina, ip da máquina, o nome do arquivo ou pasta onde ela foi realizada e a operação realizada como em: Nov 30 14:46:31 localhost smbd_audit: nobody/10.1.1.111/arquivos|unlink| ok|email/cacau_e Nov 30 14:49:51 localhost smbd_audit: nobody/10.1.1.13/arquivos|rename| ok|./estudos|./redes Nov 30 14:49:56 localhost smbd_audit: nobody/10.1.1.6/arquivos|rename| ok|redess/estudos|redes/tcp.txt Nov 30 14:49:58 localhost smbd_audit: nobody/10.1.1.8/arquivos|rmdir|ok| redes/xuva Nov 30 15:05:14 localhost smbd_audit: nobody/10.1.1.7/arquivos|rename| ok|./frutas|./caqui Dec 3 21:40:20 localhost smbd_audit: nobody/10.1.1.7/arquivos|rename| ok|./Nova Pasta|./fotos Dec 3 21:40:59 localhost smbd_audit: nobody/10.1.1.6/arquivos|rename|ok| fotos/Garden.jpg|fotos/jardim.jpg Dec 3 21:41:07 localhost smbd_audit: nobody/10.1.1.13/arquivos|rename| ok|fotos/Des.jpg|fotos/desert.jpg Dec 3 21:41:47 localhost smbd_audit: nobody/10.1.1.111/arquivos|rename| ok|caqui/Novo Documento de Texto.txt|caqui/coquetel-de-frutas.txt Vemos na primeira linha que a estação cujo IP é 10.1.1.111 removeu o arquivo cacau_e da pasta email. Vemos também, na segunda linha, que a estação cujo IP é 10.1.1.13, em 30 de novembro às 14:49:56, renomeou a pasta estudos para o nome redes. Dessa forma, podemos observar que toda e qualquer movimentação nas pastas auditadas são registradas por meio das configurações propostas. CONCLUSÃO Esse trabalho buscou apresentar uma solução para implementação de compartilhamento de arquivos com acesso total em uma rede de computadores disposta com sistemas operacionais Linux e Microsoft Windows, visando oferecer confiabilidade e segurança dos dados em rede. A utilização dos recursos de auditoria nos possibilitou um maior controle sobre quem acessa determinados recursos. Com a obtenção de informações através de registros de log, criou-se um cenário onde projetamos e implementamos políticas de acesso mais efetivas para a rede, indo além de apenas bloquear completamente acessos ou impedir que pastas, impressoras, discos e outros recursos sejam compartilhados. Já a implementação de lixeiras, nos possibilitou armazenar arquivos excluídos por usuários remotos, com isso conseguimos impedir que arquivos importantes compartilhados sejam excluídos acidental ou indevidamente, permitindo sua recuperação posterior. O cenário proposto nos permitiu criar um servidor de arquivos de forma simples, atribuindo-lhe uma configuração que garantiu um grau adequado de segurança sem se basear na restrição de acessos a usuários como primeira medida. Isso tudo foi feito utilizando um protocolo que vem crescendo continuamente em utilização tanto em ambientes Windows como também Linux/Unix (SMB/CIFS) e um programa – Samba – que é mantido e melhorado por uma grande comunidade de desenvolvedores de forma livre. Lembrando também que a utilização de um sistema livre (Debian GNU-Linux) como base para configuração tornou esta solução totalmente livre de custos. REFERÊNCIAS FOCA Guia Foca GNU/Linux. In: SAMBA. Capítulo 18. 1985. Disponível em:< http://focalinux.cipsga.org.br/guia/avancado/ch-s-samba.html>. Acesso em: 20 de Outubro 2008. Samba, parte 1: Instalação e configuração usando o swat. Disponível em: <http://www.guiadohardware.net/tutoriais/samba-configuracao-avancada> Acesso em: 22 de Outubro 2008. Samba, parte 2: Configuração avançada do Samba. Disponível em: <http://www.guiadohardware.net/tutoriais/samba-configuracao-avancada> Acesso em: 22 de Outubro 2008. Linux Redes e Servidores. Disponível em: <http://www.gdhpress.com.br/redeseservidores/leia/index.php?p=cap6-1> Acesso em: 10 de Outubro 2008. Samba “Opening Windows to a Wider World”. Disponível em: < http://samba.org/samba/devel/> Acesso em: 5 de Outubro 2008; acesso em: 10 de Outubro 2008; acesso em: 10 de Novembro 2008. O que é Samba. Disponível em: <http://www.gta.ufrj.br/grad/01_2/samba/oqehsamba.htm> Acesso em: 5 de Outubro 2008. Protocolo (ciência da computação). Disponível em: <http://pt.wikipedia.org/wiki/Protocolo_(ciência_da_computação) Acesso em: 29 de novembro 2008. Shared Resource. Disponível em: < http://en.wikipedia.org/wiki/Shared_access > Acesso em: 25 de novembro 2008. O que é o Debian?. Disponível em: <http://www.debian.org/> Acesso em: 01 de Outubro 2008. BIBLIOGRAFIA CONSULTADA RUBEM, E. FERREIRA. Linux Guia do Administrador do Sistema. Novatec Editora Ltda ISBN: 85-7522-038-17 TSUJI, HIDE.; WATANABE, TAKASHI. Configurando um servidor Linux. MAKRON Books, São Paulo, c. 6, p. 99-113, 2000. ISBN: 85-205-04-4-3 MORIMOTO, CARLOS E. Redes e servidores Linux: guia prático. Porto Alegre: Sul Editores., 2005. Elizabeth D. Zwicky, Simon Cooper & D. Brent Chapman. Building Internet Firewalls. Second Edition, June 2000. ISBN: 1-56592-871-7, 890 pages Chapter 17. File Transfer, File Sharing, and Printing (Página 287) DANTON, GIAN. Metodologia Científica. Virtual Books Online M&M Editores Ltda., 2002. APÊNDICE 1 Compartilhamentos Samba em estações com Windows Vista Esse apêndice fez-se necessário, pois em uma rede mista, onde estão sendo disponibilizados serviços Windows e Linux, podem existir estações de trabalho com o sistema Microsoft Windows Vista. Para casos como esse poderemos optar por fazer uso da versão 3.0.22, ou superior, para o aplicativo Samba ou ainda configurar nas estações com o Windows Vista o uso do sistema NTLM. Para configurar o uso do sistema NTLM, utilizamos o utilitário "secpol.msc" a partir do menu Diretivas locais em Opções de segurança seguido de Segurança de rede. Escolheremos em nível de autenticação Lan Manager a opção "Enviar LM e NTLM - use a segurança da sessão NTLMv2, se negociado". Dessa forma passaremos a utilizar os serviços de compartilhamento disponibilizados pelo Samba. APÊNDICE 2 CRON E CRONTAB O cron é um serviço no sistema operacional Linux que é carregado durante o boot do sistema. Com essa ferramenta podemos programar e agendar a execução de comandos e processos para que sejam executados de maneira repetiva ou apenas uma vez. Para executar as tarefas o cron utiliza uma tabela chamada crontab. Esse arquivo, crontab, geralmente fica armazenado no diretório /etc/ mas também pode estar no diretório /var/spool/cron, diretório de cada usuário do sistema. Para podermos demonstrar como utilizar o serviço crontab, iremos propor a seguinte situação: suponhamos que seja necessário notificar o administrador de rede que uma auditoria na pasta de compartilhamento seja feita nos dias 10 e 20 de cada mês. Formato crontab [minutos] [horas][dias do mês][mês][dias da semana][usuário][comando] Etapa 1 – No terminal digitar o comando crontab –e. $crontab –e Etapa 2 – Agendando a tarefa #Lembrete Administrador 30 09 10,20 ** echo “Realizar auditoria na pasta lixeira” Dessa forma, o lembrete “Realizar auditoria na pasta lixeira” será exibido em todos os meses nos dias 10 e 20 de cada mês às 09:30 da manhã. APÊNDICE 3 Linux e Estruturas de Diretórios Durante o trabalho procuramos subentender que alguns conceitos básicos tais como estrutura de diretórios, pastas e permissões de arquivos em sistemas Linux já eram conhecidas. No entanto, esse apêndice se justifica para que possamos apresentar de maneira sucinta esse assunto, que é pré-requisito para compreensão das atividades propostas. Arquivo – Conjunto de informações é qualquer tipo de informação sejam textos, imagem, som, etc, desde que armazenadas em um disco ou fita magnética (dispositivos eletrônicos). Um arquivo possui várias propriedades dentre elas: nome, tamanho e tipo. Por exemplo: casa.txt Casa.txt musica_1.mp3 arquivo1001.tar.gz Os sistemas Linux, diferem letras maiúsculas de letras minúsculas. Dessa forma os arquivos casa.txt e Casa.txt representaram arquivos diferentes. Extensão de arquivo – A sequência de caracteres após o ponto indica a extensão do arquivo. Existe para indicar a natureza do conteúdo, mas não é obrigatória a presença da mesma. É usualmente utilizada por convenção feita entre usuários e desenvolvedores de aplicativos, pois facilita a identificação do conteúdo do arquivo. Exemplo de extensões mais conhecidas: txt Indica que o arquivo contém apenas texto (ASCII). jpg Indica que o arquivo contém uma imagem em formato jpeg. html Arquivo contendo hipertexto, usualmente encontrado na internet Diretório – Conhecido como “pasta” é muito semelhante a uma pasta de escritório, pois é utilizada para armazenar vários arquivos e também vários outros diretórios. Quando um diretório é formado por vários outros diretórios, temos uma árvore de diretórios onde chamamos o diretório que contém todos os demais de diretório raiz representado pelo símbolo “/”. Exemplos: / /etc/samba /usr/local/src/ Para representar um arquivo informamos a hierarquia de diretórios que o contém, seguido do nome desse arquivo. Por exemplo: /etc/samba/smb.conf Permissões Em sistemas Linux além de cada arquivo possuir um nome e um conjunto de informações os mesmo são compostos por atributos. Entre esses atributos estão o tipo de arquivo e as permissões de acesso a esse arquivo. Essas permissões são necessárias, pois fornecem segurança ao sistema, visto que existem vários podem utilizar o sistema ao mesmo tempo. (O sistema é oferecido a vários usuários). É com base nessas informações que cada usuário pode ler, escrever ou executar cada arquivo ou diretório. Dizemos que um usuário tem permissão para executar um determinado diretório quando ele é capaz de acessar o diretório fazendo buscas dentro dele, diferente de executá-lo com programa.