12.07.2015 Views

Universidade Tuiuti do Paraná – UTP - Gerds - Universidade Tuiuti ...

Universidade Tuiuti do Paraná – UTP - Gerds - Universidade Tuiuti ...

Universidade Tuiuti do Paraná – UTP - Gerds - Universidade Tuiuti ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong> <strong>–</strong> <strong>UTP</strong>Faculdade de Ciências Exatas e de TecnologiaCursos de ComputaçãoGrupo de Estu<strong>do</strong>s de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sProfessores:Marcelo Soares FariasRoberto Néia AmaralCuritiba, 2008


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXDepois de algum tempo trabalhan<strong>do</strong> ele enviou para a lista de discussão comp.os.minix aseguinte mensagem:“...Você sente saudades <strong>do</strong>s bons dias <strong>do</strong> minix-1.1, quan<strong>do</strong> os homens eramhomens e escreviam seus próprios device drivers? Você está sem um bomprojeto e morren<strong>do</strong> de vontade de colocar as mãos num sistema operacionalque você possa modificar de acor<strong>do</strong> com as suas necessidades? Você achafrustrante quan<strong>do</strong> tu<strong>do</strong> funciona bem no Minix? Sem mais noites em claro parafazer com que um programa funcione? Então esta mensagem pode serexatamente para você. :-)Como mencionei há um mês, estou trabalhan<strong>do</strong> em uma versão livre de umsistema operacional similar ao Minix para computa<strong>do</strong>res AT-386. Elefinalmente alcançou o estágio onde possa ser utiliza<strong>do</strong> ( ou não, dependen<strong>do</strong><strong>do</strong> que você deseja), e eu estou disposto a colocar os fontes disponíveis paraampla distribuição. Ele está apenas na versão 0.02, mas eu tenho executa<strong>do</strong>nele sem problemas programas como bash, gcc, gnu-make, gnu-sed, compress,etc. ...”No dia 5 de outubro de 1991 Linus Torvalds anunciou sua primeira versão oficial <strong>do</strong> Linux. Desdeentão muitos programa<strong>do</strong>res espalha<strong>do</strong>s pelo mun<strong>do</strong> têm respondi<strong>do</strong> o seu chama<strong>do</strong> e contribuí<strong>do</strong> parafazer <strong>do</strong> Linux o que ele é hoje.Projeto GNUNo início da década de 80, com a crescente popularização <strong>do</strong> Unix e com as licenças de softwarecada vez mais rígidas, que proibiam a cópia <strong>do</strong> software, Richard Stallman sentia a necessidadecrescente de soluções de softwares que fossem livres para serem usadas e distribuídas livremente.Ele aspirava por ferramentas como compila<strong>do</strong>res, editores de textos, utilitários que pudessem serusa<strong>do</strong>s em várias máquinas sem que se tivesse que pagar licenças para cada uma delas.Tal frustração resultou na criação <strong>do</strong> Projeto GNU (GNU is Not Unix) em 1984 e na Free SoftwareFoundation, cujo propósito é criar versões com código livre destas ferramentas .As novas ferramentas desenvolvidas pelo projeto GNU precisavam de um meio que as tornassepermanentemente livres, criou-se então a GPL (GNU Public License), também chamada de “copyleft”(brincadeira em relação à palavra copyrigth).Os programas cria<strong>do</strong>s sob a GPL podem ser vendi<strong>do</strong>s, porém qualquer código deriva<strong>do</strong> de códigoGPL, estará automaticamente incluí<strong>do</strong> nesta licença.Geralmente as pessoas confundem o termo “livre” (free) com gatuíto. De acor<strong>do</strong> com Stallman,Free Software é uma questão de liberdade e não de preço. Software livre, refere-se à liberdade <strong>do</strong>susuários de executar, copiar, distribuir, alterar e melhorar o software. Stallman ainda vai mais além,“Mais precisamente, refere-se a quatro tipos de liberdades para os usuários de software:Roberto Amaral <strong>–</strong> Marcelo Farias Página 317/10/2011


comunidade.<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXLiberdade de executar o programa com qualquer propósito;Liberdade para estudar como ele funciona e adaptá-lo às suas necessidades;Liberdade para redistribuir cópias;Liberdade para melhorar o programa e divulgar as suas melhorias, de forma a beneficiar toda aA GPL regulamenta as liberdades centrais, definin<strong>do</strong> as condições da cópia distribuição emodificação <strong>do</strong>s programas. Embora qualquer pessoa possa modificar uma cópia <strong>do</strong> programa, éobrigatório que:altera<strong>do</strong>s.Exista um aviso, em destaque, em cada arquivo modifica<strong>do</strong>, de que os da<strong>do</strong>s originais foramExista um aviso de que o trabalho distribuí<strong>do</strong> ou publica<strong>do</strong> deriva totalmente ou em parte <strong>do</strong>programa original.Caso o programa seja executa<strong>do</strong> de forma interativa, no início de sua execução deve serapresentada a informação de copyright e de ausências de garantias. Em qualquer caso a licença nãopoderá ser alterada e o usuário sempre deverá ter acesso à mesma, na íntegra. Na distribuição de umsoftware livre no formato de código objeto ou executável, é necessário que esteja disponível o códigofonte. Não é permitida a utilização de partes de um código GPL em um programa proprietário. Oprograma final passará a ser automaticamente GPL.Embora mais popular, a licença GPL não é a única usada no desenvolvimento <strong>do</strong> Free Software.Bruce Perens, outro aficciona<strong>do</strong> por software livre formalizou o termo Open Source para se referira qualquer programa que seja registra<strong>do</strong> sob os critérios <strong>do</strong> <strong>do</strong>cumento Open Source Initiative. Existemoutros tipos de licença Open Source, como:Artistic Licence (Usada pelo cria<strong>do</strong>r <strong>do</strong> PERL, Larry Wall)Apache LicenceGNU Library LicenceAlgumas são muito restritivas a comercialização. Como a GNU, outras são mais liberais como aApache License e a GNU Library License que estabelece um meio termo permitin<strong>do</strong> que o código GNUpossa ser utiliza<strong>do</strong> comercialmente desde que o seja na forma de biblioteca.Quem é o LinuxO linux pode ser considera<strong>do</strong> o kernel de um sistemas operacionais livres popular, sen<strong>do</strong> umsistema <strong>do</strong> tipo Unix este implementa o padrão POSIX. O Linux é hoje em dia um sistema operacionalcom todas as características <strong>do</strong> Unix, com uma implantação invejável e em constante evolução e de<strong>do</strong>mínio público. Normalmente é distribuí<strong>do</strong> em diferentes "releases" que nada mais são <strong>do</strong> que umnúcleo (recompilável) acompanha<strong>do</strong> de programas, utilitários, ferramentas, <strong>do</strong>cumentação, etc.O Linux é uma versão <strong>do</strong> sistema operacional Unix, o qual foi anuncia<strong>do</strong> pela primeira vez emnovembro de 1991, desenvolvi<strong>do</strong> por Linus Torvald, 23 anos, estudante de Ciência da computação na<strong>Universidade</strong> de Helsinki, Finlândia. Torvald preparou o sistema para rodar em computa<strong>do</strong>res comprocessa<strong>do</strong>r Intel de 386 em diante.Roberto Amaral <strong>–</strong> Marcelo Farias Página 417/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXNomenclatura <strong>do</strong>s Disco em Linux/dev/hda à HD na interface primária mestre/dev/hdb à HD na interface primária escravo/dev/hdc à HD na interface secundária mestre/dev/hdd à HD na interface secundária escravo/dev/sda à SCSI primeiro canal/dev/sdb à SCSI segun<strong>do</strong> canal/dev/sdc à SCSI terceiro canal/dev/fda à Pendrive na primeira USBCaminhosUm caminho de diretório especifica uma seqüência de diretórios a percorrer para chegar a algumponto na árvore. To<strong>do</strong> diretório possui referências (.) e (..).(.) Referencia o diretório corrente(..) Referencia o diretório raiz.(/) é utiliza<strong>do</strong> como delimita<strong>do</strong>r de caminhos.PartiçõesPartições são espaços em disco utiliza<strong>do</strong> como contêiner para os sistemas de arquivos. Exemplo:/dev/hda1 à partição primária de um hd principal/dev/hda2 à partição secundária de hd principalObs: Cada hd pode possuir até 16 partições.Partições PrimáriasContêm o sistema de arquivos e é obrigatóriaPode existir até 4 partições (hda1, hda2, hda3 e hda4)Uma desta deve ser marcada como ativa para o bootPartições EstendidasSão variações da primáriaSó pode existir uma partição EstendidaPor padrão, hda1 é primária e hda2 é secundáriaPartições Lógicas <strong>–</strong> Trabalham em conjunto com as partições estendidasPodem existir até 11 partiçõesSempre numeradas a partir da 5Exemplo/dev/hda1Roberto Amaral <strong>–</strong> Marcelo Farias Página 617/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sSistema de Boot / Shut<strong>do</strong>wnCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXO Linux possui <strong>do</strong>is sistemas de booot <strong>–</strong> LILO e o GRUB, os quais são responsáveis pelogerenciamento da carga <strong>do</strong> Sistema Operacional. O LILO e o GRUB, são responsáveis por passar ao Sistemaoperacional, informações de Hardware, esta informação estão em arquivos de configuração.seguin<strong>do</strong>:Pode ocorrer que o GRUB ou LILO passem informações ao Kernel, através de linha de coman<strong>do</strong>,• Nome_da_imagem_<strong>do</strong>_kernel parâmetro ou Nome_da_imagem_<strong>do</strong>_kernel parametro=valor• Exemplo à “#Linux root=/dev/hda6”O Kernel <strong>do</strong> Linux é modular, permitin<strong>do</strong> que módulos (ou seja Drivers) possam ser compila<strong>do</strong>s naimagem <strong>do</strong> Kernel ou carrega<strong>do</strong>s somente quan<strong>do</strong> necessário. Em /etc/modules.conf estão as informaçõesenviadas ao Kernel.Durante o boot o Linux executa diversos processos em uma ordem programada chamada de “nívelde execução” ou RunLevel.Utilizan<strong>do</strong> o coman<strong>do</strong> init, pode-se indicar ao Sistema Operacional, qual nível deseja executar.RunlevelDescrição0 Desligamento elegante e rápi<strong>do</strong> <strong>do</strong> Sistema1 Manutenção <strong>do</strong> sistema <strong>–</strong> Monousuário2 Mo<strong>do</strong> multiusuário com compartilhamento desativa<strong>do</strong>3 Mo<strong>do</strong> multiusuário, sem interface gráfica4 Não utiliza<strong>do</strong>5 Mo<strong>do</strong> multiusuário completo6 Reboot <strong>do</strong> sistemaQuan<strong>do</strong> o Linux inicia, uma série de arquivo são executa<strong>do</strong>s apartir <strong>do</strong> diretório /etc/rc.d• rc.sysinit à fstab (semelhantes)• rc.local à Arquivo usa<strong>do</strong> para carga <strong>do</strong> sistema, monta<strong>do</strong> pelo administra<strong>do</strong>r• /etc/init.d/ à Diversos scripts para carga <strong>do</strong> sistema.Roberto Amaral <strong>–</strong> Marcelo Farias Página 817/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXOs níveis de serviços são defini<strong>do</strong>s nos diretório /etc/rc.d. Neste diretório encontra-se o que seráexecuta<strong>do</strong> em cada um <strong>do</strong>s níveis de serviços. O arquivo /etc/inittab, define o Runlevel padrão.Coman<strong>do</strong>s de boot e Shut<strong>do</strong>wnshut<strong>do</strong>wn [opções] horário [mensagem]• Usa<strong>do</strong> para desligar ou reiniciar a máquina. Opções:-r à Reinicia o sistema-h à Paraliza o sistema-k à Manda mensagem de desligamento-f à Carga rápida no sistema-F à Força a checagem <strong>do</strong> disco quan<strong>do</strong> inicializarExemplos• #shut<strong>do</strong>wn <strong>–</strong>r now• #shot<strong>do</strong>wn <strong>–</strong>r 06:00 “Haverá troca de hardware”• #sho<strong>do</strong>wn <strong>–</strong>h 10Roberto Amaral <strong>–</strong> Marcelo Farias Página 917/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXComan<strong>do</strong>s de manipulação de Sistema de Arquivosfdisk <strong>–</strong> Utilitário para criar, listar, alterar e apagar partições de disco. Opções:-a à Marca ou desmarca a partição ativa-d à Apaga uma partição. Após deve escolher o número da partição.-n à Adiciona uma partição-p à Mostra a tabela de partiçõesmkfs <strong>–</strong> Formata a partição criada pelo fdisk. Opções:-c à Verifica a existência de bad blocks-L nome à Configura o nome <strong>do</strong> dispositivo-n nome à Configura o nome <strong>do</strong> dispositivo para o MSDOS-q à Trabalha com o mínimo de saída de vídeo-v à Trabalha com o máximo de saídamkswap <strong>–</strong> Prepara para que seja utiliza<strong>do</strong> como área de memória virtual. Exemplo:#mkswap /dev/hda6df <strong>–</strong> Mostra a capacidade utilizada de um sistema de arquivos. Opções:-h Mostra informações de forma amigável-i Mostra o número de inodes restantes no disco, ao invés de espaço em discodu <strong>–</strong> Fornece um lista detalhada sobre a utilização <strong>do</strong> disco.-a à Mostra to<strong>do</strong>s os arquivos-c à Mostra um total no final da listagem-h à Mostra informações de forma amigável-s à Mostra um sumário <strong>do</strong> diretório-S à Exclui os subdiretórios da contagemfsck <strong>–</strong> Checa e corrige erros no sistema de arquivos. Opções-A à Checa to<strong>do</strong>s os discos especifica<strong>do</strong>s em /etc/fstab-t à Especifica o tipo de sistema a ser verifica<strong>do</strong>Usan<strong>do</strong> ext2 pode-se ter as seguintes opções-c à checa os blocos defeituosos-f à Força a checagem-p à Repara automaticamenteRoberto Amaral <strong>–</strong> Marcelo Farias Página 1017/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>s-y à Não perguntas aos usuáriosCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXwhich <strong>–</strong> Localiza um coman<strong>do</strong> no disco. Exemplo:$which httpdfind <strong>–</strong> Localiza uma expressão recursivamente. Exemplos:$find / -name bash à localiza bash no disco$find / -iname teste à localiza desconsideran<strong>do</strong> maiúscula e minúsculas$find / -lname apache à localiza links simbólicos$find /home <strong>–</strong>ctime 30 à Arquivos altera<strong>do</strong>s no 30 dias$find / -used 10 à Acessa<strong>do</strong>s nos últimos 10 diasExemplo:locate <strong>–</strong> Busca arquivos e diretórios em um banco de da<strong>do</strong>s cria<strong>do</strong> com o coman<strong>do</strong> updatedb.$locate passwdupdatedb <strong>–</strong> Atualiza a bade de da<strong>do</strong>s com o caminho e nome <strong>do</strong>s arquivos e diretórios <strong>do</strong> sistemade arquivos. A base de da<strong>do</strong>s fica em /var/lib/slocate/slocate.dbpwd <strong>–</strong> Informa nome <strong>do</strong> diretório correntecd - Navega entre diretórios. Após o cd é sempre requeri<strong>do</strong> o espaço (cd /home). SintaxeSimplificaçõesAbreviaçãoSignifica<strong>do</strong>. (ponto) Diretório atual.. (<strong>do</strong>ispontos)Diretório anterior~ (til) Diretório home <strong>do</strong> usuário/ (barra) Diretório Raiz- (hifem) Útimo diretórioEm brancoSó o coman<strong>do</strong> cd, vai ao diretóriorootls à lista arquivooOpçãSignifica<strong>do</strong>-l Lista os arquivos em formato detalha<strong>do</strong>-a Lista to<strong>do</strong>s os arquivos incluin<strong>do</strong> ocultosRoberto Amaral <strong>–</strong> Marcelo Farias Página 1117/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX-r Na ordem alfabética reversa-h Informa o tamanho de forma legível-R Lista subdiretórioscp - Cópia de arquivos e diretórios. Exemplos:$ cp arquivo1 arquivo2$ cp /etc/passwd .$ cp <strong>–</strong>r ~aluno /rootOpçõesSignifica<strong>do</strong>s-i Mo<strong>do</strong> interativo-v Mostra o que está sen<strong>do</strong> copia<strong>do</strong>-r Recursivamente-p Preserva os atributos <strong>do</strong> arquivo-d Preserva os links ao copiar os arquivos-f Força a cópiamv <strong>–</strong> Move ou renomeia arquivos. Opções:-f à Força a movimentação <strong>do</strong>s arquivos-i à Pergunta ao usuário antes de moverExemplo$ mv arq1 arq2 à renomeia arquivo$ mv arq1 /tmp à move o arquivorm <strong>–</strong> Remove arquivos. Opções:-f à Força remoção sem perguntar-R à Remove um diretório e seu conteú<strong>do</strong>Exemplo$rm arquivo à remove arquivo$rm <strong>–</strong>Rf <strong>do</strong>cumentos à remove o diretório e seu conteú<strong>do</strong>whatis <strong>–</strong> Procura no banco de da<strong>do</strong>s whatis por uma palavra.Exemplo$apropos fscapropos <strong>–</strong> Procura no banco de da<strong>do</strong>s whatis por partes de uma palavra.Roberto Amaral <strong>–</strong> Marcelo Farias Página 1217/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>smkdir - Cria diretório. Opções:CURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX-p à cria um diretório “pai” e “filho”-m à cria diretório e já atribui permissõesExemplos$mkdir <strong>–</strong>p <strong>do</strong>c/cartas à Cria pai e filho, se pai não existir$mkdir <strong>–</strong>m 777 <strong>do</strong>c/mod à Cria mod, com atributo 777rmdir à Remove diretórios <strong>do</strong> sistema. Opções:-f à Força a operação-r à Remove recursivamentetouch <strong>–</strong> muda a data e hora de acesso e/ou modificação de um arquivo.Opções:-a à Muda a data e a hora de acesso para a atual-m à Muda a data e a hora de modificação para atual-t datahora à Muda a data e hora para a definida.Exemplos$touch <strong>–</strong>t 200712031300 arqtee à Recebe da<strong>do</strong>s de uma entrada, grava em arquivo e envia para um saída. Opção:-a à adiciona no final <strong>do</strong> arquivo ao invés de sobrescreverExemplo:$folha |tee folha.txt | imprime | tee boleto.txt | lpr 2>erros.logO resulta<strong>do</strong> <strong>do</strong> programa folha é grava<strong>do</strong> em folha.txt e envia<strong>do</strong> ao imprime, sen<strong>do</strong> queredireciona a saída para boleto.txt que é envia<strong>do</strong> ao lpr e caso apresente erro grava em erros.logDiff à Compara o conteú<strong>do</strong> de <strong>do</strong>is arquivos, exibin<strong>do</strong> as diferenças. Exemplo:#diff arq1 arq2ln à Estabelece ligações entre arquivosln [-s] Hard Link à Os <strong>do</strong>is compartilham da<strong>do</strong>sLink simbólico à A ligação é somente o caminhoSistema de MontagemO Linux armazena as configurações de quais dispositivos deverão ou não serem monta<strong>do</strong>s nainicialização <strong>do</strong> sistema. Este sistema operacional trabalha com vários tipos de sistemas de arquivos.Roberto Amaral <strong>–</strong> Marcelo Farias Página 1317/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXExemplo de Sistema de MontagemMontagem de Sistemas de ArquivosSistema A/dev/hda1/Dois Sistemas de ArquivosSistema B/dev/hda2/bindev home etcbin lib etcSistema A/$mount /dev/hda2 /etcbindev home etcbin lib etcSistema BO Linux mantem um arquivo específico para controle <strong>do</strong> sistema de arquivo (/etc/fstab). Campos<strong>do</strong> /etc/fstab:Dispositivo;Ponto de Montagem;Tipos de Sistemas de Arquivos;Opções de Montagem;Freqüência de Backup;Checagem de Disco;Valores <strong>do</strong> Campo Opções. Opções de Montagem:async - as operações de E/S são realizadas assincronamente.auto - o sistema pode ser monta<strong>do</strong> durante a inicialização ou pode ser monta<strong>do</strong> com o coman<strong>do</strong>mount -a.defaults - usa as opções padrão: rw, suid, dev, exec, auto, nouser e async.dev - interpreta dispositivos especiais de blocos ou caractere.exec - permite que os programas sejam executa<strong>do</strong>s a partir <strong>do</strong> dispositivo.noauto - não pode ser monta<strong>do</strong> com o coman<strong>do</strong> mount -a (deve ser monta<strong>do</strong> explicitamente).Roberto Amaral <strong>–</strong> Marcelo Farias Página 1417/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXnoexec - não permite que os programas sejam executa<strong>do</strong>s a partir <strong>do</strong> dispositivo.nosuid - não permite o uso <strong>do</strong>s bits de configuração de identificação de usuário ou de grupo.nouser - não permite que o usuário comum monte o sistema de arquivos.ro - monta o dispositivo para leitura.rw - monta o dispositivo para leitura e gravação.suid - permite uso <strong>do</strong>s bits de configuração de identificação <strong>do</strong> usuário e <strong>do</strong> grupo.user - permite que o usuário comum monte o sistema de arquivos.Freqüência de Backup: define quais sistemas de arquivos devem ser copia<strong>do</strong>s pelo programadump. Este programa examina os arquivos e determina quais arquivos devem ser copia<strong>do</strong>s (backup).Um valor zero significa que o sistema não é examina<strong>do</strong> pelo programa dump. Um valor 1 significa queserá feito o backup <strong>do</strong> sistema de arquivos toda vez que o programa dump for executa<strong>do</strong>.Checagem de Disco: define a ordem pela qual os sistemas de arquivos devem ser verifica<strong>do</strong>sdurante o processo de inicialização pelo programa fsck. O sistema raiz (/) deve ter ordem 1 (primeiro aser verifica<strong>do</strong>) e os outros sistemas devem ter valor zero (não é verifica<strong>do</strong>) ou valor maior que 1 (éverifica<strong>do</strong>). É possível especificar um mesmo valor para mais de um sistema de arquivos, isto significaque os sistemas serão checa<strong>do</strong>s em paralelo.Ambiente ShellO Ambiente Shell <strong>do</strong> Linux, assim como <strong>do</strong> Unix, é uma grande aplicativo, que tem como grandefinalidade, aproximar o usuário <strong>do</strong> Hardware, ajudan<strong>do</strong>-o a tomar decisões de funcionamente através desuas funcionalidades.Essas funcionalidades nada mais é quem o conjunto de coman<strong>do</strong> disponibiliza<strong>do</strong>s pelo Sistemaoperacional. Portanto o Shell, é um interpreta<strong>do</strong>r de coman<strong>do</strong>s que analisa o texto digita<strong>do</strong> na linha decoman<strong>do</strong> e os executam, trabalhan<strong>do</strong> como uma grande interface entre o usuário e o Kernel <strong>do</strong> Linux.Sen<strong>do</strong> o Kernel, o verdadeiro Sistema Operacional.Na figura abaixo, é apresenta<strong>do</strong> o esquema de funcionamento <strong>do</strong> Linux, sen<strong>do</strong> que ointerfaceamento entre os Aplicativos de usuários e o Kernel é realiza<strong>do</strong> pelo Ambiente Shell. Quanto éinicializa<strong>do</strong> o ambiente gráfico <strong>do</strong> Linux, não importan<strong>do</strong> qual, este é trata<strong>do</strong> como aplicativo e ointerpreta<strong>do</strong>r de coman<strong>do</strong>s para este ambiente, continua sen<strong>do</strong> o próprio Ambiente Shell.Roberto Amaral <strong>–</strong> Marcelo Farias Página 1517/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXPrograma de Nível deUsuárioProgramas NormaisKernelChamada de SistemaGerenciamentode SistemaVirtualGerenciamentode MemóriaGerenciamentode ProcessoGerenciamentode Sistema deRedeGerenciamentode SistemaVirtualDrivers TCP/IPDrivers HDDrivers FloppyDrivers EthernetIDE HD IDE Floppy Placa de RedeHardwareExistem vários tipos de ambientes Shell. Os seus diferenciais são, tipos de coman<strong>do</strong>s,quantidades de coman<strong>do</strong>s, funções específicas, tamanhos. Os tipos de Shell são:csh: É a shell mais utilizada em sistemas como *BSD ou Xenix. A sua estrutura de coman<strong>do</strong>s ésimilar á Linguagem C.sh: Ou Bourne Shell é a shell pré-defenida apartir de Unix. Apartir da versão 7 substituin<strong>do</strong> a tcsh,esta costuma a ser a shell pré-defenida para o root.bash: (Bourne-Again SHell) Muito similar a sh, esta é a shell mais utilizada por contercaracterísticas como: Auto-Complete, podemos personalizar to<strong>do</strong> o output de uma forma simples,entreoutras....tcsh: Compatível e semelhante a csh.ksh: Considerada a mais popular no sistema Unix, ten<strong>do</strong> todas as funções <strong>do</strong> sh. Korn Shell foi aprimeira a introduzir recursos avança<strong>do</strong>s.zsh: Z Shell tem como grande vantagem um enorme interpreta<strong>do</strong>r de coman<strong>do</strong>sInterpreta<strong>do</strong>r de Coman<strong>do</strong>s (Shell)O Sistema Operacional é o código executor das chamadas de sistemas, as quais sãoencaminhadas pelo Shell ao Kernel, conforme digitação/necessidade <strong>do</strong> usuário.Os editores, compila<strong>do</strong>res, monta<strong>do</strong>res, liga<strong>do</strong>res e interpreta<strong>do</strong>res de coman<strong>do</strong>s não fazem parte<strong>do</strong> sistema operacional.Roberto Amaral <strong>–</strong> Marcelo Farias Página 1617/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXPor exemplo, se o usuário digitar o coman<strong>do</strong> date, o shell cria um processo-filho e roda oprograma date, enquanto o processo estiver rodan<strong>do</strong> o shell fica a espera, qual o processo date terminar,ele é excluí<strong>do</strong> da memória e o prompt retorna ao normal.Sempre que um determina<strong>do</strong> usuário inicializa o ambiente (loga-se), é executa<strong>do</strong> uma shellespecífica para ele. Esta shell nada mais que o ambiente específico para o usuário, o qual encontra-sedefinada em /etc/passwd qual tipo de Shell será inicializa<strong>do</strong>. Neste arquivo pode ser verifica<strong>do</strong> que no oúltimo campo de cada linha <strong>do</strong> /etc/passwd específica qual é o programa executa<strong>do</strong> quan<strong>do</strong> um usuáriofaz login. Esse programa é habitualmente uma shell, mas não é obrigatório, poden<strong>do</strong> ser um programaqualquer (ex. leitor de email, programa de monitorização, etc.).Ao ser iniciada em mo<strong>do</strong> de login, a bash executa o script de inicialização <strong>do</strong> sistema(/etc/profile), e o primeiro script de inicialização que existente na home <strong>do</strong> usuário é (~/.bash_profileou se não existir o ~/.bash_login ou se não existir o ~/.profile). Quan<strong>do</strong> é feito o logout da shell éexecuta<strong>do</strong> o script de logout (~/.bash_logout).Uma boa dica para o ambiente shell é que os arquivos /etc/rc.local (/etc/rc.d/rc.local), /etc/bashrc,/etc/profile, ~/.bashrc e ~/.bash_profile podem ser usa<strong>do</strong>s para iniciar scripts, setar variáveis deambiente, executar programas. Por exemplo se quiser executar um script ou uma linha de coman<strong>do</strong>, tipoIPTABLES, poderia utilizar o arquivo rc.local, este é executa<strong>do</strong> toda vez que a máquina é inicializada, nofinal <strong>do</strong> processo de boot. Então rotinas de firewall podem ser escritas em um script e ter sua execuçãoapartir <strong>do</strong> rc.local. O bashrc e profile no /etc/, são arquivos de uso genérico. O bashrc para execução derotinas e o profile para variáveis. Os arquivos .bashrc e .bash_profile, são arquivos individuais de cadausuário, qualquer alteração servirá para o usuário especifica<strong>do</strong>.Exemplo de um ambiente Shell ( Ambiente de linha de coman<strong>do</strong>)Coman<strong>do</strong>s em backgroundEnquanto a shell está executan<strong>do</strong> um coman<strong>do</strong>, não é apresenta<strong>do</strong> um novo prompt, ten<strong>do</strong> ousuário esperar que o coman<strong>do</strong> acabe para poder ser inseri<strong>do</strong> um novo coman<strong>do</strong>. Este comportamentopode ser altera<strong>do</strong>, acrescenta<strong>do</strong> um & no final <strong>do</strong> coman<strong>do</strong>. Neste caso a prompt é apresentada deRoberto Amaral <strong>–</strong> Marcelo Farias Página 1717/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXimediato, fican<strong>do</strong> o coman<strong>do</strong> a ser executa<strong>do</strong> em "fun<strong>do</strong>". No entanto to<strong>do</strong> o output <strong>do</strong> coman<strong>do</strong>executa<strong>do</strong> continua a ser envia<strong>do</strong> para a shell. Exemplo: bash$ sleep 10 bash$ sleep 10 &Para visualizar os processos em execução, em background. Exemplo $jobs.O ambiente Shell, sempre mantem um grupo de variáveis de ambiente para poder prestar certasfuncionalidades ao usuários e principalmente para informar ao Kernel de tu<strong>do</strong> que está ocorren<strong>do</strong> noSistema Operacional. O coman<strong>do</strong> set é utiliza<strong>do</strong> para visulizar as variáveis de ambientes usadas peloKernel.Variáveis comuns <strong>do</strong> ambiente ShellPrompt String 1 (PS1) à Guarda o conteú<strong>do</strong> <strong>do</strong> prompt de coman<strong>do</strong>s para receber instruçõesPrompt String (PS2) à Guarda o conteú<strong>do</strong> <strong>do</strong> prompt para receber múltiplas instruções• \u à nome <strong>do</strong> usuário• \h à nome <strong>do</strong> host• \w diretório corrente• \W último elemento <strong>do</strong> corrente diretório• \d data corrente• \t hora correnteÉ possível também adicionar cores, ao prompt entre outras coisa. Aqui vai um exemplo de uma quecontêm o user@hostname em verde, e o caminho atual azul, e a hora:\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \t \$\[\033[00m\]Roberto Amaral <strong>–</strong> Marcelo Farias Página 1817/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXVisualizar as variáveis de ambientes PS1 e PS2$echo $PATH à lista de dieretórios que contêm os programas que poderão ser executa<strong>do</strong> sem passar nalinha de coman<strong>do</strong> o caminho completo da sua localização.Verificação de caminhosIncluin<strong>do</strong> novo caminho• $ export PATH=$PATH:/opt/firefox (quan<strong>do</strong> reiniciar ele some)Para alterar ou criar uma variávelUma variável deve ser em caixa ALTAExport à exporta a mesma para o sistemaTrabalhan<strong>do</strong> no ambiente ShellPara utilizar coman<strong>do</strong>s, devem estar no PATHComan<strong>do</strong> possuem opções que são invocadas através da “-” ou “—” e argumentos.Roberto Amaral <strong>–</strong> Marcelo Farias Página 1917/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXUtilização de opções com “- -“Para colocar a PATH definitivamente terá que editar o /etc/profile, ou o ~/.bashrc. No /etc/profile osvalores são para to<strong>do</strong>s os usuários <strong>do</strong> sistema, no .bashrc será apenas para o usuário que tiver o arquivodentro da sua homedir (como podemos ver no caminho). De notar ainda que é necessário carregar essasalterações: $source /etc/profileTrabalhan<strong>do</strong> no Ambiente ShellEdição <strong>do</strong> arquivo profileAtalhoDescrição!! Executa o último coman<strong>do</strong> digita<strong>do</strong>!n Executa o coman<strong>do</strong> na linha n no arquivo .bash_history!textoExecuta o coman<strong>do</strong> mais recente que inicia com texto!?textoExecuta coman<strong>do</strong> mais recente que contém o texto^texto1^texto2Executa o último coman<strong>do</strong>, substituin<strong>do</strong> o texto 1 pelo texto2Roberto Amaral <strong>–</strong> Marcelo Farias Página 2017/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXAlt+MCtrl+pCtrl+nCtrl+bCtrl+fCtrl+aCtrl+eCtrl+lCtrl+dCtrl+kCtrl+yCtrl+rCtrl+sVai para o início <strong>do</strong> arquivo .bash_historyDescriçãoVai para o fim <strong>do</strong> arquivo .bash_historyRecupera os coman<strong>do</strong>s armazena<strong>do</strong>s no arquivo .bash_history de traz parafrenteRecupera os coman<strong>do</strong>s já lista<strong>do</strong>s de frente para trazVolta um caractere nos coman<strong>do</strong>s recupera<strong>do</strong>sAnda um caractere para frente no coman<strong>do</strong>s recupera<strong>do</strong>sVolta para o início da linha nos coman<strong>do</strong>s recupera<strong>do</strong>sVai para o fim da linha nos coman<strong>do</strong>s recupera<strong>do</strong>sLimpa a telaApaga caracteres <strong>do</strong> texto <strong>do</strong> cursor até o fim da linhaApaga o texto <strong>do</strong> cursor até o fim da linha de uma só vezCola o texto apaga<strong>do</strong> pelo coman<strong>do</strong> anteriorProcura coman<strong>do</strong>s que contém um texto apartir <strong>do</strong> últimoProcura coman<strong>do</strong>s que contém um texto apartir primeiroRoberto Amaral <strong>–</strong> Marcelo Farias Página 2117/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXFiltro de TextoO Linux possui diversas ferramentas para trabalhar e transformar arquivos texto, puros semformatação especial. Estas ferramentas são úteis quan<strong>do</strong> estamos trabalhan<strong>do</strong> com Scripts, Arquivos deConfiguração, Arquivos de Log, etc.Rediciona<strong>do</strong>resOpera<strong>do</strong>rSignifica<strong>do</strong>> ou 1> redireciona para saída>> redireciona para fim de arquivo< redireciona para a entradaredireciona a saída de erros| redireciona a saída de um coman<strong>do</strong> para a entrada de um outro coman<strong>do</strong>teeredireciona o resulta<strong>do</strong> para a saída padrão e para um arquivo, deve serusa<strong>do</strong> em conjunto com o "|"ExemplosO coman<strong>do</strong> cat abaixo copia o conteú<strong>do</strong> <strong>do</strong>s arquivos teste1.txt e teste2.txt para o arquivoteste. Caso o arquivo teste não exista, o arquivo é cria<strong>do</strong>. Caso o arquivo teste exista, ele é sobreposto.cat teste1.txt teste2.txt > testeO coman<strong>do</strong> cat abaixo adiciona o conteú<strong>do</strong> <strong>do</strong> arquivo teste3.txt no final <strong>do</strong> arquivo teste. Caso oarquivo teste não exista, ele é cria<strong>do</strong>.cat teste3.txt >> testeO coman<strong>do</strong> cat abaixo recebe como entrada o arquivo teste.txt e portanto, mostra na tela oconteú<strong>do</strong> deste arquivo.cat < teste.txtSuponha que o diretório xxxxx não exista. Então o coman<strong>do</strong>: ls xxxxxx apresentaria umamensagem de erro. Para direcionar a saída de erro deste coman<strong>do</strong> para o arquivo resulta<strong>do</strong>, basta digitar:ls xxxxxx >& resulta<strong>do</strong> ou ls xxxxxx 2> resulta<strong>do</strong>Abaixo temos três coman<strong>do</strong>s aninha<strong>do</strong>s: primeiro, o coman<strong>do</strong> cat exibe o conteú<strong>do</strong> <strong>do</strong> arquivoteste.txt; segun<strong>do</strong>, o resulta<strong>do</strong> <strong>do</strong> coman<strong>do</strong> cat é usa<strong>do</strong> como entrada <strong>do</strong> coman<strong>do</strong> wc que conta oRoberto Amaral <strong>–</strong> Marcelo Farias Página 2217/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>s$cut <strong>–</strong>d : -f 1 /etc/passwd$cat /etc/hosts | cut <strong>–</strong>f 2CURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXexpandTroca a tabulação dentro <strong>do</strong>s textos pelo número de espaços. Deixa o texto mais fácil sua leitura. Opções• -t número à especifica o número de espaço para o tab.• -i à Converte somente no início das linhas$ expand LEIAME.TXTfmtFormata um texto com uma largura específica. Pode remover ou adicionar espaços. Opções• -w número à Configura a largura desejada para o texto$ fmt <strong>–</strong>w 50 LEIAME.TXTgrepProcura por linhas/palavras em um arquivo que satisfaça um determina<strong>do</strong> padrão de busca.• -i ignora maiúscula e minúscula• -c contar quantas coincidências• -l não mostra a linha encontrada• -v Mostra as linhas não coincidentes• -n Mostra a linha dentro <strong>do</strong> arquivoExemplos• $grep aluno /etc/passwd• $cat /etc/passwd |grep aluno• $cat /etc/passwd |grep aluno |cut <strong>–</strong>d : -f 5• $cat /proc/net/dev |grep eth0• $ifconfig eth0 |grep packetsheadMostra as primeiras 10 linhas <strong>do</strong> início de um texto. Opções:• -n número à Configura o número de linhas a ser mostrada$head <strong>–</strong>n 20 /etc/passwdjoinUnes as linhas de ambos os arquivos que tenham um índice comum. Usa<strong>do</strong> para criar um banco deda<strong>do</strong>s simples. Opções:Roberto Amaral <strong>–</strong> Marcelo Farias Página 2417/10/2011


DiNi ® ComponentsMedición continua HzMedición únicaTS -M Hz-M,,MODSistema de medición de alturas y distancias 5 Función de mediciónGenera<strong>do</strong>r de señales acústicasSistema de medición de ángulos del DiNi ® 12 TPara determinación electrónica de la dirección horizontal.El sistema de medición absoluta de ángulos permite mediciones únicas o continuascon una precisión de 1 mgrad (5“). EL tiempo que tarda una medición sencillaes normalmente de 0.3 segun<strong>do</strong>s.El sistema de medición de ángulos es desactiva<strong>do</strong> en el mo<strong>do</strong> nivelante y se activaen los mo<strong>do</strong>s de estación total y de coordenadas.Para más detalles, ver el capítulo 5.ObjetivoFunciónseñal muy corta:señal corta:Confirma las funciones y las señales de alerta cuan<strong>do</strong> los mensajes de sistemaaparecen.Confirma que una tecla ha si<strong>do</strong> presionada, Final de una función, por ejemplo, finde una mediciónError de operación, mensaje de sistema, alertaActivación y desactivaciónseñal larga:En el menú principalMemoriaLa memoria permanente del DiNi ®almacena constantes calculadas, mo<strong>do</strong>s deoperación, unidades de medición, etcétera, aún después de apagar el aparato.Los datos medi<strong>do</strong>s e información adicional pueden ser almacena<strong>do</strong>s en tarjetasIntercambiables PC (DiNi ® 12 y DiNi ® 12 T) o en la memoria interna (DiNi ® 22).11


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sExemploCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX• Roberto.amaral à arq1• utp.br à arq2• Paste <strong>–</strong>d’@’ arq1 arq2prFormata um arquivo para uma saída paginada com cabeçalho, margem e largura definida. Colocaautomaticamente o número de página e data. Opções:• -d à espaçamento duplo• -i número à Especifica o número de caracteres na largura• -o número à Especifica o número de espaços da margemExemplo• $pr <strong>–</strong>l 75 <strong>–</strong>o 5 /etc/passwdsortOrdena um arquivo: Opções• -b ignora espaços em brancosplitUsa<strong>do</strong> para dividir grandes arquivos em n-arquivos. Opção:• -n à número de linhas que irão dividir o arquivo de entradaExemplo• $split -20 arquivo.txt arquivodesaida.txttacMostra o conteú<strong>do</strong> de um ou mais arquivos de trás para frente.Exemplo• $tac arquivo.txttailVisualiza as últimas 10 linhas de um arquivo. Opções:• -n número à Número de linhas finais a ser mostrada• -f à Mostra as últimas linhas <strong>do</strong> arquivo, enquanto outro processo grava aspróximas linhastrTroca um texto por outro especifica<strong>do</strong>. Não trabalha diretamente com arquivo, portanto deve serutiliza<strong>do</strong> em conjunto com outro coman<strong>do</strong>. Opções:Roberto Amaral <strong>–</strong> Marcelo Farias Página 2617/10/2011


wc<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sExemploCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX• -d à Apaga as ocorrências das variáveis de busca• -s à Suprime as ocorrências repetidas da variável de busca• $cat arquivo1 | tr a-z A-Z à troca todas as letras de a a z por A a Z.Conta as linhas, palavras e caracteres de um ou mais arquivos. Opções:• -c à Conta o número de caracteres• -l à Conta o número de linhas• -L à conta o número de caracteres da maior linha <strong>do</strong> arquivo• -w -> Conta o número de palavrasxargsExecuta o coman<strong>do</strong> e passa como argumento o que foi recebi<strong>do</strong> como entrada padrão. Opções:• -p à pergunta se é para executar o coman<strong>do</strong>• -r à Não executa o coman<strong>do</strong> se receber linhas vazias• -t à Mostra o coman<strong>do</strong> na tela antes de executarRedirecionamento e Condutores (PIPE)• Antes de definir PIPE: Entrada padrão (stdin) à Representa<strong>do</strong> por 0 Saída padrão (st<strong>do</strong>ut) à Representa<strong>do</strong> por 1 Saída de erro (stderr) à Representa<strong>do</strong> por 2• Para redirecionar um resulta<strong>do</strong> de uma saída para uma outra é usa<strong>do</strong> o sinal de maior (>) eentrada para entrada o sinal de menor ( saida.txt• Lista os arquivos de um diretório e grava no arquivo saida.txtRedirecionamento e Condutores (PIPE)• Usa<strong>do</strong> por programas ou quan<strong>do</strong> o resulta<strong>do</strong> de um processamento não será observa<strong>do</strong>diretamente pelo usuário, mas envia<strong>do</strong> para outro programa, arquivo ou dispositivo.Redirecionamento e Condutores (PIPE)• ExemplosRoberto Amaral <strong>–</strong> Marcelo Farias Página 2717/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX$./folha_pagamento > arquivo1$./folha_pagamento 2 > arquivo_erro.log$./folha_pagamento > arq_ok.log 2> arq_erro.log$./folha_pagamento | imprime 2> erros.logSímbolos Coringa• * à “qualquer coisa” à certi*• ? à Substituir um caractere à ?ertifica<strong>do</strong>Expressao RegularUma expressão regular é um méto<strong>do</strong> formal de se especificar um padrão de texto a ser procura<strong>do</strong>em um ou mais arquivos. É uma composição de caracteres com funções especiais que , agrupa<strong>do</strong>s entre sicom caracteres literais (A a Z) e números, podem formar uma seqüência, uma expressão que o shell eeditores podem entender e buscar.Expressões regulares são úteis para procurar e/ou validar textos variáreis como:• Número IP• Endereço de e-mail• Da<strong>do</strong>s em colunas• CGC, CPF, RGgrep [opções] expressao arquivo• Filtra linha de um determina<strong>do</strong> arquivo procuran<strong>do</strong> por um expressão regular como padrão. Ogrep pode ler um ou mais arquivos que são passa<strong>do</strong>s como argumentos ou pode receber naentrada padrão o redirecionamento da saída de outro processo.Opções• -c Mostra a contagem da ocorrencia• -h Mostra somente as linha encontradas• -i Procura e ignora maiúscula e minúscula• -v Mostra todas as linhas, menos a ocorrencia• -n Mostra o número das linhas• -B nExemplosls + grepgrep filtran<strong>do</strong> resulta<strong>do</strong> de ls, listar somente arquivos que contenha "modem" no nome.Roberto Amaral <strong>–</strong> Marcelo Farias Página 2817/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>s• #ls | grep modemCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXtail + grepgrep filtran<strong>do</strong> resulta<strong>do</strong> de tail nos logs.filtro por IP de origem, exemplo pra monitorar logs <strong>do</strong> squid, exibir somente os da<strong>do</strong>s <strong>do</strong> IP192.168.1.53:• #tail -f /var/log/squid/access.log | grep 192.168.1.53Com Squid autentica<strong>do</strong>, exibir somente os registros <strong>do</strong> usuário zago• #tail -f /var/log/squid/access.log | grep zagoprocurar somente nas ultimas 1000 linhas• #tail -1000 /var/log/squid/access.log | egrep '(extreme|gator)'tail + grepprocurar em multipos arquivos com multiplos argumentos:• #tail -f /var/log/squid/access.log | grep "palavra1\|palavra2\|palavra3" >> /tmp/loggrep.txt• #tail -f /var/log/squid/access.log | egrep --line-buffered (palavra1|palavra2|palavra3|...|palavran)• #tail -f /var/log/squid/access.log | egrep --line-buffered '(google|globo|uol)'• #tail -f /var/log/squid/access.log | grep "google\|globo\|uol" >> /tmp/loggrep.txtdmesg + grepexemplos de procura no dmesg, dispositivos detecta<strong>do</strong>s no boot.Listar tu<strong>do</strong> que contenha hd• #dmesg | grep hdListar tu<strong>do</strong> que contenha eth• #dmesg | grep ethDestacar a palavra procurada:• #grep --color palavra /home/zago/guiaz/coman<strong>do</strong>s.txt• #dmesg | grep --color hdps aux | grep processo | grep -v grepcompare os resulta<strong>do</strong>s.• #ps aux | grep ssh• #ps aux | grep ssh | grep -v grep• #ps aux | grep ssh | grep -v grep | wc -lListar registos <strong>do</strong> arquivo /etc/passwd cujo interpreta<strong>do</strong>r de coman<strong>do</strong>s de login seja a bash• $ grep "/bin/bash$" /etc/passwdListar apenas o login, o uid e o interpreta<strong>do</strong>r de coman<strong>do</strong>s de registos <strong>do</strong> arquivo /etc/passwd cujashell seja a bashRoberto Amaral <strong>–</strong> Marcelo Farias Página 2917/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX• $ cut -d: -f1,3,7 /etc/passwd | grep "/bin/bash$"• $ grep "/bin/bash$" /etc/passwd | cut -d: -f1,3,7Listar apenas o login, o uid e o interpreta<strong>do</strong>r de coman<strong>do</strong>s de registos <strong>do</strong> arquivo /etc/passwd cujouid esteja entre 10 e 29• $ cut -d: -f1,3,7 /etc/passwd | grep ":[12][0-9]:"#ifconfig eth0 | grep 'end.:' | cut -d " " -f 13#ifconfig eth0 | grep ‘RX' | cut -d " " -f 12Gerenciamento de ProcessosQuan<strong>do</strong> o computa<strong>do</strong>r é liga<strong>do</strong>, o Sistema Operacional Linux, automaticamente irá procurar pelogerencia<strong>do</strong> de boot. LILO ou GRUB. Após a carga, o Kernel inicia o processo init, sen<strong>do</strong> este o pai de to<strong>do</strong>s osprocessos e responsável pelo restante <strong>do</strong> boot <strong>do</strong> Sistema.Após a carga <strong>do</strong> boot o init incia o getty, sen<strong>do</strong> este responsável pela autenticação <strong>do</strong>s usuários epor iniciar o processo Shell. Cada programa em um Sistema Operacional, é um processo ou um conjunto deprocessos.Processo possuem atributos.• PID à Identificação <strong>do</strong> processo• UID e GID à Identificação <strong>do</strong> usuário/grupo que associou o processo• Processo Pai à Nenhum processo é executa<strong>do</strong> de forma independente.• PID à Identificação <strong>do</strong> Processo PAI• Variável de ambiente à Valores herda<strong>do</strong>s <strong>do</strong> pai, onde o filho poderá utilizá-lo ou não.• Diretório de Trabalho à Os processos são chavea<strong>do</strong>s a um diretório, onde ocorrerá a leiturade informações.• Temporiza<strong>do</strong>res à Tempos decorri<strong>do</strong>sSinais, são semelhante a interrupção de software. Estes são utiliza<strong>do</strong>s para informar ao Kernel, aoutros processos ou mesmo o usuário, sobre qualquer evento adicional que ocorra sobre um determina<strong>do</strong>processo. Quan<strong>do</strong> um sinal é envia<strong>do</strong> a um processo, este toma uma determinada ação, dependen<strong>do</strong> <strong>do</strong>sinal. No Linux, existem mais de 30 sinais.Sinal Valor AçãoHUP 1Usa<strong>do</strong> quan<strong>do</strong> o usuário fecha uma seçõ e/ou por servi<strong>do</strong>res para invocar a releitura deum arquivo de configuraçãoRoberto Amaral <strong>–</strong> Marcelo Farias Página 3017/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXINIT 2 Interrompe um processo. É envia<strong>do</strong> quan<strong>do</strong> um processo é aborta<strong>do</strong> com CTRL-CKILL 9 Termina o processo drasticamente. Pode deixar base de da<strong>do</strong>s corrompidasTERM 15 Encerra um processo de forma eleganteTSTP 18 Termina a execução e para continuar depoisControle de ProcessosO Linux permite colocar em 2º plano um processo (Background). Para que o processo execute emsegun<strong>do</strong> plano, este não pode depender de ações <strong>do</strong> usuário.Para se colocar um processo em 2º plano basta adicionar o caracter &.#find / -name *.conf > arquivo.txt &Prioridade de ExecuçãoO Linux possui como uma de suas atividades críticas o escalonamento de processo. Esteescalona<strong>do</strong>r é um algoritmo especial que coloca em fila to<strong>do</strong>s os processo em execução e decide qualprocesso irá se executa<strong>do</strong> e durante quanto tempo.O escalona<strong>do</strong>r é o que permite que o computa<strong>do</strong>r possa executar mais de um processo emconcorrência, dividin<strong>do</strong> a CPU em fatias de tempo de execução. A implementação <strong>do</strong> escalonamento é tãoimportante que ela é o que realmente faz a diferença nos sistemas operacionais modernos.O Linux permite que o usuário interfira na prioridade de execução <strong>do</strong>s processos liberan<strong>do</strong> mais oumenos tempo de CPU. A lista de prioridades pode ser vista com o coman<strong>do</strong> ps <strong>–</strong>lax na coluna PRI. Quantomaior a PRIoridade, mais tempo de CPU o processo tem e mais importante ele é.Coman<strong>do</strong>s de Gerenciamento de Processosps [opções]Gera uma lista com to<strong>do</strong>s os processos em execução e seus atributos• -a Mostra os processos em execução de to<strong>do</strong>s os usuários• -u Lista os processos, usuário, <strong>do</strong>nos, e início de execução• -x Lista de processos que não têm terminal associa<strong>do</strong>• -f Lista processos em forma de árvore.# ps <strong>–</strong>aux• Mostra os processos de to<strong>do</strong>s os usuários, liga<strong>do</strong>s ou não a um terminal, incluin<strong>do</strong>informações adicionais.Roberto Amaral <strong>–</strong> Marcelo Farias Página 3117/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXauxf.pstree [opções] [pid/usuário]Mostra toda a árvore de processo desde o init até o último processo em execução. Similar ao os <strong>–</strong>• -a Mostra a linha de coman<strong>do</strong> utilizada para inicar• -c Desabilita a função de mesclar os processos idênticos no mesmo nível de hierarquia.• -G Usa o formato VT100• -h Destaca os processos liga<strong>do</strong>s ao terminal no exato momento• -p Inclui o PID <strong>do</strong>s processos na listagempstree <strong>–</strong>apstree -GcpRoberto Amaral <strong>–</strong> Marcelo Farias Página 3217/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXtop [opções]Mostra os processo em execução, mas atualizan<strong>do</strong> em tempo real.• -b Usa<strong>do</strong> para direcionar a saída a um arquivo• -d n Determina o tempo de atualização• -n num Mostra o número de vezes de atualização• -q Executa atualização em tempo real.• -u Monitora os processos de um determina<strong>do</strong> usuário• -p Monitora os processos conforme um PID.topO top pode aceitar alguns coman<strong>do</strong>s: Z Muda o esquema de cores.F Adiciona colunas com mais opçõesu Mostra processos de um usuáriok Termina um processor Muda a prioridade de execução de processoR Muda a ordem <strong>do</strong>s processos de acor<strong>do</strong> com a utilização da CPUq Sai <strong>do</strong> mo<strong>do</strong> interativo topkill [-sinal] PIDEnvia sinal para os processos. Usa<strong>do</strong> para terminar a execução de processos.#kill <strong>–</strong>HUP processo à força a ler o arquivo de configuração# kill -9 processo à termina abruptamenteRoberto Amaral <strong>–</strong> Marcelo Farias Página 3317/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXkillall [-sinal] Nome-<strong>do</strong>-ProcessoEnvia sinal ao processo pelo nome#killall <strong>–</strong>HUP httpd#killall -9 sshdjobs [opções] [numero-tarefa]Lista os processo em execução em segun<strong>do</strong> plano. -l Lista o PID <strong>do</strong>s processos m segun<strong>do</strong> planobg [número-da-tarefa]Coloca em segun<strong>do</strong> plano uma tarefafg [número-da-tarefa]Coloca em primeiro plano uma tarefaniceAjusta o tempo disponível de CPU de um processo para mais ou menos prioridade, sen<strong>do</strong> que :• Se a prioridade for (-) quer dizer alta• Se a prioridade for (+) que dizer baixa• Se não informa<strong>do</strong> a prioridade, será assumi<strong>do</strong> +10#nice updatedb &• updatedb com menos prioridade• #nice <strong>–</strong>n -10 folha_pagamento ( Alta prioridade para a folha de pagamento)renice [+/-] ajuste [opção] PID/UsuárioAjusta a prioridade de processos que já estão em execução. (de -20 a +20)• -p Recebe um PID• -u Recebe um usuário• -g Recebe o nome <strong>do</strong> grupo# renice -1 987 <strong>–</strong>u deamon root <strong>–</strong>p 32O processo PID 987, PID 32 e to<strong>do</strong>s os processo <strong>do</strong> usuário deamon e root terão maisprioridade.Roberto Amaral <strong>–</strong> Marcelo Farias Página 3417/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXRoberto Amaral <strong>–</strong> Marcelo Farias Página 3517/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXSegurança de AcessoNo Linux to<strong>do</strong> arquivo é provi<strong>do</strong> de um esquema de acesso e permissão, ten<strong>do</strong> um <strong>do</strong>no, grupo <strong>do</strong>noe usuário comum. As Permissões para o grupo não se aplica ao <strong>do</strong>no e sim aos usuários desse grupo,assim como permissões somente poderão ser dadas pelo Superusuário ou pelo <strong>do</strong>no <strong>do</strong> arquivo. Amudança de <strong>do</strong>no ou <strong>do</strong>no de grupo só pode ser feita pelo superusuário.As contas <strong>do</strong>s usuários são gravadas em <strong>do</strong>is arquivos: /etc/passwd (gerencia os usuários) e/etc/sha<strong>do</strong>w ( gerencia as senhas).No arquivo /etc/passwd são grava<strong>do</strong>s:• Login;• Senha;• User ID ou UID;• Group ID ou GID;• Nome <strong>do</strong> Usuário;• Diretório Home• Shell.Sen<strong>do</strong> que o conteú<strong>do</strong> <strong>do</strong> arquivo /etc/passwd é :No arquivo /etc/sha<strong>do</strong>w, as senhas no Linux são criptografadas sobre sistema que não permite autilização de engenharia reversa para decriptografá-las. Mas existem sistemas que comparam pequenasstrings com parte das senhas criptografadas, e estes usan<strong>do</strong> força bruta em processamento, podemobter algum sucesso. Neste arquivo são grava<strong>do</strong>s: Login; Senha; Informação de expiração de conta.Roberto Amaral <strong>–</strong> Marcelo Farias Página 3617/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXConteú<strong>do</strong> <strong>do</strong> arquivo /etc/sha<strong>do</strong>wPara facilitar a organização <strong>do</strong>s acessos à arquivos, o Linux utiliza a teoria de grupos de usuários.• /etc/group à gerencia os grupos <strong>do</strong>s usuários• /etc/gsha<strong>do</strong>w à gerencia as senhas <strong>do</strong>s gruposGrupo.No arquivo /etc/group são grava<strong>do</strong>s: Nome <strong>do</strong> Grupo; Senha <strong>do</strong> Grupo; Group ID ou GID; Membros <strong>do</strong>Conteú<strong>do</strong> <strong>do</strong> arquivo /etc/groupNo arquivo /etc/gsha<strong>do</strong>w, temos a lista de senhas <strong>do</strong>s grupos.Conteú<strong>do</strong> <strong>do</strong> aruivo /etc/gsha<strong>do</strong>wRoberto Amaral <strong>–</strong> Marcelo Farias Página 3717/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXToda a manutenção de usuários e grupos deve ser feita manualmente com um editor de textochama<strong>do</strong> VI (vim). A criação das senhas deverão ser realizadas por programa escrito em C ANSI cria<strong>do</strong> ecompila<strong>do</strong> pelo próprio administra<strong>do</strong>r <strong>do</strong> servi<strong>do</strong>r.Coman<strong>do</strong>s de Gerenciamento de Segurançaadduser [opções] usuárioOpções :-d diretório : define o diretório home <strong>do</strong> usuário.-e mm/dd/yy : data de expiração da conta <strong>do</strong> usuário.-g grupo : especifica o GID <strong>do</strong> grupo padrão <strong>do</strong> usuário.-G grupo1[,grupo2, ...] : especifica o GID <strong>do</strong>s outros grupos aos quais o usuáriopertence.-s shell : especifica o shell padrão <strong>do</strong> usuário.-u uid : especifica o UID <strong>do</strong> usuário.A configuração padrão usada pelo coman<strong>do</strong> adduser é definida em /etc/default/useradd e em/etc/login.defs.userdel [-r] usuárioEste coman<strong>do</strong> deleta todas as entradas relacionadas ao usuário especifica<strong>do</strong> nos seguintesarquivos : /etc/passwd, /etc/sha<strong>do</strong>w e /etc/group.O uso da opção -r faz com que o sistema delete o diretório home <strong>do</strong> usuário.usermod [opções] usuário-d diretório [-m] : cria um novo diretório home para o usuário. A opção -m faz com que odiretório atual <strong>do</strong> usuário seja movi<strong>do</strong> para o novo diretório.-e mm/dd/yy : altera a data de expiração da conta <strong>do</strong> usuário.-g grupo : altera o GID <strong>do</strong> grupo padrão <strong>do</strong> usuário para o valor especifica<strong>do</strong>.-G grupo1[,grupo2, ...] : define o GID <strong>do</strong>s outros grupos aos quais o usuário pertence.-l nome : altera o nome de identificação <strong>do</strong> usuário (o usuário não pode estar loga<strong>do</strong>).-s shell : altera o shell <strong>do</strong> usuário.-u uid : altera o número de UID <strong>do</strong> usuário.Este coman<strong>do</strong> altera (se necessário) as entradas relacionadas ao usuário especifica<strong>do</strong> nos seguintesarquivos: /etc/passwd, /etc/sha<strong>do</strong>w e /etc/group.Roberto Amaral <strong>–</strong> Marcelo Farias Página 3817/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXgroupadd [opções] grupo-g gid : fornece a identificação numérica <strong>do</strong> grupo (GID) sen<strong>do</strong> cria<strong>do</strong>. O valor padrão é o menorvalor, maior que 500, que ainda não está aloca<strong>do</strong> a outro grupo. Valores entre 0 e 499 sãotipicamente reserva<strong>do</strong>s para as contas <strong>do</strong> sistema.-o : cria o grupo mesmo que já exista outro grupo com o GID especifica<strong>do</strong> (usa<strong>do</strong> em conjuntocom a opção -g).-f : força a criação <strong>do</strong> grupo. Caso o GID especifica<strong>do</strong> já exista, o sistema escolhe outro valor(usa<strong>do</strong> em conjunto com a opção -g).-r : cria uma conta <strong>do</strong> sistema. Por padrão, o valor escolhi<strong>do</strong> é o menor valor disponível entre 0 e499, a menos que a opção -g seja usada.groupdel grupoATENÇÃO: deve-se remover os usuários <strong>do</strong> grupo, antes de apagar o grupo, pois o Linux não faznenhum tipo de verificação.groupmod [opções] grupo-g gid : altera a identificação numérica <strong>do</strong> grupo (GID).-n nome : altera o nome <strong>do</strong> grupo.-o : altera o GID <strong>do</strong> grupo mesmo que já exista outro grupo com o GID especifica<strong>do</strong> (usa<strong>do</strong> emconjunto com a opção -g).ATENÇÃO: arquivos/diretórios com o GID antigo deve ser altera<strong>do</strong> manualmente. O Linux não fazqualquer tipo de verificação.groups usuárioO uso <strong>do</strong> coman<strong>do</strong> groups, sem parâmetros, faz com que o sistema informe os grupos <strong>do</strong>s quaiso usuário é membro.grpconvEste coman<strong>do</strong> migra as senhas criptografadas <strong>do</strong> /etc/group para o /etc/gsha<strong>do</strong>w. Neste caso,a posição da senha em /etc/group é preenchida com um "x".grpunconvEste coman<strong>do</strong> migra as senhas criptografadas <strong>do</strong> /etc/gsha<strong>do</strong>w para o /etc/group.Roberto Amaral <strong>–</strong> Marcelo Farias Página 3917/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>spasswd [-u] [usuário]CURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXA opção -u é usada para indicar que a atualização só é efetuada após a data de expiração dasenha atual.O usuário pode alterar a própria senha digitan<strong>do</strong> apenas passwd.O superusuário (root) pode alterar a senha de outro usuário digitan<strong>do</strong> o coman<strong>do</strong> passwd juntocom o nome <strong>do</strong> usuário.pwconvEste coman<strong>do</strong> migra as senhas criptografadas <strong>do</strong> /etc/passwd para o /etc/sha<strong>do</strong>w. Neste caso,a posição da senha em /etc/passwd é preenchida com um "x".pwunconvEste coman<strong>do</strong> migra as senhas criptografadas <strong>do</strong> /etc/sha<strong>do</strong>w para o /etc/passwd.who [opções]-H : mostra o cabeçalho das colunas.-i, -u : após um tempo de acesso, mostra o tempo que o usuário esteve inativo (hh:min). O valor'.' significa que o usuário esteve inativo no último minuto. O valor 'old' significa que o usuárioesteve inativo nas últimas 24 horas.-m : mostra o nome <strong>do</strong> usuário.-q : mostra os nomes e a quantidade total de usuários conecta<strong>do</strong>s.whoamiEste coman<strong>do</strong> é idêntico ao coman<strong>do</strong>: who -m.Gerenciamento de PermissõesCada arquivo e cada diretório está associa<strong>do</strong> a um usuário proprietário e a um grupo proprietário. O <strong>do</strong>node um arquivo ou de um diretório pode definir quem tem acesso ao arquivo e qual tipo de acesso épermiti<strong>do</strong> (r, w, x). Isto é chama<strong>do</strong> de permissão de acesso.como:Os níveis de acesso podem ser da<strong>do</strong>s conforme os usuários, sen<strong>do</strong> que estes usuários são defini<strong>do</strong>s• <strong>do</strong>no <strong>–</strong> é a pessoa que criou o arquivo ou o diretório. Somente o <strong>do</strong>no e o superusuário(root) podem alterar as permissões de acesso <strong>do</strong>s arquivos.• grupo <strong>–</strong> é o conjunto de usuários aos quais pertencem o arquivo.• outros <strong>–</strong> os outros usuários <strong>do</strong> sistema.Para cada nível de acesso são três os tipos de permissão:Roberto Amaral <strong>–</strong> Marcelo Farias Página 4017/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX<strong>–</strong> leitura (r) - permite ler o conteú<strong>do</strong> de um arquivo/diretório.<strong>–</strong> escrita (w) - permite alterar um arquivo/diretório.<strong>–</strong> execução (x) - permite executar um arquivo ou acessar um diretório.Níveis de acessoOctal Binário Letras Descrição0 000 --- sem acasso1 001 --x somente execução2 010 -w- somente escrita3 011 -wx escrita e execução4 100 r-- somente leitura5 101 r-x leitura e execução6 110 rw- leitura e escrita7 111 rwx leitura, escrita eexecuçãoFormatação <strong>do</strong>s níveis de acessoClasses de acesso a ArquivosRoberto Amaral <strong>–</strong> Marcelo Farias Página 4117/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXClasses de Acesso e Tipos de ArquivosObjeto Leitura (r) Gravação (w) Execução (x)Arquivo Permite ler o conteú<strong>do</strong> <strong>do</strong>arquivo.Permite alterar oconteú<strong>do</strong> <strong>do</strong> arquivoPermite executar oarquivo como umprogramaDiretorioPermite listar o conteú<strong>do</strong> <strong>do</strong>diretórioPermite criar eapagar arquivos nodiretorioPermite ler e gravararquivos no diretórioPermissões a arquivos e diretóriosOs linux define Classes de Acesso a Arquivos• Dono (u) à o usuário <strong>do</strong>no <strong>do</strong> arquivo• Grupo (g) à o grupo a que pertence o arquivo• Outros (o) à usuários que não são <strong>do</strong>nos nem pertencem ao grupo <strong>do</strong>no.• To<strong>do</strong>s (a) à to<strong>do</strong>s os usuáriosCaractereSignifica<strong>do</strong>- arquivos comunsdbcldiretóriosdispositivos de blocos (HD, FD)dispositivos de caractere (terminais)links simbólicosTipos de ArquivosTo<strong>do</strong>s os arquivos ou diretórios cria<strong>do</strong>s no Linux tem permissão 666 (rw-rw-rw-) e 777 (rwxrwxrwx)respectivamente. Através <strong>do</strong> coman<strong>do</strong> umask podemos alterar este padrão. umask recebe comoargumento um número inteiro de três dígitos, os quais representam a máscara para permissões <strong>do</strong> <strong>do</strong>no,grupo e outros respectivamente.Roberto Amaral <strong>–</strong> Marcelo Farias Página 4217/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXpadrão.Depois de definida a máscara de criação <strong>do</strong>s arquivos, ela deverá ser subtraída das permissõesExemplo: umask 2727 deverá ser interpreta<strong>do</strong> como 027000 (<strong>do</strong>no), 010 (grupo) e 111 (outros)Existem 3 tipos de acesso a um arquivo:• Leitura (r - read)• Escrita (w <strong>–</strong> write)• Execução (x <strong>–</strong> execute)Se o arquivo é um Script, este deve possuir o direito de leitura e execução. Para se eliminar umarquivo este deve ter o direito de escrita para o arquivo ou diretório.Para visualizar as permissões de um arquivo, pode ser utiliza<strong>do</strong> o coman<strong>do</strong> ls <strong>–</strong>l.Visualização das permissões/direitos aos arquivosComan<strong>do</strong>s de direitos de acesso a arquivoschown <strong>–</strong> trocan<strong>do</strong> <strong>do</strong>no <strong>do</strong> arquivochown [-f] [-R] <strong>do</strong>no arquivo-f não reporta erros-R executa o coman<strong>do</strong> recursivamenteExemplochown novo<strong>do</strong>no arquivoRoberto Amaral <strong>–</strong> Marcelo Farias Página 4317/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>schgrp <strong>–</strong> Trocan<strong>do</strong> o grupo <strong>do</strong> arquivoCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX<strong>–</strong> Obs: O <strong>do</strong>no pode alterar o usuário grupo deste arquivo desde que seja usuário <strong>do</strong> novogrupo.<strong>–</strong> chgrp [-f] [-R] grupo arquivo<strong>–</strong> Exemplo<strong>–</strong> Chgrp novogrupo arquivochmod <strong>–</strong> Ajustan<strong>do</strong> Permissões de Arquivos<strong>–</strong> chmod string-de-acesso [, ...] arquivo ...<strong>–</strong> Parâmentros• String-de-acesso à definem que permissões serão dadas• Arquivo à nome <strong>do</strong>s arquivos• Exemplo:• chmod u+w teste à escrita para o <strong>do</strong>no• chmod a+w teste à escrita para to<strong>do</strong>schmod [ugoa][+-=][rwxugost][opções] arquivo...<strong>–</strong> A combinação das letras ugoa no coman<strong>do</strong> chmod define quais os usuários estão ten<strong>do</strong> assuas permissões de acesso alteradas:• u = o <strong>do</strong>no <strong>do</strong> arquivo;• g = os usuários que são membros <strong>do</strong> mesmo grupo <strong>do</strong> arquivo;• o = os usuários que não membros <strong>do</strong> grupo <strong>do</strong> arquivo;• a = qualquer usuário <strong>do</strong> sistema.• Caso não seja especificada a classe <strong>do</strong>s usuários para os quais se está alteran<strong>do</strong> aspermissões, o sistema usa a opção a (to<strong>do</strong>s os usuários).Deve-se usar, no coman<strong>do</strong> chmod, um opera<strong>do</strong>r para especificar o tipo de modificação que se estáfazen<strong>do</strong> nas permissões:• o opera<strong>do</strong>r + provoca a adição das permissões informadas às permissões jáexistentes;• o opera<strong>do</strong>r - provoca a remoção de permissões especificadas;• o opera<strong>do</strong>r = provoca a redefinição das permissões (semelhante a zerar aspermissões e defini-las novamente).A combinação das letras rwxst no coman<strong>do</strong> chmod especifica as permissões de acesso:• r = leitura.Roberto Amaral <strong>–</strong> Marcelo Farias Página 4417/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>s• w = gravação.CURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX• x = execução (para arquivos) ou autorização de acesso (para diretórios).• u = usar as mesmas permissões já atribuídas ao <strong>do</strong>no <strong>do</strong> arquivo.• g = usar as mesmas permissões já atribuídas ao grupo.• o = usar as mesmas permissões já atribuídas a outros.• s = permissão especial de execução de um arquivo ou de acesso a um diretório.<strong>–</strong> Caso esta permissão seja dada ao <strong>do</strong>no <strong>do</strong> arquivo (diretório), a pessoa (comautorização) que executar o arquivo (acessar o diretório), o fará com aspermissões de <strong>do</strong>no <strong>do</strong> arquivo (diretório). Este tipo de permissão é conheci<strong>do</strong>como SUID. Por exemplo, se o root possui um programa SUID, esse programaexecutará com privilégios de root, mesmo que tenha si<strong>do</strong> inicializa<strong>do</strong> por umusuário comum.<strong>–</strong> Caso esta permissão seja dada ao grupo <strong>do</strong> arquivo (diretório), a pessoa (comautorização) que executar o arquivo (acessar o diretório), o fará com se fossemembro <strong>do</strong> grupo a qual pertence o arquivo (diretório). Este tipo de permissãoé conheci<strong>do</strong> como SGID.• t = permissão especial de execução de um arquivo ou de acesso a um diretório para oresto <strong>do</strong>s usuários <strong>do</strong> sistema (não é o <strong>do</strong>no e não pertence ao mesmo grupo <strong>do</strong>arquivo/diretório). Este tipo de permissão é conhecida como sticky bit.<strong>–</strong> Caso esta permissão seja dada a um diretório, o usuário pode criar,alterar eapagar apenas os seus próprios arquivos que estão neste diretório. Porexemplo, o diretório /usr/temp ou /tmp, usa<strong>do</strong> para armazenar arquivostemporários <strong>do</strong>s usuários <strong>do</strong> sistema, possui esta permissão.<strong>–</strong> Caso esta permissão seja dada a um arquivo, o arquivo pode ser compartilha<strong>do</strong>entre os vários usuários <strong>do</strong> sistema.Por exemplo, o coman<strong>do</strong>:chmod ug+rw utp.txtdefine que o arquivo utp.txt pode ser li<strong>do</strong> (r) e altera<strong>do</strong> (w) pelo <strong>do</strong>no (u) e pelos usuários que sãomembros <strong>do</strong> mesmo grupo (g) <strong>do</strong> arquivo utp.txt.Um exemplo <strong>do</strong> coman<strong>do</strong> chmod usan<strong>do</strong> a tabela octalchmod 764 utp.txtRoberto Amaral <strong>–</strong> Marcelo Farias Página 4517/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXNeste exemplo temos permissão de leitura, gravação e execução (7) para o <strong>do</strong>no <strong>do</strong> arquivo, temospermissão para leitura e gravação (6) para os membros <strong>do</strong> grupo <strong>do</strong> arquivo e permissão de apenas leitura(4) para os outros usuários <strong>do</strong> sistema.lOctaBinárioDescrição0 000 nenhuma permissão especial1 001 sticky bit2 010 SGID3 011 SGID e sticky bit4 100 SUID5 101 SUID e sticky bit6 110 SUID e SGID7 111 SUID, SGID e sticky bitusan<strong>do</strong> o mo<strong>do</strong> octal para definir as permissões especiais.No coman<strong>do</strong> chmod, as permissões especiais, no mo<strong>do</strong> octal, são definidas antes das permissões <strong>do</strong><strong>do</strong>no, <strong>do</strong> grupo e <strong>do</strong> resto <strong>do</strong>s usuários. Por exemplo:chmod 4760 utp.txtDefine que o arquivo utp.txt é um arquivo SUID (4) com permissões 7, 6 e 0 para o <strong>do</strong>no, grupo eoutros, respectivamente.Opções usadas no coman<strong>do</strong> chmod:<strong>–</strong> -v reporta as permissões <strong>do</strong>s arquivos, inclusive as mudanças de permissões;<strong>–</strong> -c reporta somente as mudanças de permissões<strong>–</strong> -R muda permissões de to<strong>do</strong>s os arquivos e diretórios recursivamente dentro da mesmahierarquiaOpções <strong>do</strong> chmod:<strong>–</strong> -v reporta as permissões <strong>do</strong>s arquivos, inclusive as mudanças de permissões;<strong>–</strong> -c reporta somente as mudanças de permissões<strong>–</strong> -R muda permissões de to<strong>do</strong>s os arquivos e diretórios recursivamente dentro da mesmahierarquiachmod <strong>–</strong> Ajustan<strong>do</strong> Permissões de Arquivos<strong>–</strong> chmod g+w,uo+r-w teste à grupo executa, <strong>do</strong>no e outros lê e não grava<strong>–</strong> chmod u=rwx teste à Dono lê, grava e executaRoberto Amaral <strong>–</strong> Marcelo Farias Página 4617/10/2011


Usan<strong>do</strong> numeral<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX<strong>–</strong> chmod 400 teste à só o <strong>do</strong>no lê<strong>–</strong> chmod 770 teste à grupo e <strong>do</strong>no lê, grava e executa<strong>–</strong> chmod 001 teste à outros executamKernel LinuxA medida que o Linux avançou pelos anos e em direção à popularidade, cada versão <strong>do</strong> Kernel,trouxe um salto em termos <strong>do</strong>s tipos de dispositivos suporta<strong>do</strong>s quanto a novas tecnologias emergentes esuporte a velhas tecnologias “legadas”.Para oferecer suporte a tantos dispositivos de hardware, o Kernel trabalha de duas maneiras.• Código <strong>do</strong>s drives compila<strong>do</strong>s junto• Carrega<strong>do</strong>s posteriormenteQuan<strong>do</strong> o Kernel trabalha com drivers compila<strong>do</strong>s junto, pode-se dizer que este é monolítico. Torna onúcleo mais rápi<strong>do</strong>, mas menos fexível. Qualquer mudança feita no hardware precisa recompilar o Kernel.Quan<strong>do</strong> o Kernel trabalha com drivers carrega<strong>do</strong>s posteriormente, o Kernel fica menor, porem to<strong>do</strong> ocódigo necessário para integrar o hardware necessita ser carrega<strong>do</strong> posteriormente na medida danecessidade.Os arquivos chama<strong>do</strong> módulos <strong>do</strong> Kernel são geralmente produzi<strong>do</strong>s a partir de código fonte escritoem C, que são compila<strong>do</strong>s mas não linka<strong>do</strong>s ao executável. Sua extensão normalmente é .o de objeto. Sãodistribui<strong>do</strong>s junto com o Kernel em C ou binário para ser compila<strong>do</strong>s. Estes são carrega<strong>do</strong>s ao Kernel quan<strong>do</strong>executa<strong>do</strong>s.Roberto Amaral <strong>–</strong> Marcelo Farias Página 4717/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXPrograma de Nível deUsuárioProgramas Normais.Chamada de SistemaKernelGerenciamentode SistemaVirtualGerenciamentode MemóriaGerenciamentode ProcessoGerenciamentode Sistema deRedeGerenciamentode SistemaVirtualDrivers TCP/IPDrivers HDDrivers FloppyDrivers EthernetIDE HDIDE FloppyPlaca deRedeHardwareLocalização <strong>do</strong> Kernel em um sistemaOs módulos são disponíveis em forma hierarquica no diretório /lib/modules/versão-<strong>do</strong>-kernel. Assim, osistema pode comportar diferentes versões de Kernel com diferentes versões de módulos.A versão <strong>do</strong> Kernel é obtida pelo coman<strong>do</strong> uname <strong>–</strong>r ou cat /proc/version.Em 2.6, indica que este Kernel possui uma versão 2 e com a sexta correção e melhorias. Em osegun<strong>do</strong> número, também indica se o Kernel está na sua versão estável (pares) ou em desenvolvimento(impares).Os arquivos binários de um kernel residem:Coman<strong>do</strong>s de manipulação <strong>do</strong> kernelRoberto Amaral <strong>–</strong> Marcelo Farias Página 4817/10/2011


lsmod/proc/modules<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXMostra quais são os módulos disponíveis no Kernel e quais estão sen<strong>do</strong> utiliza<strong>do</strong>s, usa como baseinsmod [opções] moduloCarrega um módulo para dentro <strong>do</strong> Kernel, fazen<strong>do</strong> as ligações necessárias entre o núcleo e omódulo. Opções• -f à força a carga de um módulo• -k à Retira um módulo se este não for usa<strong>do</strong> por um perío<strong>do</strong>• -L à Previne o Kernel de ler simultaneamente o mesmo módulo• -p à Testa se o módulo pode ser carrega<strong>do</strong>• -s à Redireciona a saída <strong>do</strong> coman<strong>do</strong> para sysloguso.rmmod [opções] móduloRemove ou descarrega um módulo <strong>do</strong> Kernel. Isso somente será feito se o módulo não estiver em Opções• w à Se estiver em uso, retira após sua parada• -s à Sua saída padrão é desviada ao syslog• -a à Remove to<strong>do</strong>s os módulos não usa<strong>do</strong>s.modinfo [opção] móduloMostra informações sobre um módulo• Opções -a à Mostra o autor-d à Mostra a descrição-l à Mostra a licença-p à Mostra os parâmetrosmodprobe [opções] modulo [parametros]Carrega e descarrega os módulos de forma inteligente no Kernel <strong>do</strong> Linux. Resolve dependencias deum módulo <strong>do</strong> Kernel e carrega. Utiliza o conteú<strong>do</strong> <strong>do</strong> arquivo /lib/modules/versão-kernel/modules.dep parasaber as dependencias que um módulo necesita. O modules.dep é gera<strong>do</strong> pelo coman<strong>do</strong> depmodmodprobe [opções] modulo [parametros]• Opções -C arquivo à Fornece outro arquivo e não modules.confRoberto Amaral <strong>–</strong> Marcelo Farias Página 4917/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX-c à Mostra a configuração <strong>do</strong> modprobe-n à Verifica a carga e descarga de um módulo-r à Remove um módulo <strong>do</strong> Kernel-s à Faz a saída para o syslog-f à Força a instalação de um módulo-l à Lista to<strong>do</strong>s os módulos-a à Carrega to<strong>do</strong>s os módulos que tenham uma chave de busca-t diretório à Tenta carregar os módulos de um diretório-v à Mostra detalhes durante a operação <strong>do</strong> modprobeO modprobe matém um arquivo de configuração chama<strong>do</strong> /etc/modules.conf, que controla ocomportamento <strong>do</strong> modprobe e passa parâmetros para os módulos <strong>do</strong> Kernel.depmod [opções]• Cria uma lista de dependências entre os módulos len<strong>do</strong> to<strong>do</strong>s os símbolos que cada móduloem /lib/modules/versão-kernel exporta e necessita para ser carrega<strong>do</strong>.• A lista está em /lib/modules/versao-kernel/modules.dep• Opção-b à busca uma diretório diferenteReconfiguran<strong>do</strong> e Instalan<strong>do</strong> um Kernel• VantagensA imagem é reduzidaUso de memória mais eficienteResolução de problemas de periféricosMelhor performancePrimeiro passo é obter o código fonte <strong>do</strong> KernelCD-ROMPacotes rpm kernel-source.rpmNo site oficial http://www.kernel.orgNo site de uma distribuiçãoO compila<strong>do</strong>r C da GNU, o gcc, as bibliotecas <strong>do</strong> compila<strong>do</strong>r e o utilitário make são necessários.Instalan<strong>do</strong> um Kernel (exemplo 2.6.6)• Primeiro passo, é necessário extrair o linux-2.6.6.tar.bz2 no diretório /usr/src. É neste diretórioque os arquivos fonte <strong>do</strong> núcleo devem residir para serem compila<strong>do</strong>s.Roberto Amaral <strong>–</strong> Marcelo Farias Página 5017/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX• Os distribui<strong>do</strong>res também utilizam a extensão .sign, que é uma assinatura digital,identifican<strong>do</strong> um Kernel oficial.• Depois de descompactar com bunzip, deve ser aplica<strong>do</strong> o coman<strong>do</strong> tar, o qual criará umaestrutura de diretório original <strong>do</strong> fonte <strong>do</strong> Kernel a partir <strong>do</strong> diretório linux-número_da_versão.• Deverá ser cria<strong>do</strong> um link simbólico com o nome “linux”• #ln <strong>–</strong>s linux-2.6.6 linux• Como o sistema possibilita que muitas versões de Kernel sejam instaladas, os fontes <strong>do</strong> Kernelforam prepara<strong>do</strong>s para trabalhar no diretório /usr/src/linux.• É necessário verificar as dependências com:• #cd /usr/src/linux• #make mrproperCustomizan<strong>do</strong> as Opções <strong>do</strong> Kernel• Customizar, significa que seu Kernel pode ser personaliza<strong>do</strong> conforme seu hardware e asaplicações <strong>do</strong> Sistema.• São mais 1700 opções em um Kernel, que determinam o processa<strong>do</strong>r, gerenciamento deenergia, barramento, formato de executáveis, dispositivos, sistema de arquivos, segurança,criptografia, subsistema de rede, bibliotecas e etc...• Durante a configuração 3 respostas serão possíveis• Compilar esta opção no Kernel. É representada pela letra Y em mo<strong>do</strong> texto ou * naconfiguração por menu.• Compilar esta opção em módulo Kernel. É representada pela letra m de módulo.• Não compilar esta opção. É representada pela letra n na versão mo<strong>do</strong> texto ou [ ] naversão menu.• make config• Cria um arquivo de configuração questionan<strong>do</strong> as configurações para o kernel.• make menuconfig e make xconfig• Ambos criam um arquivo de configuração questionan<strong>do</strong> as configurações <strong>do</strong> Kernel, mas emambiente de menu e ambiente gráficoRoberto Amaral <strong>–</strong> Marcelo Farias Página 5117/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXINTRODUÇÃO A REDES DE COMPUTADORESInicialmente, os computa<strong>do</strong>res eram máquinas caríssimas que centralizavam em um único pontoo processamento das aplicações de vários usuários, e muitas vezes de toda uma organização. Com aredução de custos <strong>do</strong> hardware e introdução <strong>do</strong>s microcomputa<strong>do</strong>res no cenário da informática, a estruturacentralizada cedeu lugar a uma estrutura totalmente distribuída. Nessa estrutura diversos equipamentos <strong>do</strong>smais varia<strong>do</strong>s portes processam informações de formas isoladas, o que acarreta uma serie de problemas.Dentre os problemas apresenta<strong>do</strong>s, destaca-se a duplicação desnecessária de recursos de hardware(impressoras, discos, etc.) e de software (programas, arquivos de da<strong>do</strong>s etc.).Nesse cenário surgiram as redes de computa<strong>do</strong>res, onde um sistema de comunicação foi introduzi<strong>do</strong>para interligar os equipamentos de processamentos de da<strong>do</strong>s (estações de trabalhos), antes operan<strong>do</strong>isoladamente com o objetivo de permitir o compartilhamento de recursos.Evolução <strong>do</strong>s Sistemas de ComputaçãoNa década de 1950, computa<strong>do</strong>res eram máquinas grandes e complexas, operadas por pessoasaltamente especializadas. Usuários enfileiravam-se para submeter suas leitoras de cartões ou fitasmagnéticas que eram processa<strong>do</strong>s em lote. Não havia nenhuma forma de interação direta entre usuários emáquina.Avanços na década de 1960 possibilitaram o desenvolvimento <strong>do</strong>s primeiros terminaisinterativos, permitin<strong>do</strong> aos usuários acesso ao computa<strong>do</strong>r central através de linhas de comunicação.Usuários passavam a ter então um mecanismo que possibilitava a interação direta com o computa<strong>do</strong>r, aomesmo tempo em que avanços nas técnicas de processamento davam origem a sistemas de tempocompartilha<strong>do</strong> (time-sharing), permitin<strong>do</strong> que várias tarefas <strong>do</strong>s diferentes usuários ocupassemsimultaneamente o computa<strong>do</strong>r central, através de uma espécie de revezamento no tempo de ocupação <strong>do</strong>processa<strong>do</strong>r.Mudanças na caracterização <strong>do</strong>s sistemas de computação ocorreram durante a década de 1970:de um sistema único centraliza<strong>do</strong> e de grande porte, partia-se em direção à distribuição <strong>do</strong> podercomputacional. O desenvolvimento de minis e microcomputa<strong>do</strong>res de bom desempenho, permitiu ainstalação de considerável poder computacional concentração deste poder em uma determinada área.Embora o custo de hardware de processamento estivesse cain<strong>do</strong>, o preço <strong>do</strong>s equipamentoseletromecânicos continuava alto, tornan<strong>do</strong> a interconexão entre os vários sistemas para o uso compartilha<strong>do</strong>de dispositivos periféricos importante.A capacidade de troca de informações também foi uma razão importante para a interconexão.Usuários individuais de sistemas de computação não trabalham isola<strong>do</strong>s e necessitam de alguns <strong>do</strong>sbenefícios ofereci<strong>do</strong>s pôr um sistema centraliza<strong>do</strong>. Ambientes de trabalho cooperativos se tornaram umarealidade tanto nas empresas como nas universidades, exigin<strong>do</strong> a interconexão <strong>do</strong>s equipamentos.Para solucionar problemas de desempenho, os pesquisa<strong>do</strong>res criaram novas arquiteturas quepropunham a distribuição e o paralelismo como forma de melhorar desempenho, confiabilidade emodularidade <strong>do</strong>s sistemas computacionais, alem de um sistema centraliza<strong>do</strong> de repositório de informasses,ou melhor, servi<strong>do</strong>res.Roberto Amaral <strong>–</strong> Marcelo Farias Página 5217/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sEvolução das ArquiteturasCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXA maioria <strong>do</strong>s computa<strong>do</strong>res projeta<strong>do</strong>s até a década de 1980 teve sua concepção baseada nosmodelos original de Von Neumann. A interação perfeita entre o mo<strong>do</strong> como os programas são desenvolvi<strong>do</strong>se a maneira como são interpreta<strong>do</strong>s foi uma das razões para o grande sucesso de tal modelo.A revolução nos sistemas de computa<strong>do</strong>res começou com os avanços de tecnologia deintegração de circuitos, que reduziram em muito os custos das partes de tais sistemas, onde váriasarquiteturas foram então propostas.Dentre as alternativas apresentadas, podemos citar os Sistemas de UCP única com múltiplasUnidades Funcionais, as Máquinas Pipeline e os Processa<strong>do</strong>res de matriz (Array Processors).A idéia de seqüência múltiplas e independentes de instruções em um sistema composto porvários elementos de processamento compartilhan<strong>do</strong> um espaço comum de memória aparece em uma outraarquitetura (Sistemas de Multiprocessa<strong>do</strong>res) com as seguintes características:• Dois ou mais processa<strong>do</strong>res de capacidade aproximadamente iguais.• To<strong>do</strong>s os processa<strong>do</strong>res dividem o acesso a uma memória comum.• To<strong>do</strong>s os processa<strong>do</strong>res compartilham os canais de I/O unidades de controle e dispositivos periféricos.• O sistema total é controla<strong>do</strong> pôr um único sistema operacional.Por último surgiram os Sistemas de Processamento Distribuí<strong>do</strong>s por Eckhouse 78 como uma”coleção de elementos de processamentos interconecta<strong>do</strong>s tanto logicamente quantofisicamente para execução cooperativa de programas de aplicação com controle <strong>do</strong>s recursosdescentraliza<strong>do</strong>”, o qual é o objetivo deste curso.Em Sistemas Distribuí<strong>do</strong>s, o esta<strong>do</strong> <strong>do</strong> sistema é fragmenta<strong>do</strong> em partes que residem emdiferentes processa<strong>do</strong>res e memórias, com comunicação entre essas partes sujeita a retar<strong>do</strong>s variáveis edesconheci<strong>do</strong>s. Em sistemas distribuí<strong>do</strong>s é impossível forçar a simultaneidade de eventos. A mínimainterferência em uma execução de tarefas paralelas vai permitir a obtenção de sistemas de grandedesempenho. A não existência de qualquer elemento sem o qual o sistema para totalmente lhe confere altaconfiabilidade. A possibilidade de utilização em larga escala de um pequeno número de elementos básicosde hardware e software é responsável pelo eleva<strong>do</strong> grau de modularidade <strong>do</strong> sistema.Embora difícil de caracterizar, a arquitetura de múltiplos processa<strong>do</strong>res tem melhor aplicação emsistemas que exigem grande disponibilidade, grandes requisitos de vazão, tempos de resposta garanti<strong>do</strong>s ebaixos, alto grau de modularidade, e também onde as tarefas podem ser executadas de mo<strong>do</strong> concorrente.Um Sistema Distribuí<strong>do</strong> vai ser forma<strong>do</strong> por um conjunto de módulos processa<strong>do</strong>resinterliga<strong>do</strong>s por um sistema de comunicação. Vemos então que a interconexão de sistemas veio atender aduas necessidades distintas:• Construção de sistemas com maior desempenho e maior confiabilidade• Compartilhamento de recursos.Alguns autores consideram como Sistema Distribuí<strong>do</strong> apenas àqueles construí<strong>do</strong>s para atender aprimeira necessidade, classifican<strong>do</strong> como Redes de Computa<strong>do</strong>res os sistemas construí<strong>do</strong>s com a finalidadeRoberto Amaral <strong>–</strong> Marcelo Farias Página 5317/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXde permitir o compartilhamento de recursos. Outros preferem classificar to<strong>do</strong>s esses sistemas comoSistemas Distribuí<strong>do</strong>s e subclassificá-los em Máquinas de Arquitetura Distribuída e Redes de Computa<strong>do</strong>res.Uma Máquina de Arquitetura Distribuída é composta por um número ilimita<strong>do</strong>, mas finito demódulos autônomos de processamento interconecta<strong>do</strong>s para formar um único sistema, no qual o controleexecutivo global é implementa<strong>do</strong> através da cooperação de elementos descentraliza<strong>do</strong>s.Uma Rede de Computa<strong>do</strong>res também é formada por um número ilimita<strong>do</strong>, mas finito de módulosautônomos de processamento interconecta<strong>do</strong>s, no entanto a independência <strong>do</strong>s vários módulos deprocessamento é preservada na sua tarefa de compartilhamento de recursos e troca de informações.MAS ENTÃO O QUE VEM A SER UMA REDE DE COMPUTADORES?É UM MEIO FÍSICO E LÓGICO DE COMUNICAÇÃO DE DADOS,COMPARTILHADO, O QUAL POSSUI OBJETIVO DE UNIR INFORMAÇÕES ENTRETODOS OS PARCIPANTES DESTE INFODUTO CONTROLADO DE DADOS.“Quan<strong>do</strong> você precisar ir além <strong>do</strong> computa<strong>do</strong>r em cima de suamesa, esta na hora de instalar uma rede local”.Roberto Amaral <strong>–</strong> Marcelo Farias Página 5417/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXClassificação das Redes de Computa<strong>do</strong>resAs redes de computa<strong>do</strong>res podem ser classificadas quanto sua abrangência geográfica. Para cadatipo de rede deve existir um tipo de meio de transmissão assim como um tipo de protocolo que fará essacomunicação. Na junção de todas estas idéias, podemos considerar que cada tipo de rede, possuirá suacaracterística particular assim como seus possíveis protocolos de comunicação.TIPOS DE REDESCada tipo de rede tem suas características principais ligadas a sua abrangência, ou seja,a sua capacidade de atendimento em Km.• LAN (Local Area Network) : As redes locais tem uma abrangência limitada por umprédio, uma sala, um campus ou uma fábrica num limite de alguns quilômetros ( 2 a 3Km).• MAN (Metropolitan Area Network) : As redes metropolitanas podem atender uma grandeárea como uma região metropolitana, por exemplo atendida por uma anel de fibras óticasinterligan<strong>do</strong> diversos municípios como se fosse uma infra-estrutura única, com alcancede 30 Km.• WAN (Wide Area Network) : As redes WAN também conhecidas como redes de longadistância podem ser redes nacionais atenden<strong>do</strong> to<strong>do</strong> o território como também redesinternacionais interligadas via satélite ou cabos submarinos.Podemos considerar a tabela abaixoRoberto Amaral <strong>–</strong> Marcelo Farias Página 5517/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXTopologia“Topologia para redes de computa<strong>do</strong>res está relacionada como os equipamentos que compõeuma rede são distribuí<strong>do</strong>s em um determina<strong>do</strong> espaço. Porem esta distribuição não está relacionadasomente a questões físicas, mas sim sobre questões lógicas também.”A Topologia define a estrutura da rede. Há <strong>do</strong>is pontos na definição de topologia: a topologiafísica, que é o layout real <strong>do</strong> meio físico de transmissão, e a topologia lógica, que define comoos meios são acessa<strong>do</strong>s. As topologias físicas geralmente usadas são barramento, anel, estrela,estrela estendida, hierárquica e malha.• Barramento: usa um único segmento de transmissão, ao qual to<strong>do</strong>s os hosts se conectamdiretamente.• Anel: conecta um host ao próximo e o último host ao primeiro. Isso cria um anel físico <strong>do</strong>cabo.• Estrela: conecta to<strong>do</strong>s ao ponto central, sen<strong>do</strong> normalmente um hub ou switch..• Estrela estendida: une as estrelas individuais vinculan<strong>do</strong> os hubs/switches.• Hierárquica: forma similar a uma estrela estendida, mas em vez de unir oshubs/switches, o sistema é vincula<strong>do</strong> a um computa<strong>do</strong>r que controla o tráfego natopologia.• Malha: Nesta, cada host tem suas próprias conexões com to<strong>do</strong>s os outros hosts. Issoreflete o projeto da Internet, que possui vários caminhos para qualquer lugar.Roberto Amaral <strong>–</strong> Marcelo Farias Página 5617/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXA topologia lógica de uma rede é a forma como os hosts se comunicam através <strong>do</strong>s meios.Os <strong>do</strong>is tipos mais comuns de topologias lógicas são broadcast e passagem de token.• Broadcast: simplesmente significa que cada host envia seus da<strong>do</strong>s a to<strong>do</strong>s os outros hostsno meio da rede. As estações não seguem nenhuma ordem para usar a rede, a primeira asolicitar é a atendida.• Passagem de token: controla o acesso à rede, passan<strong>do</strong> um token eletrônicoseqüencialmente para cada host. Quan<strong>do</strong> um host recebe o token, significa que esse hostpode enviar da<strong>do</strong>s na rede. Se o host não tiver da<strong>do</strong>s a serem envia<strong>do</strong>s, ele vai passar otoken para o próximo host.Roberto Amaral <strong>–</strong> Marcelo Farias Página 5717/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXDispositivos de RedesOs dispositivos que se conectam diretamente a um segmento de rede são chama<strong>do</strong>s dehosts. Esses hosts incluem computa<strong>do</strong>res, clientes e servi<strong>do</strong>res, impressoras, scanners e muitosoutros dispositivos <strong>do</strong> usuário. Esses dispositivos fornecem aos usuários conexão à rede, com aqual os usuários compartilham, criam e obtêm as informações.Placas de RedesEm termos de aparência, uma placa de rede é uma placa de circuito impresso que seencaixa no slot de expansão de um barramento em uma placa mãe <strong>do</strong> computa<strong>do</strong>r ou em umdispositivo periférico. É também chamada de placa de rede. Em computa<strong>do</strong>res laptop/notebookas placas de rede são normalmente <strong>do</strong> tamanho de uma placa PCMCIA.As placas de rede são consideradas dispositivos da camada 2 <strong>do</strong> modelo OSI, porquecada placa de rede em to<strong>do</strong> o mun<strong>do</strong> transporta um código exclusivo, chama<strong>do</strong> de um endereçoMedia Access Control (MAC). Esse endereço é usa<strong>do</strong> para controlar as comunicações de da<strong>do</strong>s<strong>do</strong> host na rede.Sempre que existir um dispositivo de rede acopla<strong>do</strong> ao meio de rede, há algum tipo dedispositivo de placa de rede, mesmo que geralmente não seja exibi<strong>do</strong>.AMOCBEAENTS DEREDEPara que computa<strong>do</strong>res funcionem em conjunto em uma rede, são necessários meios detransmissão ou cabos. Os meios de transmissão são utiliza<strong>do</strong>s em redes de computa<strong>do</strong>res paraligar as estações entre si, sen<strong>do</strong> que estes meios diferem com relação à banda passante,Roberto Amaral <strong>–</strong> Marcelo Farias Página 5817/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXpotencial para conexão ponto a ponto ou multiponto, limitação geográfica, imunidade a ruí<strong>do</strong>,custo, disponibilidade de componentes e confiabilidade.Qualquer meio físico capaz de transportar informações eletromagnéticas é passível deser usa<strong>do</strong> em redes de computa<strong>do</strong>res. Os mais comuns utiliza<strong>do</strong>s são: o par trança<strong>do</strong>, o cabocoaxial e a fibra ótica. Sob circunstâncias especiais, radiodifusão, infravermelho, enlaces desatélite e microondas também são escolhas possíveis. As taxas de transmissão desses meios sãomedidas em bits por segun<strong>do</strong>, ou bps.Cabo coaxialÉ composto de um centro condutivo, envolto por uma camada isolante, e novamente envolto poruma camada condutora. É bastante resistente a interferências. Este possui uma imunidade aruí<strong>do</strong> ótima, e uma fuga eletromagnética mais baixa. Os ruí<strong>do</strong>s geralmente presentes em áreasurbanas e industriais são de baixa freqüência, tornan<strong>do</strong> as transmissões em banda básica maissusceptíveis a eles. Quanto ao custo, o coaxial é mais caro <strong>do</strong> que o par trança<strong>do</strong>, assim como émais eleva<strong>do</strong> o custo das interfaces para ligação ao cabo.Para ligar esse tipo de cabo na placa de rede de um computa<strong>do</strong>r, é necessário um conector BNCe um T.Vantagens de sua utilização• Baixos custos de manutenção;• Topologia simples de implementar;• Resistência à ruí<strong>do</strong>s e interferências;Desvantagens de sua utilização• Distâncias limitadas;• Baixo nível de segurança;• Difícil de fazer grandes mudanças na topologia da rede.Roberto Amaral <strong>–</strong> Marcelo Farias Página 5917/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXCabo par trança<strong>do</strong>Este é composto por <strong>do</strong>is pares de fios (ou 4 pares ) envoltos por uma camada isolante deforma a reduzir o ruí<strong>do</strong> e manter constante as prioridades elétricas <strong>do</strong> meio através de to<strong>do</strong> oseu comprimento. A perda de energia é um parâmetro importante quan<strong>do</strong> se discute não só ataxa máxima de transmissão, mas também a distância máxima permitida, qualquer que seja omeio de transmissão. A perda de energia aumenta com a distância, até chegar um ponto onde oreceptor não consegue mais reconhecer o sinal. A energia pode ser perdida por radiação ou porcalor. Sua desvantagem é a sensibilidade às interferência e ruí<strong>do</strong>. Com o aumento das taxas detransmissão, cabos de par trança<strong>do</strong> de melhor qualidade foram gradativamente sen<strong>do</strong>produzi<strong>do</strong>s. Uma aplicação típica para o par trança<strong>do</strong> é a ligação ponto a ponto entre terminaise computa<strong>do</strong>res e entre estações da rede e o meio de transmissão. Esse é o mais utiliza<strong>do</strong>atualmente e, o custo total da rede é maior pelo fato de necessitar de equipamentos extras(como hub, por exemplo). O conector utiliza<strong>do</strong> é o RJ-45.ConectorizaçãoPino 1 Branco <strong>do</strong> VerdePino 2 VerdePino 3 Branco <strong>do</strong> LaranjaPino 4 AzulPino 5 Branco <strong>do</strong> AzulPino 6 LaranjaPino 7 Branco <strong>do</strong> MarromPino 8 MarromPINOSINAL1 Transmissão -2 Transmissão +3 Recepção -456 Recepção +78Roberto Amaral <strong>–</strong> Marcelo Farias Página 6017/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXFibra ópticaA transmissão em fibra ótica é realizada pelo envio de um sinal de luz. O cabo óticoconsiste em um filamento de sílica ou plástico, por onde é feita a transmissão da luz. Ao re<strong>do</strong>r<strong>do</strong> filamento existem substâncias de menor índice de refração, que fazem com que os raiossejam refleti<strong>do</strong>s internamente, minimizan<strong>do</strong> assim as perdas de transmissão. Existem três tiposde fibras óticas: as multímo<strong>do</strong> degrau, as multímo<strong>do</strong> com índice gradual e as monomo<strong>do</strong>. Fibrasópticas não estão sujeitas a interferência e transmitem a uma taxa bastante elevada: 100.000Mbps, poden<strong>do</strong> chegar a 200.000 Mbps.CaracterísticasA fibra óptica é praticamente imune às influências <strong>do</strong> meio ambiente por onde estápassan<strong>do</strong>. Imunidade total a interferência eletromagnética e interferência por radio-frequência.Não gera campos magnéticos e eletromagnéticos. Insensível a relâmpagos e descargasatmosféricas. Segura mesmo em contacto com condutores de alta voltagem, pois é totalmentedielétrica. Muito segura contra grampeamento (roubo de informações). Suporta grandesdistâncias entre repeti<strong>do</strong>res. Sua aplicação se dá em telecomunicações, é usada para Redes deTelecomunicações e Transmissão de sinais de processamento de da<strong>do</strong>s.Redes de Telecomunicações:- Circuitos de telefonia interurbanos.- Conexões de redes locais (LANs e WANs).- Redes para controle de distribuição de energia elétrica- Redes de transmissão de da<strong>do</strong>s.- Redes de distribuição de sinais de radiodifusão e televisão- Redes de estúdios, cabos de câmeras de televisão.- Redes industriais, em monitoração e controle de processos.- Transmissão de sinais de processamento de da<strong>do</strong>s de computa<strong>do</strong>r para computa<strong>do</strong>r.- Interligação de circuitos dentro de equipamentos.- Aplicações de controle em geral ( fábricas, maquinários)- Em veículos motoriza<strong>do</strong>s, aeronaves, trens e naviosVantagens de sua utilizaçãoDesvantagens de sua utilizaçãoRoberto Amaral <strong>–</strong> Marcelo Farias Página 6117/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXRoberto Amaral <strong>–</strong> Marcelo Farias Página 6217/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXEquipamentos de RedesExistem diversos fabricantes de equipamentos de redes de computa<strong>do</strong>res, porem basicamenteos equipamentos estão classifica<strong>do</strong>s em 3 tipos:1. Os que simplesmente repassam as informações (sinais elétricos)2. Os que tratam a informação através <strong>do</strong>s endereços físicos <strong>do</strong>s equipamentos3. Os que realizam a operação de encaminhar a informação através de redes lógicasNo grupo 1, que são replica<strong>do</strong>res de sinais elétricos, trabalhan<strong>do</strong> no nível físico, estão os Hubse Repeti<strong>do</strong>resNo grupo 2, os equipamentos que realizam a comutação no primeiro nível lógico de uma rede,são os Switch.No grupo 3 , os equipamentos que realizam o roteamento entre redes diferentes, osRotea<strong>do</strong>res.HUBA finalidade de um hub é gerar os sinais da rede novamente e os retemporizar. Isso éfeito no nível de bit para um grande número de hosts usan<strong>do</strong> um processo conheci<strong>do</strong> comoconcentração. Essa definição é muito similar a <strong>do</strong>s repeti<strong>do</strong>res, por essa razão um hub étambém conheci<strong>do</strong> como repeti<strong>do</strong>r multiportas. A diferença é o número de cabos que seconectam ao dispositivo. Os motivos para se usar os hubs é criar um ponto de conexão centralpara os meios de cabeamento e aumentar a confiabilidade da rede. Aumenta-se a confiabilidadeda rede permitin<strong>do</strong> qualquer cabo único a falhar sem afetar toda a rede. Isso difere datopologia de barramento onde, se houver uma falha no cabo, toda a rede será afetada. Os hubssão considera<strong>do</strong>s dispositivos da camada 1 porque apenas geram novamente o sinal e otransmite para suas portas.Existem diferentes classificações <strong>do</strong>s hubs na rede. A primeira classificação é dizer se oshubs são ativos ou passivos. Hubs ativos obtêm energia de uma fonte de alimentação paragerar novamente os sinais da rede. Alguns são denomina<strong>do</strong>s dispositivos passivos porquesimplesmente repartem o sinal entre vários usuários, como usan<strong>do</strong> um fio "Y". Os hubs passivosnão geram novamente os bits. Outra classificação é se os hubs são inteligentes ou burros. Oshubs inteligentes têm portas <strong>do</strong> console, o que significa que podem ser programa<strong>do</strong>s paragerenciar o tráfego da rede. Os hubs burros simplesmente aceitam um sinal da rede de entradae o repete em todas as portas sem realizar qualquer gerenciamento.Roberto Amaral <strong>–</strong> Marcelo Farias Página 6317/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXSWITCHUm switch é um dispositivo da camada 2. A diferença entre o hub e o switch é que osswitches tomam as decisões com base nos endereços MAC e os hubs não tomam nenhumadecisão. Devi<strong>do</strong> às decisões que os switches tomam, eles tornam uma LAN muito mais eficiente.Fazem isso "comutan<strong>do</strong>" os da<strong>do</strong>s apenas pela porta à qual o host apropria<strong>do</strong> está conecta<strong>do</strong>.Os switches, à primeira vista, se parecem com os hubs. Os hubs e os switches têm muitasportas de conexão, uma vez que parte de suas funções é a concentração da conectividade. Adiferença entre um hub e um switch é o que acontece dentro <strong>do</strong> dispositivo.A finalidade de um switch é concentrar a conectividade, ao mesmo tempo tornan<strong>do</strong> atransmissão de da<strong>do</strong>s mais eficiente. Ele comuta os pacotes das portas de entrada para asportas de saída, enquanto fornece a cada porta a largura de banda completa.Rotea<strong>do</strong>resO rotea<strong>do</strong>r encontra-se na camada de rede OSI, conhecida como camada 3. Tomadecisões com base em grupos de endereços de rede ao invés de endereços MAC individuais. Osrotea<strong>do</strong>res podem também conectar diferentes tecnologias da camada 2, como Ethernet, Token-Roberto Amaral <strong>–</strong> Marcelo Farias Página 6417/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXring e FDDI. No entanto, devi<strong>do</strong> à sua habilidade de rotear pacotes basea<strong>do</strong>s nas informaçõesda camada 3, os rotea<strong>do</strong>res se tornaram o backbone da Internet, executan<strong>do</strong> o protocolo IP. Afinalidade de um rotea<strong>do</strong>r é examinar os pacotes de entrada (da<strong>do</strong>s da camada 3), escolher omelhor caminho para eles através da rede e depois comutar os pacotes para a porta de saídaapropriada. São dispositivos de controle de tráfego mais importantes nas grandes redes.Permitem que qualquer tipo de computa<strong>do</strong>r se comunique com qualquer outro computa<strong>do</strong>r emqualquer parte <strong>do</strong> mun<strong>do</strong>.Sistema de EndereçamentoDevemos considerar que existem <strong>do</strong>is tipos de endereçamento dentro de uma rede, oumelhor, uma máquina pode assumir 2 tipos de endereços. Os endereços físicos, que sãoatribuí<strong>do</strong>s pelos fabricantes de placas de redes e os endereços lógicos (IP) atribuí<strong>do</strong>s peloadministra<strong>do</strong>r de redes.Protocolo IPO protocolo IP foi projeta<strong>do</strong> ten<strong>do</strong> como principal objetivo a ligação inter-redes. Por istoele é considera<strong>do</strong> como elemento integra<strong>do</strong>r da Internet, através dele é possível a conexão dediversas sub-redes. A Internet é composta de diversos backbones construí<strong>do</strong>s através linhas dealtas velocidades de diversos tipos de tecnologia. A cada um destes backbones estãoconectadas várias redes locais de muitas outras instituições cada uma com suas característicasde sub-rede. Em muitas empresas é comum utilizar o IP, e outros protocolos de sua família,para interligar computa<strong>do</strong>res de tecnologia diferentes.Endereçamento IPIdentifica<strong>do</strong>res UniversaisDiz-se que um sistema provê um serviço de comunicação universal quan<strong>do</strong> é possível aquaisquer <strong>do</strong>s elementos deste sistema se comunicar arbitrariamente. Para tornar um sistemade comunicação universal, devemos estabelecer um méto<strong>do</strong> globalmente aceito paraRoberto Amaral <strong>–</strong> Marcelo Farias Página 6517/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXidentificação <strong>do</strong>s componentes a ele conecta<strong>do</strong>s. Nas redes TCP/IP, a entidade que atua comoidentifica<strong>do</strong>r universal é o endereço IP, um número de 32 dígitos binários. A idéia básica deseus mentores era a de tornar o roteamento simples e eficiente.As três Classes Primárias de EndereçoA Internet é uma gigantesca rede de computa<strong>do</strong>res como qualquer outra rede física. Agrande diferença, entretanto, está no fato de que a Internet é uma estrutura virtual, concebidapor seus desenhistas e implementada inteiramente em software. Assim, os projetistas tiveramliberdade de arbitrar o tamanho e formato <strong>do</strong>s pacotes, endereços, técnicas de roteamento, etc.Na questão <strong>do</strong> endereçamento, cada host é atribuí<strong>do</strong> um número inteiro que será seu endereço- no caso o endereço IPCada endereço IP possui 32 bits, que se divide em duas partes: uma primeira queidentifica a rede a qual esse computa<strong>do</strong>r está logicamente conecta<strong>do</strong> e uma segunda parte queidentifica o computa<strong>do</strong>r propriamente dito. Observe que todas as máquinas conectadas a umamesma rede irão compartilhar essa primeira parte, que se convencionou chamar net id(identifica<strong>do</strong>r da rede). Analogamente, à segunda porção <strong>do</strong> endereço IP é o host id(identificação da máquina).Em termos práticos, cada endereço IP deverá estar conti<strong>do</strong> em uma das cinco categorias.A classe de um endereço pode ser identificada através <strong>do</strong> exame <strong>do</strong>s quatro bits de mais altaordem, sen<strong>do</strong> que as três classes básicas (A, B e C) podem ser distinguidas apenas pelos <strong>do</strong>isprimeiros. A classe A, usada para um pequeno número de redes que contêm mais de 65.535hosts, reserva 7 bits para o net id e 24 bits para o host id. Os endereços da classe B se destinama redes de tamanho intermediário (entre 256 e 65535 máquinas) e reservam 14 bits para o netid e 16 bits para o host id. Finalmente, a classe C, apropriada para pequenas redes, aloca 21bits para o net id e apenas 8 bits para o host id. Observe que os endereços IP são estrutura<strong>do</strong>sde forma a permitir uma rápida extração da identificação da rede (net id) e da máquina a elaconectada (host id). Os gateways dependem da extração eficiente <strong>do</strong> net id para realizar oroteamento <strong>do</strong>s pacotes IP.Roberto Amaral <strong>–</strong> Marcelo Farias Página 6617/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXEndereço de uma rede e Endereço de Difusão (Broadcast)Por convenção, um host id 0 nunca é atribuí<strong>do</strong> a uma máquina. Ao invés disso, esseendereço com os bits <strong>do</strong> host id to<strong>do</strong>s zera<strong>do</strong>s irá se referir à rede propriamente dita. Oendereçamento IP permite que se faça referência a to<strong>do</strong>s os hosts de uma determinada redeatravés <strong>do</strong> chama<strong>do</strong> endereço de difusão. Um endereço de broadcast é aquele em que os bits <strong>do</strong>host id são to<strong>do</strong>s 1. Nem todas as redes suportam a difusão, algumas irão precisar deimplementação de software e outras não permitirão esta facilidade.Difusão localO endereço de difusão permite que um sistema remoto mande um pacote para to<strong>do</strong>s osnós de uma determinada rede. Do ponto de vista <strong>do</strong> endereçamento, a desvantagem desteesquema é que ele requer o conhecimento <strong>do</strong> endereço de rede. Outra forma de endereço dedifusão é chamada endereço de difusão limitada ou endereço de difusão local. Este endereçoconsiste de 32 bits iguais a 1. Esse mecanismo possibilita a referência a todas as máquinas deuma rede local sem que os endereços IP reais sejam conheci<strong>do</strong>s.Endereços de referência à própria rede e ao próprio host.Campos de endereço preenchi<strong>do</strong>s somente com 1's indicam "to<strong>do</strong>s". Um endereço com32 bits 1, indica todas as máquinas desta rede e um endereço com to<strong>do</strong>s os bits <strong>do</strong> host idiguais a 1 indica todas as máquinas de uma determinada rede (especificada no net id).Analogamente, campos preenchi<strong>do</strong>s com 0's são geralmente interpreta<strong>do</strong>s como significan<strong>do</strong>"este". Assim, um endereço com 32 bits 0, indica o próprio host (este host) e um endereço comto<strong>do</strong>s os bits <strong>do</strong> net id iguais a zero, se refere à rede local (esta rede).Endereço de MulticastMuitas tecnologias de rede contêm mecanismos que permitem o envio simultâneo depacotes a múltiplos destinatários. Em redes de barramento (como a Ethernet) isso pode seralcança<strong>do</strong> com o envio de um único pacote (captura<strong>do</strong> por to<strong>do</strong>s os hosts). Em outrastopologias, com conexões ponto-a-ponto, esse pacote deverá ser replica<strong>do</strong> para alcançar to<strong>do</strong>sos hosts.Algumas redes suportam um segun<strong>do</strong> tipo de comunicação ponto multi-ponto, conheci<strong>do</strong>com multicast. Ao contrário <strong>do</strong> broadcast, a técnica de multicast permite que cada host"escolha" se deseja ou não participar daquele "canal". Quan<strong>do</strong> um grupo de máquinas decide secomunicar, elas selecionam um endereço de multicast que será, então, o seu canal decomunicação.Na Internet, quan<strong>do</strong> um determina<strong>do</strong> grupo de máquinas deseja criar um grupo demulticast, elas devem todas "sintonizar", isto é, configurar suas interfaces para receber pacotesRoberto Amaral <strong>–</strong> Marcelo Farias Página 6717/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXenvia<strong>do</strong>s para um mesmo endereço. Esse endereço deverá pertencer à Classe D. Assim, cadaendereço entre 224.0.0.0 e 239.255.255.255 (mais de 268 milhões de alternativas!) pode serusa<strong>do</strong> como multicast.A idéia é que hosts podem, a qualquer momento, conectar-se ou desconectar-se de umgrupo de multicast. A técnica de multicasting traz como vantagem sobre a difusão, uma melhorseletividade. Isto é, os da<strong>do</strong>s somente serão envia<strong>do</strong>s aos hosts necessários.Notação DecimalNúmeros de 32 bits não são facilmente manipuláveis por seres humanos, e mesmoaplicação não tratam diretamente com este tipo de representação. Uma forma mais fácil derepresentar endereços IP é a de particioná-lo em quatro octetos converti<strong>do</strong>s para a notaçãodecimal e separa<strong>do</strong>s por pontos.Desta forma, o binário11000000 11000110 00001011 10000001passa a ser trata<strong>do</strong> como192.198.11.129Pode-se também atribuir nomes alfabéticos a hosts, facilitan<strong>do</strong> ainda mais suamemorização. Esta tradução é apoiada por um protocolo específico que atua sobre uma imensabase de da<strong>do</strong>s distribuída conhecida como Domain Name System (DNS).Por questões de simplificação pode-se representar um endereço IP de 32 bits agrupan<strong>do</strong>-os emgrupos de 8 bits e representan<strong>do</strong> estes grupos em valores decimais. Por exemplo o endereço11001000100010011000001100000010 representa<strong>do</strong> em forma de ponto decimal seria 200.137.131.2.Classe A 1.0.0.0 até 127.255.255.255Classe B 128.0.0.0 até 191.255.255.255Classe C 192.0.0.0 até 223.255.255.255Classe D 224.0.0.0 até 239.255.255.255Classe E 240.0.0.0 até 247.255.255.255Classes de Endereços representa<strong>do</strong>s sobe forma decimalEndereço de LoopbackRoberto Amaral <strong>–</strong> Marcelo Farias Página 6817/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXO endereço 127.0.0.0 é reserva<strong>do</strong> à aplicação de loopback. Isto é, qualquer pacoteenvia<strong>do</strong> a este endereço não deve trafegar na rede, mas retornar ao próprio remetente (istoequivale a dizer que o pacote retornará da própria interface de rede <strong>do</strong> host). O endereço deloopback ou localhost se presta a testes e comunicação entre processos que rodam numamesma máquina.Resumo EspeciaisEndereçamento de Sub-RedeUma técnica que permite que se partilhe um mesmo endereço de rede entre diversasredes é o endereçamento de sub-rede. Vamos imaginar uma instituição a qual foi atribuí<strong>do</strong> umendereço classe C mas que possui diversas redes interconectadas em suas instalações. Comopartilhar este endereço entre estas diversas redes? A adição de sub-redes implica uma novasubdivisão <strong>do</strong> endereço IP. O sufixo designa<strong>do</strong>r <strong>do</strong> host (host id) é dividi<strong>do</strong> em duas partes: aprimeira designará uma sub-rede, e a segunda um host.O problema básico que surge quan<strong>do</strong> realizamos esta nova divisão é que o esquema convencional deroteamento, que procura extrair a porção que designa a rede, deixa de funcionar. Para suplantar estadificuldade, introduz-se no sistema de roteamento uma nova entidade: a máscara de sub-rede. Amáscara de sub-rede é um número de 32 bits que permite a extração de sua "porção de rede". Isto é, elepossui bits 1 nas posições correspondentes a esta "porção de rede". Para uma rede classe C sem sub-redes amáscara seria:11111111 11111111 11111111 00000000255.255.255.0que em notação decimal corresponde a:Roberto Amaral <strong>–</strong> Marcelo Farias Página 6917/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sNomenclatura das interfaces no LinuxCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXUm sistema Linux pode ter várias interfaces, cada uma com um endereço de Protocolo deInternet (IP) diferente. As interfaces podem ser de diferentes tipos, incluin<strong>do</strong>:• Loopback: lo• Ethernet: eth0, eth1, . . .• Wi-Fi: wlan0, wlan1, . . .• Token Ring: tr0, tr1, . . .• PPP: ppp0, ppp1, . . .Definin<strong>do</strong> configuraçõesAs ferramentas de configuração de rede de baixo nível tradicionais nos sistemasGNU/Linux são os programas ifconfig e route que vêm no pacote net-tools. Essas ferramentasoficialmente foram superadas pelo ip que vem no pacote iproute. O programa ip funciona noLinux 2.2 e superiores e é mais capaz que as ferramentas antigas. Entretanto, as ferramentasantigas ainda funcionam e são mais familiares a muitos usuários.# ifconfig argumentos ( Usa<strong>do</strong> para exibir e configurar uma interface de rede)# route ( Usa<strong>do</strong> para exibir e configurar a tabela de roteamento)Exemplo:Mudan<strong>do</strong> o endereço IP da interface eth0 de 192.168.0.3 para 192.168.0.111 e tornan<strong>do</strong> eth0como rota para a rede 10.0.0.0 via 192.168.0.1.Executan<strong>do</strong> ifconfig e route sem argumentos de interface, vamos exibir o esta<strong>do</strong> atual de todasas interfaces de rede e roteamento.# ifconfigeth0 Link encap:Ethernet HWaddr 08:00:46:7A:02:B0 inet addr:192.168.0.3Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICASTMTU:1500 Metric:1RX packets:23363 errors:0 dropped:0 overruns:0 frame:0TX packets:21798 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:100RX bytes:13479541 (12.8 MiB) TX bytes:20262643 (19.3 MiB)Interrupt:9lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0Roberto Amaral <strong>–</strong> Marcelo Farias Página 7017/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXUP LOOPBACK RUNNING MTU:16436 Metric:1RX packets:230172 errors:0 dropped:0 overruns:0 frame:0TX packets:230172 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:22685256 (21.6 MiB) TX bytes:22685256 (21.6 MiB)# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.0.0 * 255.255.0.0 U 0 0 0 eth0default 192.168.0.1 255.255.255.255 UG 0 0 0 eth0Desativan<strong>do</strong> a interface eth0:# ifconfig eth0 inet <strong>do</strong>wnConferin<strong>do</strong>:# ifconfig# routeAtivan<strong>do</strong> a interface com o novo endereço IP e novo roteamento.# ifconfig eth0 inet up 192.168.0.111 netmask 255.255.0.0 broadcast 192.168.255.255# route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.0.1 dev eth0Para vermos o resulta<strong>do</strong>:# ifconfigeth0 Link encap:Ethernet HWaddr 08:00:46:7A:02:B0inet addr:192.168.0.111 Bcast:192.168.255.255 Mask:255.255.0.0UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1...lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.0.0 * 255.255.0.0 U 0 0 0 eth010.0.0.0 192.168.0.1 255.0.0.0 UG 0 0 0 eth0#ipUsa<strong>do</strong> para exibir e configurar uma interface de rede.Roberto Amaral <strong>–</strong> Marcelo Farias Página 7117/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sUso:ip argumentosCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXOs equivalentes para o ip <strong>do</strong>s coman<strong>do</strong>s ifconfig e route anteriores são:• ip link show• ip route list• ip link set eth0 <strong>do</strong>wn• ip addr del dev eth0 local 192.168.0.3• ip addr add dev eth0 local 192.168.0.111/16 broadcast 192.168.255.255• ip link set eth0 up• ip route add dev eth0 to 10.0.0.0/8 src 192.168.0.111 via 192.168.0.1O programa ip mostra sua sintaxe de coman<strong>do</strong> quan<strong>do</strong> executa<strong>do</strong> com o argumento help.Por exemplo, ip link help mostra:Usage: ip link set DEVICE { up | <strong>do</strong>wn | arp { on | off } | dynamic { on | off } | multicast { on |off } | txqueuelen PACKETS | name NEWNAME | address LLADDR | broadcast LLADDR | mtuMTU }ip link show [ DEVICE ]Configuran<strong>do</strong> uma interface Wi-FiO programa iwconfig, que vem no pacote wireless-tools, é usa<strong>do</strong> para interfaces Wi-Fi,juntamente com o ifconfig ou ip.Configuran<strong>do</strong> uma interface com um endereço IP estáticoSuponha que você quer configurar uma interface Ethernet que tem um endereço IP fixo192.168.0.123. Esse endereço começa com 192.168.0 então deve estar em uma LAN. Suponhatambém que 192.168.0.1 é o endereço <strong>do</strong> gateway da LAN para a Internet. Edite o arquivo/etc/network/interfaces de forma que inclua uma entrada como essa:iface eth0 inet staticaddress 192.168.0.123netmask 255.255.255.0gateway 192.168.0.1Se você tiver o resolvconf instala<strong>do</strong> então pode adicionar linhas que especifiquem informaçãode DNS. Por exemplo:iface eth0 inet staticaddress 192.168.0.123Roberto Amaral <strong>–</strong> Marcelo Farias Página 7217/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>snetmask 255.255.255.0gateway 192.168.0.1dns-search meu<strong>do</strong>minio.orgCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXdns-nameservers 195.238.2.21 195.238.2.22Depois que a interface foi levantada, os argumentos das opções dns-search e dns-nameserversse tornam disponíveis para o resolvconf para inclusão no arquivo resolv.conf. O argumentomeu<strong>do</strong>minio.org da opção dns-search corresponde ao argumento de uma opção search emresolv.conf(5). Os argumentos 195.238.2.21e 195.238.2.22 da opção dns-nameservers corresponde aos argumentos das opções nameserverno resolv.conf(5). Outras palavras de opção reconhecidas são dns-<strong>do</strong>main e dns-sortlist.Configuran<strong>do</strong> uma interface usan<strong>do</strong> DHCPPara configurar uma interface usan<strong>do</strong> DHCP edite o arquivo /etc/network/interfaces de formaque inclua uma entrada como essa:iface eth0 inet dhcpPara que isso funcione você precisa ter instala<strong>do</strong> um <strong>do</strong>s clientes DHCP menciona<strong>do</strong>s abaixo. Aconfiguração de baixo nível de interfaces de rede pode ser automatizada por meio <strong>do</strong> DynamicHost Configuration Protocol (DHCP) (Protocolo de Configuração Dinâmica de Sistemas). Seufirewall ou sistema rotea<strong>do</strong>r ou seu ISP de banda larga podem fornecer endereços IP e outrosparâmetros dessa maneira. Para isso funcionar você precisa instalar um <strong>do</strong>s seguintes pacotes:• dhcp3-client (versão 3, Internet Software Consortium)• dhcpcd (Yoichi Hariguchi e Sergei Viznyuk)• pump (Redhat)O pump é simples e largamente utiliza<strong>do</strong>. O dhcp3-client é complexo mas mais configurável.Configuran<strong>do</strong> uma interface Wi-FiO pacote wireless-tools inclui um script /etc/network/if-pre-up.d/wireless-tools que tornapossível configurar hardware Wi-Fi (802.11a/b/g) antes de levantar a interface. A configuraçãoé feita usan<strong>do</strong> o programa iwconfig.Para cada parâmetro de coman<strong>do</strong> possível <strong>do</strong> iwconfig você pode incluir uma opção em/etc/network/interfaces nomeada como o parâmetro com um prefixo ”wireless-“. Por exemplo,para definir o ESSID de eth0 para meuessid e a chave de encriptação para 123456789e antesde levantar a eth0 usan<strong>do</strong> DHCP, edite o arquivo /etc/network/interfaces de forma a incluir umaentrada como esta:iface eth0 inet dhcpwireless-essid myessidwireless-key 123456789eRoberto Amaral <strong>–</strong> Marcelo Farias Página 7317/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXConfiguran<strong>do</strong> múltiplas interfaces Ethernet para um gatewaySuponha que a eth0 esteja conectada à Internet com um endereço IP configura<strong>do</strong> por DHCP eque a eth1 esteja conectada à LAN com um endereço IP estático 192.168.1.1. Editan<strong>do</strong> oarquivo /etc/network/interfaces de forma a incluir entradas como essas:iface eth0 inet dhcpiface eth1 inet staticaddress 192.168.1.1netmask 255.255.255.0Configuran<strong>do</strong> interfaces virtuaisUsan<strong>do</strong> interfaces virtuais você pode configurar uma única placa Ethernet para ser umainterface para várias sub-redes IP. Por exemplo, suponha que seu sistema esteja em uma redeLAN 192.168.0.x/24. Você quer conectar o sistema à Internet usan<strong>do</strong> um endereço IP públicoprovi<strong>do</strong> via DHCP usan<strong>do</strong> sua placa Ethernet existente. Edite o /etc/network/interfaces deforma a incluir entradas como essas:iface eth0 inet staticaddress 192.168.0.1netmask 255.255.255.0network 192.168.0.0broadcast 192.168.0.255iface eth0:0 inet dhcpA interface eth0:0 é uma interface virtual. Quan<strong>do</strong> é levantada, também é levantada a suasuperior eth0.Reconfiguração de redeO que vem a seguir será importante para o leitor compreender a diferença entre uma interfacefísica e uma interface lógica. Uma interface física é o que temos chama<strong>do</strong> de ”a interface“, acoisa que é chamada eth0, ppp1, ou o que você tiver. Uma interface lógica é um conjunto devalores que pode ser atribuí<strong>do</strong> aos parâmetros variáveis de uma interface física. Se você acharisso confuso, substitua a expressão ”configura<strong>do</strong> como interface lógica X“ pela expressão”configura<strong>do</strong> com o perfil de interface X“ conforme você ler.As definições iface no arquivo /etc/network/interfaces são na verdade definições de interfaceslógicas, não de interfaces físicas. Se você nunca quiser reconfigurar suas interfaces então podeignorar esse fato já que a interface física X por padrão será configurada como interface lógicaX. Entretanto, suponha que seu computa<strong>do</strong>r seja um laptop que você transporta entre a casa eRoberto Amaral <strong>–</strong> Marcelo Farias Página 7417/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXo trabalho. Quan<strong>do</strong> você conecta o computa<strong>do</strong>r à rede corporativa ou à sua LAN <strong>do</strong>mésticavocê precisa configurar a eth0 apropriadamente.Primeiro defina duas interfaces lógicas casa e trabalho (ao invés de eth0 como fizemosanteriormente) que descrevem como a interface deve ser configurada para a rede <strong>do</strong>méstica ea rede <strong>do</strong> trabalho, respectivamente.iface casa inet staticaddress 192.168.0.123netmask 255.255.255.0gateway 192.168.0.1iface work inet staticaddress 81.201.3.123netmask 255.255.0.0gateway 81.201.1.1Então a interface física eth0 pode ser levantada para a rede <strong>do</strong>méstica com a configuraçãoapropriada especifican<strong>do</strong> na linha de coman<strong>do</strong>:# ifup eth0=casaPara configurar a eth0 para a rede <strong>do</strong> trabalho execute os coman<strong>do</strong>s:# if<strong>do</strong>wn eth0# ifup eth0=workNote que com o arquivo interfaces escrito como acima não será mais possível levantar a eth0usan<strong>do</strong> apenas ifup eth0. A razão para isso é que o ifup usa o nome da interface física como onome padrão da interface lógica e agora em nosso exemplo não há uma interface lógica eth0definida.Configuração de rede durante a inicializaçãoNa inicialização o script /etc/rcS.d/S40networking executa o coman<strong>do</strong> ifup -a. Isso levanta todasas interfaces físicas listadas em entradas auto no etc/network/interfaces. Atualmente éfreqüentemente melhor gerenciar a configuração de rede usan<strong>do</strong> méto<strong>do</strong>s dinâmicos. Uma vezque estão disponíveis mecanismos para suportar hardware que mude dinamicamente se tornamais simples tratar hardware estático como se fosse dinâmico também. Entretanto, na maioria<strong>do</strong>s casos se deseja que pelo menos a interface de loopback lo seja levantada na inicialização.Assim, certifique-se de que o /etc/network/interfaces inclua as seguintes entradas.auto loiface lo inet loopbackRoberto Amaral <strong>–</strong> Marcelo Farias Página 7517/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXVocê pode listar nomes de interfaces físicas adicionais em entradas auto se desejar que tambémsejam levantadas durante a inicialização. Nunca liste interfaces PCMCIA em entradas auto. Oprograma cardmgr de PCMCIA é inicia<strong>do</strong> mais tarde na seqüência de inicialização que quan<strong>do</strong>o /etc/rcS.d/S40networking é executa<strong>do</strong>.Configuração de rede via hotplugPara obter suporte a hot plug instale o pacote hotplug. Hardware de rede pode ser conecta<strong>do</strong>com o computa<strong>do</strong>r liga<strong>do</strong> durante a inicialização ou depois que um cartão (por exemplo, umcartão PCMCIA) é inseri<strong>do</strong> na máquina ou depois que um utilitário como o discover é executa<strong>do</strong>e carrega os módulos de controla<strong>do</strong>res necessários. Quan<strong>do</strong> o kernel detecta um novohardware ele inicializa o controla<strong>do</strong>r (driver) para o hardware e então executa o programahotplug para configurá-lo. Mais tarde, se o hardware for removi<strong>do</strong>, então o kernel executa ohotplug novamente com ajustes de variáveis de ambiente diferentes. No Debian, quan<strong>do</strong> ohotplug é chama<strong>do</strong> ele executa scripts em /etc/hotplug/ e /etc/hotplug.d/.O hardware de rede recentemente inseri<strong>do</strong> é configura<strong>do</strong> pelo script /etc/hotplug/net.agent.Suponha que seu cartão de rede PCMCIA tenha si<strong>do</strong> inseri<strong>do</strong> resultan<strong>do</strong> na interface eth0 setornan<strong>do</strong> disponível para uso. O /etc/hotplug/net.agent faz o seguinte:ifup eth0=hotplugA menos que você tenha adiciona<strong>do</strong> uma definição de interface lógica ou um mapeamentochama<strong>do</strong> hotplug em /etc/network/interfaces, esse coman<strong>do</strong> não fará nada. Para fazer com queo coman<strong>do</strong> configure a eth0, adicione a seguinte entrada em /etc/network/interfaces:mapping hotplugscript echo(Não inclua uma entrada mapping como essa se você estiver usan<strong>do</strong> pedi<strong>do</strong>s <strong>do</strong> ifplugdinicia<strong>do</strong>s pelo hotplug para controlar a interface, como descrito em ‘Gatilhan<strong>do</strong> a configuraçãode rede <strong>–</strong> ifplugd’ on the current page.) Se você quiser que apenas a eth0 e mais nenhumaoutra interface seja levantada com hot plug então use grep ao invés de echo como a seguir:mapping hotplugscript grepmap eth0Resolução de problemas com redeSe você encontrar problemas então verifique a saída seguinte como primeira verificação <strong>do</strong> queestá acontecen<strong>do</strong>:# ifconfigRoberto Amaral <strong>–</strong> Marcelo Farias Página 7617/10/2011


# cat /proc/pci<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>s# cat /proc/interrupts# dmesg | moreCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXTestes de rede básicosInstale os pacotes netkit-ping, traceroute, dnsutils, ipchains (para kernel 2.2), iptables (parakernel 2.4) e net-tools e :$ ping yahoo.com # checa a conexão Internet$ traceroute yahoo.com # rastrea pacotes IP$ ifconfig # checa configuração <strong>do</strong> host$ route -n # checa configuração de roteamento$ dig [@servi<strong>do</strong>r-dns.com] host.<strong>do</strong>mínio [{a|mx|any}] |less# checa os registros DNS de host.<strong>do</strong>mínio usan<strong>do</strong> servi<strong>do</strong>r-dns.com para um registro a{mx|any}$ ipchains -L -n |less # checa o filtro de pacotes (kernel 2.2)$ iptables -L -n |less # checa o filtro de pacotes (kernel 2.4)$ netstat -a # encontra todas as portas abertas$ netstat -l --inet # encontra as portas em escuta$ netstat -ln --tcp # encontra todas as portas TCP em escuta (numérico)RoteamentoO primeiro endereço em uma rede IP é o endereço da própria rede. O último endereço é oendereço de broadcast da rede. To<strong>do</strong>s os outros endereços podem ser aloca<strong>do</strong>s a sistemas narede. Desses, o primeiro ou o último endereço normalmente é aloca<strong>do</strong> para o gateway deInternet para a rede.A tabela de roteamento contém a informação <strong>do</strong> kernel sobre como enviar pacotes IP aos seusdestinos. Aqui está um exemplo de tabela de roteamento para um sistema Debian em uma redelocal (LAN) com endereço IP 192.168.50.x/24. O sistema 192.168.50.1 (também na LAN) é umrotea<strong>do</strong>r para a rede corporativa 172.20.x.x/16 e o sistema 192.168.50.254 (também na LAN) éum rotea<strong>do</strong>r para a Internet para to<strong>do</strong>s.# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface127.0.0.0 * 255.0.0.0 U 0 0 2 lo192.168.50.0 * 255.255.255.0 U 0 0 137 eth0172.20.0.0 192.168.50.1 255.255.0.0 UG 1 0 7 eth0default 192.168.50.254 0.0.0.0 UG 1 0 36 eth0Roberto Amaral <strong>–</strong> Marcelo Farias Página 7717/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXA primeira linha depois <strong>do</strong> cabeçalho diz que o tráfego destina<strong>do</strong> à rede 127.x.x.x será rotea<strong>do</strong>para lo a interface de loopback.• A segunda linha diz que o tráfego destina<strong>do</strong> aos sistemas na LAN serão rotea<strong>do</strong>satravés de eth0.• A terceira linha diz que o tráfego destina<strong>do</strong> à rede corporativa será rotea<strong>do</strong> para ogateway 192.168.50.1 e também através de eth0.• A quarta linha diz que o tráfego destina<strong>do</strong> à Internet será rotea<strong>do</strong> para o gateway192.168.50.254 e também através de eth0.Os endereços IP na tabela também podem aparecer como nomes que são obti<strong>do</strong>s procuran<strong>do</strong>endereços em /etc/networks ou usan<strong>do</strong> o resolve<strong>do</strong>r da Biblioteca C.Configuração de rotasPara inserir uma rota use o coman<strong>do</strong> no formato:route add [ -net | -host ] target [ netmask Nm ] [ gw Gw ] [[ dev ] If ].Exemplos:Inserir uma rota para uma rede:# route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.1.3Inserir uma rota para um host, utilizan<strong>do</strong> uma determinada interface ponto-aponto:# route add -net 192.168.10.1 dev ppp0Para selecionar a rota default:# route add default gw 192.168.1.200Para remover rotas usamos praticamente a mesma sintaxe, mas ao invés <strong>do</strong> "add" usamos o"del". Se quisermos adicionar uma rota ao subir uma determinada interface, poderíamos usar aseguinte linha dentro das opções da interface:iface eth0 inet static...up ip route add 10.0.0.0/24 via 200.X.X.YEntradas na Tabela de Roteamento.Cada tabela de roteamento pode ter várias entradas. Abaixo temos alguns tipos de rotas quepodem ser adicionadas com o coman<strong>do</strong> ip route.• unicast: Uma rota unicast é a mais comum na tabela. Isto é tipicamente um rota parauma rede de destino. Se o tipo de rota não é especifica<strong>do</strong> é assumi<strong>do</strong> como sen<strong>do</strong>unicast. Ex:Roberto Amaral <strong>–</strong> Marcelo Farias Página 7817/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX# ip route add unicast 192.168.0.0/24 via 192.168.100.5# ip route add default via 193.7.255.1# ip route add unicast default via 206.59.29.193# ip route add 10.40.0.0/16 via 10.72.75.254• broadcast: Esta rota é usada pela camada de link de dispositivos (placas Ethernet) o qualsuportam a notação de endereço broadcast. Este tipo de rota é usa<strong>do</strong> somente na tabelalocal e é tipicamente manusea<strong>do</strong> pelo kernel. Ex:# ip route add table local broadcast 10.10.20.255 dev eth0 proto kernel scope linksrc 10.10.20.67# ip route add table local broadcast 192.168.43.31 dev eth4 proto kernel scopelink src 192.168.43.14• local: O kernel irá adicionar entradas para a tabela de roteamento local quan<strong>do</strong>endereços IP são adiciona<strong>do</strong>s para uma interface. Isto significa que os IP's estão nopróprio host.# ip route add table local local 10.10.20.64 dev eth0 proto kernel scope host src10.10.20.67# ip route add table local local 192.168.43.12 dev eth4 proto kernel scope host src192.168.43.14• nat: Esta rota é adicionada para o kernel na tabela de roteamento local, quan<strong>do</strong> o usuáriotenta configurar stateless NAT. (Re-escreve o destino <strong>do</strong> pacote) Ex:# ip route add nat 193.7.255.184 via 172.16.82.184# ip route add nat 10.40.0.0/16 via 172.40.0.0• unreachable: Quan<strong>do</strong> um requisição para uma decisão de roteamento retorna um destinocom rota <strong>do</strong> tipo unreachable, um ICMP unreachable é gera<strong>do</strong> e retorna<strong>do</strong> para oendereço de origem. Ex:# ip route add unreachable 172.16.82.184# ip route add unreachable 192.168.14.0/26# ip route add unreachable 209.10.26.51• prohibit: Análogo ao unreachable mas gera um ICMP prohibit. Ex:# ip route add prohibit 10.21.82.157# ip route add prohibit 172.28.113.0/28# ip route add prohibit 209.10.26.51• blackhole: Um pacote que casa com uma rota <strong>do</strong> tipo blackhole é descarta<strong>do</strong>. Ex:# ip route add blackhole default# ip route add blackhole 202.143.170.0/24# ip route add blackhole 64.65.64.0/18Roberto Amaral <strong>–</strong> Marcelo Farias Página 7917/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX• throw: Este tipo de rota é conveniente, quan<strong>do</strong> deseja-se que uma consulta na tabela deroteamento falhe, fazen<strong>do</strong> com que o pacote continue sen<strong>do</strong> analiza<strong>do</strong> no RPDB. Ex:# ip route add throw 10.79.0.0/16# ip route add throw 172.16.0.0/12Configuração <strong>do</strong> NetfilterO projeto netfilter/iptables é um subsistema de firewalling para o kernel Linux 2.4 e superiores.Com o uso desta ferramenta definimos regras especiais para entrada, saída e passagem depacotes entre interfaces, poden<strong>do</strong> atuar antes ou após as ações referentes ao roteamento.O iptables atua sobre as tabelas presentes no Kernel, que indicam situações de roteamento, deacor<strong>do</strong> com a situação em que se encontra o pacote, a qual é referida por uma corrente deregras, ou chain.Básico <strong>do</strong> netfilterAs tabelas <strong>do</strong> iptables são:• filter: é a tabela padrão, sobre a qual podemos nos referir a três correntes de regras, ouchains:• INPUT, pacotes que entram na interface;• O<strong>UTP</strong>UT, pacotes que saem da interface• FORWARD, pacotes que estão sen<strong>do</strong> rotea<strong>do</strong>s de uma interface para outra;• nat: esta tabela se refere ao uso <strong>do</strong> recurso de Network Address Translation ou NAT, naqual podemos nos referir aos chains: PREROUTING, pacotes que serão altera<strong>do</strong>s antesde roteamento; O<strong>UTP</strong>UT, pacotes locais que serão altera<strong>do</strong>s antes <strong>do</strong> roteamento ePOSTROUTING, pacotes que serão altera<strong>do</strong>s após a aplicação das regras de roteamento;• mangle: usada para alterações especiais no pacote, PREROUTING, para alteração antes<strong>do</strong> roteamento e O<strong>UTP</strong>UT, pacotes locais que serão altera<strong>do</strong>s antes <strong>do</strong> roteamento.Dentre as ações que são feitas sobre os pacotes que atendem a um determina<strong>do</strong> chain em umadada tabela, temos:• ACCEPT: aceita o pacote;• DROP: rejeita o pacote;• MASQUERADE: atua somente sobre a tabela nat e indica que será efetua<strong>do</strong> a conversãode endereços ou NAT, conforme indica<strong>do</strong> no coman<strong>do</strong>.Podemos definir regras padrão para um determina<strong>do</strong> chain e regras mais específicas, usan<strong>do</strong>:iptables [<strong>–</strong>t TABELA] <strong>–</strong>P CHAIN AÇÃORoberto Amaral <strong>–</strong> Marcelo Farias Página 8017/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXonde TABELA é a tabela sobre a qual estamos atuan<strong>do</strong> <strong>–</strong> caso não especificarmos, seráassumida a tabela filter; CHAIN é a corrente de regras à qual o pacote está associa<strong>do</strong>; e AÇÃOé a ação a ser executada.Para adicionarmos uma regra usan<strong>do</strong> iptables, procedemos da seguinte forma:iptables [<strong>–</strong>t TABELA] <strong>–</strong>A CHAIN {OPÇÕES} <strong>–</strong>j AÇÃOsen<strong>do</strong> OPÇÕES é um conjunto diverso de opções que podemos especificar, como interface deorigem ou de destino e TABELA, CHAIN e AÇÃO defini<strong>do</strong>s como anteriormente. De mo<strong>do</strong>análogo,iptables [<strong>–</strong>t TABELA] <strong>–</strong>D CHAIN {OPÇÕES} <strong>–</strong>j AÇÃOpermite removermos uma regra.Para limparmos todas as regras existentes de um chain usamos:iptables [<strong>–</strong>t TABELA] <strong>–</strong>F CHAIN.Alvo NetfilterRegras de firewall possuem diversos alvos:• quatro alvos básicos :ooooACCEPT significa deixar o pacote passar.DROP significa descartar o pacote.QUEUE significa passar o pacote para o userspace (caso suporta<strong>do</strong> pelo kernel).RETURN significa parar de atravessar esta chain e continuar na próxima regra nachain anterior (a chain que chamou esta).• alvos extendi<strong>do</strong>s :oooLOG liga o logging <strong>do</strong> kernel.REJECT envia como resposta um pacote de erro e descarta o pacote.SNAT altera o endereço de origem de pacote e é usa<strong>do</strong> somente na chainPOSTROUTING.(somente tabela nat)--to-source endereçoip[-endereçoip][:porta-porta]<strong>–</strong> MASQUERADE é o mesmo que SNAT mas para conexões com endereços IP atribuí<strong>do</strong>sdinamicamente (discadas). (somente tabela nat)Roberto Amaral <strong>–</strong> Marcelo Farias Página 8117/10/2011


--to-ports porta[-porta]<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX<strong>–</strong> DNAT altera o endereço de destino <strong>do</strong> pacote e é usa<strong>do</strong> nas chains PREROUTING e O<strong>UTP</strong>UTe em chains definidas pelo usuário que são chamadas somente a partir destas chains. (somentetabela nat)--to-destination endereçoip[-endereçoip][:porta-porta]<strong>–</strong> REDIRECT altera o endereço IP de destino para enviar o pacote para a própria máquina.--to-ports porta[-porta]Coman<strong>do</strong>s <strong>do</strong> NetfilterOs coman<strong>do</strong>s básicos <strong>do</strong> iptables são :iptables -N chain # cria uma chainiptables -A chain \ # adiciona regra na chain-t tabela \ # usa tabela (filter, nat, mangle)-p protocolo \ # tcp, udp, icmp ou all,-s endereço-origem[/máscara] \--sport porta[:porta] \ # porta de origem caso -p seja tcp ou udp-d endereço-origem[/máscara] \--dport porta[:porta] \ # porta de destino caso -p seja tcp ou udp-j alvo \ # o que fazer se o pacote casar-i nome-interface-entrada \# para INPUT, FORWARD, PREROUTING-o nome-interface-saída # para FORWARD, O<strong>UTP</strong>UT, POSTROUTINGFazen<strong>do</strong> NATDicas:Qualquer regra aplicada a SNAT usa somente a chain POSTROUTING. Antes de iniciar o uso databela NAT temos que habilitar o roteamento no kernel, usan<strong>do</strong>:# echo “1” > /proc/sys/net/ipv4/ip_forwardPara que não percamos o roteamento é necessário editar o arquivo /etc/sysctl.conf e inserirmos oumodificarmos a linha <strong>do</strong> mo<strong>do</strong> que fique assim:net.ipv4.ip_forward= 1Exemplos de SNAT:iptables <strong>–</strong>t nat <strong>–</strong>A POSTROUTING <strong>–</strong>s 10.0.3.1 <strong>–</strong>o eth0 <strong>–</strong>j SNAT --to 192.111.22.33iptables <strong>–</strong>t nat <strong>–</strong>A POSTROUTING <strong>–</strong>s 10.0.3.0/8 <strong>–</strong>o eth0 <strong>–</strong>j SNAT --to 192.111.22.33iptables <strong>–</strong>t nat <strong>–</strong>A POSTROUTING <strong>–</strong>s 10.0.3.1 <strong>–</strong>o eth0 <strong>–</strong>j SNAT --to 192.111.22.33-192.11.22.66Roberto Amaral <strong>–</strong> Marcelo Farias Página 8217/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXExemplos de DNAT:iptables <strong>–</strong>t nat <strong>–</strong>A PREROUTING <strong>–</strong>s 10.0.3.1 <strong>–</strong>i eth0 <strong>–</strong>j DNAT --to 192.111.22.33iptables <strong>–</strong>t nat <strong>–</strong>A PREROUTING <strong>–</strong>s 10.0.3.1 <strong>–</strong>i eth0 <strong>–</strong>j DNAT --to 192.111.22.33-192.11.22.66iptables <strong>–</strong>t nat <strong>–</strong>A PREROUTING <strong>–</strong>i eth0 <strong>–</strong>j DNAT --to 192.111.22.33:22Teste seus conhecimentos:iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth1 -j MASQUERADECompartilhan<strong>do</strong> Conexão com IPTABLEmodprobe iptable_natecho 1 > /proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -o INTERFACE -j MASQUERADESubstitua o "INTERFACE" pela placa conectada na Internet. Este coman<strong>do</strong> simplesmentecompartilha a conexão proveniente da placa da Internet com todas as demais placas de redeespetadas no servi<strong>do</strong>r, por isso não é necessário especificar a placa de rede local.• O primeiro coman<strong>do</strong> ativa o "iptable_nat", o módulo <strong>do</strong> Iptables responsável poroferecer suporte ao roteamento de pacotes via NAT.• O segun<strong>do</strong> coman<strong>do</strong> ativa o "ip_forward", o módulo responsável peloencaminhamento de pacotes, utiliza<strong>do</strong> pelo módulo iptable_nat.• O terceiro coman<strong>do</strong> cria uma regra de roteamento, que orienta o servi<strong>do</strong>r adirecionar para a Internet to<strong>do</strong>s os pacotes (recebi<strong>do</strong>s <strong>do</strong>s clientes) que sedestinarem a endereços que não façam parte da rede local (ou seja, qualquer coisafora da faixa 192.168.0.x). A partir daí, o servi<strong>do</strong>r passa a ser o gateway da rede.Nem todas as distribuições instalam o executável <strong>do</strong> Iptables por padrão. Em muitasdistribuições com o Kernel 2.6, é necessário usar um quarto coman<strong>do</strong> ao compartilhar umaconexão, por exemplo ADSL. Este coman<strong>do</strong> ajusta os tamanhos <strong>do</strong>s pacotes recebi<strong>do</strong>s <strong>do</strong>modem ao MTU usa<strong>do</strong> na rede local.iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtuRoberto Amaral <strong>–</strong> Marcelo Farias Página 8317/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXCaso a conexão seja via via ADSL com autenticação (PPPoE), e precise usar o pppoeconfou o adsl-setup para estabelecer a conexão, lembre-se de substituir "eth0" no coman<strong>do</strong> por"ppp0".DHCPDe um mo<strong>do</strong> geral o trabalho de um servi<strong>do</strong>r DHCP é bastante simples. Ele responde aospacotes de broadcast das estações, envian<strong>do</strong> um pacote com um <strong>do</strong>s endereços IP disponíveis eos demais da<strong>do</strong>s da rede. Periodicamente o servi<strong>do</strong>r DHCP verifica se as estações ainda estãolá, exigin<strong>do</strong> uma renovação <strong>do</strong> "aluguel" <strong>do</strong> endereço IP (opção lease time). Assim os endereçosIP são gastos apenas com quem realmente estiver online, evitan<strong>do</strong> que os endereçosdisponíveis se esgotem.No Linux o serviço de DHCP é exerci<strong>do</strong> pelo dhcp3-server que nas distribuições baseadas noDebian pode ser instala<strong>do</strong> através <strong>do</strong> coman<strong>do</strong>:# apt-get install dhcp3-serverOs coman<strong>do</strong>s "/etc/init.d/dhcp3-server start" e "/etc/init.d/dhcp3-server stop" comandam aatividade <strong>do</strong> serviço.O arquivo de configuração é o dhcpd.conf. No Debian o caminho completo para ele é:/etc/dhcp3/dhcpd.confA configuração <strong>do</strong> arquivo é igual independentemente da distribuição. Um arquivo deconfiguração básico, contém o seguinte:ddns-update-style none;default-lease-time 600;max-lease-time 7200;authoritative;subnet 192.168.0.0 netmask 255.255.255.0 {range 192.168.0.100 192.168.0.201;option routers 192.168.0.10;option <strong>do</strong>main-name-servers 200.177.250.10,200.204.0.10;option broadcast-address 192.168.0.255;}A opção " default-lease-time" controla o tempo de renovação <strong>do</strong>s endereços IP. O "600"indica que o servi<strong>do</strong>r verifica a cada dez minutos se as estações ainda estão ativas. Se vocêtiver mais endereços IP <strong>do</strong> que máquinas os endereços IP das estações raramente vai precisarmudar. Mas, no caso de uma rede congestionada, o " max-lease-time" determina o tempoRoberto Amaral <strong>–</strong> Marcelo Farias Página 8417/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXmáximo que uma estação pode usar um determina<strong>do</strong> endereço IP. Isso foi planeja<strong>do</strong> paraambientes onde haja escassez de endereços IP.A opção "range" determina a faixa de endereços IP que será usada pelo servi<strong>do</strong>r. Se você utilizaa faixa de endereços 192.168.0.1 até 192.168.0.254 por exemplo, pode reservar os endereçosde 192.168.0.1 a 192.168.0.100 para estações configuradas com IP fixo e usar os demais para oDHCP.Na "option routers" vai o endereço <strong>do</strong> default gateway da rede, ou seja, o endereço <strong>do</strong> servi<strong>do</strong>rque está compartilhan<strong>do</strong> a conexão. Não é necessário que o mesmo micro que estácompartilhan<strong>do</strong> a conexão rode também o servi<strong>do</strong>r DHCP.A opção "option <strong>do</strong>main-name-servers" contém os servi<strong>do</strong>res DNS que serão usa<strong>do</strong>s pelasestações. Ao usar <strong>do</strong>is ou mais endereços eles devem ser separa<strong>do</strong>s por vírgula, sem espaços.Ao fazer qualquer alteração no arquivo, você deve reiniciar o servi<strong>do</strong>r DHCP usan<strong>do</strong> ocoman<strong>do</strong>:# /etc/init.d/dhcp3-server restartSempre que configurar um servi<strong>do</strong>r com duas placas de rede, é importante que o servi<strong>do</strong>rDHCP seja configura<strong>do</strong> para escutar apenas na placa da rede local. No Debian, estaconfiguração vai no arquivo "/etc/default/dhcp3-server". Procure pela linha:INTERFACES=""... e adicione a placa que o servi<strong>do</strong>r DHCP deve escutar, como em:INTERFACES="eth0"Para que a configuração entre em vigor, basta reiniciar o serviço novamente.Trabalho prático sobre conhecimentos adquiri<strong>do</strong>s:Juntar a um amigo, utilize um <strong>do</strong>s computa<strong>do</strong>res para ser o rotea<strong>do</strong>r (compartilhamento deconexão).1º) ExecícioMáquina 1Crie um alias (192.168.0.X) à x = número da máquina.Crie um compartilhamento com iptable.Máquina 2Coloque o endereço desta como 192.168.0.x à x = número da máquinaColoque o Máquina 1 como gateway.Roberto Amaral <strong>–</strong> Marcelo Farias Página 8517/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sPing o site www.utp.brCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXCom o Lynx verifique se sua conexão ficou correta, acessan<strong>do</strong> o www.google.com.br2º) ExecícioMáquina 1Crie um alias (192.168.0.X) à x = número da máquina.Crie um compartilhamento com iptables.Filtre com iptable o protocolo ICMPMáquina 2Coloque o endereço desta como 192.168.0.x à x = número da máquinaColoque o Máquina 1 como gateway.Ping o site www.utp.brCom o Lynx verifique se sua conexão ficou correta, acessan<strong>do</strong> o www.google.com.brSambaCom o SAMBA é possível compartilhar diretórios, impressoras, acessar arquivos na redeexatamente como em redes Microsoft. Mas neste caso, seu servi<strong>do</strong>r é um Linux rodan<strong>do</strong> umaaplicação específica.InstalaçãoPara instalar o SAMBA é necessário executar o coman<strong>do</strong>: ( apt-get install samba smbclientsmbfs )Algumas perguntas aparecerão e aparecem com a resposta sugerida:Senhas criptografadas? SimModificar para usar conf Wins <strong>do</strong> dhcp? NãoComo deseja executar o Samba? DaemonsGerar a base de da<strong>do</strong>s? SimConfiguraçãoToda a configuração <strong>do</strong> SAMBA é centralizada no arquivo smb.conf, que deve ser guarda<strong>do</strong> nodiretório /etc/samba. Nele é que são descritos os compartilhamentos, permissões de acesso,impressoras, dentre outras configurações disponíveis. Quan<strong>do</strong> instala<strong>do</strong>, o SAMBA disponibilizaos seguintes componentes:Roberto Amaral <strong>–</strong> Marcelo Farias Página 8617/10/2011


smbd - O servi<strong>do</strong>r SAMBA.<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>snmbd - O Servi<strong>do</strong>r de nomes NetBios.smbclient - Cliente SMB para sistemas Unix.CURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXsmbpasswd - Alterar senhas (encriptadas) de usuários smb.smbspool - Cliente para envio de impresão a sistemas Linux.smbstatus - Apresenta a situação atual das conexoes SMB no Host.testparm - Verifica o arquivo smb.conf (configuração <strong>do</strong> SAMBA).testprns - Verifica a comunicação via rede com as impressoras.O smb.conf é dividi<strong>do</strong> basicamente em três partes: a configuração <strong>do</strong> servi<strong>do</strong>r SAMBA(parâmetros na seção [global]), a configuração <strong>do</strong>s diretórios/pastas pessoais <strong>do</strong>s usuários(parâmetros na seção [homes]) e as demais seções que correspondem aos diretórioscompartilha<strong>do</strong>s ou impressoras.Nome de máquina (nome NetBios)Toda a máquina em uma rede NetBEUI é identificada por um nome, este nome deve ser únicona rede e permite que outras máquinas acessem os recursos disponibiliza<strong>do</strong>s ou que sejamenviadas mensagens para a máquina. Este nome é composto de 16 caracteres, sen<strong>do</strong> 15 queidentificam a máquina e o último o tipo de serviço que ela disponibiliza. O tipo de serviço éassocia<strong>do</strong> com o nome da máquina e registra<strong>do</strong> em servi<strong>do</strong>res de nomes confirme aconfiguração da máquina.Grupo de trabalhoO grupo de trabalho organiza a estrutura de máquinas da rede em forma de árvore, facilitan<strong>do</strong>sua pesquisa e localização. Tomemos como exemplo uma empresa grande com osdepartamentos comunicação, redes, web, rh, as máquinas que pertencem ao grupo de redesserão agrupadas no programa de navegação:redestécnico; marcelo; henrique; michellerhburnswebweb1; web2; web3comunicacaocomunic1; comunic2; comunic3Roberto Amaral <strong>–</strong> Marcelo Farias Página 8717/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXA segurança no acesso a arquivos e diretórios na configuração de grupo de trabalho écontrolada pela própria máquina, normalmente usan<strong>do</strong> segurança a nível de compartilhamento.Esta segurança funciona definin<strong>do</strong> um usuário/senha para acessar cada compartilhamento quea máquina possui. O Lan Manager, Win<strong>do</strong>ws for Workgroups, Win<strong>do</strong>ws 95, Win<strong>do</strong>ws 98, XPHome Edition usam este nível de acesso por padrão.DomínioO funcionamento é semelhante ao grupo de trabalho, com a diferença que a segurança écontrolada pela máquina central (PDC) usan<strong>do</strong> diretivas de acesso e grupos. O PDC (PrimaryDomain Controller) deverá ter todas as contas de acesso que serão utilizadas pelo usuário paraacessar os recursos existentes em outras máquinas, script de logon que poderá ser executa<strong>do</strong>em cada máquina para fazer ajustes, sincronismo, manutenção ou qualquer outra tarefaprogramada pelo administra<strong>do</strong>r <strong>do</strong> sistema.CompartilhamentoUm compartilhamento é um recurso da máquina local que é disponibiliza<strong>do</strong> para acesso viarede, que poderá ser mapeada por outra máquina. O compartilhamento pode ser um diretório,arquivo, impressora. Além de permitir o acesso <strong>do</strong> usuário, o compartilhamento pode serprotegi<strong>do</strong> por senha, e ter controle de acesso de leitura/gravação, monitoração de acessos,diretórios ocultos, autenticação via PDC e outras formas para restringir e garantir segurançana disponibilidade <strong>do</strong>s da<strong>do</strong>s.Um compartilhamento no SAMBA pode ser acessível publicamente (sem senha) ou estarrigidamente protegi<strong>do</strong> ten<strong>do</strong> que passar por diversas barreiras para chegar ao seu conteú<strong>do</strong>,como senhas, endereço de origem, interfaces, usuários autoriza<strong>do</strong>s, permissões de visualização,etc.MapeamentoMapear significa pegar um diretório/arquivo/impressora compartilha<strong>do</strong> por alguma máquina darede para ser acessada pela máquina local. Para mapear algum recurso de rede, é necessárioque ele seja compartilha<strong>do</strong> na outra máquina. Por exemplo, o diretório /usr compartilha<strong>do</strong> como nome usr, pode ser mapea<strong>do</strong> por uma máquina Win<strong>do</strong>ws como a unidade F:, ou mapea<strong>do</strong> poruma máquina Linux no diretório /mnt/samba.O programa responsável por mapear unidades compartilhadas no Linux é o smbmount esmbclient.Roberto Amaral <strong>–</strong> Marcelo Farias Página 8817/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sNavegação na Rede e controle de <strong>do</strong>mínioCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXEsta função é controlada pelo nmbd que fica ativo o tempo to<strong>do</strong> disponibilizan<strong>do</strong> os recursos damáquina na rede, participan<strong>do</strong> de eleições NetBIOS, fazer logon de máquinas no <strong>do</strong>mínio, etc.A função de navegação na rede é feita utilizan<strong>do</strong> o compartilhamento IPC$. Estecompartilhamento possui acesso público somente leitura e utiliza o usuário "guest" paradisponibilização de seus recursos.OBS: A função de navegação (browsing) poderá não funcionar corretamente caso amáquina não consiga resolver nomes NetBIOS para endereços IP.smbmountO smbmount é uma ferramenta que permite a montagem de um disco compartilha<strong>do</strong> por umamáquina NetBEUI remota como uma partição. Alguns exemplos:smbmount //servi<strong>do</strong>r/discoc /mnt/discocMonta o compartilhamento de //servi<strong>do</strong>r/discoc em /mnt/discoc usan<strong>do</strong> o nome de usuário atual.Será pedi<strong>do</strong> uma senha para acessar o conteú<strong>do</strong> <strong>do</strong> compartilhamento, caso ele seja público,você pode digitar qualquer senha ou simplesmente pressionar enter.smbmount //servi<strong>do</strong>r/discoc /mnt/discoc -NSemelhante ao coman<strong>do</strong> cima, com a diferença que o parâmetro -N não pergunta por umasenha. Isto é ideal para acessar compartilhamentos anônimos.smbmount //servi<strong>do</strong>r/discoc /mnt/discoc -o username=adminsamba,workgroup=testeSemelhante aos anteriores, mas acessa o compartilhamento usan<strong>do</strong> adminsamba como nome deusuário e teste como grupo de trabalho. Este méto<strong>do</strong> é ideal para redes que tem o nível deacesso por usuário ou para acessar recursos compartilha<strong>do</strong>s em um <strong>do</strong>mínio.smbclientO smbclient é uma ferramenta de navegação em servi<strong>do</strong>res SAMBA. Ao invés dela montar ocompartilhamento como um disco local, você poderá navegar na estrutura <strong>do</strong> servi<strong>do</strong>r de formasemelhante a um cliente FTP e executar coman<strong>do</strong>s como ls, get, put para fazer a transferênciade arquivos entre a máquina remota e a máquina local. Também é através dele que é feita ainterface com impressoras compartilhadas remotamente. Alguns exemplos <strong>do</strong> uso <strong>do</strong> smbclient:smbclient -L samba1Lista to<strong>do</strong>s os compartilhamentos existentes (-L) no servi<strong>do</strong>r samba1.smbclient //samba1/discocAcessa o conteú<strong>do</strong> <strong>do</strong> compartilhamento discoc no servi<strong>do</strong>r samba1.smbclient //samba1/discoc -NRoberto Amaral <strong>–</strong> Marcelo Farias Página 8917/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXIdêntico ao acima, mas não utiliza senha (ideal para compartilhamentos com acesso anônimo).smbclient //samba1/discoc -I 192.168.1.2Se conecta ao compartilhamento usan<strong>do</strong> o endereço IP 192.168.1.2 ao invés da resolução denomes.smbclient //samba1/discoc -U user -W testeSe conecta ao compartilhamento como usuário user usan<strong>do</strong> o grupo de trabalho teste.smbclient //samba1/discoc -U user%senha01 -W testeIdêntico ao acima, mas também envia a senha senha01 para fazer a conexão diretamente.Caso receba a mensagem NT Status Access Denied, isto quer dizer que não possui direitos deacesso adequa<strong>do</strong>s para listas ou acessar os compartilhamentos da máquina. Nesse caso, utilizeas opções -U usuário e -W grupo/<strong>do</strong>mínio para fazer acesso com uma conta válida de usuárioexistente na máquina.OBS:Note que a ordem das opções faz diferença no smbmount.O smb.confUm parâmetro é defini<strong>do</strong> no formato nome = valor. Na configuração de booleanos, a seguintesintaxe pode ser usada: 0 ou 1 - yes ou no - true ou falseLinhas iniciadas por # ou ; são tratadas como comentário. Quebras de linha podem serespecificadas com uma \ no final da linha.Nomes e grupos de trabalhonetbios name = [nome <strong>do</strong> servi<strong>do</strong>r]Especifica o nome NetBIOS primário <strong>do</strong> servi<strong>do</strong>r samba. Caso não seja ajusta<strong>do</strong>, ele usará ohostname de sua máquina como valor padrão. Ex.: netbios name = Servi<strong>do</strong>rsamba.workgroup = [grupo de trabalho/<strong>do</strong>mínio]Diz qual o nome <strong>do</strong> grupo de trabalho/<strong>do</strong>mínio que a máquina samba pertencerá. Ex.:workgroup = empresa.netbios aliases = [nomes alternativos ao sistema]Permite o uso de nomes alternativos ao servi<strong>do</strong>r, separa<strong>do</strong>s por espaços. Ex.: teste1 teste2.server string = [identificação]Identificação enviada <strong>do</strong> servi<strong>do</strong>r samba para o ambiente de rede. A string padrão é Samba %v(%v é substituída pela versão <strong>do</strong> samba) Ex: server string = Servi<strong>do</strong>r Samba versão %v.name resolve order = [ordem]Roberto Amaral <strong>–</strong> Marcelo Farias Página 9017/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXDefine a ordem de pesquisa para a resolução de nomes no samba. A ordem padrão é: lmhostshost wins bcast, que é a melhor para resolução rápida e que tente gerar menos tráfegobroadcast possível.Restrições de acesso/mapeamento de usuáriosguest account = [conta]Define a conta local de usuário que será mapeada quan<strong>do</strong> um usuário se conectar sem senha(usuário guest).invalid usersDefine uma lista de usuários que não terão acesso aos recursos <strong>do</strong> servi<strong>do</strong>r oucompartilhamento. É seguro restringir o acesso samba a usuários com grande poder no sistema(como o root).valid usersSemelhante a opção invalid users mas permite que somente os usuários especifica<strong>do</strong>s tenhamacesso ao sistema.default service = nomeCaso o serviço que o usuário deseja se conectar não for encontra<strong>do</strong> no servi<strong>do</strong>r, o SAMBAmapeará o serviço especifica<strong>do</strong> nesta diretiva como alternativa. A variável "%S" e o caracter "_"podem ser interessantes em algumas alternativas de configuração. A opção default é umsinônimo para esta opção. Caso utilize esta opção, crie o compartilhamento em mo<strong>do</strong> somenteleitura e com acesso público, caso contrário (dependen<strong>do</strong> <strong>do</strong> planejamento de partições esegurança <strong>do</strong> sistema de arquivos) a máquina poderá ser derrubada sem dificuldades.username map = [arquivo]Especifica um arquivo que faz o mapeamento entre nomes forneci<strong>do</strong>s por clientes e nomes decontas Unix locais.obey pam restrictions = yesIndica se as restrições <strong>do</strong> usuário nos módulos PAM terão efeito também no SAMBA.Níveis de autenticaçãoDefine o nível de segurança <strong>do</strong> servi<strong>do</strong>r. Os seguintes valores são váli<strong>do</strong>s:share - Usada principalmente quan<strong>do</strong> apenas a senha é enviada por compartilhamento acessa<strong>do</strong>para o servi<strong>do</strong>r, caso muito típico em sistemas Lan Manager e Win<strong>do</strong>ws for Workgroups.Mesmo assim o samba tenta mapear para um UID de usuário local <strong>do</strong> sistema usan<strong>do</strong> osseguintes méto<strong>do</strong>s (retira<strong>do</strong> da página de manual <strong>do</strong> samba):Roberto Amaral <strong>–</strong> Marcelo Farias Página 9117/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXSe o parâmetro guest only é usa<strong>do</strong> no compartilhamento junto com o guest ok, o acesso éimediatamente permiti<strong>do</strong>, sem verificar inclusive a senha.Caso um nome de usuário seja envia<strong>do</strong> junto com a senha, ele é utiliza<strong>do</strong> para mapear oUID e aplicar as permissões deste usuário (como acontece no nível de segurança user).Se ele usou um nome para fazer o logon no Win<strong>do</strong>ws este nome será usa<strong>do</strong> como usuáriolocal <strong>do</strong> SAMBA. Caso ele seja diferente, você deverá usar o mapeamento de nomes paraassociar o nome remoto <strong>do</strong> nome localO nome <strong>do</strong> serviço é tenta<strong>do</strong> como nome de usuário.O nome da máquina NetBios é tentada como nome de usuárioOs usuários especifica<strong>do</strong>s na opção user <strong>do</strong>s compartilhamentos são utiliza<strong>do</strong>s.Caso nenhum destes méto<strong>do</strong>s acima for satisfeito, o acesso é NEGADO.Hoje em dia, o uso <strong>do</strong> nível de acesso share é raramente usa<strong>do</strong>, porque to<strong>do</strong>s os sistemas apartir <strong>do</strong> Win<strong>do</strong>ws 95 e acima enviam o nome de usuário ao acessar um compartilhamento(cain<strong>do</strong> na segunda checagem <strong>do</strong> nível share), sen<strong>do</strong> equivalente a usar o nível user.Entretanto, o nível de segurança share é recomenda<strong>do</strong> para servi<strong>do</strong>res onde TODO o conteú<strong>do</strong>deve ter acesso público (seja leitura ou gravação) e o parâmetro guest shares também funcionanativamente.As senhas criptografadas (encrypt passwords = 1) NÃO funcionarão no nível share, lembre-sedeste detalhe.user - Este é o padrão. O usuário precisa ter uma conta de usuário no Linux para acessar seuscompartilhamentos. A mesma conta de usuário/senha deverá ser usada no Win<strong>do</strong>ws paraacessar seus recursos ou realiza<strong>do</strong> um mapeamento de nomes de usuários. Este é o padrão <strong>do</strong>SAMBA. No nível de acesso user o usuário precisa ser autentica<strong>do</strong> de qualquer forma, inclusivese for usa<strong>do</strong> o parâmetro guest only ou user. Os seguintes passos são usa<strong>do</strong>s para autorizaruma conexão usan<strong>do</strong> o nível user (retira<strong>do</strong> da <strong>do</strong>cumentação <strong>do</strong> SAMBA):É tentada a validação usan<strong>do</strong> o nome/senha passa<strong>do</strong>s pelo cliente. Se tu<strong>do</strong> estiver OK, aconexão é permitida.Caso já tenha se autentica<strong>do</strong> anteriormente para acessar o recurso e forneceu a senha correta,o acesso é permiti<strong>do</strong>.O nome NetBIOS da máquina <strong>do</strong> cliente e qualquer nome de usuário que foi usa<strong>do</strong> é novamentetenta<strong>do</strong> junto com a senha para tentar permitir o acesso ao recurso compartilha<strong>do</strong>.Caso o cliente tenha valida<strong>do</strong> o nome/senha com o servi<strong>do</strong>r e o cliente enviou novamente otoken de validação, este nome de usuário é usa<strong>do</strong>.É tentada a checagem com o parâmetro user no compartilhamento..Roberto Amaral <strong>–</strong> Marcelo Farias Página 9217/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXÉ verifica<strong>do</strong> se o serviço é público, então a conexão é feita usan<strong>do</strong> o usuário guest account eignoran<strong>do</strong> a senha.<strong>do</strong>main - Neste nível, o acesso só será permiti<strong>do</strong> quan<strong>do</strong> a máquina for adicionada ao <strong>do</strong>míniocom o smbpasswd. Neste nível de acesso, a conta de usuário será validada em um servi<strong>do</strong>r PDC(controla<strong>do</strong>r de <strong>do</strong>mínio) e o acesso aos recursos das máquinas que fazem parte <strong>do</strong> <strong>do</strong>mínioserá feito a partir <strong>do</strong> PDC.server - A máquina samba tentara autenticar o usuário em outro servi<strong>do</strong>r NT (ou samba). Nocaso da autenticação falhar, será usa<strong>do</strong> o nível de acesso user na base de usuários local (seránecessário o arquivo de senhas criptografa<strong>do</strong> <strong>do</strong> samba para que a autenticação local funcione.Este nível é bastante usa<strong>do</strong> quan<strong>do</strong> configuramos um servi<strong>do</strong>r de perfis de usuários ou logonsepara<strong>do</strong> <strong>do</strong> PDC.Log de acessos/serviçoslog file= [arquivo]Define a localização e nome <strong>do</strong> arquivo de log gera<strong>do</strong> pelo samba. As variáveis de expansãopodem ser usadas caso o administra<strong>do</strong>r queira ter um melhor controle <strong>do</strong>s logs gera<strong>do</strong>s. Ex.:/var/log/samba/samba-log-%m.OBS: Se possível coloque uma extensão no arquivo de log gera<strong>do</strong> pelo SAMBA (como.log). O motivo disto é porque se estes logs forem rotaciona<strong>do</strong>s pelo logrotate vocêterá problemas de recompactação múltiplas caso utilize um coringa samba-log-*,geran<strong>do</strong> arquivos como .gz.gz.gz.., lotan<strong>do</strong> a tabela de arquivos <strong>do</strong> diretório e deixan<strong>do</strong>sua máquina em um loop de compactação.max log size = [tamanho]Especifica o tamanho máximo em Kb <strong>do</strong> arquivo de log gera<strong>do</strong> pelo samba. O valor padrão é5000Kb (5MB).debug pid = [valor]Este processo adiciona a pid aos logs gera<strong>do</strong>s pelo processo smbd Isto é útil para depuraçãocaso existam múltiplos processos rodan<strong>do</strong>. O valor padrão é no e a opção debug timestampdeve ser yes para esta opção ter efeito.debug timestamp = [valor]Ativa ou desativa a gravação de data/hora nos arquivos de log gera<strong>do</strong>s pelo samba. O valorpadrão é yes.debug level = [valor]Aumenta o nível de depuração <strong>do</strong>s daemons <strong>do</strong> SAMBA de 0 a 9. Um nível de depuraçãointeressante e que produz uma quantidade razoável de da<strong>do</strong>s para configuração de umRoberto Amaral <strong>–</strong> Marcelo Farias Página 9317/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXlogrotate só para o SAMBA é o 2, produzin<strong>do</strong> a lista de to<strong>do</strong>s os compartilhamentos acessa<strong>do</strong>s,quem acessou, data/hora (dependen<strong>do</strong> das outras opções de depuração). Isto permite aoadministra<strong>do</strong>r saber exatamente o que está sen<strong>do</strong> acessa<strong>do</strong> e por quem, quais as tentativas deacesso. Assim terá certeza que o conteú<strong>do</strong> não está sen<strong>do</strong> acessa<strong>do</strong> indevidamente. O nível dedepuração 0 é o padrão.debug uid = [valor]Este parâmetro inclui o euid, egid, uid, gid nos arquivos de log. O valor padrão é no.lock directory = [diretório]Define onde serão grava<strong>do</strong>s os arquivos de lock gera<strong>do</strong>s pelo samba.Navegação no servi<strong>do</strong>r/tipo de servi<strong>do</strong>ros level=[num]Especifica o nível <strong>do</strong> sistema operacional. Este número é usa<strong>do</strong> para as eleições netbios paradefinir o navega<strong>do</strong>r de grupo local e controla<strong>do</strong>r de <strong>do</strong>mínio. O valor pode ser de 0 a 255, opadrão é 32.announce as = [sistema]Selecione o nome que o samba (nmbd) se anunciará na lista de pesquisa de rede. Os seguintesnomes podem ser usa<strong>do</strong>s: NT Server (ou NT) - Anuncia como Win<strong>do</strong>ws NT Server. Este é opadrão.NT Workstation - Anuncia-se como um NT Workstation.Win95 ou WfW - Anuncia-se na rede como uma estação Win<strong>do</strong>ws 9x, Win<strong>do</strong>ws for Workgroups,Win<strong>do</strong>ws NT Server e Win<strong>do</strong>ws NT Workstation de uma só vez.<strong>do</strong>main master = [valor]Diz se o servi<strong>do</strong>r tentará se tornar o navega<strong>do</strong>r principal de <strong>do</strong>mínio. Os valores que podem serespecifica<strong>do</strong>s são: yes, no e auto. O valor padrão é auto.local master = [valor]Diz se o servi<strong>do</strong>r participará ou não das eleições para navega<strong>do</strong>r local <strong>do</strong> grupo de trabalho(workgroup). Os valores que podem ser especifica<strong>do</strong>s são: yes, no. O valor padrão é yes. Paravencer a eleição, o samba precisa ter o valor de os level maior que os demais.Note também que o Win<strong>do</strong>ws NT não aceita perder as eleições e convoca uma nova eleiçãocaso ele perca. Como esta eleição é feita via broadcasting, isso gera um tráfego grande na rede.Desta forma, se tiver um computa<strong>do</strong>r NT na rede configure este valor para "no".preferred master = [valor]Diz se o servi<strong>do</strong>r samba terá ou não vantagens de ganhar uma eleição local. Se estiverconfigura<strong>do</strong> para "yes", o servi<strong>do</strong>r samba pedirá uma eleição e terá vantagens para ganha-la. Oservi<strong>do</strong>r poderá se tornar garantidamente o navega<strong>do</strong>r principal <strong>do</strong> <strong>do</strong>mínio se esta opção forRoberto Amaral <strong>–</strong> Marcelo Farias Página 9417/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXusada em conjunto com <strong>do</strong>main master = 1. Os valores especifica<strong>do</strong>s podem ser yes, no e auto,o padrão é auto.Antes de ajustar este valor para yes, verifique se existem outros servi<strong>do</strong>res NetBIOS em suarede que tem preferência para se tornar o master principal, pois poderá ocorrer um tráfego altode broadcasting causa<strong>do</strong> pelas eleições solicitadas pelas outras máquinas.Seção [homes]Esta seção tem a função especial de disponibilizar o diretório home <strong>do</strong> usuário. Quan<strong>do</strong> ousuário envia seu nome de login como compartilhamento é feita uma busca no arquivosmb.conf procuran<strong>do</strong> por um nome de compartilhamento que confira. Caso nenhum sejaencontra<strong>do</strong>, é feita uma busca por um nome de usuário correspondente no arquivo /etc/passwd,se um nome conferir e a senha enviada também, o diretório de usuário é disponibiliza<strong>do</strong> comoum compartilhamento com o mesmo nome <strong>do</strong> usuário local. O diretório home <strong>do</strong> usuário poderáser modifica<strong>do</strong> com o uso de mapeamento de nomes. Quan<strong>do</strong> o caminho <strong>do</strong> compartilhamentonão for especifica<strong>do</strong>, o SAMBA utilizará o diretório home <strong>do</strong> usuário (no /etc/passwd).Para maior segurança da instalação, principalmente porque o diretório home <strong>do</strong> usuário não éum requerimento para a autenticação de usuário, recomen<strong>do</strong> usar a variável de substituição %Sapontan<strong>do</strong> para um diretório com as permissões apropriadas configuradas em seu sistema, porexemplo:[homes]comment = Diretórios de Usuáriospath=/pub/usuarios/%SVocê apenas terá o trabalho extra de criar os diretórios de usuários que farão acesso aosistema. Isto não será nenhum problema após você programar um shell script simples queverifique os nomes de contas em /etc/passwd e crie os diretórios com as permissões/gruposadequa<strong>do</strong>s.Os parâmetros aceitos em [homes] aqui são os mesmos usa<strong>do</strong>s para compartilhamentosnormais.OBS1:Caso nenhum caminho de compartilhamento seja utiliza<strong>do</strong>, o diretório home <strong>do</strong>usuário será compartilha<strong>do</strong>.OBS2:Não utilize o parâmetro public yes na seção guest, caso contrário to<strong>do</strong>s osdiretórios de usuários serão li<strong>do</strong>s por to<strong>do</strong>s.Seção [printers]Esta seção tem a função de disponibilizar as impressoras existentes no sistema (lp, lp1, lp2, etc)existentes no /etc/printcap como compartilhamento de sistemas Win<strong>do</strong>ws. O méto<strong>do</strong> que osRoberto Amaral <strong>–</strong> Marcelo Farias Página 9517/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXnomes de impressoras são pesquisa<strong>do</strong>s é idêntico a forma feita para a seção [homes]: Primeiroo nome <strong>do</strong> compartilhamento é pesquisa<strong>do</strong> como um nome de serviço, depois se ele é um nomede usuário (tentan<strong>do</strong> mapear o serviço disponibiliza<strong>do</strong> em [homes]), depois será verifica<strong>do</strong> aseção [printers].OBS:É importante lembrar que a seção [printers] DEVE ser definida como printableusan<strong>do</strong> o parâmetro printable = yes para funcionar. O utilitário testparm poderá serusa<strong>do</strong> para verificar problemas no arquivo de configuração <strong>do</strong> SAMBA.Compartilhamento de arquivos e diretóriosEsta seção <strong>do</strong>cumenta como disponibilizar arquivos e impressoras com o SAMBA e osparâmetros usa<strong>do</strong>s para realizar restrições de compartilhamento, mo<strong>do</strong> que os da<strong>do</strong>s serãodisponibiliza<strong>do</strong>s e itens de performance. A maior parte destes parâmetros é empregada emserviços <strong>do</strong> SAMBA, mas nada impede que também sejam coloca<strong>do</strong>s na seção [global] <strong>do</strong>arquivo de configuração, principalmente quan<strong>do</strong> isto é váli<strong>do</strong> para diversos serviçoscompartilha<strong>do</strong>s.Descrição de parâmetros usa<strong>do</strong>s em compartilhamentoAbaixo temos algumas das opções que podem ser usadas para controlar o comportamento <strong>do</strong>compartilhamento de arquivos por serviços no servi<strong>do</strong>r SAMBA: pathIndica o diretório que será compartilha<strong>do</strong>. Lembre-se que o usuário terá as permissões deacesso que ele teria caso estivesse loga<strong>do</strong> no sistema como um usuário UNIX normal, exceto seestiver fazen<strong>do</strong> mapeamento para outros nomes de usuários. Ex: path=/pub - Compartilha odiretório local /pub.OBS: Quan<strong>do</strong> não é defini<strong>do</strong> um path, o diretório /tmp é usa<strong>do</strong> como padrão.commentDescrição <strong>do</strong> compartilhamento que será mostrada na janela de procura de rede ou nosmbclient -L maquina.Ex: comment=Pasta de conteú<strong>do</strong> público <strong>do</strong> sistema.browseableDefine se o compartilhamento será ou não exibi<strong>do</strong> na janela de procura de rede. Mesmo nãosen<strong>do</strong> exibi<strong>do</strong>, o compartilhamento poderá ser acessa<strong>do</strong>. Ex: browseable=yes - Lista ocompartilhamento na janela de pesquisa de servi<strong>do</strong>res.guest accountConta que será usada para fazer acesso sem senha (convida<strong>do</strong>) quan<strong>do</strong> o parâmetro guest okou public forem usa<strong>do</strong>s em um compartilhamento. Por padrão ela é mapeada para o usuárioRoberto Amaral <strong>–</strong> Marcelo Farias Página 9617/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXnobody. É importante especificar uma nome de usuário guest (convida<strong>do</strong>), principalmenteporque seu UID será usa<strong>do</strong> para fazer várias operações no SAMBA, como exibir os recursosdisponíveis na máquina para a rede. Por motivos claros, é recomendável que este usuário nãotenha acesso login ao sistema.Caso não tenha a intenção de ocultar o SAMBA na lista de máquinas da rede (fazen<strong>do</strong> apenasacesso direto aos recursos), especifique um valor para esta opção.Ex: guest account = sambausr - Mapeia os usuários se conectan<strong>do</strong> sem senha para o usuáriosambausr, desde que o acesso guest seja permiti<strong>do</strong> pela opção public.publicPermitem aos usuários usuários se conectarem ao compartilhamento sem fornecer uma senhausan<strong>do</strong> o usuário guest. O UID que o usuário guest será mapea<strong>do</strong> é especifica<strong>do</strong> peloparâmetro guest account. O parâmetro guest ok é equivalente a public. Ex: public = no - Nãopermiteguest onlyPermite somente conexões guest ao recurso. O UID <strong>do</strong> usuário é mapea<strong>do</strong> para guest, mesmoque forneça uma senha correta. O valor padrão é no. Ex: guest only = no.write listLista de usuários separa<strong>do</strong>s por espaço ou vírgula que poderão ler e gravar nocompartilhamento. Caso o nome for inicia<strong>do</strong> por "@", o nome especifica<strong>do</strong> será trata<strong>do</strong> comoum grupo UNIX (/etc/group) e to<strong>do</strong>s os usuários daquele grupo terão acesso de gravação. O usodeste parâmetro ignora o read only = yes.Ex: write list = adminsamba, @usuarios - Permite acesso gravação somente <strong>do</strong> usuárioadminsamba e to<strong>do</strong>s os usuários pertencentes ao grupo @usuarios.OBS: - O significa<strong>do</strong> de "@" nos parâmetros "invalid users"/"valid users" é diferentedas opções write list e read list.read listLista de usuários separa<strong>do</strong>s por espaço ou vírgula que poderão apenas ler o compartilhamento.O caracter "@" pode ser especifica<strong>do</strong> para fazer referência a grupos, como no write list. O usodeste parâmetro ignora o read only = no. Ex: read list = nobody, system, opera<strong>do</strong>r, @usuarios -Permite acesso de leitura somente <strong>do</strong> usuário nobody, system, opera<strong>do</strong>r e to<strong>do</strong>s os usuáriospertencentes ao grupo @usuarios.userEspecifica um ou mais nomes de usuários ou grupos (caso o nome seja segui<strong>do</strong> de "@") parachecagem de senha. Quan<strong>do</strong> o cliente somente fornece uma senha (especialmente na rede LanManager, Win<strong>do</strong>ws for Workgroups e primeira versão <strong>do</strong> Win<strong>do</strong>ws 95) ela será validada noRoberto Amaral <strong>–</strong> Marcelo Farias Página 9717/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXbanco de da<strong>do</strong>s de senhas usan<strong>do</strong> o usuário especifica<strong>do</strong> nesta opção. Ex: user = john@usuariosredeonly userEspecifica se somente serão permitidas conexões vindas de usuários da diretiva user. O padrãoé no. Caso deseje restringir o acesso a determina<strong>do</strong>s usuários, o certo é faze-lo usan<strong>do</strong> validusers e invalid users. O uso de only user é apropria<strong>do</strong> quan<strong>do</strong> é necessário um controleespecífico de acesso sobre a diretiva user. Ex: only user = no.lockingPermite ao SAMBA fazer um lock real de arquivo ou apenas simular. Caso seja especifica<strong>do</strong>como "0", o arquivo não é bloquea<strong>do</strong> para acesso exclusivo no servi<strong>do</strong>r mas uma respostapositiva de lock é retornada ao cliente. Se defini<strong>do</strong> como "1", um lock real é feito. O padrão éyes. Ex: locking = yesavailableFaz o SAMBA ignorar o compartilhamento (como se tivesse retira<strong>do</strong> <strong>do</strong> servi<strong>do</strong>r). O valorpadrão é "no".follow symlinksPermite o uso de links simbólicos no compartilhamento (veja também a opção wide links). Adesativação desta opção diminui um pouco a performance de acesso aos arquivos. Como érestrita a compartilhamento, o impacto de segurança depende <strong>do</strong>s da<strong>do</strong>s sen<strong>do</strong> compartilha<strong>do</strong>s.O valor padrão desta opção é "YES". Ex: follow symlinks = yeswide linksPermite apontar para links simbólicos para fora <strong>do</strong> compartilhamento exporta<strong>do</strong> pelo SAMBA.O valor padrão esta opção é "YES". Ex: wide links = yes.OBS: - A desativação desta opção causa um aumento na performance <strong>do</strong> servi<strong>do</strong>rSAMBA, evitan<strong>do</strong> a chamada de funções <strong>do</strong> sistema para resolver os links. Entretanto,diminui a segurança <strong>do</strong> seu servi<strong>do</strong>r, pois facilita a ocorrência de ataques usan<strong>do</strong> linkssimbólicos.Lembre-se mais uma vez que a segurança <strong>do</strong> seu sistema começa pela política e uma instalaçãobem configurada, isso já implica desde a escolha de sua distribuição até o conhecimento depermissões e planejamento na implantação <strong>do</strong> servi<strong>do</strong>r de arquivos.<strong>do</strong>nt descendNão mostra o conteú<strong>do</strong> de diretórios especifica<strong>do</strong>s. Ex: <strong>do</strong>nt descend = /root, /proc,/win/win<strong>do</strong>ws, "/win/Arquivos de Programas", "/win/program files".printableEspecifica se o compartilhamento é uma impressora (yes) ou um compartilhamento dearquivo/diretório (no). O padrão é "no".Roberto Amaral <strong>–</strong> Marcelo Farias Página 9817/10/2011


ead only<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXEspecifica se o compartilhamento é somente para leitura (yes) ou não (no) para to<strong>do</strong>s osusuários. O parâmetro writable é um antônimo equivalente a este parâmetro, só que utiliza asopções invertidas. Por segurança, o valor padrão é somente leitura. Ex: read only = yes.create maskMo<strong>do</strong> padrão para criação de arquivos no compartilhamento. O parâmetro "create mode" é umsinônimo para este. O mo<strong>do</strong> de arquivos deve ser especifica<strong>do</strong> em formato octal. Ex: createmask = 0600.directory maskMo<strong>do</strong> padrão para a criação de diretórios no compartilhamento. O parâmetro "directory mode"é um sinônimo para este. O mo<strong>do</strong> de diretório deve ser especifica<strong>do</strong> em formato octal. Ex:directory mask = 0700.getwd cachePermite utilizar um cache para acesso as requisições getwd, diminuin<strong>do</strong> o número de ciclos deprocessamento para acesso a arquivos/diretórios. O valor padrão é "Yes".write cache sizeTamanho <strong>do</strong> cache de leitura/gravação <strong>do</strong> compartilhamento. Este valor é especifica<strong>do</strong> embytes e o padrão é "0". Ex: write cache size = 384000.inherit permissionsPermite herdar permissões de arquivos/diretórios <strong>do</strong> diretório pai quan<strong>do</strong> novosarquivos/diretórios são cria<strong>do</strong>s, isto inclui bits SGID (set group ID). O padrão é NÃO herdarpermissões. O uso desta opção substitui as opções fornecidas por create mask, directory mask,force create mask e force directory mask. Ex: inherit permissions.preexecExecuta um coman<strong>do</strong> antes a abertura de um compartilhamento. O parâmetro exec é umsinônimo para este.postexecExecuta um coman<strong>do</strong> depois da utilização <strong>do</strong> compartilhamento.preexec closeFecha imediatamente o compartilhamento caso o valor <strong>do</strong> coman<strong>do</strong> executa<strong>do</strong> pela opçãopreexec seja diferente de 0. O uso desta opção só faz senti<strong>do</strong> em conjunto com preexec. O valorpadrão é "no". Exemplo: preexec close = yes.volume = nomeRetorna o nome de volume especifica<strong>do</strong> quan<strong>do</strong> é feito o acesso ao compartilhamento. Isto émuito útil para instalações onde o serial <strong>do</strong> CD, disquete ou HD é verifica<strong>do</strong> durante o acesso.Roberto Amaral <strong>–</strong> Marcelo Farias Página 9917/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXIsto acontece com freqüência em produtos de fabricantes proprietários como forma de evitar aexecução ilegal <strong>do</strong> programa.WINSEste é um serviço de resolução de nomes que funciona de forma semelhante ao DNS, só quevolta<strong>do</strong> para o NetBIOS. Quan<strong>do</strong> uma máquina cliente NetBIOS entra na rede, o servi<strong>do</strong>r WINSpega seu nome e IP e inclui em uma tabela para futura consulta pelos clientes da rede.Esta tabela consultada toda vez que um cliente NetBIOS solicita um nome de máquina,componentes <strong>do</strong> grupo de trabalho ou <strong>do</strong>mínio na rede. Uma outra aplicação importante de umservi<strong>do</strong>r WINS é permitir a resolução de nomes em pontos de redes que requerem roteamento,a simplicidade de um protocolo não roteável como o NetBIOS fica limitada a simplicidade dasinstalações de rede. Um servi<strong>do</strong>r WINS pode ser instala<strong>do</strong> em cada ponta da rede e elestrocarem da<strong>do</strong>s entre si e atualizar suas tabelas de nomes/grupos de trabalhos/IPs.A resolução de nomes de máquinas será feita consultan<strong>do</strong> diretamente a máquina WINS aoinvés de broadcasting (que geram um tráfego alto na rede).Configuran<strong>do</strong> o servi<strong>do</strong>r WINSPara ativar o servi<strong>do</strong>r WINS no samba, inclua as seguinte linha na seção [global] <strong>do</strong> seu arquivo/etc/samba/smb.conf:[global]wins support = yeswins proxy = nodns proxy = nomax wins ttl = 518400O parâmetro wins proxy pode ser necessário para alguns clientes antigos que tenhamproblemas no envio de suas requisições WINS. O dns proxy permite que o servi<strong>do</strong>r WINS faça apesquisa no DNS para localização de nomes de máquinas caso não exista no cache. Ambas asopções wins support, wins proxy e dns proxy tem como valor padrão não.Se estiver configuran<strong>do</strong> uma subrede com masquerade para acesso a um PDC ou um servi<strong>do</strong>rWINS, você terá que mexer no gateway central para apontar uma rota para o gatewaymasquerade. O motivo disto é porque o masquerade <strong>do</strong> Linux atua somente nos cabeçalhos,mas o IP da estação é enviada e processada pelo PDC para retornar uma resposta. Da mesmaforma, este IP é registra<strong>do</strong> no servi<strong>do</strong>r WINS para uso das estações de trabalho. Isto só vai serresolvi<strong>do</strong> quan<strong>do</strong> for escrito um módulo de conntrack para conexões SAMBA.OBS1: NUNCA configure mais de um servi<strong>do</strong>r WINS em uma mesma rede.OBS2: NÃO especifique o parâmetro wins server caso esteja usan<strong>do</strong> o suporte a WINS.Roberto Amaral <strong>–</strong> Marcelo Farias Página 10017/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXAtivan<strong>do</strong> o suporte a senhas criptografadasO uso de senhas criptografadas é um requisito quan<strong>do</strong> você deseja configurar o SAMBA paraser um servi<strong>do</strong>r PDC ou um cliente de um <strong>do</strong>mínio. Quan<strong>do</strong> utiliza senhas criptografadas, elastrafegam em formato seguro através da rede, dificultan<strong>do</strong> a captura por outras pessoas. Emversões mais recentes <strong>do</strong> Win<strong>do</strong>ws (a partir da OSR/2 e NT 4 service pack3) o suporte a senhascriptografadas vem habilita<strong>do</strong> como padrão para login e utilização de serviços da rede.O utilitário smbpasswd é o programa utiliza<strong>do</strong> para gerenciar o arquivo de senhas e também ostatus de contas de usuários/máquinas <strong>do</strong> <strong>do</strong>mínio.Edite o arquivo /etc/samba/smb.conf e altere as seguintes linhas na seção [global] paraadicionar o suporte a senhas criptografadas:[global]encrypt passwords = truesmb passwd file =/etc/samba/smbpasswdA linha encrypt passwords = true diz para usar senhas criptografadas e que o arquivo/etc/samba/smbpasswd contém as senhas (smb passwd file =/etc/samba/smbpasswd).Opções da conta criada no smbpasswd:U - Especifica que a conta é uma conta de usuário normalD - Significa que a conta foi desativada com a opção -dW - Especifica que a conta é uma conta de máquina criada com a opção -mN - A conta não possui senhaPara ativar a conta <strong>do</strong> usuário adminsamba, usamos o coman<strong>do</strong>:smbpasswd -U adminsambaDigite a senha <strong>do</strong> usuário e repita para confirmar. Assim que a senha for definida, a conta <strong>do</strong>usuário é ativada. Você também pode especificar a opção "-s" para entrar com a senha pelaentrada padrão (muito útil em scripts). Apenas tenha cuida<strong>do</strong> para que esta senha não sejadivulgada em seus arquivos/processos.Reinicie o processo <strong>do</strong> SAMBA.Verifique se o suporte a senhas criptografadas está funcionan<strong>do</strong> com o coman<strong>do</strong>:smbclient -L localhost -U adminsambaSubstitua localhost pelo IP <strong>do</strong> servi<strong>do</strong>r e adminsamba pelo usuário. Caso obtenha a mensagemsession setup failed: NT_STATUS_LOGON_FAILURE significa que a senha informada estáincorreta.Roberto Amaral <strong>–</strong> Marcelo Farias Página 10117/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXMigran<strong>do</strong> de senhas texto plano para criptografadasNo SAMBA, é possível fazer um processo de migração de senhas em texto plano de usuáriospara criptografadas sem que eles deixem de acessar o servi<strong>do</strong>r durante esta mudança. Casoeste seja seu caso, insira o parâmetroupdate encrypted = yesna seção [global] <strong>do</strong> seu arquivo de configuração smb.conf. A senha criptografada é definidaassim que o usuário se logar usan<strong>do</strong> sua senha em texto plano. Não se esqueça de desativaresta opção ou remove-la após o prazo necessário para que todas as senhas sejam trocadas.Adicionan<strong>do</strong> usuários no smbpasswdA adição de um usuário no smbpasswd segue duas etapas: primeiro é necessário adiciona-lo nosistema com o adduser e depois no samba com o smbpasswd. Você deve estar se perguntan<strong>do</strong>qual a vantagem de se ter um arquivo separa<strong>do</strong> de usuários se ainda é preciso criar o login nos<strong>do</strong>is arquivos; O SAMBA para fazer o controle de acesso aos arquivos utiliza além <strong>do</strong>smecanismos tradicionais <strong>do</strong> NT, o controle de permissões a nível UNIX para manter os arquivosainda mais restritos. Além disso, será necessário usuários e grupos para criação e acesso aosistema.Adicione um usuário no sistema com o coman<strong>do</strong>:useradd -g grupo-<strong>do</strong>minio -c "Usuário de Domínio" -s /bin/false -d /dev/null joãoEste coman<strong>do</strong> adiciona o usuário "joao" no grupo grupo-<strong>do</strong>minio e não define nem uma shell,diretório home nem senha para este usuário. Isto mantém o sistema mais seguro e não interfereno funcionamento <strong>do</strong> SAMBA, pois somente é necessário para fazer o mapeamento de UID/GIDde usuários com as permissões <strong>do</strong> sistema UNIX.É interessante padronizar os usuários cria<strong>do</strong>s no <strong>do</strong>mínio para um mesmo grupo para pesquisae outras coisas.Crie o usuário "joao" no SAMBA:smbpasswd -a joaoSerá solicitada a senha <strong>do</strong> usuário.Removen<strong>do</strong> usuários <strong>do</strong> smbpasswdUtilize o coman<strong>do</strong>smbpasswd -x usuarioRoberto Amaral <strong>–</strong> Marcelo Farias Página 10217/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXpara remover um usuário <strong>do</strong> arquivo smbpasswd. Se desejar, você pode manter o usuário no/etc/passwd ou remove-lo com o userdel.OBS: Removen<strong>do</strong> um usuário deste arquivo fará que ele não tenha mais acesso aoSAMBA. Utilize o coman<strong>do</strong> smbpasswd -a testeDesabilitan<strong>do</strong> uma conta no smbpasswdComo administra<strong>do</strong>r, pode ser necessário que precise desativar temporariamente uma conta deusuário por alguma situação qualquer (má utilização de recursos, dúvida se a conta está sen<strong>do</strong>usada, etc.). Remover uma conta e novamente adicioná-la então não é uma situação muitoprática. Utilize então o seguinte coman<strong>do</strong> para desativar uma conta de usuário:smbpasswd -d usuárioQuan<strong>do</strong> a conta de usuário é desativada, uma flag "D" é adicionada às opções <strong>do</strong> usuário (juntocom as opções "UX").Habilitan<strong>do</strong> uma conta no smbpasswdUma conta desativada com o uso <strong>do</strong> coman<strong>do</strong> smbpasswd -d pode ser novamente ativadausan<strong>do</strong>:smbpasswd -e usuarioAlteran<strong>do</strong> a senha de um usuárioO utilitário smbpasswd pode ser usa<strong>do</strong> tanto para alterar a senha de usuários locais <strong>do</strong> SAMBAou de uma conta em um servi<strong>do</strong>r remoto (seja SAMBA, NT, W2K). Para alterar a senha de umusuário local, digite:smbpasswd -U usuarioSerá pedida a antiga senha, a nova senha e a confirmação. Caso seja o usuário root, somente anova senha e a confirmação. Isto é mecanismo de proteção para usuários que esquecem asenha.Para alterar a senha de um usuário remoto, utilize:smbpasswd -r servi<strong>do</strong>r -U usuárioRoberto Amaral <strong>–</strong> Marcelo Farias Página 10317/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXNote que apenas foi adicionada a opção -r servi<strong>do</strong>r compara<strong>do</strong> com a opção anterior. Adiferença é que a senha antiga <strong>do</strong> usuário sempre será solicitada para troca (pois o root das 2máquinas pode não ser o mesmo).Definin<strong>do</strong> acesso sem senha para o usuárioPara fazer um usuário acessar sem senha, use o coman<strong>do</strong>:smbpasswd -n usuarioIsto é completamente desencoraja<strong>do</strong> e necessita que a opção null passwords da seção [global]no arquivo smb.conf esteja ajustada para yes (que NÃO é o padrão).Ativan<strong>do</strong> o suporte a senhas em texto planoEsta forma de autenticação é enviada por implementações NetBIOS antigas, como a encontradano Lan Manager, Win<strong>do</strong>ws for Workgroups e Win<strong>do</strong>ws 95 OSR1. As versões mais novas destasimplementações enviam a senha em formato criptografa<strong>do</strong>, sen<strong>do</strong> necessário também usar oformato criptografa<strong>do</strong> no SAMBA para que possa se autenticar.Em geral, o administra<strong>do</strong>r prefere a utilização da autenticação usan<strong>do</strong> texto plano quan<strong>do</strong>deseja usar o /etc/passwd para autenticação e está usan<strong>do</strong> grupos de trabalho é necessário usarsenhas criptografadas para autenticação).Para configurar o SAMBA para utilizar senhas em texto, modifique o parâmetro encryptpasswords para no:[global]encrypt passwords = noReinicie o SAMBA e a partir de agora, ele usará o /etc/passwd para autenticação.OBS: Tenha certeza de não estar participan<strong>do</strong> de um <strong>do</strong>mínio ou que sua máquina sejao PDC antes de fazer esta modificação.Configuração em DomínioEsta seção descreve to<strong>do</strong>s os passos necessários para configurar um servi<strong>do</strong>r de <strong>do</strong>mínio PDC(Primary Domain Control) com perfis móveis e outros recursos que tornam úteis e seguras aadministração de uma rede NetBEUI.Roberto Amaral <strong>–</strong> Marcelo Farias Página 10417/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXUma breve introdução a um Domínio de redeUm <strong>do</strong>mínio de rede consiste em uma máquina central chamada de PDC, que mantém ocontrole de todas as contas de usuários/grupos e permissões para acesso a rede NetBEUI. Oacesso desta forma é centraliza<strong>do</strong>, como vantagem disto você pode usar o nível de acesso porusuários nas máquinas, definin<strong>do</strong> quais usuários ou grupos terão acesso de leitura/gravação.É permiti<strong>do</strong> criar scripts de logon, assim coman<strong>do</strong>s programa<strong>do</strong>s pelo administra<strong>do</strong>r serãoexecuta<strong>do</strong>s nas máquinas clientes durante o logon no.O nome da máquina é protegi<strong>do</strong> contra hijacking através de contas de máquinas que fazemparte <strong>do</strong> <strong>do</strong>mínio. Isto só é possível em clientes Linux, Win<strong>do</strong>ws NT, Win<strong>do</strong>ws 2000 e Win<strong>do</strong>wsXP.Você poderá usar perfis móveis, copian<strong>do</strong> todas as personalizações <strong>do</strong> seu desktop paraqualquer máquina na rede que você faça o logon. Para o administra<strong>do</strong>r, ele poderá definirpolíticas com o Poledit e outros programas que serão salvas junto com o perfil <strong>do</strong> usuário,valen<strong>do</strong> para qualquer máquina que ele se autentique na rede.Local Master BrowserÉ a máquina que ganhou a eleição no segmento local de rede. Logo que é declarada o localmaster browser, ela começa a receber via broadcasting a lista de recursos compartilha<strong>do</strong>s porcada máquina para montar a lista principal que será retornada para outras máquinas <strong>do</strong> grupode trabalho ou outras subredes que solicite os recursos compartilha<strong>do</strong>s por aquele grupo.Uma nova eleição é feita a cada 36 minutos ou quan<strong>do</strong> a máquina escolhida é desligada.Domain Master BrowserQuan<strong>do</strong> o local master browse é eleito no segmento de rede, uma consulta é feita ao servi<strong>do</strong>rWINS para saber quem é o Domain Master Browse da rede para enviar a lista decompartilhamentos. A máquina escolhida como Local Master Browse envia pacotes para a portaUDP 138 <strong>do</strong> Domain Master e este responde pedin<strong>do</strong> a lista de to<strong>do</strong>s os nomes de máquinasque o local master conhece, e também o registra como local master para aquele segmento derede.Caso tenha configura<strong>do</strong> sua máquina para ser o <strong>do</strong>main master browser da rede (tambémchama<strong>do</strong> de controla<strong>do</strong>r principal de <strong>do</strong>mínio ou PDC), ela tentará se tornar a máquina queterá a lista completa de recursos envia<strong>do</strong>s pelos locais master browsers de cada segmento derede. Um PDC também é o local master browse de seu próprio segmento de rede.É possível ter mais de um <strong>do</strong>main master browse, desde que cada um controle seu próprio<strong>do</strong>mínio, mas não é possível ter 2 <strong>do</strong>main master browsers em um mesmo <strong>do</strong>mínio. Caso utilizeRoberto Amaral <strong>–</strong> Marcelo Farias Página 10517/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXum servi<strong>do</strong>r WINS em sua rede, o PDC fará consultas constantes em sua base de da<strong>do</strong>s paraobter a lista de <strong>do</strong>mínios registra<strong>do</strong>s. O <strong>do</strong>mínio é identifica<strong>do</strong> pelo caracter 1b na rede.OBS: O Win<strong>do</strong>ws NT configura<strong>do</strong> como PDC sempre tenta se tornar o <strong>do</strong>main masterbrowser em seu grupo de trabalho. Não sen<strong>do</strong> possível retirar o Win<strong>do</strong>ws NTconfigura<strong>do</strong> como PDC <strong>do</strong> <strong>do</strong>mínio (por alguma outra razão), a única forma serádeixar ele ser o <strong>do</strong>main master browser. Se este for o caso, você poderá continuarlen<strong>do</strong> este <strong>do</strong>cumento para aprender mais sobre NetBIOS e talvez ainda mudar deidéia sobre manter o NT na rede após ver as características <strong>do</strong> SAMBA ;-)Configuran<strong>do</strong> um servi<strong>do</strong>r PDC no SAMBAPara configurar uma máquina para ser o PDC (Controla<strong>do</strong>ra Principal de Domínio ou PrimaryDomain Control), siga esta seqüência:Habilite o suporte a senhas criptografadas. Na seção [global], insira/modifique os seguintesparâmetros:;Identificação da máquina e <strong>do</strong>mínionetbios name = adminsambaworkgroup = empresa;níveis de acesso e funções <strong>do</strong> servi<strong>do</strong>rsecurity = user<strong>do</strong>main master = yesprefered master = yeslocal master = yes; senhas criptografadasencrypt passwords = yessmb passwd file = /etc/samba/smbpasswd.dbOnde os parâmetros significam:netbios name = adminsamba - Nome <strong>do</strong> computa<strong>do</strong>r. Este também será o nome usa<strong>do</strong> pelasoutras máquinas clientes quan<strong>do</strong> for configurar o PDC (controla<strong>do</strong>r de <strong>do</strong>mínio).workgroup = empresa - Nome <strong>do</strong> <strong>do</strong>mínio que está crian<strong>do</strong>. Todas as máquinas quepertencerem a este <strong>do</strong>mínio terão o nível de acesso defini<strong>do</strong> pelo PDC. Note que o parâmetroworkgroup também é usa<strong>do</strong> ao especificar o nome <strong>do</strong> grupo de trabalho quan<strong>do</strong> se é usa<strong>do</strong> aconfiguração grupo de trabalho.Roberto Amaral <strong>–</strong> Marcelo Farias Página 10617/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXsecurity = user - Requeri<strong>do</strong> para controle de acesso por <strong>do</strong>mínio, já que é utiliza<strong>do</strong> o controlede acesso local usan<strong>do</strong> usuários e grupos locais.<strong>do</strong>main master = yes - Especifica se está máquina está sen<strong>do</strong> configurada para ser o PDC darede.OBS: Certifique-se que não existe outro PDC no <strong>do</strong>mínio.prefered master = yes - Força uma eleição com algumas vantagens para seu servi<strong>do</strong>r ser eleitosempre como o controla<strong>do</strong>r de <strong>do</strong>mínio. Isto garante que a máquina SAMBA sempre seja o PDC.local master = yes - Define se a máquina será o controla<strong>do</strong>r principal <strong>do</strong> grupo de trabalholocal que ela pertence.Pronto, agora teste se existem erros em sua configuração executan<strong>do</strong> o coman<strong>do</strong> testparm ecorrija-os se existir. Resta agora reiniciar o servi<strong>do</strong>r nmbd para que todas as suas alteraçõestenham efeito.Contas de máquinas de <strong>do</strong>mínioUma conta de máquina de <strong>do</strong>mínio garante que nenhum outro computa<strong>do</strong>r possa utilizar omesmo nome de uma máquina confiável e assim utilizar os compartilhamentos que ela tempermissão. Os clientes Win<strong>do</strong>ws NT, Win<strong>do</strong>ws XP e Win<strong>do</strong>ws 2000 precisam de uma conta demáquina para ter acesso ao <strong>do</strong>mínio e seus recursos. A criação de uma conta de máquina ébastante semelhante a criação da conta de um usuário normal no <strong>do</strong>mínio.Existe uma coisa que precisa sempre ter em mente quan<strong>do</strong> estiver configuran<strong>do</strong> uma conta demáquina de <strong>do</strong>mínio: Quan<strong>do</strong> você cria uma conta para a máquina, ela entra e altera sua senhano próximo logon usan<strong>do</strong> um "segre<strong>do</strong>" entre ela e o PDC, este segre<strong>do</strong> a identifica semprecomo <strong>do</strong>na daquele nome NetBIOS, ou seja, até o primeiro logon no NT, outra máquina com omesmo nome NetBIOS poderá ser a <strong>do</strong>na <strong>do</strong> netbios naquele <strong>do</strong>mínio caso faça o logon no<strong>do</strong>mínio. A única forma de se evitar isto é logar imediatamente no <strong>do</strong>mínio NT assim que criaras contas de máquinas.Existem duas formas para criação de contas de máquinas: manual e automática.Crian<strong>do</strong> contas de máquinas manualmentePara criar uma conta de <strong>do</strong>mínio para a máquina master, siga estes 2 passos:Crie uma conta de máquina no arquivo /etc/passwd:useradd -g <strong>do</strong>mainmac -c "Maquina de Dominio" -s /bin/false -d /dev/null master$O coman<strong>do</strong> acima cria uma conta para a máquina master$ e torna ela parte <strong>do</strong> grupo<strong>do</strong>mainmac. É necessário especificar o caracter $ após o nome da máquina para criar umaconta de máquina no <strong>do</strong>mínio, caso contrário o próximo passo irá falhar. Acredito que nasRoberto Amaral <strong>–</strong> Marcelo Farias Página 10717/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXpróximas versões <strong>do</strong> SAMBA seja desnecessário o uso <strong>do</strong> arquivo /etc/passwd para a criação decontas de máquina.Crie uma conta de máquina no arquivo /etc/samba/smbpasswd:smbpasswd -m -a masterIsto cria uma conta de máquina para o computa<strong>do</strong>r master no arquivo /etc/samba/smbpasswd.Note que a criação de uma conta de máquina é muito semelhante a criação de um usuárioapenas precisa adicionar a opção -m. Quan<strong>do</strong> for criar uma conta com o smbpasswd Não énecessário especificar $ no final <strong>do</strong> nome da máquina.O mais importante: Entre IMEDIATAMENTE no <strong>do</strong>mínio após criar a conta de máquinausan<strong>do</strong> a conta de administra<strong>do</strong>r de <strong>do</strong>mínio criada no SAMBA. Como a máquina ainda não seautenticou pela primeira vez, qualquer máquina que tenha o mesmo nome e entre no <strong>do</strong>mínio,poderá alocar o nome recém cria<strong>do</strong>. A única forma de resolver este problema, é apagan<strong>do</strong> aconta de máquina e crian<strong>do</strong>-a novamente no <strong>do</strong>mínio. Siga os passos de acor<strong>do</strong> com o sistemaoperacional em Configuran<strong>do</strong> clientes em Domínio para colocar seus clientes em <strong>do</strong>mínio.Crian<strong>do</strong> contas de máquinas automaticamenteAtravés deste méto<strong>do</strong>, as máquinas clientes terão sua conta criada automaticamente assim queseja feita a entrada no <strong>do</strong>mínio usan<strong>do</strong> a conta <strong>do</strong> administra<strong>do</strong>r de <strong>do</strong>mínio no SAMBA. Este éo méto<strong>do</strong> recomendável de colocação de máquinas no <strong>do</strong>mínio por ser mais prática ao invés <strong>do</strong>méto<strong>do</strong> manual. Note que normalmente isto funciona para o WinXP e Win2000 mas nãofunciona em redes com o NT4, deven<strong>do</strong> ser criadas contas de máquinas usan<strong>do</strong> o méto<strong>do</strong>manual.Para fazer a configuração automática, coloque a seguinte linha no arquivo smb.conf na seção[global]:add user script = useradd -g <strong>do</strong>mainmac -c "Maquina de Dominio" -s /bin/false -d /dev/null%uAssim, a conta de máquina será automaticamente criada quan<strong>do</strong> o administra<strong>do</strong>r fizer suaconfiguração no <strong>do</strong>mínio. No SAMBA 3.0, a opção add machine script deverá ser usada no lugarde add user script para adicionar uma máquina no <strong>do</strong>mínio.Crian<strong>do</strong> uma conta de administra<strong>do</strong>r de <strong>do</strong>mínioA conta de administra<strong>do</strong>r <strong>do</strong> <strong>do</strong>mínio é a conta que tem permissões para realizar operações demanutenção e administração de máquinas que compõem o <strong>do</strong>mínio de rede. Com ela é possível,entre outras coisas, adicionar e remover máquina que compõem o <strong>do</strong>mínio. Para especificar queRoberto Amaral <strong>–</strong> Marcelo Farias Página 10817/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXcontas de usuários <strong>do</strong> arquivo /etc/samba/smbpasswd que terão poderes administrativos, utilizea opção <strong>do</strong>main admin group ou admin users na seção [global] <strong>do</strong> arquivo /etc/samba/smb.conf.O parâmetro admin users permite que todas as operações realizadas pelo usuário sejam feitascom poderes de usuário root. Isto é necessário porque o arquivo smbpasswd (usa<strong>do</strong> paraajustar as contas de máquinas) normalmente tem permissões de leitura/gravação somente pararoot. O <strong>do</strong>main admin group permite que usuários específicos ou usuários <strong>do</strong> grupoespecifica<strong>do</strong> sejam parte <strong>do</strong> grupo de administra<strong>do</strong>res <strong>do</strong> <strong>do</strong>mínio para adicionar máquinas,etc. Por exemplo, para tornar o usuário adminsamba com privilégios para adicionar/removermáquinas no <strong>do</strong>mínio:[global]...admin users = adminsambaou<strong>do</strong>main admin group = @admins adminsambaIsto permite que o usuário adminsamba possa adicionar/remover máquinas <strong>do</strong> <strong>do</strong>mínio NTentre outras tarefas. Por segurança, recomen<strong>do</strong> que coloque esta conta no invalid users decada compartilhamento para que seja utilizada somente para fins de gerenciamento demáquinas no <strong>do</strong>mínio, a menos que deseje ter acesso total aos compartilhamentos <strong>do</strong> servi<strong>do</strong>r(nesse caso, tenha consciência <strong>do</strong> nível de acesso que esta conta possui e <strong>do</strong>s problemas quepode causar caso caia em mãos erradas).Compartilhamento de impressão no servi<strong>do</strong>r SAMBAConfiguran<strong>do</strong> o Linux como um servi<strong>do</strong>r de impressão Win<strong>do</strong>wsSerá necessário ter o pacote samba instala<strong>do</strong> e adicionar as seguintes linhas no seu arquivo/etc/samba/smb.conf:[hp-printer]path = /tmpprinter name=HP DeskJet 690Cprintable = yesprint command = lpr -r -h -P %p %svalid users = winuser winuser2create mode = 0700O compartilhamento acima tornará disponível a impressora local "lp" as máquinas Win<strong>do</strong>wscom o nome "HP DeskJet 690C". Uma impressora alternativa pode ser especificada modifican<strong>do</strong>Roberto Amaral <strong>–</strong> Marcelo Farias Página 10917/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXa opção -P da linha de coman<strong>do</strong> <strong>do</strong> lpr. Note que somente os usuários "winuser" e "winuser2"poderão usar esta impressora. Os arquivos de spool (para gerenciar a fila de impressão) serãograva<strong>do</strong>r em /tmp (path = /tmp) e o compartilhamento [hp-printer] será mostra<strong>do</strong> como umaimpressora (printable = yes).Agora será necessário instalar o driver desta impressora no Win<strong>do</strong>ws (HP 690C) e escolherimpressora instalada via rede e seguir os demais passos de configuração.Controle de acesso ao servi<strong>do</strong>r SAMBANível de acesso de usuários conecta<strong>do</strong>s ao SAMBAQuan<strong>do</strong> acessa um compartilhamento, o usuário <strong>do</strong> samba é mapea<strong>do</strong> com o UID respectivo deusuário <strong>do</strong> sistema ou o usuário guest (especifica<strong>do</strong> pela opção "guest account") no caso de umacesso público. Quan<strong>do</strong> isto ocorre, um processo filho <strong>do</strong> smbd é executa<strong>do</strong> sobre o UID e GIDdeste usuário. Isto significa que em nenhuma ocasião o SAMBA dará mais permissões que asnecessárias para o usuário (com excessão de quan<strong>do</strong> é usa<strong>do</strong> o parâmetro admin users).Restringin<strong>do</strong> o acesso por IP/redeEsta restrição pode ser feita pelos parâmetros allow hosts e deny hosts tanto em serviçosindividuais ou em to<strong>do</strong> o servi<strong>do</strong>r. Os parâmetros hosts allow e hosts deny são equivalentes aestes acima. O allow hosts permite o acesso a máquina especificadas como argumento. Sãopermiti<strong>do</strong>s os seguintes méto<strong>do</strong>s para permitir o acesso a uma máquina/rede:192.168.1.1 - IP da máquinaservi<strong>do</strong>r - Nome da máquina192.168.1.0/255.255.255.0 - IP com máscara de rede192.168.1.0/24 - IP com máscara de rede octal192.168.1. - Porção de rede sem o host (como no hosts.allow e hosts.deny.@nome - Pesquisa por máquinas no grupo NIS.É permiti<strong>do</strong> usar mais de um endereço IP separan<strong>do</strong>-os por vírgulas ou espaços. A palavrachave EXCEPT pode ser usada para fazer excessão de um ou mais endereços IPs, por exemplo:hosts allow = 192.168.1. EXCEPT 192.168.1.20Que permite o acesso a toda as máquinas da faixa de rede 192.168.1.0/24 exceto para a192.168.1.20.O deny hosts possui a mesma sintaxe <strong>do</strong> allow hosts mas bloqueia o acesso das máquinasespecificadas como argumento. Quan<strong>do</strong> o allow hosts e deny hosts são usa<strong>do</strong>s juntos, asmáquinas em allow hosts terão prioridade (processa primeiro as diretivas em allow hosts edepois em deny hosts).Roberto Amaral <strong>–</strong> Marcelo Farias Página 11017/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXSe você está executan<strong>do</strong> o SAMBA via inetd, os arquivos hosts.allow e hosts.deny sãoverifica<strong>do</strong>s antes <strong>do</strong> controle e acesso ao smbd. Caso estiver usan<strong>do</strong> o SAMBA via inetd edeseja restringir o acesso usan<strong>do</strong> TCP Wrappers.OBS: Lembre-se de usar o testparm para verificar a sintaxe <strong>do</strong> arquivo smb.confsempre que desconfiar de problemas.Testan<strong>do</strong> a restrição de Acesso por IP/RedesUm méto<strong>do</strong> interessante e útil para testar se a nossa configuração vai bloquear o acesso aserviços é usan<strong>do</strong> o testparm da seguinte forma:testparm /etc/samba/smb.conf IP/hostVocê precisará dizer para o testparm qual é o arquivo de configuração que está usan<strong>do</strong> e oendereço IP/nome de host que fará a simulação de acesso. Este méto<strong>do</strong> não falsifica o endereçoIP para testes, apenas usa os valores em allow hosts e deny hosts para checagem. Por exemplo,para verificar o acesso vin<strong>do</strong> <strong>do</strong> IP 192.168.1.50:testparm /etc/samba/smb.conf 192.168.1.50Load smb config files from /etc/samba/smb.confProcessing section "[homes]"Processing section "[printers]"Processing section "[tmp]"Processing section "[cdrom]"Loaded services file OK.Allow connection from /etc/samba/smb.conf (empresa) to homesAllow connection from /etc/samba/smb.conf (empresa) to printersAllow connection from /etc/samba/smb.conf (empresa) to tmpAllow connection from /etc/samba/smb.conf (empresa) to cdromRestringin<strong>do</strong> o acesso por interface de redeEsta restrição de acesso permite que façamos o SAMBA responder requisições somente para ainterfaces indicadas. O méto<strong>do</strong> de segurança descrito em Restringin<strong>do</strong> o acesso por IP/redeserão analisadas logo após esta checagem.Para restringir o serviço SAMBA a interfaces, primeiro será necessário ativar o parâmetro bindinterfaces only usan<strong>do</strong> 1, yes ou true (o padrão é desativa<strong>do</strong>). Depois, definir que interfacesserão servidas pelo samba com o parâmetro interfaces. Os seguintes formatos de interfaces sãopermiti<strong>do</strong>s:Roberto Amaral <strong>–</strong> Marcelo Farias Página 11117/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXeth0, sl0, plip0, etc - Um nome de interface local. É permiti<strong>do</strong> o uso de * para fazer o SAMBAmonitorar todas as interfaces que iniciam com aquele nome (por exemplo, eth*).192.168.1.1, 192.168.1.2, etc - Um endereço IP de interface local.192.168.1.2/24, 192.168.1.2/255.255.255.0 - Um par de endereço/máscara de rede.Mais de uma interface pode ser usada separan<strong>do</strong>-as com vírgula ou espaços. A escolha <strong>do</strong> usode nome da interface ou <strong>do</strong> IP é feita de acor<strong>do</strong> com a configuração da máquina. Em umamáquina DHCP por exemplo, é recomenda<strong>do</strong> o uso <strong>do</strong> nome da interface. Quan<strong>do</strong> bindinterfaces only estiver ativa<strong>do</strong>, o padrão é esperar conexões em todas as interfaces quepermitem broadcast exceto a loopback.Exemplo:bind interfaces only = 1interfaces = loopback eth0Permite o recebimento de requisições de acesso ao SAMBA somente da interface loopback(desnecessário, pois como notou durante a leitura, sempre é permitida a conexão) e eth0.Restringin<strong>do</strong> o acesso por usuáriosPermite que você controle quem poderá ou não acessar o compartilhamento da máquina. Estecontrole é feito pelos parâmetros valid users e invalid users.O invalid users lista de usuário que NÃO terão acesso ao compartilhamento. Se o nome forinicia<strong>do</strong> por "+" o parâmetro será trata<strong>do</strong> como um nome de grupo UNIX (/etc/group). Ocaracter "&" faz ele pesquisar o nome de grupo no banco de da<strong>do</strong>s NIS. O caracter "@" permitefazer a busca <strong>do</strong> grupo primeiro no banco de da<strong>do</strong>s NIS e caso ele não seja encontra<strong>do</strong>, noarquivo de grupos <strong>do</strong> sistema (/etc/group).É possível usar a combinação de caracteres "+&" e "&+" para alternar a ordem de busca entero /etc/group e o NIS.Exemplos:invalid users = junior, marcio, +badusersNão permite que os usuários especifica<strong>do</strong>s e os usuários <strong>do</strong> grupo +badusers tenham acesso aocompartilhamento.invalid users = &;semacessoBloqueia o acesso de to<strong>do</strong>s os usuários NIS que pertençam ao grupo semacesso.invalid users = bruno, henrique, +@users,Bloqueia o acesso <strong>do</strong>s usuários bruno, henrique e de to<strong>do</strong>s os usuários que pertençam ao grupousers. A pesquisa de grupo é feita primeiro no /etc/group e em seguida no NIS.invalid users = @semacessoRoberto Amaral <strong>–</strong> Marcelo Farias Página 11217/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXBloqueia o acesso <strong>do</strong>s usuários que pertencem ao grupo "semacesso". A pesquisa é feitaprimeiro no NIS e depois no /etc/group (equivalente ao uso de "&+").O valid users possui a mesma sintaxe de funcionamento <strong>do</strong> invalid users, mas permite somenteo acesso para os usuários/grupos lista<strong>do</strong>s. Caso a opção valid users não seja especificada ou alista esteja vazia, o acesso é permiti<strong>do</strong>. Se um mesmo nome de usuário estiver na lista validusers e invalid users, o padrão é ser mais restritivo, negan<strong>do</strong> o acesso.valid users = adminsamba, michelle, geoA segurança deste méto<strong>do</strong> de acesso depende muito da forma de autenticação <strong>do</strong>s nomes antesde passar o controle para o SAMBA, pois uma autenticação fraca põe em risco a segurança dasua máquina.Evite o uso <strong>do</strong> parâmetro hosts equiv!Este parâmetro permite que máquinas tenham acesso sem senha a um servi<strong>do</strong>r.Evite o uso de senhas em branco!O parâmetro null passwords é usa<strong>do</strong> na seção [global] permitin<strong>do</strong> que contas de usuários semsenha tenham acesso permiti<strong>do</strong> ao servi<strong>do</strong>r. ISTO É TOTALMENTE INSEGURO e deve sersempre evita<strong>do</strong>.Crian<strong>do</strong> um compartilhamento para acesso sem senhaEm algumas situações (mesmo em instalações seguras) é preciso tornar um compartilhamentoacessível publicamente, exemplos disto incluem um diretório que contém drivers deimpressoras, arquivos comuns, um diretório temporário, etc.Para configurar um acesso público utilizamos a opção public = yes ou guest ok = yes (que é umsinônimo para o último coman<strong>do</strong>). O UID utiliza<strong>do</strong> no acesso público é especifica<strong>do</strong> peloparâmetro guest account, portanto ele deverá ser um usuário váli<strong>do</strong> <strong>do</strong> sistema. Caso vocêqueira somente definir acesso guest a um compartilhamento, especifique a opção guest onlypara o serviço, desta forma, mesmo que o usuário tenha acesso, ele será mapea<strong>do</strong> para ousuário guest.Uma boa medida de segurança é usar o usuário nobody pois a maioria das distribuições deLinux seguras a<strong>do</strong>tam-o como padrão como usuário que não é <strong>do</strong>no de quaisquerarquivos/diretórios no sistema, não possui login, senha ou sequer um diretório home.Veja um exemplo disponibilizan<strong>do</strong> o compartilhamento [<strong>do</strong>wnload] para acesso público comacesso a gravação:[global]guest account = nobodyRoberto Amaral <strong>–</strong> Marcelo Farias Página 11317/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>s....CURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX[<strong>do</strong>wnload]path = /<strong>do</strong>wnloadscomment = Espaço público para abrigar <strong>do</strong>wnloads de Usuáriosguest ok = yes (aqui poderá ser também "public = yes").writable = yesfollow symlinks = falseO parâmetro guest account também poderá ser especifica<strong>do</strong> no compartilhamento, isto é útilquan<strong>do</strong> não quiser que o usuário que acesse o compartilhamento não seja o mesmo usa<strong>do</strong> nadiretiva [global].Caso seu servi<strong>do</strong>r somente disponibiliza compartilhamentos para acesso público, é maisrecomenda<strong>do</strong> utilizar o nível security = share pra diminuir a carga máquina, pois o usuárioguest será o primeiro a ser checa<strong>do</strong> pelas regras de acesso (ao contrário <strong>do</strong> nível user, onde oacesso guest é o último checa<strong>do</strong>).Crian<strong>do</strong> um compartilhamento com acesso somente leituraEsta proteção é útil quan<strong>do</strong> não desejamos que pessoas alterem o conteú<strong>do</strong> de umcompartilhamento. Isto pode ser feito de duas formas: negan<strong>do</strong> o acesso de gravação para to<strong>do</strong>o compartilhamento ou permitin<strong>do</strong> leitura somente para algumas pessoas. O parâmetro usa<strong>do</strong>para fazer a restrição de acesso somente leitura é o read only = yes ou seu antônimo writable =no. Abaixo seguem os <strong>do</strong>is exemplos comenta<strong>do</strong>s:[teste]comment = Acesso a leitura para to<strong>do</strong>spath = /tmpread only = yespublic = yesNo exemplo acima, o diretório /tmp (path = /tmp) foi compartilha<strong>do</strong> com o nome teste ([teste]),de forma pública (acesso sem senha - public = yes), e to<strong>do</strong>s podem apenas ler seu conteú<strong>do</strong>read only = yes).[teste]comment = Acesso a gravação para to<strong>do</strong>s com excessõespath = /tmpread only = noRoberto Amaral <strong>–</strong> Marcelo Farias Página 11417/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sread list = @users, adminsambainvalid users = rootCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXNeste, o mesmo compartilhamento teste ([teste]) foi defini<strong>do</strong> como acesso leitura/gravaçãopara to<strong>do</strong>s (read only = no), mas os usuários <strong>do</strong> grupo @users e o usuário adminsamba terãosempre acesso leitura (read list = @users, adminsamba). Adicionalmente foi colocada umaproteção para que o superusuário não tenha acesso a ele (invalid users = root). Esta forma derestrição é explicada melhor em Excessão de acesso na permissão padrão decompartilhamento).Crian<strong>do</strong> um compartilhamento com acesso leitura/gravaçãoEsta forma de compartilhamento permite a alteração <strong>do</strong> conteú<strong>do</strong> <strong>do</strong> compartilhamento <strong>do</strong>susuários que possuem as permissões de acesso apropriadas. Este controle pode ser feito deduas formas: Acesso total de gravação para os usuários e acesso de gravação apenas paradetermina<strong>do</strong>s usuários. Este controle é feito pela opção read only = no e seu antônimoequivalente writable = yes. Abaixo <strong>do</strong>is exemplos:[teste]comment = Acesso de gravação para to<strong>do</strong>s.path = /tmpwritable = yespublic = yesNo exemplo acima, o diretório /tmp (path = /tmp) foi compartilha<strong>do</strong> com o nome teste ([teste]),de forma pública (acesso sem senha - public = yes) e to<strong>do</strong>s podem ler/gravar dentro dele(writable = yes).[teste]comment = Acesso a leitura para to<strong>do</strong>s com excessõespath = /tmpwritable = nowrite list = @users, adminsambaNeste, o mesmo compartilhamento teste ([teste]) foi defini<strong>do</strong> como acesso de leitura para to<strong>do</strong>s(writable = no), mas os usuários <strong>do</strong> grupo @users e o usuário adminsamba serão os únicos queterão também acesso a gravação (write list = @users, adminsamba). Esta forma de restrição éexplicada melhor em Excessão de acesso na permissão padrão de compartilhamento).Roberto Amaral <strong>–</strong> Marcelo Farias Página 11517/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXExcessão de acesso na permissão padrão de compartilhamentoÉ possível alterar o nível de acesso para determina<strong>do</strong>s usuários/grupos em umcompartilhamento, para entender melhor: Caso tenha cria<strong>do</strong> um compartilhamento somenteleitura e queira permitir que apenas alguns usuários ou grupos tenham acesso a gravação, istoé possível e será explica<strong>do</strong> nesta seção. Este comportamento é controla<strong>do</strong> por duas opções:read list e write list. Veja alguns exemplos:[temporario]comment = Diretório temporáriopath = /tmpwritable = yesread list = adminsamba, rootbrowseable = noavailable = yesNeste exemplo, disponibilizamos o diretório /tmp (path = /tmp) como compartilhamento denome temporario ([temporario]), seu acesso padrão é leitura/gravação para to<strong>do</strong>s (writable =yes), exceto para os usuários root e adminsamba (read list = root, adminsamba). Em adição,tornamos o compartilhamento invisível no "Ambiente de Rede" <strong>do</strong> Win<strong>do</strong>ws (browseable = no) eele será li<strong>do</strong> e disponibiliza<strong>do</strong> pelo SAMBA (available = yes).[temporario]comment = Diretório temporáriopath = /tmpwritable = nowrite list = adminsamba, @opera<strong>do</strong>resbrowseable = yesNeste exemplo, disponibilizamos o diretório /tmp (path = /tmp) como compartilhamento denome temporario ([temporario]), seu acesso padrão é apenas leitura para to<strong>do</strong>s (writable = no),exceto para o usuário adminsamba e usuários <strong>do</strong> grupo Unix opera<strong>do</strong>res, que tem acesso aleitura/gravação (write list = adminsamba, @opera<strong>do</strong>res). Tornamos o compartilhamentovisível no "Ambiente de Rede" <strong>do</strong> Win<strong>do</strong>ws (browseable = yes - que é o padrão).Crian<strong>do</strong> um compartilhamento invisívelPara não exibir um compartilhamento da lista de compartilhamentos das máquinas, utilize oparâmetro browseable = no. Por exemplo:[teste]path = /tmpRoberto Amaral <strong>–</strong> Marcelo Farias Página 11617/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>scomment = Diretório temporárioread only = yesbrowseable = noCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXNeste exemplo, o diretório /tmp (path = /tmp) foi compartilha<strong>do</strong> através de teste ([teste]) comacesso somente leitura (read only = yes) e ele não será mostra<strong>do</strong> na listagem decompartilhamentos <strong>do</strong> ambiente de rede <strong>do</strong> Win<strong>do</strong>ws (browseable = no).Note que o compartilhamento continua disponível, porém ele poderá ser acessa<strong>do</strong> da estaçãoWin<strong>do</strong>ws, especifican<strong>do</strong> a \\maquina\compartilhamento. Para acessar o compartilhamento <strong>do</strong>exemplo acima:# Clique em Iniciar/Executar e digite:\\nome_<strong>do</strong>_servi<strong>do</strong>r_samba\testeAo contrário das máquinas Win<strong>do</strong>ws onde é necessário adicionar um "$" <strong>do</strong> nome decompartilhamento para criar um compartilhamento oculto (como teste$) o SAMBA cria umcompartilhamento realmente oculto, não aparecen<strong>do</strong> mesmo na listagem <strong>do</strong> smbclient.Exemplos de configuração <strong>do</strong> servi<strong>do</strong>r SAMBAOs exemplos existentes nesta seção cobrem diferentes tipos de configuração <strong>do</strong> servi<strong>do</strong>r, tantoem mo<strong>do</strong> de compartilhamento com acesso público ou um <strong>do</strong>mínio restrito de rede. To<strong>do</strong>s osexemplos estão bem comenta<strong>do</strong>s e explicativos, apenas pegue o que se enquadre mais em suasituação para uso próprio e adaptações.Grupo de Trabalho com acesso públicoEste exemplo pode ser usa<strong>do</strong> de modelo para construir uma configuração baseada no controlede acesso usan<strong>do</strong> o nível de segurança share e quan<strong>do</strong> possui compartilhamentos de acessopúblico. Esta configuração é indicada quan<strong>do</strong> necessita de compatibilidade com softwaresNetBIOS antigos.[global]# nome da máquina na redenetbios name = teste# nome <strong>do</strong> grupo de trabalho que a máquina pertenceráworkgroup = empresa# nível de segurança share permite que clientes antigos# mantenham a compatibilidade envian<strong>do</strong> somente a senha para# acesso ao recurso, determinan<strong>do</strong> o nome de usuário de outrasRoberto Amaral <strong>–</strong> Marcelo Farias Página 11717/10/2011


# formassecurity = share<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX# O recurso de senhas criptografadas não funciona quan<strong>do</strong> usamos# o nível share de segurança. O motivo disto é porque# automaticamente é assumi<strong>do</strong> que você está selecionan<strong>do</strong> este# nível por manter compatibilidade com sistemas antigos ou para# disponibilizar compartilhamentos públicos, ondeencrypt passwords = false# Conta que será mapeada para o usuário guestguest account = nobody# Como to<strong>do</strong>s os compartilhamentos desta configuração são de# acesso público coloquei este parâmetro na seção [global],# assim esta opção afetará to<strong>do</strong>s os compartilhamentos.guest ok = 1# Conjunto de caracteres utiliza<strong>do</strong>s para acessar os# compartilhamentos. O padrão para o Brasil e países de língua# latina é o ISO 8859-1character set = ISO8859-1# Compartilha o diretório /tmp (path = /tmp) com o nome# "temporario" ([temporario]),# é adicionada a descrição "Diretório temporário" com acesso# leitura/gravação (read only = no) e exibi<strong>do</strong> na janela de# navegação da rede (browseable = yes).[temporario]path = /tmpcomment = Diretório temporárioread only = nobrowseable = yes# Compartilha o diretório /pub (path = /pub) com o nome# "publico" ([publico]). A descrição "Diretório de acesso# público" é associada ao compartilhamento com acesso somente# leitura (read only = yes) e exibi<strong>do</strong> na janela de navegação# da rede (browseable = yes).Roberto Amaral <strong>–</strong> Marcelo Farias Página 11817/10/2011


[publico]path =/pub<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>scomment = Diretório de acesso públicoread only = yesbrowseable = yesCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX# Compartilha todas as impressoras encontradas no /etc/printcap# <strong>do</strong> sistema.[printers]comment = All Printerspath = /tmpcreate mask = 0700printable = Yesbrowseable = NoGrupo de Trabalho com acesso por usuárioO exemplo abaixo descreve uma configuração a nível de segurança por usuário onde existemcompartilhamentos que requerem login e usuários específicos, e restrições de IPs e interfaceonde o servi<strong>do</strong>r opera. Esta configuração utiliza senhas em texto claro para acesso <strong>do</strong>susuários, mas pode ser facilmente modificada para suportar senhas criptografadas.[global]# nome da máquina na redenetbios name = teste# nome <strong>do</strong> grupo de trabalho que a máquina pertenceráworkgroup = empresa# nível de segurança user somente aceita usuários autentica<strong>do</strong>s# após o envio de login/senhasecurity = user# É utilizada senhas em texto claro nesta configuraçãoencrypt passwords = false# Conta que será mapeada para o usuário guestguest account = nobody# Permite restringir quais interfaces o SAMBA responderábind interfaces only = yes# Faz o samba só responder requisições vin<strong>do</strong> de eth0Roberto Amaral <strong>–</strong> Marcelo Farias Página 11917/10/2011


interfaces = eth0<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX# Supon<strong>do</strong> que nossa interface eth0 receba conexões roteadas de# diversas outras redes, permite somente as conexões vindas da# rede 192.168.1.0/24hosts allow = 192.168.1.0/24# A máquina 192.168.1.57 possui gateway para acesso interno, como# medida de segurança, bloqueamos o acesso desta máquina.hosts deny = 192.168.1.57/32# Conjunto de caracteres utiliza<strong>do</strong>s para acessar os# compartilhamentos. O padrão para o Brasil e países de língua# latina é o ISO 8859-1character set = ISO8859-1# As restrições <strong>do</strong> PAM terão efeito sobre os usuários e recursos# usa<strong>do</strong>s <strong>do</strong> SAMBAobey pam restriction = yes# Mapeia o diretório home <strong>do</strong> usuário autentica<strong>do</strong>.[homes]comment = Diretório <strong>do</strong> Usuáriocreate mask = 0700directory mask = 0700browseable = No# Compartilha o diretório win (path = /win) com o nome "win"#([win]). A descrição associada ao compartilhamento será "Disco <strong>do</strong> Win<strong>do</strong>ws", o nome devolume precisa ser especifica<strong>do</strong> pois usamos# programas que a proteção anti cópia é o serial. Ainda fazemos# uma proteção onde qualquer usuário existente no grupo @adm é# automaticamente rejeita<strong>do</strong> e o usuário "baduser" somente possui# permissão de leitura (read list = baduser).#[win]path = /wincomment = Disco <strong>do</strong> Win<strong>do</strong>wsvolume = 3CF434CRoberto Amaral <strong>–</strong> Marcelo Farias Página 12017/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sinvalid users = @admbrowseable = yesread list = baduserCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX# Compartilha o diretório /pub (path = /pub) com o nome "publico"# ([publico]). A descrição "Diretório de acesso público" é# associada ao compartilhamento com acesso somente leitura (read# only = yes) e exibi<strong>do</strong> na janela de navegação da rede (browseable# = yes). O parâmetro public = yes permite que este# compartilhamento seja acessa<strong>do</strong> usan<strong>do</strong> o usuário "nobody" sem o# fornecimento de senha.[publico]path =/pubcomment = Diretório de acesso públicoread only = yesbrowseable = yespublic = yesDomínio[global]# nome da máquina na redenetbios name = teste# nome <strong>do</strong> grupo de trabalho que a máquina pertenceráworkgroup = empresa# String que será mostrada junto com a descrição <strong>do</strong> servi<strong>do</strong>rserver string = servi<strong>do</strong>r PDC principal de testes# nível de segurança user somente aceita usuários autentica<strong>do</strong>s# após o envio de login/senhasecurity = user# Utilizamos senhas criptografadas nesta configuraçãoencrypt passwords = truesmb passwd file = /etc/samba/smbpasswd# Conta que será mapeada para o usuário guestguest account = nobody# Permite restringir quais interfaces o SAMBA responderábind interfaces only = yesRoberto Amaral <strong>–</strong> Marcelo Farias Página 12117/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX# Faz o samba só responder requisições vin<strong>do</strong> de eth0interfaces = eth0# como estamos planejan<strong>do</strong> ter um grande número de usuários na# rede, dividimos os arquivos de log <strong>do</strong> servi<strong>do</strong>r por máquina.log file = /var/log/samba/samba-%m-%I.log# O tamanho de CADA arquivo de log cria<strong>do</strong> deverá ser 1MB (1024Kb).max log size = 1000# Escolhemos um nível de OS com uma boa folga para vencer as# eleições de controla<strong>do</strong>r de <strong>do</strong>mínio localos level = 80# Dizemos que queremos ser o Domain Master Browse (o padrão é# auto)<strong>do</strong>main master = yes# Damos algumas vantagens para o servi<strong>do</strong>r ganhar a eleição caso# aconteça desempate por critériospreferred master = yes# Também queremos ser o local master browser para nosso segmento# de redelocal master = yes# Este servi<strong>do</strong>r suportará logon de usuários<strong>do</strong>main logons = yes# Usuários que possuem poderes para adicionar/remover máquinas no# <strong>do</strong>mínio (terão seu nível de acesso igual a root)admin users = adminsamba# Unidade que será mapeada para o usuário local durante o logon# (apenas sistemas basea<strong>do</strong>s no NT).logon drive = m:# Nome <strong>do</strong> script que será executa<strong>do</strong> pelas máquinas clienteslogon script = logon.bat# Ação que será tomada durante o recebimento de mensagens <strong>do</strong># Winpopup.message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &# Conjunto de caracteres utiliza<strong>do</strong>s para acessar osRoberto Amaral <strong>–</strong> Marcelo Farias Página 12217/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX# compartilhamentos. O padrão para o Brasil e países de língua# latina é o ISO 8859-1character set = ISO8859-1# As restrições <strong>do</strong> PAM terão efeito sobre os usuários e recursos# usa<strong>do</strong>s <strong>do</strong> SAMBAobey pam restriction = yes# Mapeia o diretório home <strong>do</strong> usuário autentica<strong>do</strong>. Este# compartilhamento especial é descrito em mais detalhes no inicio# <strong>do</strong> capítulo sobre o SAMBA no Foca Linux.[homes]comment = Diretório <strong>do</strong> Usuáriocreate mask = 0700directory mask = 0700browseable = No# Compartilha o diretório win (path = /win) com o nome "win"# ([win]). A descrição associada ao compartilhamento será "Disco# <strong>do</strong> Win<strong>do</strong>ws", o nome de volume precisa ser especifica<strong>do</strong> pois# usamos programas que a proteção anti cópia é o serial. Ainda# fazemos uma proteção onde qualquer usuário existente no grupo# @adm é automaticamente rejeita<strong>do</strong> e o usuário "baduser" somente# possui permissão de leitura (read list = baduser).#[win]path = /wincomment = Disco <strong>do</strong> Win<strong>do</strong>wsvolume = 3CF434Cinvalid users = @admbrowseable = yesread list = baduser# Compartilha o diretório /pub (path = /pub) com o nome "publico"# ([publico]). A descrição "Diretório de acesso público" é# associada ao compartilhamento com acesso somente leitura (readRoberto Amaral <strong>–</strong> Marcelo Farias Página 12317/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX# only = yes) e exibi<strong>do</strong> na janela de navegação da rede (browseable# = yes). O parâmetro public = yes permite que este# compartilhamento seja acessa<strong>do</strong> usan<strong>do</strong> o usuário "nobody" sem o# fornecimento de senha.[publico]path =/pubcomment = Diretório de acesso públicoread only = yesbrowseable = yespublic = yes# Compartilhamento especial utiliza<strong>do</strong> para o logon de máquinas na# rede[netlogon]path=/pub/samba/netlogon/logon.batread only = yesRoberto Amaral <strong>–</strong> Marcelo Farias Página 12417/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXServi<strong>do</strong>r de Informação (NIS)O sistema NIS (Network Information System) permite compartilhar bases de da<strong>do</strong>s globais,conten<strong>do</strong> informações sobre usuários (/etc/passwd), grupos (/etc/group) e hosts (/etc/hosts) em ambienteUnix. Informações compartilhadas por servi<strong>do</strong>res NIS são visíveis pelos cliente, servin<strong>do</strong>, por exemplo, paraa autenticação de usuários num <strong>do</strong>mínio de redes. As informações compartilhadas pelo NIS eram chamadasde Yellow Pages <strong>–</strong> yp.A unidade de compartilhamento <strong>do</strong> NIS são os registros e não o arquivo. Um registro correspondea uma linha de configuração em um arquivo de configuração.A operação deste sistema envolve a execução de um processo servi<strong>do</strong>r (ypserv) numa máquinaque será o mestre de um <strong>do</strong>mínio (NIS máster) e a execução da versão cliente <strong>do</strong> programa (ypbind) nasmáquinas clientes. A utilização <strong>do</strong>s arquivos compartilha<strong>do</strong>s para autenticação <strong>do</strong>s usuários nos cliente,contu<strong>do</strong>, depende ainda <strong>do</strong>s ajustes de autenticação.• ypserv: processo servi<strong>do</strong>r <strong>do</strong> NIS;• ypbind: processo cliente NIS;• yppasswdd: processo de autenticação/modificação de senhas via rede. Deve ser executa<strong>do</strong>no servi<strong>do</strong>r mestre <strong>do</strong> <strong>do</strong>mínio;• ypinit: script de configuração <strong>do</strong> servi<strong>do</strong>r NIS (como principal ou secundário). Cria as tabelasa partir <strong>do</strong>s arquivos em /etc;• yppush: coman<strong>do</strong> para cópia <strong>do</strong>s arquivos <strong>do</strong> mestre para os escravos;• portmap: faz o mapeamento entre chamada RPC e número de portas para o serviço NIS;• /etc/yp.conf: arquivo de configuração <strong>do</strong> cliente NIS;• /etc/ypserv.conf: arquivo de configuração <strong>do</strong> servi<strong>do</strong>r NIS;• /var/yp: arquivos de configuração e tabelas de <strong>do</strong>mínio exporta<strong>do</strong> pelo servi<strong>do</strong>r;• /var/yp/ypservers; relação <strong>do</strong>s servi<strong>do</strong>res <strong>do</strong> <strong>do</strong>mínio;• /var/yp/securenets: relação de redes e hosts autoriza<strong>do</strong>s a acessar as informações <strong>do</strong><strong>do</strong>mínioConfiguração <strong>do</strong> servi<strong>do</strong>rAntes que o servi<strong>do</strong>r NIS possa ser ativa<strong>do</strong>, é preciso criar as tabelas exportadas. Para simplificar aconstrução das tabelas exportadas, entretanto, há um arquivo de configuração em /var/yp. Sua operaçãorequer apenas que o nome <strong>do</strong> <strong>do</strong>mínio NIS que se deseja atender esteja configura<strong>do</strong>:• Domainname: define o nome <strong>do</strong> <strong>do</strong>mínio DNS. Ex: <strong>do</strong>mainname gerds.utp.brRoberto Amaral <strong>–</strong> Marcelo Farias Página 12517/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX• Yp<strong>do</strong>mainname, nis<strong>do</strong>mainname: define o nome <strong>do</strong> <strong>do</strong>mínio NIS. Ex. yp<strong>do</strong>mainnamegerds.utp.brEmbora sejam normalmente coincidentes, não há restrições entre o nome de <strong>do</strong>mínio DNS e o<strong>do</strong>mínio NIS.A configuração de um servi<strong>do</strong>r NIS requer a instalação <strong>do</strong> pacote ypserv. Uma vez ajusta<strong>do</strong> o <strong>do</strong>mínioNIS que se deseja gerenciar, é preciso ajustar os scripts de configuração das tabelas exportadas, localiza<strong>do</strong>sno diretório /var/yp.• /var/yp: diretório que contém os arquivos para configuração <strong>do</strong> servi<strong>do</strong>r NIS e as tabelasexportadas;• /var/yp/Makefile: arquivo de configuração das tabelas que serão criadas para exportação.Configuração (manual) de um servi<strong>do</strong>r NIS:1. Definição <strong>do</strong> <strong>do</strong>mínio:<strong>do</strong>mainname <strong>do</strong>m.com.bryp<strong>do</strong>mainname <strong>do</strong>m.com.br ounis<strong>do</strong>maniname <strong>do</strong>m.com.brou2. Ajuste das tabelas exportadas (/var/yp/Makefile) :cd /var/yp#editar /var/yp/Makefile#editar linha all: passwd group hosts ... à contém relação <strong>do</strong>s mapas que serão cria<strong>do</strong>s paraexportação#editar linha MERGE_PASSWD=true à indica se passwd e sha<strong>do</strong>w serão unifica<strong>do</strong>s paraexportação#editar linha MERGE_GROUP=true à indica se group e gsha<strong>do</strong>w serão unifica<strong>do</strong>s paraexportação#editar linha MINUID=500 à início <strong>do</strong>s logins exporta<strong>do</strong>s#editar linha MINGID=500 à início <strong>do</strong>s grupos exporta<strong>do</strong>s3. Criação das tabelas exportadasMake à cria tabelas para <strong>do</strong>mínio defini<strong>do</strong> com yp<strong>do</strong>maninname, caso não existam, ou atualizaas tabelas existente.Roberto Amaral <strong>–</strong> Marcelo Farias Página 12617/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXOBS.: O padrão é utilizar os arquivos em /etc como fonte para geração <strong>do</strong>s maas <strong>do</strong> NIS. Épossível alterar este padrão, editan<strong>do</strong> o arquivo /var/yp/Makefile, modifican<strong>do</strong> as variáveisYPSRCDIR e YPPWDDDIR para que indiquem o diretório onde estão os arquivos. Assim, éviável manter usuários locais e <strong>do</strong> NIS de forma independente. As opções MINUID e MINGIDtambém permitem restringir os usuários que serão exporta<strong>do</strong>s.Os coman<strong>do</strong>s executa<strong>do</strong>s pelo make, equivalem a criação das tabelas, utilizan<strong>do</strong> os coman<strong>do</strong>sabaixo:• /usr/lib/yp/ypinit <strong>–</strong>m: script para criação das tabelas <strong>do</strong> servi<strong>do</strong>r. Este script, executan<strong>do</strong>com opção <strong>–</strong>m, configura o servi<strong>do</strong>r como “mestre”(ou principal), pegan<strong>do</strong> comoinformações os da<strong>do</strong>s conti<strong>do</strong>s em /etc/passwd, /etc/group, /etc/hosts,/etc/networks, /etc/services, /etc/protocols, /etc/netgroup e /etc/rpc. Inclui, linha alinha, os servi<strong>do</strong>res <strong>do</strong> NIS.• /usr/lib/yp/yp/ypinit <strong>–</strong>s nome-<strong>do</strong>-servi<strong>do</strong>r-principal. A opção <strong>–</strong>s, seguida <strong>do</strong> nome <strong>do</strong>servi<strong>do</strong>r mestre, configura o servi<strong>do</strong>r “escravo” (ou secundário). Pode haver um únicomestre, mas várias escravos.4. Ajustes de segurança: limitar o acesso aos campos das tabelas exportadas editan<strong>do</strong>/etc/ypserv.confUma vez definidas as tabelas que serão exportadas, é preciso realizar ajustes de segurança antes deativar o servi<strong>do</strong>r (ypserv). O ajuste de opção de segurança <strong>do</strong>s mapas exporta<strong>do</strong>s é feito através <strong>do</strong>arquivo /etc/ypserv.conf.• /etc/ypserv.conf: arquivo com parâmetros para o servi<strong>do</strong>r <strong>do</strong> <strong>do</strong>mínio NIS:i. Dns: indica se o servi<strong>do</strong>r fará consultas ao servi<strong>do</strong>r DNS para a resolução denomes de <strong>do</strong>mínio não atendi<strong>do</strong>s por /etc/hostsii. Cada linha contém informações sobre uma tabela exportada, incluin<strong>do</strong> osseguintes campos, separa<strong>do</strong>s por “:”:host, mão, security, mangle e field1. host: endereço IP2. map: nome <strong>do</strong> mapa ou *, para to<strong>do</strong>s os mapas3. security: nome (sempre permite acesso), port (permite acesso se porta


# /etc/ypserv.conf<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX# HOST: Domain :Map :Security#* :* :passwd.byname :port # restringe o acesso a tabela* :* :passwd.byuid :port # restringe o acesso a tabela5. Restringir os hosts que poderão fazer a autenticação de usuários usan<strong>do</strong> as tabelas exportadas(/var/yp/securenets)A relação de clientes autoriza<strong>do</strong>s a usar as tabelas <strong>do</strong> sistema (nis clients) é definida através <strong>do</strong>arquivo /var/yp/securenets. As linhas <strong>do</strong> arquivo contêm informações sobre as máscaras de rede e osendereços IP autoriza<strong>do</strong>s.# /var/yp/securenets#255.0.0.0 127.0.0.0 #libera acesso para o localhost255.255.255.0 200.1.1.0 #libera acesso para a rede 200.1.1.06. Ativação <strong>do</strong> serviço <strong>do</strong> servi<strong>do</strong>r:A ativação <strong>do</strong> servi<strong>do</strong>r é feita inician<strong>do</strong>-se o processo ypserv (/usr/sbin/ypserv). O ajuste para suaativação automática nos níveis de execução multiusuário pode ser feita como descrito anteriormente.AplicaçõesàConfigurações <strong>do</strong> SistemaàConfigurações de Servi<strong>do</strong>ràServiçosPortmapYpservO serviço ypxferd pode ser ativa<strong>do</strong> para auxiliar na transferência <strong>do</strong>s mapas entre o servi<strong>do</strong>r NISmáster e os servi<strong>do</strong>res slave:Ypxferd7. Habilitan<strong>do</strong> o ajuste de senhas pela rede (yppasswdd):A alteração de senha no ambiente NIS pode ser feita com o coman<strong>do</strong> yppasswd. Para tanto, ;epreciso que o serviço yppasswdd esteja sen<strong>do</strong> executa<strong>do</strong> no servi<strong>do</strong>r NIS, caso contrário, os usuáriosdeverão fazer um acesso remoto ao servi<strong>do</strong>r para alterar a senha localmente com o coman<strong>do</strong>passwd.Neste caso, ainda, a nova senha só se torna cálida após a reiniciação <strong>do</strong> servi<strong>do</strong>r NIS (ypserv).AplicaçõesàConfigurações SistemasàConfigurações de Servi<strong>do</strong>ràServiçosYppasswddNos clientes, a senha da rede pode ser alterada executan<strong>do</strong>-se o coman<strong>do</strong> yppasswd.Roberto Amaral <strong>–</strong> Marcelo Farias Página 12817/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXConfiguração <strong>do</strong>s clientes para realizarem acessaem um servi<strong>do</strong>r NIS corresponde ahabilitar a autenticação usan<strong>do</strong> NIS.Roberto Amaral <strong>–</strong> Marcelo Farias Página 12917/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sHTTPD - Servi<strong>do</strong>r Web Apache2CURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXO Apache é o Servi<strong>do</strong>r Web mais utiliza<strong>do</strong> sen<strong>do</strong> utiliza<strong>do</strong>s para servir pedi<strong>do</strong>s de Páginas WEBpor clientes. Os clientes em geral fazem requisições e visualizam Páginas da WEB usan<strong>do</strong>navega<strong>do</strong>res. Usuários utilizam URL (Uniform Resource Locator) para apontar para umservi<strong>do</strong>r Web através <strong>do</strong> seu Nome de Domínio Completo (Fully Qualified Domain Name -FQDN) e um caminho. O protocolo mais comum usa<strong>do</strong> para transferir páginas é o HTTP -Protocolo de transferência de hipertexto. Protocolos como HTTPS - Protocolo seguro detransferência de hipertexto e FTP - Protocolo de transferência de arquivo, protocolo para enviare receber arquivos, são também suporta<strong>do</strong>s. Servi<strong>do</strong>res Web Apache são geralmente utiliza<strong>do</strong>sem conjunto com o banco de da<strong>do</strong>s MySQL, a linguagem de construção de scripts préprocessa<strong>do</strong>rade hiper-texto (PHP), e outras linguagens de construção de scripts popularescomo o Python e o Perl..InstalaçãoO servi<strong>do</strong>r web Apache2 está disponível no Ubuntu Linux. Para instalar o Apache2:# su<strong>do</strong> apt-get install apache2#ConfiguraçãoO Apache é configura<strong>do</strong> colocan<strong>do</strong>-se diretivas em arquivos de configuração de texto puro. Oarquivo de configuração principal é chama<strong>do</strong> apache.conf. Além disso, outros arquivos deconfiguração podem ser adiciona<strong>do</strong>s utilizan<strong>do</strong>-se a diretiva Include. Qualquer diretiva pode sercolocada em qualquer desses arquivos de configuração. Mudanças no arquivo de configuraçãoapenas são reconhecidas quan<strong>do</strong> este for inicia<strong>do</strong> ou reinicia<strong>do</strong>. O servi<strong>do</strong>r também irá ler umarquivo conten<strong>do</strong> os tipos mime de <strong>do</strong>cumentos; o nome <strong>do</strong> arquivo é defini<strong>do</strong> pela diretivaTypesConfig. O arquivo de configuração <strong>do</strong> Apache2 é o /etc/apache2/apache2.conf. Pode serconfigura<strong>do</strong>, número da porta, raiz <strong>do</strong>s <strong>do</strong>cumentos, módulos, arquivos de log, hosts virtuais,etc.Configurações BásicasO Apache é configura<strong>do</strong> com um host virtual único padrão (diretiva VirtualHost) o qual pode sermodifica<strong>do</strong> ou utiliza<strong>do</strong> como está, se você tiver apenas um site, ou ainda usa<strong>do</strong> como modelopara hosts virtuais adicionais caso tenha múltiplos sites. Se não for altera<strong>do</strong>, o host virtualpadrão servirá como seu site padrão. Para modificar o virtual host padrão, edite o arquivo/etc/apache2/sites-available/default. Caso deseje configurar um novo host virtual, copie essearquivo para o mesmo diretório com um nome de sua escolha.Por exemplo:su<strong>do</strong> cp /etc/apache2/sites-available/default /etc/apache2/sites-available/meunovosite.Roberto Amaral <strong>–</strong> Marcelo Farias Página 13017/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXEdite o novo arquivo para configurar o novo site utilizan<strong>do</strong> algumas das diretivas descritasabaixo.• ServerAdmin especifica o endereço de email a ser anuncia<strong>do</strong>. Se website apresentarproblema, o Apache2 mostrará uma mensagem de erro conten<strong>do</strong> este endereço de email paraqual o problema poderá ser relata<strong>do</strong>.• Listen especifica a porta, e opcionalmente o endereço IP, na qual o Apache2 irá escutar. Se oendereço IP não for especifica<strong>do</strong>, o Apache2 irá escutar em to<strong>do</strong>s os endereços IP designa<strong>do</strong>spara a máquina no qual ele esteja rodan<strong>do</strong>. O valor padrão para diretiva Listen é 80. Altere issopara 127.0.0.1:80 para fazer com que o Apache apenas escute apenas na sua interface deloopback. Esta diretiva pode ser encontrada e alterada em seu próprio arquivo,/etc/apache2/ports.conf• ServerName especifica qual a FQDN seu site deverá responder. O host virtual padrão nãopossui diretiva ServerName especificada, portanto ele irá responder a todas as requisições quenão combinem com uma diretiva ServerName em outro host virtual. Por exemplo: para o<strong>do</strong>mínio ubunturocks.com e adicione este nome na diretiva ServerName no arquivo deconfiguração <strong>do</strong> host virtual. Adicione esta diretiva ao novo arquivo de site virtual que vocêcriou antes (/etc/apache2/sites-available/meunovosite).• DocumentRoot especifica o local dp s arquivos padrão que formam o site. O padrão é/var/www. Nenhum site está configura<strong>do</strong> lá, mas pode descomentar a diretiva RedirectMatchem /etc/apache2/apache2.conf as requisições serão redirecionadas para /var/www/apache2-default. Altere este valor no arquivo de host virtual <strong>do</strong> seu site e lembre-se de criar aquelediretório se necessário. O diretório /etc/apache2/sites-available não é decodifica<strong>do</strong> peloApache2. Links simbólicos em /etc/apache2/sites-enabled apontam para sites "disponíveis"(available). Utilize o utilitário a2ensite (Apache2 EnableSite) para criar esses links simbólicos.Configuração PadrãoEsta seção explica a configuração das definições padrão <strong>do</strong> servi<strong>do</strong>r Apache2.• DirectoryIndex é a página padrão <strong>do</strong> servi<strong>do</strong>r quan<strong>do</strong> o usuário requisita um índice de umdiretório especifican<strong>do</strong> uma barra (/) no final <strong>do</strong> nome <strong>do</strong> diretório. Por exemplo, quan<strong>do</strong> umusuário solicita a página http://www.examplo.com/este_diretório/, ele vai ver: o DirectoryIndexse ele existir; uma lista <strong>do</strong> diretório gera<strong>do</strong> pelo servi<strong>do</strong>r caso não exista e as opções de índicesestiverem especificadas; ou uma página de Permissão Negada se nenhuma das duas opçõesforem verdadeiras. Se ele não encontrar nenhum destes arquivos e se as Opções de Índicesestiver ajustada para aquele diretório, o servi<strong>do</strong>r irá gerar e retornar uma lista, no formatoHTML, <strong>do</strong>s subdiretórios e arquivos no diretório. O valor padrão, encontra<strong>do</strong> em/etc/apache2/apache2.conf é "index.html index.cgi index.pl index.php index.xhtml".Roberto Amaral <strong>–</strong> Marcelo Farias Página 13117/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX• ErrorDocument permite que você especifique um arquivo para o Apache usar para um eventoespecífico de erro. Por exemplo, se um usuário solicitar um recurso que não existe, um erro 404ocorrerá, e por padrão de configuração <strong>do</strong> Apache, o arquivo/usr/share/apache2/error/HTTP_NOT_FOUND.html. vai será mostra<strong>do</strong>. Este arquivo não está naRaiz de Documentos <strong>do</strong> servi<strong>do</strong>r, mais existe uma diretiva em /etc/apache2/apache2.conf queredireciona as requisições <strong>do</strong> diretório /error para /usr/share/apache2/error/. Para ver alistagem de diretiva padrão de Documentos de Erro, use o coman<strong>do</strong>: grep ErrorDocument/etc/apache2/apache2.conf• Por padrão, o servi<strong>do</strong>r registra as transferências no arquivo /var/log/apache2/access.log,conforme informa<strong>do</strong> no arquivo de configuração e na diretriz CustomLog,. Pode serespecifica<strong>do</strong> o arquivo onde os erros serão registra<strong>do</strong>s, através da diretriz ErrorLog, que porpadrão é /var/log/apache2/error.log. Estes são manti<strong>do</strong>s separa<strong>do</strong>s <strong>do</strong> log de transferência parapermitir eliminação de problemas. Pode ser especifica<strong>do</strong> o LogLevel (o valor padrão é "alertar")e o LogFormat (veja o /etc/apache2/apache2.conf para o valor padrão).• Algumas opções são especificadas num esquema por diretórios. A diretiva Option é umadessas diretivas. Uma instância de Directory é encapsulada entre tags semelhantes ao XML,como em:...A diretiva Options com uma instância de Directory aceita um ou mais <strong>do</strong>s seguintes valores:• ExecCGI - Permite execução de scripts CGI. Scripts CGI não são executa<strong>do</strong>s se esta opção nãoestiver habilitada. Scripts CGI devem ser manti<strong>do</strong>s em diretórios separa<strong>do</strong>s, fora <strong>do</strong>DocumentRoot, e somente este diretório deve ter a opção ExecCGI habilitada. O local padrãopara os scripts CGI é /usr/lib/cgi-bin.• Includes - Permite inclusões no la<strong>do</strong> <strong>do</strong> servi<strong>do</strong>r, permitin<strong>do</strong> que um arquivo HTML incluaoutros arquivos.• IncludesNOEXEC - Permite includes, mais desabilita o coman<strong>do</strong>s #exec e #include nosscripts CGI• Indexes - Mostra uma lista formatada <strong>do</strong>s conteú<strong>do</strong>s <strong>do</strong>s diretórios, caso não exista umDirectoryIndex (tal como index.html). Por motivos de segurança, não deve estar habilita<strong>do</strong>.Habilite esta opção com cuida<strong>do</strong>, somente se você tem certeza de que quer que os usuáriosvejam o conteú<strong>do</strong> inteiro <strong>do</strong> diretório.• Multiview - Suporta multi-visões negociadas pelo conteú<strong>do</strong>; esta opção é desabilitada porsegurança.Roberto Amaral <strong>–</strong> Marcelo Farias Página 13217/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX• SymLinksIfOwnerMatch - Segue os links simbólicos caso o arquivo seja <strong>do</strong> mesmo <strong>do</strong>no que olink.Configurações de Hosts VirtuaisHosts virtuais permitem que rode diferentes servi<strong>do</strong>res para diferentes endereços IP, diferentesnomes, ou diferentes portas da mesma máquina. Por exemplo, pode rodar o website porhttp://www.exemplo.com.br e http://www.outroexemplo.com.br no mesmo servi<strong>do</strong>r Web usan<strong>do</strong>hosts virtuais. Esta opção corresponde à diretiva para o virtual host padrão evirtual hosts basea<strong>do</strong>s em IP. E corresponde à diretiva para um virtualhost basea<strong>do</strong> em nomes. As diretivas para um host virtual somente são aplicadas para um hostvirtual em particular. Se a diretiva é setada para escopo de servi<strong>do</strong>r e não definida dentro dasconfigurações de um virtual host, as configurações padrão serão usadas. Ajuste DocumentRootpara o diretório que contém o <strong>do</strong>cumento raíz para o host virtual. O DocumentRoot padrão é/var/www.A diretiva ServerAdmin dentro da instância <strong>do</strong> VirtualHost armazena o email usa<strong>do</strong> no rodapéda página de erros caso você escolha mostrar um rodapé com o endereço de email na página deerro.Configurações <strong>do</strong> Servi<strong>do</strong>rLockFile - A diretiva LockFile define o caminho <strong>do</strong> arquivo usa<strong>do</strong> quan<strong>do</strong> o servi<strong>do</strong>r écompila<strong>do</strong> tanto com USE_FCNTL_SERIALIZED_ACCEPT quanto comUSE_FLOCK_SERIALIZED_ACCEPT.PidFile - A diretiva PidFile define o arquivo em que o servi<strong>do</strong>r gravará o seu ID de processo(pid). Este arquivo deve ter permissões de leitura somente para o root. Na maioria <strong>do</strong>s casos, ovalor padrão deve ser deixa<strong>do</strong>.User - A diretiva User seta o UserID usa<strong>do</strong> pelo servi<strong>do</strong>r para responder as solicitações. Estaopção determina o acesso ao servi<strong>do</strong>r. Qualquer arquivo inacessível a este usuário será tambéminacessível aos visitantes <strong>do</strong> seu website. O valor padrão para o User é www-data. Usan<strong>do</strong> oroot como User você irá criar brechas de segurança para seu ser servi<strong>do</strong>r Web. A diretivaGroup é similar a diretiva User. Group define o grupo que o servi<strong>do</strong>r irá responder assolicitações. O grupo padrão é www-data.Módulos <strong>do</strong> ApacheO Apache é um servi<strong>do</strong>r modular. Isso significa que somente as funcionalidades básicas sãoinclusas no núcleo <strong>do</strong> servi<strong>do</strong>r. A extensão das funcionalidades são disponibilizadas através demódulos, que podem ser carrega<strong>do</strong>s no Apache. Por padrão, alguns módulos básicos já estãoRoberto Amaral <strong>–</strong> Marcelo Farias Página 13317/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXinclusos na hora da compilação. Se o servi<strong>do</strong>r for compila<strong>do</strong> para usar o carregamentodinâmico de módulos, então os módulos podem ser compila<strong>do</strong>s separadamente, e adiciona<strong>do</strong>s àqualquer hora usan<strong>do</strong> a diretiva LoadModule. Caso contrário, o Apache2 precisa serrecompila<strong>do</strong> para adicionar ou remover módulos. As diretivas de configuração podem serincluídas condicionalmente, com a presença de um módulo em particular incluí<strong>do</strong> num bloco. Você pode instalar módulos adicionais <strong>do</strong> Apache2 e usá-los com o seu servi<strong>do</strong>rWEB. Você pode instalar módulos <strong>do</strong> Apache2 usan<strong>do</strong> o coman<strong>do</strong> apt-get. Por exemplo, parainstalar o módulo <strong>do</strong> Apache2 para autenticação por MYSQL, você pode executar o seguintecoman<strong>do</strong> de um prompt de terminal (linha de coman<strong>do</strong>).su<strong>do</strong> apt-get install libapache2-mod-auth-mysqlQuan<strong>do</strong> você instala um módulo, ele estará disponível no diretório /etc/apache2/mods-available.Configurações HTTPSO módulo mod_ssl adiciona uma funcionalidade importante no servi<strong>do</strong>r Apache2 <strong>–</strong> a habilidadede encriptar comunicações. Portanto, quan<strong>do</strong> o seu navega<strong>do</strong>r se comunica utilizan<strong>do</strong>encriptação SSL, o prefixo https:// é usa<strong>do</strong> no começo da URL na barra de navegação <strong>do</strong>navega<strong>do</strong>r. O módulo mod_ssl está disponível no pacote apache2-common. Se você possuir estepacote instala<strong>do</strong>, você pode executar o coman<strong>do</strong> a seguir de um prompt de terminal para ativaro módulo mod_ssl: su<strong>do</strong> a2enmod sslCertifica<strong>do</strong>s e SegurançaPara configurar um servi<strong>do</strong>r seguro, use a criptografia de chave pública para criar um par dechaves pública e privada. Na maioria <strong>do</strong>s casos, você manda o seu pedi<strong>do</strong> de certificação(incluin<strong>do</strong> a sua chave pública), uma prova da identidade da sua companhia e o pagamentopara uma Autoridade de Certifica<strong>do</strong>s (CA). A CA verifica o pedi<strong>do</strong> de certificação e suaidentidade, e depois manda de volta um certifica<strong>do</strong> para o seu servi<strong>do</strong>r seguro.Alternativamente, você pode criar o seu certifica<strong>do</strong> auto-assina<strong>do</strong>. Note que, entretanto, ocertifica<strong>do</strong> auto-assina<strong>do</strong> não deve ser usan<strong>do</strong> na maioria <strong>do</strong>s ambientes de produção.Certifica<strong>do</strong>s auto-assina<strong>do</strong>s não são automaticamente aceitos pelo navega<strong>do</strong>r <strong>do</strong>s usuários. Osusuários são questiona<strong>do</strong>s pelo navega<strong>do</strong>r para aceitar o certifica<strong>do</strong> e criar uma conexãosegura. Assim que você tiver um certifica<strong>do</strong> auto-assina<strong>do</strong> ou um certifica<strong>do</strong> assina<strong>do</strong> por umCA de sua escolha, você precisa instalá-lo no seu servi<strong>do</strong>r seguro.Tipos de Certifica<strong>do</strong>sVocê precisa de uma chave e um certifica<strong>do</strong> para operar o seu servi<strong>do</strong>r seguro, o que significaque você tanto pode gerar uma certifica<strong>do</strong> auto-assina<strong>do</strong> como comprar um certifica<strong>do</strong>assina<strong>do</strong> por um CA. Um certifica<strong>do</strong> assina<strong>do</strong> por um CA provê duas capacidades importantespara o seu servi<strong>do</strong>r:Roberto Amaral <strong>–</strong> Marcelo Farias Página 13417/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX• Navega<strong>do</strong>res reconhecem o certifica<strong>do</strong> e permitem uma conexão segura semquestionamentos ao usuário.• Quan<strong>do</strong> um CA emite um certifica<strong>do</strong> assina<strong>do</strong>, está garantin<strong>do</strong> a identidade da organizaçãoque está proven<strong>do</strong> as páginas da web para o navega<strong>do</strong>r.Roberto Amaral <strong>–</strong> Marcelo Farias Página 13517/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXSquidAtualmente, os servi<strong>do</strong>res proxy deixaram de ser um simples privilégio e passaram a ser umanecessidade.Proxy e CacheUm proxy serve para basicamente uma coisa: tratar as requisições <strong>do</strong>s clientes nos protocolossuporta<strong>do</strong>s por ele, seja bloquean<strong>do</strong> URL's de sites indevi<strong>do</strong>s ou controlan<strong>do</strong> o acesso à WWW pelosusuários.O Squid além de um servi<strong>do</strong>r proxy, também integra um sistema de caching para requisições feitas àInternet. Um servi<strong>do</strong>r cache é armazena informações de requisições temporariamente em disco para umavisualização mais rápida posterior.O que é o Squid?O Squid é o servi<strong>do</strong>r proxy HTTP para plataformas UNIX-Like, surgiu de um projeto entre o governoamericano e a <strong>Universidade</strong> <strong>do</strong> Colora<strong>do</strong>. O Squid trabalha com os protocolos HTTP, HTTPS, FTP, Gopher eWAIS e é o proxy que possui o maior número de co-projetos.Instalan<strong>do</strong> via APTPartin<strong>do</strong> <strong>do</strong> princípio que você já tenha o seu APT e seus repositórios de preferência no sources.list, vocêpode simplesmente rodar este coman<strong>do</strong>.# apt-get install squidO arquivo squid.confO arquivo squid.conf é o principal arquivo de configuração <strong>do</strong> Squid. Zela pela simplicidade das tags, masnão muito pelo tamanho, possuin<strong>do</strong> cerca de 2 mil linhas. Antes de mexer no arquivo, é recomendável quefaça um backup <strong>do</strong> arquivo original, em caso quaisquer problemas:# cp /etc/squid/squid.conf /etc/squid/squid.conf.defaultsAlgumas das tags mais importantesUm proxy que apenas sejam configuradas estas tags ainda não é um proxy funcional.http_portPadrão: http_port 3128 - Define a porta em que o serviço Squid irá escutar por requisições.cache_memPadrão: cache_mem 8M - Este parâmetro configura a quantidade de memória utilizada para cache e objetosem trânsito, e não a quantidade de memória reservada para o Squid.Roberto Amaral <strong>–</strong> Marcelo Farias Página 13617/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXcache_dirPadrão: cache_dir ufs /var/spool/squid 100 16 256 - Nesta opção são configura<strong>do</strong>s os números de diretórios,subdiretórios e tamanho <strong>do</strong> cache. onde:• cache_dir - Nome da tag;• ufs - É a forma de armazenamento de cache. Existe também a opção aufs, mas que sóestá disponível para outras plataformas. Para mais informações, leia o squid.conf;• /var/spool/squid - Diretório onde o cache <strong>do</strong> Squid ficará;• 100 - Espaço em disco que o cache <strong>do</strong> Squid poderá ocupar, conta<strong>do</strong> em MB;• 16 - Quantidade de diretórios que o cache <strong>do</strong> Squid possuirá;• 256 - Quantidade de subdiretórios que o cache <strong>do</strong> Squid possuirá;cache_access_logPadrão: cache_access_log /var/log/squid/access.log - Define o arquivo de log de acessos <strong>do</strong> Squid. Casoqueira saber quem acessou determinada página da internet, é através deste arquivo que descobrirá.cache_mgrPadrão: cache_mgr email - Este parâmetro tem a finalidade de especificar o e-mail <strong>do</strong> administra<strong>do</strong>r <strong>do</strong>proxy.cache_effective_userPadrão: cache_effective_user squid - Informa ao Squid com qual nome de usuário ele deve rodar.cache_effective_groupPadrão: cache_effective_group squid - Tem a mesma função da tag acima, mas trabalhar com com o grupo.visible_hostnamePadrão: visible_hostname none - Define o hostname que fica visível nas mensagens de erro <strong>do</strong> Squidapresentadas para os clientes e caso não seja setada, o Squid não starta. Por isso coloque alguma coisaparecida com isto: visible_hostname squid.seu<strong>do</strong>minio.com.brAccess Control Lists (ACL's)Uma ACL nada mais é <strong>do</strong> que a ferramenta que o Squid utiliza para especificar quem pode quem não pode, oquê pode e o que não pode.Tipos de ACL'sSrc : Endereço IP de origem. Especifica um determina<strong>do</strong> host ou uma determinada rede de origem.Dst : Endereço IP de destino. Especifica um determina<strong>do</strong> host ou uma determinada rede de destino.Dst<strong>do</strong>main : Domínio de destino. Restringe o acesso à um determina<strong>do</strong> ou para identificar um <strong>do</strong>mínio dedestino.time : Hora e dia da semana. Especifica um determina<strong>do</strong> horário.Roberto Amaral <strong>–</strong> Marcelo Farias Página 13717/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXPort : Número da porta de destino, usa<strong>do</strong> para especificar acesso à determinada porta de um servi<strong>do</strong>r.url_regex : Compara uma string à uma URL inteira. Muito utiliza<strong>do</strong> para fazer o bloqueio de sites indevi<strong>do</strong>s.urlpath_regex : Tem uma função semelhante à anterior, porém procura apenas em pedaços <strong>do</strong> caminho daURL. Muito utiliza<strong>do</strong> para bloquear extensões.proto: Especifica um protocolo de transferência.proxy_auth: Somente utilizada caso esteja utilizan<strong>do</strong> autenticação. Serve para especificar nomes deusuários.Definin<strong>do</strong> ACL'sDentro <strong>do</strong> arquivo de configuração <strong>do</strong> Squid, o squid.conf, encontra-se uma área que é ideal paradeclarar as ACL's, onde começam a ser definidas, facilmente identificada. Para declarar ACL's, a sintaxebásica:acl |""Um exemplo prático de ACL:acl palavra_proibida url_regex -i sexoA ACL acima bloqueia to<strong>do</strong>s os sites que contenham em seu endereço a palavra "sexo".A tag http_accessÉ inútil o uso de ACL's sem o uso da tag http_access. Esta trava ou libera o que a ACL está estipulan<strong>do</strong>.Exemplo:http_access deny proibi<strong>do</strong>Se nós considerarmos o conjunto ACL + http_access, ficaria:acl proibi<strong>do</strong> url_regex -i sexohttp_access deny proibi<strong>do</strong>O que o conjunto acima proibi qualquer site que possua em seu endereço a palavra "sexo".Ordem das ACL's• 1 - O Squid vai ler todas as ACL's e testar se todas as ACL's declaradas possuem umasintaxe correta e se elas estão sen<strong>do</strong> referenciadas por algum http_access;• 2 - Depois disso, se ele iniciar normalmente, irá começar a testar todas as requisiçõesque são feitas e tentar casar as mesmas com as regras que as ACL's estipulam emconjunto com os http_access;• 3 - Caso uma URL case com uma ACL, ele ignorará todas as outras ACL's para aquelarequisição.Roberto Amaral <strong>–</strong> Marcelo Farias Página 13817/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXUma outra maneira mais prática de tentar implementar isso é fazer da seguinte maneira:• 1 - Coloque as ACL's que estipulam uma exceção à alguma regra de bloqueio que virá àseguir;• 2 - Depois coloque as suas ACL's que vão bloquear sites e tu<strong>do</strong> o mais;• 3 - Só então você coloca as suas ACL's liberan<strong>do</strong> o acesso.CasosAlguns casos e alguns mo<strong>do</strong>s principais para configurar o Squid.Habilitan<strong>do</strong> o SquidPara botar o Squid para rodar, basta encontrar a linha: http_access deny allPara: http_access allow allE depois reinicie o serviço: # /etc/init.d/squid restartRestringin<strong>do</strong> o acesso ao SquidQuan<strong>do</strong> encontrar a linha http_access allow all, ela vai estar liberan<strong>do</strong> acesso à to<strong>do</strong>s os hosts, já quea ACL "all" está especifican<strong>do</strong> to<strong>do</strong>s os hosts. Para arrumar isto, você deve encontrar e comentar as linhas:acl all src 0.0.0.0/0.0.0.0http_access allow allAgora crie uma nova ACL <strong>do</strong> tipo "src", especifican<strong>do</strong> a rede interna:acl redeinterna src 192.168.0.0/24Agora autorize a ACL que acabou de criar por meio de um http_access:http_access allow redeinternaComo visto acima, estamos somente permitin<strong>do</strong> o uso ao proxy pela rede interna. Agora, caso queiraespecificar uma range de IP's, faça assim:acl faixa_adm src 192.168.0.10-192.168.0.50http_access allow faixa_admBloquean<strong>do</strong> sites indevi<strong>do</strong>s no proxyO tipo de ACL url_regex serve para comparar termos dentro de uma URL para saber se esta palavra estáou não liberada e se os usuários vão ou não, visualizar a página. Utiliza<strong>do</strong> para bloquear sites, Exemplo:Adicione a seguinte ACL: acl palavra url_regex -i sexAgora bloqueie o acesso com o http_access: http_access deny palavraRoberto Amaral <strong>–</strong> Marcelo Farias Página 13917/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXCom este exemplo, to<strong>do</strong>s os sites que possuam a palavra "sex" não serão visualiza<strong>do</strong>s pelos usuários. Oparâmetro "-i" serve para que o Squid não distingua entre maiúsculas ou minúsculas. Porém neste momentovocê deve estar pensan<strong>do</strong> que não é prático definir uma ACL para cada palavra que você deseje bloquear. Erealmente não é. Por isso nós vamos declarar listas inteiras de palavras negadas. Eis o exemplo:Primeiro nós vamos criar o arquivo texto que nos vai servir como lista de palavras bloqueadas e damos àela permissões de leitura:# touch /etc/squid/lists/blocked# chmod 755 /etc/squid/lists/blockedNele insira todas as palavras proibidas. Lembre-se que você deve adicionar uma palavra por linha.Após isto, nós criamos a ACL da seguinte maneira: acl blocked url_regex -i "/etc/squid/lists/blocked"E bloqueamos o acesso com o http_access: http_access deny blockedFeito isto, to<strong>do</strong>s os sites que contém em seu endereço palavras como "sex", "sexo", "sexologia" serãobloquea<strong>do</strong>s, porém nem to<strong>do</strong>s os sites que contém a palavra "sex" é um site pornográfico. Para distinguir ossites que podem ser libera<strong>do</strong>s <strong>do</strong>s que não podem, crie uma outra lista para as exceções como "sexologia".Vamos seguir o mesmo procedimento. Criamos uma lista também para as palavras não bloqueadas.# touch /etc/squid/lists/unblocked# chmod 755 /etc/squid/lists/unblockedNesta lista coloque to<strong>do</strong>s os sites que são exceções à regra, como "www.sexologia.org", um site por linha,ou palavras somente. Depois junte as duas ACL's em um único http_access, desta maneira:http_access deny blocked !unblockedNote a utilização <strong>do</strong> sinal de exclamação, significan<strong>do</strong> uma inversão no senti<strong>do</strong> da regra. Pronto, oprocedimento está feito. Agora tu<strong>do</strong> o que você deve fazer é reiniciar o serviço <strong>do</strong> Squid:# /etc/init.d/squid restartRestringin<strong>do</strong> o horário de acessoAqui é o controle que pode ser cria<strong>do</strong> para controle por horário. Para fazer isto, deve ser feito o uso daACL <strong>do</strong> tipo time. Exemplo:acl horariopermiti<strong>do</strong> time MTWHF 08:00-18:00http_access deny !horariopermiti<strong>do</strong>O sinal de exclamação inverte o senti<strong>do</strong> da regra, negan<strong>do</strong> o uso <strong>do</strong> proxy em to<strong>do</strong>s os horários, COMEXCESSÃO <strong>do</strong> horário especifica<strong>do</strong> na ACL horário permiti<strong>do</strong>. As letras "MTWHF" na frente da ACL,especificam os dias da semana conforme esta tabela: S - Sunday (Domingo), M - Monday (Segunda), T -Tuesday (Terça), W - Wednesday (Quarta), H - Thursday (Quinta), F - Friday (Sexta), A - Saturday (Sába<strong>do</strong>).Roberto Amaral <strong>–</strong> Marcelo Farias Página 14017/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sO chefe...CURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXO seu chefe a<strong>do</strong>ra proibir as coisas para os usuários mortais, mas ele quer ter o controle completo. Paracontornar a situação, faça o seguinte: acl chefidap src 192.168.1.23E permitir a lista de palavras negadas para ele, assim: http_access allow blocked chefidapUma outra maneira de se fazer ambos os bloqueios é definir o IP/login <strong>do</strong> seu chefe em uma ACL e nahora em que for declarar o http_access, definir acima das ACL's de bloqueio, assim:http_access allow chefidaphttp_access deny blocked !unblockedSó site libera<strong>do</strong>Ao invés de especificar os sites nega<strong>do</strong>s, especifique o site que vai poder acessar. Primeiramente,especifique os sites que irão poder acessar: acl bancos url_regex -i "/etc/squid/lists/bancos"Adicione os endereços <strong>do</strong>s bancos na lista e especifique também o IP <strong>do</strong> computa<strong>do</strong>r <strong>do</strong> usuário:acl peao src 192.168.1.24Então junte os <strong>do</strong>is em um único http_access, desta maneira: http_access deny !bancos peaoInterpretan<strong>do</strong> a regra, fica: Vamos bloquear to<strong>do</strong>s os sites, COM EXCESSÃO DOS SITESESPECIFICADOS NA LISTA DE BANCOS para o IP 192.168.1.24.Bloquean<strong>do</strong> MSNBem, aqui está um problema pelo qual alguns administra<strong>do</strong>res possam ter dificuldades. O MSN a partirda versão 6.x (in)felizmente passou a fazer conexões utilizan<strong>do</strong> tunneling por http. Ou seja: Ele se conectapela porta 80 também! O bloqueio <strong>do</strong> Squid é simples de ser feito, bastan<strong>do</strong> adicionar o termo "gateway.dll"na sua lista de palavras negadas.Bloquean<strong>do</strong> extensões e <strong>do</strong>wnloads de determina<strong>do</strong>sVocê pode bloquear extensões que os usuários baixam no computa<strong>do</strong>r por meio de HTTP ou de FTP e dequaisquer outros protocolos que o Squid suporte, fazen<strong>do</strong> os seguintes passos:Primeiramente, você deve criar a velha listinha e setar as permissões corretas:# touch /etc/squid/lists/extensoes# chmod 755 /etc/squid/lists/extensoesFeito isto, deve escrever as extensões que deseja bloquear da seguinte maneira no arquivo:\.mp3$\.wav$\.pif$Roberto Amaral <strong>–</strong> Marcelo Farias Página 14117/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX\.bat$NOTA: O "\" é um elimina<strong>do</strong>r de metacaracteres e serve para cancelar a função <strong>do</strong> ".". Já o "$" serve paraque seja analiza<strong>do</strong> até o final de string. Agora vamos adicionar a ACL no Squid que vai bloquear asextensões efetivamente, juntamente com o seu http_access:acl extensoes urlpath_regex -i "/etc/squid/lists/extensoes"http_access deny extensoesNote que ao invés <strong>do</strong> url_regex, eu utilizei o urlpath_regex.Segurança em um servi<strong>do</strong>r SquidTo<strong>do</strong> servi<strong>do</strong>r, independente de plataforma ou serviço que executa, precisa de certas configurações desegurança, para não sofrer ataques. Os principais erros de segurança na configuração <strong>do</strong> Squid:Erro I: Definição de relay <strong>do</strong> servi<strong>do</strong>r SquidAssim como a maioria <strong>do</strong>s servi<strong>do</strong>res, o Squid também possui suas configurações de relay. Entenda porrelay o "la<strong>do</strong> para qual o servi<strong>do</strong>r está rodan<strong>do</strong>, se é para a internet ou para a rede interna". Claro que éinteressante que monte um servi<strong>do</strong>r para a sua rede interna. Sen<strong>do</strong> assim, deveria se preocupar com o relay<strong>do</strong> servi<strong>do</strong>r Squid, pois geralmente os usuários costumam disfarçar seus IP's utilizan<strong>do</strong> servi<strong>do</strong>res proxyabertos pela Internet, prática conhecida como IP Spoofing. Você pode detectar se existe alguém utilizan<strong>do</strong> oseu proxy de duas maneiras: A primeira é deixar o seu servi<strong>do</strong>r rodan<strong>do</strong> e tirar o log de 1 dia.. Com certezaalgo aparecerá, seja um endereço IP que não é da rede interna ou um endereço de host totalmente nada aver. A segunda é monitorar a ações <strong>do</strong> seu proxy com o "tail", em tempo real. Por outro la<strong>do</strong>, temos tambémduas maneiras de resolver este problema.1ª Maneira: http_portVocê pode editar esta tag para que o Squid só escute requisições vindas da rede interna, desta maneira:Troque o valor-padrão da tag:http_port 3128Para:http_port 192.168.1.1:3128Se você resolver por aqui, o seu problema com relay morreu. Eu prefiro esta maneira por ser mais práticae por não ter que ficar mexen<strong>do</strong> com ACL's e se algum dia um abelhu<strong>do</strong> passar um portscanner na suamáquina, como o nmap, ele não irá apresentar o serviço Squid rodan<strong>do</strong>.2ª Maneira: acl all src 192.168.0.0/24Você pode permitir o http_port como menciona<strong>do</strong> acima, mas deverá definir a sua rede interna quan<strong>do</strong>for utilizar as suas ACL's, desta maneira:Roberto Amaral <strong>–</strong> Marcelo Farias Página 14217/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sTroque a ACL all de: acl all src 0.0.0.0/0CURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXPara: acl all src 192.168.0.0/24 (O Squid somente irá permitir conexões vindas da rede interna.)Erro II: http_access deny allColoque esta linha no final das declarações das suas ACL's. O motivo disto é que se o Squid não encontrauma ocasião pela qual encaixar uma ACL, ele simplesmente libera a sua utilização.Erro III: UsuáriosGeralmente usuários removem as configurações de proxy <strong>do</strong> navega<strong>do</strong>r para navegarem sem restriçõese somente pelo NAT ou procuram por proxies abertos na Internet e configuram os navega<strong>do</strong>res parautilizarem estes endereços ou ainda vão em páginas como o "anonymizer" ou similares e navegam por lá.Por isto, é importante bloquear de tais páginas.Erro IV - Proxy Transparente sem ser no gateway da redeTambém é comum receber e-mails de pessoas perguntan<strong>do</strong> como fazer isso. Não é uma idéia muitosegura, a menos que você possua uma DMZ. Isso porque os usuários podem alterar as configurações derede e fazer com que o gateway da rede aponte para o rotea<strong>do</strong>r final, fazen<strong>do</strong> um caminho alternativo paraos pacotes e fazen<strong>do</strong> com que os mesmos não passem pelo servi<strong>do</strong>r Squid.Crian<strong>do</strong> um script de relatório simplesPara a criação de um shell-script que gere o relatório que pegue as últimas requisições negadas peloproxy, devemos criar um arquivo em branco:# touch /usr/bin/squidreportCom o conteú<strong>do</strong> abaixo: #!/bin/bashcat /var/log/squid.log | grep DENIED | tail -n 60 | mail rootMude as permissões <strong>do</strong> arquivo para: # chmod 700 relatoriosquid.shE agende o relatório para ser gera<strong>do</strong> dentro <strong>do</strong> CRON, com a seguinte linha:# crontab -e30 21 * * * squidreportPronto! To<strong>do</strong>s os dias às nove e meia da noite, será gera<strong>do</strong> o relatório de acessos nega<strong>do</strong>s pelo Squid eeles vão estar dentro da caixa de e-mails <strong>do</strong> administra<strong>do</strong>r <strong>do</strong> sistema.Roberto Amaral <strong>–</strong> Marcelo Farias Página 14317/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXNFSO que é NFS?O Network File System (NFS) foi desenvolvi<strong>do</strong> para permitir que se possam montar partiçõesou diretórios remotos como se fosse um disco local, garantin<strong>do</strong> especificar diferentespermissões de acesso a cada cliente de acesso ao compartilhamento.Servi<strong>do</strong>rInstalação# apt-get install nfs-user-server nfs-common statd portmapConfiguran<strong>do</strong> o Servi<strong>do</strong>r NFSPara começar a configurar o serviço, deve entrar no sistema como root e criar um diretório/Compartilha<strong>do</strong>, como default desse <strong>do</strong>cumento, ou se preferir escolha outro local ou outronome de diretório a ser compartilha<strong>do</strong>. Editar o arquivo /etc/exports para definir a pasta a sercompartilhada e permissões de acesso. A linha abaixo, por exemplo, dá acesso diretório"Compartilha<strong>do</strong>" para o IP 192.168.0.2 com direitos de leitura, escrita e execução./Compartilha<strong>do</strong> 192.168.0.2/255.255.255.0(rw,no_root_squash,sync)Onde:rw (escrita e leitura), no_root_squash (privilégios de superusuário), sync (não permite que oservi<strong>do</strong>r responda a pedi<strong>do</strong>s antes que as alterações feitas pelo pedi<strong>do</strong> sejam salvas no disco.)O padrão de construção da linha de permissões de acesso ao compartilhamento, está abaixo:Diretório host1(opção11, opção12) host2(opção21, opção22)Diretório: Diretório a ser compartilha<strong>do</strong> (ex. /home/fabio/).HostN: IP <strong>do</strong> pc cliente <strong>do</strong> compartilhamento.OpçãoXY: Permissões de acesso ao compartilhamentoEditar o arquivo /etc/hosts.deny para definir a segurança <strong>do</strong> compartilhamento. nserir asseguintes linhas:portmap: ALLlockd: ALLmountd: ALLrquotad: ALLRoberto Amaral <strong>–</strong> Marcelo Farias Página 14417/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXEditar o arquivo /etc/hosts.allow para definir o IP ou faixa de IPs que poderão "concorrer" aoscompartilhamentos, ou seja, especifica quem terá acesso a cada serviço. Inserir as seguinteslinhas para permitir que toda a rede 192.168.0.0/24 tenha direito serviços especifica<strong>do</strong>s.portmap: 192.168.0.0/24lockd: 192.168.0.0/24rquotad: 192.168.0.0/24mountd: 192.168.0.0/24statd: 192.168.0.0/24No exemplo é especifica<strong>do</strong> uma faixa de IPs, mas pode definir os hosts separadamente dentro<strong>do</strong> padrão abaixo:serviço: host1, host2, host3, hostXExecutar os seguintes coman<strong>do</strong>s:/etc/init.d/portmap restart/etc/init.d/nfs-user-server restart/etc/init.d/nfs-common restartrpc.montdrpc.nfsdrpc.statdrpc.lockdClienteInstalação# apt-get install nfs-common statd portmapEditar o arquivo /etc/hosts.deny para definir a segurança <strong>do</strong> compartilhamento. Inserir asseguintes linhas:portmap: ALLlockd: ALLmountd: ALLrquotad: ALLExecutar os seguintes coman<strong>do</strong>s:/etc/init.d/portmap restartrpc.statdrpc.lockdRoberto Amaral <strong>–</strong> Marcelo Farias Página 14517/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXmount -t nfs 192.168.1.115(end <strong>do</strong> servi<strong>do</strong>r):/Compartilha<strong>do</strong> /diretorio/localSe você acha muito incômo<strong>do</strong> ter que repetir essa linha de coman<strong>do</strong> enorme, adicione essalinha ao fstab:: /Compartilha<strong>do</strong> /diretorio/local nfs defaults,noauto 0 0Feito isso a montagem fica bem mais simples, basta digitar:# mount /diretorio/localRoberto Amaral <strong>–</strong> Marcelo Farias Página 14617/10/2011


Ssh<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXO SSH permite administrar máquinas remotamente, permite transferir arquivos de váriasformas diferentes e, como se não bastasse, permite também encapsular outros protocolos. Agrande vantagem <strong>do</strong> SSH sobre outras ferramentas de acesso remoto é a grande ênfase nasegurança. Um servi<strong>do</strong>r SSH bem configura<strong>do</strong> é virtualmente impenetrável. O SSH é dividi<strong>do</strong>em <strong>do</strong>is módulos. O sshd é o módulo servi<strong>do</strong>r, um serviço que fica residente na máquina queserá acessada, enquanto o ssh é o módulo cliente, um utilitário que você utiliza para acessá-lo.No Debian, ambos são instala<strong>do</strong>s através <strong>do</strong> pacote "ssh".InstalaçãoO padrão <strong>do</strong> Debian é já trazer o ssh instala<strong>do</strong>. Caso seja necessário instalar, use:#apt-getinstall sshInician<strong>do</strong> o servi<strong>do</strong>r ssh. Com o pacote instala<strong>do</strong>, você inicia o servi<strong>do</strong>r usan<strong>do</strong> ocoman<strong>do</strong>:/etc/init.d/ssh startPara que ele seja inicializa<strong>do</strong> durante o boot, use o coman<strong>do</strong>: update-rc.d -f ssh defaultsA configuração <strong>do</strong> servi<strong>do</strong>r, vai no arquivo /etc/ssh/sshd_config, enquanto a configuração <strong>do</strong>cliente vai no /etc/ssh/ssh_config. Note que muda apenas um "d" entre os <strong>do</strong>is. No Debian oservi<strong>do</strong>r só funcionará se o arquivo sshd_not_to_be_run, presente em /etc/ssh for renomea<strong>do</strong> ouexcluí<strong>do</strong>. Renomean<strong>do</strong> o arquivo:mv /etc/ssh/sshd_not_to_be_run /etc/sshd_not_to_be_run.oldConfiguração <strong>do</strong> servi<strong>do</strong>rO SSH tem <strong>do</strong>is protocolos de autenticação:• protocolo SSH versão 1:<strong>–</strong> méto<strong>do</strong>s de autenticação disponíveis:* RSAAuthentication: autenticação de usuário basea<strong>do</strong> em chave de identidadeRSA* RhostsAuthentication: autenticação de máquina basea<strong>do</strong> em .rhosts (inseguro,desabilita<strong>do</strong>)* RhostsRSAAuthentication: autenticação .rhosts combinada com chave de máquina RSA* ChallengeResponseAuthentication: autenticação pergunta-resposta RSA* PasswordAuthentication: autenticação baseada em senha• protocolo SSH versão 2:<strong>–</strong> méto<strong>do</strong>s de autenticação disponíveis:* PubkeyAuthentication: autenticação de usuário basea<strong>do</strong> em chave pública* HostbasedAuthentication: autenticação .rhosts ou /etc/hosts.equiv combina<strong>do</strong> comautenticação de chave pública de máquina cliente (desabilita<strong>do</strong>)* ChallengeResponseAuthentication: autenticação pergunta-respostaRoberto Amaral <strong>–</strong> Marcelo Farias Página 14717/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX* PasswordAuthentication: autenticação baseada em senhaVocê pode configurar várias opções relacionadas ao servi<strong>do</strong>r SSH, incluin<strong>do</strong> a porta TCP a serusada editan<strong>do</strong> o arquivo "/etc/ssh/sshd_config". A maior parte das opções dentro <strong>do</strong> arquivopodem ser omitidas, pois o servi<strong>do</strong>r simplesmente utiliza valores padrão para as opções quenão constarem no arquivo.- Porta: Uma das primeiras linhas é a: Port 22Esta é a porta que será usada pelo servi<strong>do</strong>r SSH. O padrão é usar a porta 22. Ao mudar a porta<strong>do</strong> servi<strong>do</strong>r aqui, você deverá usar a opção "-p" ao conectar a partir <strong>do</strong>s clientes, para indicar aporta usada, como em:# ssh -p 2222 usuario@IP.DO.SERVIDOR.SSHOutra opção é editar o arquivo "/etc/ssh/ssh_config" (nos clientes) e alterar a porta padrão.Mudar a porta padrão <strong>do</strong> SSH é uma boa idéia se você está preocupa<strong>do</strong> com a segurança.Muitos <strong>do</strong>s ataques "casuais", quan<strong>do</strong> não existe um alvo defini<strong>do</strong>, começam com um portscangenérico, feito em faixas inteiras de endereços IP, mas apenas em algumas portas conhecidas,como a 21, 22 e 80. A partir daí, os ataques vão sen<strong>do</strong> refina<strong>do</strong>s e direciona<strong>do</strong>s apenas para osservi<strong>do</strong>res vulneráveis encontra<strong>do</strong>s na primeira varredura. Colocar seu servi<strong>do</strong>r numa portamais escondida, já dificulta um pouco as coisas.Controle de acesso: Logo abaixo vem a opção "ListenAddress", que permite limitar o SSH a umaúnica placa de rede (mesmo sem usar firewall), em casos de micros com duas ou mais placas. Otípico caso onde você quer que o SSH fique acessível apenas na rede local, mas não na internet,por exemplo. Digamos que o servi<strong>do</strong>r use o endereço "192.168.0.1" na rede local e você querque o servi<strong>do</strong>r SSH não fique disponível na Internet. adicionaria a linha: ListenAddress192.168.0.1Note que especificamos nesta opção o próprio IP <strong>do</strong> servi<strong>do</strong>r na interface escolhida, não a faixade IP's da rede local ou os endereços que terão acesso a ele.Protocolo: Atualmente utilizamos o SSH 2, mas ainda existem alguns poucos clientes queutilizam a primeira versão <strong>do</strong> protocolo. Por padrão, o servi<strong>do</strong>r SSH aceita conexões de clientesque utilizam qualquer um <strong>do</strong>s <strong>do</strong>is protocolos, o que é indica<strong>do</strong> na linha: Protocol 2,1Roberto Amaral <strong>–</strong> Marcelo Farias Página 14817/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXO protocolo SSH 1 tem alguns problemas fundamentais de segurança, por isso algunsadministra<strong>do</strong>res preferem desabilitar a compatibilidade com ele, aceitan<strong>do</strong> apenas clientes queusam o SSH 2. Neste caso, a linha fica apenas "Protocol 2"- Usuários e senhas: Outra opção interessante, logo abaixo é a: PermitRootLogin yesEsta opção determina se o servi<strong>do</strong>r aceitará que usuários se loguem como root. Do ponto devista da segurança, é melhor deixar esta opção como "no", pois assim o usuário precisaráprimeiro se logar usan<strong>do</strong> um login normal e depois virar root usan<strong>do</strong> o "su" ou "su -". Porpadrão, o SSH permite que qualquer usuário cadastra<strong>do</strong> no sistema logue-se remotamente, masvocê pode refinar isso através da opção "AllowUsers", que especifica uma lista de usuários quepodem usar o SSH. Quem não estiver na lista, continua usan<strong>do</strong> o sistema localmente, mas nãoconsegue se logar via SSH. Isso evita que contas com senhas fracas, usadas por usuários quenão tem necessidade de acessar o servi<strong>do</strong>r remotamente coloquem a segurança <strong>do</strong> sistema emrisco. Para permitir que apenas os usuários tico e teco possam usar o SSH, adicione a linha:AllowUsers tico teco. Você pode ainda inverter a lógica, usan<strong>do</strong> a opção "DenyUsers". Nestecaso, to<strong>do</strong>s os usuários cadastra<strong>do</strong>s no sistema podem fazer login, com exceção <strong>do</strong>sespecifica<strong>do</strong>s na linha, como em:DenyUsers joaquim ricardaoOutra opção relacionada à segurança é a: PermitEmptyPasswords noEsta opção faz com que qualquer conta sem senha fique automaticamente desativada no SSH,evitan<strong>do</strong> que alguém consiga se conectar ao servi<strong>do</strong>r "por acaso" ao descobrir a contadesprotegida. Lembre-se que a senha é justamente o ponto fraco <strong>do</strong> SSH. De nada adianta usar2048 bits de encriptação se o usuário escreve a senha num post-it cola<strong>do</strong> no monitor, ou deixa asenha em branco.- Banner: Alguns servi<strong>do</strong>res exibem mensagens de advertência antes <strong>do</strong> prompt de login,avisan<strong>do</strong> que todas as tentativas de acesso estão sen<strong>do</strong> monitoradas ou coisas <strong>do</strong> gênero. Amensagem é especificada através da opção "Banner", onde você indica um arquivo de texto como conteú<strong>do</strong> a ser mostra<strong>do</strong>, como em:Banner = /etc/ssh/banner.txt- X11 Forwarding: Um pouco depois temos a opção:Roberto Amaral <strong>–</strong> Marcelo Farias Página 14917/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXX11Forwarding yesEsta opção determina se o servi<strong>do</strong>r permitirá que os clientes executem aplicativos gráficosremotamente. Se o servi<strong>do</strong>r será acessa<strong>do</strong> via internet ou se possui um link lento, você podedeixar esta opção como "no" para economizar banda. Desta forma, os clientes poderão executarapenas coman<strong>do</strong>s e aplicativos de mo<strong>do</strong> texto.- Módulos: O SSH inclui um módulo de transferência de arquivos (o SFTP). Ele é ativa<strong>do</strong>através da linha:Subsystem sftp /usr/lib/sftp-serverÉ realmente necessário que esta linha esteja presente para que o SFTP funcione. Comente estalinha apenas se você realmente quiser desativá-lo.Para que as alterações entrem em vigor, reinicie o servi<strong>do</strong>r SSH:# /etc/init.d/ssh restartTransferin<strong>do</strong> arquivosAlém de permitir rodar aplicativos e fazer toda a administração de um servi<strong>do</strong>r remotamente, ossh também pode ser usa<strong>do</strong> para transferir arquivos. Uma forma primitiva de transferirarquivos via SSH é usar o "scp", que permite especificar numa única linha o login e endereço<strong>do</strong> servi<strong>do</strong>r, junto com o arquivo que será transferi<strong>do</strong>. Graças a isso, ele é muito usa<strong>do</strong> emscripts. A sintaxe <strong>do</strong> scp é:scp arquivo_local login@servi<strong>do</strong>r:pasta_remotacomo em:$ scp /home/arquivo.tar usuario@empresa.com.br:/var/www/<strong>do</strong>wnloadVocê pode adicionar também as opções "-p" (que preserva as permissões de acesso além dasdatas de criação e modificação <strong>do</strong> arquivo original), "-r" (que permite copiar pastas,recursivamente), "-v" (verbose, onde são mostradas todas as mensagens) e "-C" (que ativa acompressão <strong>do</strong>s da<strong>do</strong>s, ajuda muito na hora de transferir grandes arquivos via internet). Nestecaso o coman<strong>do</strong> ficaria:$ scp -prvC /home/arquivo.tar usuario@empresa.com.br:/var/www/<strong>do</strong>wnloadRoberto Amaral <strong>–</strong> Marcelo Farias Página 15017/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXAo incluir a opção "-r", você pode especificar diretamente uma pasta no primeiro parâmetro.Outra forma mais básica de fazer isso é usar o sftp, um coman<strong>do</strong> que faz parte <strong>do</strong> pacotepadrão. Ele oferece uma interface similar à <strong>do</strong>s antigos programas de FTP de mo<strong>do</strong> texto, masto<strong>do</strong>s os arquivos transferi<strong>do</strong>s através dele trafegam através de um túnel encripta<strong>do</strong>, cria<strong>do</strong>através <strong>do</strong> SSH. Na prática, temos uma espécie de VPN temporária, criada no momento em queé efetuada a conexão. A melhor parte é que o próprio SSH cuida de tu<strong>do</strong>, não é necessárioinstalar nenhum programa adicional. Para se conectar a um servi<strong>do</strong>r usan<strong>do</strong> o sftp, o coman<strong>do</strong>é: $ sftp usuario@IP.DO.SERVIDOR.SSHSe o servi<strong>do</strong>r ssh na outra ponta estiver configura<strong>do</strong> para escutar numa porta diferente da 22, épreciso indicar a porta no coman<strong>do</strong>, incluin<strong>do</strong> o parâmetro -o port=, como em:$ sftp -o port=22 usuario@IP.DO.SERVIDOR.SSHA partir daí você tem um prompt <strong>do</strong> sftp. Use o coman<strong>do</strong> "put" para dar upload de um arquivo e"get" para baixar um arquivo <strong>do</strong> servi<strong>do</strong>r para a pasta local. Para navegar entre as pastas <strong>do</strong>servi<strong>do</strong>r, use os coman<strong>do</strong>s "cd pasta/" (para acessar a pasta), "cd .." (para subir um diretório),"ls" (para listar os arquivos) e "pwd" (para ver em qual diretório está). Exemplo:user@athenas:~$ sftp -o port=2222 usuario@IP.DO.SERVIDOR.SSHConnecting to XX.XX.XX.XX...Password:sftp> lsDesktop Meu Computa<strong>do</strong>r OpenOffice.org1.1.1a bkp060901sftp> get bkp060901Fetching /home/user/bkp060901 to bkp060901/home/user/bkp060901 100% 825KB 825.1KB/s 00:01sftp> put RealPlayer10GOLD.binUploading RealPlayer10GOLD.bin to /home/user/RealPlayer10GOLD.binRealPlayer10GOLD.bin 100% 6726KB 3.3MB/s 00:02sftp> pwdRemote working directory: /home/userExistem ainda os coman<strong>do</strong>s:lcd #(local cd)lls#(local ls)lmkdir#(local mkdir)Roberto Amaral <strong>–</strong> Marcelo Farias Página 15117/10/2011


lpwd<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>s#(local pwd)CURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXPor exemplo, digamos que você está atualmente no diretório /mnt/arquivos. Ao abrir a conexãovia sftp, tu<strong>do</strong> que você baixar será coloca<strong>do</strong> automaticamente neste diretório. Mas, digamosque você queira baixar um determina<strong>do</strong> arquivo para o diretório /home/tico. Você usaria então ocoman<strong>do</strong>lcd /home/ticopara mudar o diretório local e depois o get arquivo para baixá-lo já na pasta correta. Na horade dar upload de um arquivo é a mesma coisa. Você pode usar o "lpwd" para listar os arquivosno diretório local e depois o "put arquivo" para dar upload.TelnetO serviço telnet é oferece o login remoto em seu computa<strong>do</strong>r, que permite trabalharconecta<strong>do</strong> a distância como se estivesse em frente a ele. Ele substitui o rlogin e possuimuitas melhorias em relação a ele, como o controle de acesso, personalização de seçãoe controle de terminal. Atualmente possui tanto a versão original (insegura), quantouma versão mais segura com suporte a ssl.Pacotes:telnet Cliente telnet com suporte a autenticação.telnetd Servi<strong>do</strong>r telnet com suporte a autenticação.telnet-ssl Cliente telnet com suporte a autenticação e ssl. Também suporta conexão a servi<strong>do</strong>restelnet padrão quan<strong>do</strong> o servi<strong>do</strong>r não suporta ssl. Por padrão é tentada a conexão usan<strong>do</strong> ssl, seesta falhar será assumida a transmissão em texto plano.Telnetd-ssl Servi<strong>do</strong>r telnet com suporte a autenticação e ssl. Também suporta conexão declientes telnet padrão (sem suporte a ssl).Utilitários:in.telnetd Servi<strong>do</strong>r telnettelnet Cliente telnet padrão (quan<strong>do</strong> o pacote telnetssl está instala<strong>do</strong>, é simplesmente um linkpara telnetssl).telnet-ssl Cliente telnet com suporte a ssl.Instalaçãoapt-get install telnet telnet<strong>do</strong>uRoberto Amaral <strong>–</strong> Marcelo Farias Página 15217/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sapt-get install telnet-ssl telnetd-sslCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXOs pacotes com o ssl no final possuem suporte a criptografia ssl. Por padrão a porta usada paraexecutar o serviço telnet é a 23 (ou outro número de porta defini<strong>do</strong> no /etc/services). Ainstalação <strong>do</strong> servi<strong>do</strong>r telnet é feita via inetd (no arquivo /etc/inetd.conf) e o controle de acessoao serviço é feito através <strong>do</strong>s arquivos /etc/hosts.allow e /etc/hosts.deny. O servi<strong>do</strong>r tem o nomein.telnetd e este deverá ser usa<strong>do</strong> para ajustar o controle de acesso nos arquivos acima.Inician<strong>do</strong> o servi<strong>do</strong>r/reinician<strong>do</strong>/recarregan<strong>do</strong> a configuraçãoO arquivo que controla o funcionamento <strong>do</strong> servi<strong>do</strong>r telnet é o /etc/inetd.conf e o controle deacesso sen<strong>do</strong> feito pelos arquivos /etc/hosts.allow e /etc/hosts.deny. Será necessário reiniciar oservi<strong>do</strong>r inetd caso algum destes três arquivos seja modifica<strong>do</strong>:killall HUP inetdA porta de operação padrão é a 23 e pode ser modificada no arquivo /etc/services.Opções de linha de coman<strong>do</strong> <strong>do</strong> servi<strong>do</strong>r telnetd:-D nível_de_depuração Permite especificar o que será registra<strong>do</strong> pelo servi<strong>do</strong>rdurante a conexão <strong>do</strong>s clientes telnet. As seguintes opções são suportadas:options Mostra detalhes sobre a negociação das opções de conexão.report Mostra detalhe de opções e o que está sen<strong>do</strong> feito.netdata Mostra os da<strong>do</strong>s transferi<strong>do</strong>s na conexão telnetd.ptydata Mostra os da<strong>do</strong>s mostra<strong>do</strong>s na pty.-edebug Ativa a depuração <strong>do</strong> código de criptografia apenas para o servi<strong>do</strong>r telnet com suportea ssl.-h Somente mostra os detalhes de configuração <strong>do</strong> seu PC após o usuário fornecer umnome/senha váli<strong>do</strong>s.-L [programa] Utiliza o programa especifica<strong>do</strong> para fazer o login <strong>do</strong> usuário(/usr/sbin/telnetlogin é o padrão).-n Não envia pacotes keep alive para verificar o esta<strong>do</strong> da conexão. Desativan<strong>do</strong> esta opçãopoderá fazer o servi<strong>do</strong>r ficar rodan<strong>do</strong> constantemente caso aconteça algum problema e ousuário não consiga se desconectar normalmente.-S TOS Ajusta o tipo de serviço usa<strong>do</strong> na conexão para o valor especifica<strong>do</strong>.Estas opções deverão ser especificadas após o servi<strong>do</strong>r in.telnetd no arquivo/etc/inetd.conf.Roberto Amaral <strong>–</strong> Marcelo Farias Página 15317/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sFazen<strong>do</strong> conexões ao servi<strong>do</strong>r telnetUse o coman<strong>do</strong>:CURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXtelnet [endereço] [porta]para realizar conexões com uma máquina rodan<strong>do</strong> o servi<strong>do</strong>r telnet.Adicionalmente as seguintes opções podem ser usadas:-l [usuario] Envia o nome de usuário ao computa<strong>do</strong>r remoto. Muito útil com o telnetssl.-E Desativa o caracter de escape-a Tenta fazer o login automático usan<strong>do</strong> o nome de usuário local. Se o login falhar, serásolicita<strong>do</strong> o nome de usuário. Esta opção é usada por padrão com o cliente telnetssl.-r Emula o comportamento <strong>do</strong> programa rlogin.Exemplo:# Conecta-se ao servi<strong>do</strong>r telnet rodan<strong>do</strong> na porta 23 de sua própria máquinatelnet localhost# Conecta-se ao servi<strong>do</strong>r telnet 200.200.200.200 operan<strong>do</strong> na porta 53454 usan<strong>do</strong> o# nome de usuário johntelnet <strong>–</strong>l john 200.200.200.200 53454Roberto Amaral <strong>–</strong> Marcelo Farias Página 15417/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong> <strong>–</strong> <strong>UTP</strong>Faculdade de Ciências Exatas e de TecnologiaCursos de ComputaçãoGrupo de Estu<strong>do</strong>s de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sPRÁTICAProfessores:Marcelo Soares FariasRoberto Néia AmaralCuritiba, 2008HTTPD - Servi<strong>do</strong>r Web Apache2Roberto Amaral <strong>–</strong> Marcelo Farias Página 15517/10/2011


Instalação<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXO servi<strong>do</strong>r web Apache2 está disponível no Ubuntu Linux. Para instalar o Apache2:# su<strong>do</strong> apt-get install apache2#Configuraçãosu<strong>do</strong> cp /etc/apache2/sites-available/defaultCampos:• ServerAdmin especifica o endereço de email a ser anuncia<strong>do</strong>.• Listen especifica a porta, e opcionalmente o endereço IP, na qual o Apache2 irá escutar.• ServerName especifica qual a FQDN seu site deverá responder.• DocumentRoot especifica o local <strong>do</strong> s arquivos padrão que formam o site.Configuração PadrãoEsta seção explica a configuração das definições padrão <strong>do</strong> servi<strong>do</strong>r Apache2.• DirectoryIndex é a página padrão <strong>do</strong> servi<strong>do</strong>r quan<strong>do</strong> o usuário requisita um índice de umdiretório.• ErrorDocument permite que especifique um arquivo para o Apache usar para um eventoespecífico de erro.• ExecCGI - Permite execução de scripts CGI.• Includes - Permite inclusões no la<strong>do</strong> <strong>do</strong> servi<strong>do</strong>r, permitin<strong>do</strong> que um arquivo HTML incluaoutros arquivos.• IncludesNOEXEC - Permite includes, mais desabilita o coman<strong>do</strong>s #exec e #include nosscripts CGI• Indexes - Mostra uma lista formatada <strong>do</strong>s conteú<strong>do</strong>s <strong>do</strong>s diretórios.• Multiview - Suporta multi-visões negociadas pelo conteú<strong>do</strong>; esta opção é desabilitada porsegurança.• SymLinksIfOwnerMatch - Segue os links simbólicos caso o arquivo seja <strong>do</strong> mesmo <strong>do</strong>no que olink.Roberto Amaral <strong>–</strong> Marcelo Farias Página 15617/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXSquidInstalan<strong>do</strong> via APT# apt-get install squidO arquivo squid.confAntes de mexer no arquivo faça um backup <strong>do</strong> arquivo original:/etc/squid/squid.conf /etc/squid/squid.conf.defaults# cpAlgumas das tags mais importantesUm proxy que apenas sejam configuradas estas tags ainda não é um proxy funcional.http_port Padrão: http_port 3128 - Define a porta em que o serviço Squid irá escutarpor requisições.cache_mem Padrão: 8M - Quantidade de memória utilizada para cache e objetos emtrânsito.cache_dir Padrão: cache_dir ufs /var/spool/squid 100 16 256• cache_dir - Nome da tag;• ufs - É a forma de armazenamento de cache.• /var/spool/squid - Diretório onde o cache <strong>do</strong> Squid ficará;• 100 - Espaço em disco que o cache <strong>do</strong> Squid poderá ocupar, conta<strong>do</strong> em MB;• 16 - Quantidade de diretórios que o cache <strong>do</strong> Squid possuirá;• 256 - Quantidade de subdiretórios que o cache <strong>do</strong> Squid possuirá;cache_access_logPadrão: cache_access_log /var/log/squid/access.log - Define o arquivo de log de acessos <strong>do</strong> Squidcache_mgrPadrão: cache_mgr email - Este parâmetro tem a finalidade de especificar o e-mail <strong>do</strong> administra<strong>do</strong>r <strong>do</strong>proxy.cache_effective_userPadrão: cache_effective_user squid - Informa ao Squid com qual nome de usuário ele deve rodar.cache_effective_groupPadrão: cache_effective_group squid - Tem a mesma função da tag acima, mas trabalhar com com o grupo.visible_hostnamePadrão: visible_hostname none - Define o hostname que fica visível nas mensagens de erro <strong>do</strong> Squidapresentadas para os clientes e,caso não seja setada, o Squid não starta. Por isso coloque alguma coisaparecida com isto: visible_hostname squid.seu<strong>do</strong>minio.com.brRoberto Amaral <strong>–</strong> Marcelo Farias Página 15717/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sAccess Control Lists (ACL's)CURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXUma ACL nada mais é <strong>do</strong> que a ferramenta que o Squid utiliza para especificar quem pode quem não pode, oquê pode e o que não pode.Tipos de ACL'sSrc : Endereço IP de origem. Especifica um determina<strong>do</strong> host ou uma determinada rede de origem.Dst : Endereço IP de destino. Especifica um determina<strong>do</strong> host ou uma determinada rede de destino.Dst<strong>do</strong>main : Domínio de destino. Restringe o acesso ou para identificar um <strong>do</strong>mínio de destino.time : Hora e dia da semana. Especifica um determina<strong>do</strong> horário.Port : Número da porta de destino, usa<strong>do</strong> para especificar acesso à determinada porta de um servi<strong>do</strong>r.url_regex : Compara uma string à uma URL inteira. Muito utiliza<strong>do</strong> para fazer o bloqueio de sites indevi<strong>do</strong>s.urlpath_regex : Tem uma função semelhante à anterior, porém procura apenas em pedaços <strong>do</strong> caminho daURL. Muito utiliza<strong>do</strong> para bloquear extensões.proto: Especifica um protocolo de transferência.proxy_auth: Somente utilizada caso esteja utilizan<strong>do</strong> autenticação. Serve para especificar nomes deusuários.Definin<strong>do</strong> ACL'sEm squid.conf, declarar ACL's, a sintaxe básica:acl |""Um exemplo prático de ACL: acl palavra_proibida url_regex -i sexoA tag http_accessÉ inútil o uso de ACL's sem o uso da tag http_access. Esta trava ou libera o que a ACL está estipulan<strong>do</strong>.Exemplo: http_access deny proibi<strong>do</strong>Exemplo:acl proibi<strong>do</strong> url_regex -i sexohttp_access deny proibi<strong>do</strong>Ordem das ACL's• 1 - O Squid vai ler todas as ACL's e testar se possuem uma sintaxe correta;• 2 - Testa todas as requisições que são feitas e casa com as regras;• 3 - Caso uma URL case com uma ACL, ele ignorará todas as outras ACL's para aquelarequisição.Uma outra maneira mais prática de tentar implementar isso é fazer da seguinte maneira:• 1 - Coloque as ACL's que estipulam uma exceção à alguma regra de bloqueio que virá àseguir;• 2 - Depois coloque as suas ACL's que vão bloquear sites e tu<strong>do</strong> o mais;• 3 - Só então você coloca as suas ACL's liberan<strong>do</strong> o acesso.Habilitan<strong>do</strong> o SquidPara botar o Squid para rodar, basta encontrar a linha: http_access deny allPara: http_access allow all / E depois reinicie o serviço: # /etc/init.d/squid restartnetfilterAs tabelas <strong>do</strong> iptables são:Roberto Amaral <strong>–</strong> Marcelo Farias Página 15817/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUX• filter: é a tabela padrão, sobre a qual podemos nos referir a três correntes de regras, ouchains:• INPUT, pacotes que entram na interface;• O<strong>UTP</strong>UT, pacotes que saem da interface• FORWARD, pacotes que estão sen<strong>do</strong> rotea<strong>do</strong>s de uma interface para outra;• nat: esta tabela se refere ao uso <strong>do</strong> recurso de Network Address Translation ou NAT, naqual podemos nos referir aos chains: PREROUTING, pacotes que serão altera<strong>do</strong>s antesde roteamento; O<strong>UTP</strong>UT, pacotes locais que serão altera<strong>do</strong>s antes <strong>do</strong> roteamento ePOSTROUTING, pacotes que serão altera<strong>do</strong>s após a aplicação das regras de roteamento;• mangle: usada para alterações especiais no pacote, PREROUTING, para alteração antes<strong>do</strong> roteamento e O<strong>UTP</strong>UT, pacotes locais que serão altera<strong>do</strong>s antes <strong>do</strong> roteamento.Dentre as ações que são feitas sobre os pacotes que atendem a um determina<strong>do</strong> chain em umadada tabela:• ACCEPT: aceita o pacote;• DROP: rejeita o pacote;• MASQUERADE: atua somente sobre a tabela nat e indica que será efetua<strong>do</strong> a conversãode endereços ou NAT, conforme indica<strong>do</strong> no coman<strong>do</strong>.Compartilhan<strong>do</strong> Conexão com IPTABLEmodprobe iptable_natiptables -t nat -A POSTROUTING -o INTERFACE -j MASQUERADEecho 1 > /proc/sys/net/ipv4/ip_forwardMRTGMRTG coleta informações em base de script para criar relatórios que podem ser visualiza<strong>do</strong>s o esta<strong>do</strong> de umrotea<strong>do</strong>r, servi<strong>do</strong>r ou link em determina<strong>do</strong>s tempos.Servi<strong>do</strong>r (script <strong>–</strong> MonitoraçãoHD)#chmod +x /etc/mrtg/mrtg-hd.shif [ -e $1 ] then printf "parametro ausente\n"elsetotal=`df | grep $1 | awk '{print $2}' 2>>/dev/null`livre=`df | grep $1 | awk '{print $3}' 2>>/dev/null`ocupa<strong>do</strong>=`df | grep $1 | awk '{print $4}'2>> /dev/null`percent_oc=$(($ocupa<strong>do</strong> * 100 / $total))Servi<strong>do</strong>r (script <strong>–</strong> Monitor HD eMemória)#chmod +x /etc/mrtg/mrtg-cpu.shunset LANGmem=$(/usr/bin/free|grep ^-)load=$(cat /proc/loadavg)awk -v load="$load" -v mem="$mem" 'BEGIN {split(load,loadstats)print int(100*loadstats[2])split(mem,memstats);print int(100*memstats[3]/(memstats[3]+\percent_li=$((100 - $percent_oc))memstats[4]));Roberto Amaral <strong>–</strong> Marcelo Farias Página 15917/10/2011echo "$percent_oc"}'


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXServi<strong>do</strong>r (script) <strong>–</strong> Configuração<strong>do</strong> mrtg.cfgWorkDir: /usr/local/apache/ht<strong>do</strong>cs/mrtg/Language: brazilianRunAsDaemon: yesInterval: 5Target[hdboot]:`/etc/mrtg/mrtg-hd.sh hdb1 2>> /dev/null`Title[hdboot]:"Uso <strong>do</strong> HD <strong>do</strong> Sistema"PageTop[hdboot]:Uso <strong>do</strong> HD <strong>do</strong> SistemaOptions[hdboot]: growright,noinfo,gaugeYLegend[hdboot]: PercentualShortLegend[hdboot]: %MaxBytes[hdboot]: 100Legend1[hdboot]: espaco livreLegend2[hdboot]: espaco ocupa<strong>do</strong>LegendI[hdboot]: LivreLegendO[hdboot]: Ocupa<strong>do</strong>Target[eth0]: `/etc/mrtg/mrtgstats-net.sh eth0`Title[eth0]:"Trafego na placa de rede - eth0"MaxBytes[eth0]:1400000PageTop[eth0]: Trafego de da<strong>do</strong>s na placa de redeOptions[eth0]: growright,bits,noinfoTarget[perf]:`/etc/mrtg/mrtg-cpu.sh`Title[perf]:"Carga da CPU e Uso da Mem"PageTop[perf]:Carga da CPU e Uso da MemOptions[perf]: growright,noinfo,gaugeYLegend[perf]: PercentualShortLegend[perf]: %MaxBytes[perf]: 100Legend1[perf]: Carga da CPULegend2[perf]: Uso da mem realLegendI[perf]: CargaLegendO[perf]: MemsshA configuração <strong>do</strong> servi<strong>do</strong>r, vai no arquivo /etc/ssh/sshd_configA configuração <strong>do</strong> cliente vai no /etc/ssh/ssh_config.Com o pacote instala<strong>do</strong>, você inicia o servi<strong>do</strong>r usan<strong>do</strong> o coman<strong>do</strong> /etc/init.d/ssh startNo Debian o servi<strong>do</strong>r só funcionará se o arquivo sshd_not_to_be_run, presente em /etc/ssh for renomea<strong>do</strong> ouexcluí<strong>do</strong>. Renomean<strong>do</strong> o arquivo:mv /etc/ssh/sshd_not_to_be_run /etc/sshd_not_to_be_run.oldRoberto Amaral <strong>–</strong> Marcelo Farias Página 16017/10/2011


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: SERVIDORES DE REDES E GERENCIAMENTO - LINUXEm uma empresa, é padrão existir um equipamento específico para servi<strong>do</strong>r de serviços,assim como rotea<strong>do</strong>r para acesso a Internet. Este equipamento sempre encontra-seisola<strong>do</strong> e o mesmo somente pode ser acesso através de login remoto.Para as pessoas que trabalham na empresa, este Servi<strong>do</strong>r/Rotea<strong>do</strong>r é utiliza<strong>do</strong> comofirewall, proibin<strong>do</strong> tráfego em certos horários, palavras e principalmente sites.Portanto o objetivo deste trabalho é por em prática a implementação de um equipamentoServi<strong>do</strong>r/Rotea<strong>do</strong>r que atenda uma empresa.Rede Trabalho(10.11.12.X/24)Servi<strong>do</strong>r ApacheAltere o DocumentRoot para/var/www/htmlServi<strong>do</strong>r SSHAntes de fazer o Squid crie umcompartilhamento com IPTableInterface Interna 10.11.12.2Cliente ApacheCliente SquidClinete SSHServi<strong>do</strong>r SquidBloquean<strong>do</strong> sexo eInterface Interna 10.11.12.1siteInterface Externa alocal/atualRedeLaboratório10.10.10.10/24Gateway10.10.10.10INTERNETRoberto Amaral <strong>–</strong> Marcelo Farias Página 16117/10/2011

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!