apostila avançada

Upload: paulo-cesar-oliveira

Post on 08-Jul-2015

1.030 views

Category:

Documents


2 download

DESCRIPTION

linux

TRANSCRIPT

A P O STI L A DE GNU / LINUX

1. KERNEL

Kernel de um sistema operacional entendido como o ncleo deste ou, numa traduo literal, cerne. Ele representa a camada mais baixa de interface com o Hardware, sendo responsvel por gerenciar os recursos do sistema computacional como um todo. no kernel que esto definidas funes para operao com perifricos (mouse, disco, impressora, interface serial/interface paralela), gerenciamento de memria, entre outros. Resumidamente, o kernel um conjunto de programas que fornece para os programas de usurio (aplicativos) uma interface para utilizar os recursos do sistema. Quanto sua arquitetura, o kernel pode ser monoltico - em um nico bloco, com todas as funcionalidades carregadas na memria - ou modular (micro-kernel) - com os mdulos especficos para cada tarefa carregados opcionalmente, dinamicamente. O kernel a parte mais importante do sistema operacional, pois, sem ele, a cada programa novo que se criasse seria necessrio que o programador se preocupasse em escrever as funes de entrada/sada, de impresso, entre outras, em baixo nvel, causando uma duplicao de trabalho e uma perda enorme de tempo. Como o kernel j fornece a interface para que os programas possam acessar os recursos do sistema de um nvel mais alto e de forma transparente, fica resolvido o problema da duplicao do trabalho. Quando h perifricos ou elementos de um sistema computacional que o kernel no cobre, ento se faz necessrio escrever a interface para eles, os chamados device drivers. Geralmente, os kernels oferecem uma funo para se executar chamadas de sistema, como por exemplo a ioctl(), funo essa que podemos denominar de I/O Control do Linux. Valendo-se dessa funo, podem-se escrever rotinas para qualquer dispositivo. 1.1 Kernel monoltico. Kernel monoltico ou mono-bloco um kernel que implementa um interface de alto nvel para possibilitar chamadas de sistema especficas para gesto de processos, concorrncia e gesto de memria por parte de mdulos dedicados que so 1

A P O STI L A DE GNU / LINUX executados com privilgios especiais. Alguns exemplos deste tipo de kernel:

BSD Linux

1.2 Micro-Kernel. Micro-kernel um termo usado para caracterizar o sistema cujas funcionalidades do sistema saram do kernel e foram para servidores, que se comunicam com um ncleo mnimo, usando o mnimo possvel o "espao do sistema" (nesse local o programa tem acesso a todas as instrues e a todo o hardware) e deixando o mximo de recursos rodando no "espao do usurio" (no espao do usurio, o software sofre algumas restries, no podendo acessar alguns hardwares, nem tem acesso a todas as instrues). Alguns exemplos deste tipo de kernel:

Hurd Minix Microsoft Windows NT

2

A P O STI L A DE GNU / LINUX 1.3 Recompilando o Kernel. A recompilao do kernel tem de ser extremamente observada. nela que voc poder colocar suporte a muitos tipos de hardwares, habilitar recursos do kernel (como firewall e compartilhamento NAT), entre outras coisas. Muitas distribuies incluem kernels j compilados e prontos para usar, mas sempre recomendado que voc compile o seu kernel para otimiz-lo conforme suas necessidades. Alguns pacotes precisam ser instalados antes da recompilao do kernel, entre eles, os pricipais so o gcc-4.0, initrd-tools, automake1.9, make e libncurses5-dev. Pacotes de descompactao tambm sero necessrios, portanto devemos instalar os pacotes tar, bzip2 e gzip. Descompactando o kernel Em primeiro lugar, vamos baixar uma imagem e descompact-la em algum diretrio, para depois comearmos a configurar a compilao. Os cdigos-fonte do kernel em suas vrias verses podem ser todos encontrados atravs do seguinte endereo:

http://www.kernel.org Pgina oficial do Kernel ftp://ftp.kernel.org FTP oficial do Kernel http://ftp.kernel.org Acesso HTTP ao FTP oficial do Kernel ftp://ftp.br.kernel.org Mirror Brasileiro do FTP do kernel

Para facilitar, vamos um browser em modo texto para baixar a ltima verso do kernel, para isso deveremos instalar o links atravs do apt-get com o seguinte comando: # apt-get install links Para acessarmos a pgina do kernel devemos digitar o seguinte comando no shell: # links www.kernel.org Vamos baixar a ltima verso disponvel do kernel, utilizando a seta de direcionamento para baixo at chegarmos a letra F (Full), em seguida precione a letra D (download) e em seguida pressione a tecla enter para iniciar o download. Terminado o download, utilizaremos o comando mv para mover o pacote do kernel para o diretrio /usr/src. # mv linux-v.x.y.z.tar.bz2 /usr/src Agora, portanto hora de descompactarmos o cdigo fonte do kernel, para isso 3

A P O STI L A DE GNU / LINUX utilizaremos a seguinte linhas de comando: # cd /usr/src # tar -xvjf linux-v.x.y.z.tar.bz2 Para facilitar, criaremos um link simblico do diretrio nos quais os fontes do kernel foram extraidos. # ln -s linux-v.x.y.z linux

No proximo passo, iniciaremos a configurao para posteriormente compilarmos o kernel. # cd linux # make menuconfig

extremamente necessrio que voc tenha todo o conhecimento sobre o hardware utilizado no computador, e servios para os quais ele dever atender. Para verificarmos uma listagem simplificada de hardware, utilizaremos o segundo terminal disponvel, apertando as teclas Alt+F2. Em seguida, digitaremos o seguinte comando: # lspci 4

A P O STI L A DE GNU / LINUX

Desta forma saberemos quais so os principais hardwares instalados no computador para que possamos passar informaes corretas ao kernel. Sabendo qual o tipo de hardware existente no computador, retornaremos janela de configurao do kernel pressionando as teclas Alt+F1. Dentro das configuraes do kernel Linux, podemos setar as opes como build in (compilado diretamente dentro de uma nica estrutura do kernel, sendo carregado sempre que o computador for iniciado e representado por um *) ou podemos ainda setar as opes como modules (modulos que podem ou no ser carregados pelo kernel em sua inicializao e representado pela letra M). Aps todas as modificaes necessrias, iremos salvar o arquivo de configurao selecionando a opo Save Configuration to an Alternate File

Agora iremos salvar as configuraes do kernel com o nome de config-meu-kernel (pode ser qualquer outro nome desde que se recorde posteriormente).

5

A P O STI L A DE GNU / LINUX

Agora s sair selecionando a opo Exit ele ir questionar se deseja salvar, selecione Yes. Com o kernel configurado, iniciaremos a compilao com o seguinte comando: # make bzImage Se todas as configuraes do kernel estiverem corretas, o kernel j estar compilado e ser salvo dentro do diretrio /usr/src/linux/arch/i386/boot/ , caso contrrio, deveremos reconfigur-lo identificando na mensagem de erro qual o causador do problema e rodar novamente o comando acima descrito. O prximo passo instalar os mdulos. Para isso utilizaremos os seguintes comandos: # make modules # make modules_install Vamos agora copiar a imagem do kernel compilado, do nosso arquivo de configuraes e um arquivinho chamado System.map para o diretrio /boot nota-se que o nome do kernel geralmente inici-se por vmlinuz, portanto ao copiarmos o arquivo bzImage, j estaremos renomeando-o com esse prefixo mais sua verso tudo isso com os seguintes comandos: 6

A P O STI L A DE GNU / LINUX # cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-v.x.y.z # cp /usr/src/linux/System.map /boot # cp /usr/src/linux/config-meu-kernel /boot Agora necesrio criarmos uma imagem initrd, que uma imagem relativa aos procedimentos de inicializao do sistema, para isso usaremos o seguinte comando: # mkinitrd /lib/modules/v.x.y.z/ -o /boot/initrd-v.x.y.z.img Para organizar a estrutura de kernels, uma vez que pode-se ter mais de um no sistema operacional GNU/Linux, vamos criar links simblicos no diretrio raiz com os seguintes comandos: # ln -s /boot/vmlinuz-v.x.y.z / # ln -s /boot/initrd.v.x.y.z.img / Agora s adicionar as linhas no /etc/lilo.conf e redar o comando lilo ou adicionar em menu.lst dentro do diretrio /boot/grub/ conforme j aprendido acima. CUIDADO!!! Lembre-se de sempre adicionar uma nova entrada em seu arquivo de configurao do kernel, no seguro substitu-las, pois, o novo kernel pode no funcionar aps a prxima reinicializao.

7

A P O STI L A DE GNU / LINUX

2. SERVIDOR DHCP

O DHCP (Dynamic Host Control Protocol) um protocolo utilizado para endereamento dinmico de hosts. Atravs do DHCP, possvel enderear uma grande quantidade de hosts de uma rede, sem perder um grande tempo configurando estaes de trabalho. Existe um servio no GNU/LINUX chamado dhcpd que pode ser configurado para fornecer endereos IP's automaticamente para os clientes da rede. Com isso, o administrador da rede ganha tempo, tem uma configurao mais confivel e muito mais estvel em todas as suas estaes. Alm disso, possvel ter um controle dos endereos utilizados pelos hosts da rede e fornecer algumas configuraes adicionais, tais como, endereo de gateway, servidor de DNS primrio, servidor de DNS secundrio, entre outros. 2.1 Instalando o servidor e cliente dhcp. Para instalar o servidor e o cliente de dhcp, devemos usar o seguinte comando: # apt-get install dhcp3-server dhcp3-common dhcp-client Instalado o servidor, daremos incio sua configurao, seu arquivo encontra-se dentro do diretrio /etc/dhcp3/dhcpd.conf As linhas que contiverem # na frente, no sero lidas pelo servidor DHCP, pois estaro comentadas. # vi /etc/dhcp3/dhcpd.conf ddns-update-style none; Esta opo especifica se o servidor DHCP dever tentar atualizar o DNS quando um arrendamento aceito ou devolvido. Na implementao da ISC, esta opo obrigatria. option domain-name "marcioleonardi.com.br";

8

A P O STI L A DE GNU / LINUX Esta opo especifica o domnio que ser fornecido aos clientes como o principal domnio de busca. option domain-name-servers 200.167.216.14,200.167.216.15; Esta opo especifica uma lista separada por vrgulas de servidores DNS que o cliente deve utilizar. default-lease-time 600; Um cliente pode requerer um perodo de tempo especfico vlido para um arrendamento. Seno o servidor dever fazer um arrendamento com este prazo de expirao (em segundos). max-lease-time 7200; Se voc tiver mais endereos IP do que mquinas os endereos IP das estaes raramente vai precisar mudar. Mas, no caso de uma rede congestionada, o " maxlease-time" determina o tempo mximo que uma estao pode usar um determinado endereo IP. Isso foi planejado para ambientes onde haja escassez de endereos IP, em condies normais estas duas opes no so muito importantes. authoritative; Em uma rede com 2 servidores DHCP, esta opo o torna padro da rede local. subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.101 192.168.1.254; option routers 192.168.1.1; } A opo "range" determina a faixa de endereos IP que ser usada pelo servidor. Se voc utiliza a faixa de endereos 192.168.1.0 at 192.168.1.254 por exemplo, pode reservar os endereos de 192.168.1.1 a 192.168.1.100 para estaes configuradas com IP fixo e usar os demais para o DHCP. A opo routers declara o gateway padro que ser fornecido aos clientes. host Marcio { hardware ethernet 00:0C:6E:8E:F7:9A; fixed-address 192.168.1.5; 9

A P O STI L A DE GNU / LINUX } O endereo MAC de um sistema (de forma que o servidor DHCP possa reconheclo quando dele receber uma solicitao). Especifica que o sistema sempre deve receber o mesmo endereo IP. Note que um hostname funciona aqui, desde que o servidor DHCP seja capaz de resolver o nome via DNS antes de responder solicitao com as informaes do arrendamento. Desta forma estar finalizada a configurao do seu servidor DHCP devendo inicilo atravs do seguintes comandos: # /etc/init.d/dhcp3-server stop # /etc/init.d/dhcp3-server start

10

A P O STI L A DE GNU / LINUX

3. SERVIDOR FTP

FTP significa File Transfer Protocol (Protocolo de Transferncia de Arquivos), e uma forma bastante rpida e verstil de transferir arquivos, sendo uma das mais usadas na internet. Pode referir-se tanto ao protocolo quanto ao programa que implementa este protocolo (neste caso, tradicionalmente aparece em letras minsculas, por influncia do programa de transferncia de arquivos do Unix). A transferncia de dados em redes de computadores envolve normalmente transferncia de arquivos e acesso a sistemas de arquivos remotos (com a mesma interface usada nos arquivos locais). O FTP (RFC 959) baseado no TCP, mas anterior pilha de protocolos TCP/IP, sendo posteriormente adaptado para o TCP/IP. o standard da pilha TCP/IP para transferir arquivos, um protocolo genrico independente de hardware e do sistema operacional e transfere arquivos por livre arbtrio, tendo em conta restries de acesso e propriedades dos arquivos. Existem diversos servidores FTP disponvel para GNU/Linux, vamos utilizar o ProFTPd como exemplo para nossa experincia. 3.1 Instalando o ProFTPd. Como j vimos antes, vamos instalar o servidor atravs do comando apt, com os seguintes parmetros: # apt-get install proftpd proftpd-common 3.2 Configurando o ProFTPd. Como todo daemon de um sistema GNU/Linux e Unix, o ProFTPd configurado atravs de um arquivo texto, o /etc/proftpd.conf. Com um simples editor de texto possvel efetuar sua configurao. interessante observar que o ProFTPd apenas l seu arquivo de configurao ao ser iniciado. Portanto aps cada modificao deveremos reinici-lo. A sintaxe do arquivo /etc/proftpd.conf simples. O ProFTPd usa o conceito de contextos em sua configurao e nestes contextos temos as chamadas diretivas. Contexto uma configurao global de um certo comportamento do ProFTPd 11

A P O STI L A DE GNU / LINUX enquanto as diretivas so as sub-opes que configuram os contextos. Contextos do ProFTPd. Basicamente temos dois contextos principais: Contexto Principal: Contm as configuraes default que sero utilizados inclusive por outros contextos. Contexto : Determina o comportamento do ProFTPd quando acessando e/ou servindo o diretrio DIR. Abaixo temos um exemplo de configurao do ProFTPd (perceba que a configurao default de nossa verso customizada). Exemplo 1. exemplo do configurao do ProFTPd #Configurao do ProFTPd ServerName ServerType DefaultServer ServerAdmin "FTP-TESTE" standalone on root@localhost

#Para efetuar download aos pedaos AllowRetrieveRestart #porta 21 padro port 21 on

#Umask 022 um bom padro pra prevenir que novos diretrios e arquivos #sejam gravveis pelo grupo de usurios Umask 022

#Quantidade mxima de instncias MaxInstances 10 #Usurio e grupo para o servidor no caso de especificao 12

A P O STI L A DE GNU / LINUX especifica #User #Group nobody nobody

#Autenticao de usurio...utilizando o usurio do prpio server GNU/Linux AuthUserFile /etc/passwd #login como root RootLogin on

#Faz com que o usurio apenas acesse seu diretrio $HOME DefaultRoot ~ Todas as devias alteraes realizadas vamos reiniciar o processo com o seguinte comando: # /etc/init.d/proftpd stop # /etc/init.d/proftpd start

13

A P O STI L A DE GNU / LINUX Algumas diretivas do contexto principal:

14

A P O STI L A DE GNU / LINUX Algumas diretivas do contexto

15

A P O STI L A DE GNU / LINUX

4. SERVIDOR OPENSSH

O Secure Shell ou SSH , simultaneamente, um programa de computador e um protocolo de rede que permite a conexo com outro computador na rede, de forma a executar comandos de uma unidade remota. Possui as mesmas funcionalidades do TELNET, com a vantagem da conexo entre o cliente e o servidor ser criptografada. As redes de computadores so uma mdia inerentemente insegura. A menos que voc tem certeza que seus pacotes nunca iro passar por um roteador ou computador que voc no controle direto sobre, seus dados no esto seguros. Eles podem ser visualizados por sysadmins pouco confiveis ou por um script kiddie, ele pode ser alterado em trnsito, ou pode ser interceptado e trocado por dados completamente diferentes. 4.1 Criptografia e Assinaturas Digitais. Como mensionado anteriormente, voc no pode simplesmente confiar em qualquer dado que passe pela Internet sem algum mtodo para garantir que o dado que voc envia o mesmo dado que recebido do outro lado. Isto parece paranico, e na maioria dos casos , mas sempre melhor estar seguro que ter problemas. muito fcil para qualquer um falsificar os seus dados durante o trnsito. E se voc tem dados que so sensveis ou privados, certamente voc no vai querer que J. Random Hacker ou H. Bored Sysadmin leia o mesmo. aqui onde a criptografia e a assinatura digital entram. Vejamos um exemplo concreto de um problema tpico de segurana. Suponha que o servidor A deseje envia uma mensagem ao servidor B. Se a mensagem for enviada descriptografada e passa pelo roteador C, qualquer informao enviada visvel a root@C. Se root@C hostil, ele pode resolver ler o que o servidor A est tentando enviar para o servidor B, e, em vez de repassar a mensagem, enviar uma mensagem falsa para B, e fazer a mesma coisa no retorno de B para A. Este o ataque conhecido como "man-in-the-midle" ou "intermedirio".

16

A P O STI L A DE GNU / LINUX Dados Sensveis Tipicamente os pacotes enviados pela Internet viajam por vrios roteadores antes de chegar a seu destino. Cada um destes roteadores um perigo potencial e possui completo acesso a seus dados. Esta , claramente, uma situao inaceitvel para muitos dados importantes ou sensveis. Infelizmente as pessoas constantemente esto enviando segredos da empresa, informaes pessoais, senhas, nmeros de carto de crdito, e outros dados privados no criptografados pela internet. Ou elas no percebem o perigo disto ou simplesmente no acreditam que valha o esforo a prpria proteo. Autenticao Outra rea em que a tcnica de criptografia usada na rea de autenticao como eu fico sabendo que voc quem voc diz ser? Um nome de login e senha podem ter sido seguros h 20 anos atrs, mas eles so facilmente roubados ou violados. E um esquema de login e senha pode fornecer um servio bsico de autenticao, mas uma vez autenticado, eles no garantem que os dados recebidos sejam exatamente os mesmos que foram enviados. Criptografia e assinaturas digitais so extremamente importantes para resolver estes problemas (particularmente sistemas de chave pblica). Criptografia de Chave Privada vs. Pblica Tradicionalmente a criptografia tm se baseado em um segredo compartilhado, conhecido como chave. Esta chave usada em uma frmula matemtica para embaralhar a informao em questo de forma que ela no possa ser desembaralhada facilmente sem o conhecimento da chave secreta. Enquanto esta tcnica pode ser bem segura quando estiver em uso um bom algoritmo e uma chave de tamanho razovel, ela introduz o problema da troca de chaves. Como voc pode se comunicar com um host remoto na Internet quando voc no tem um canal seguro de comunicao que voc possa utilizar para transferir a chave de criptografia em primeiro lugar? Este problema tem sido resolvido tipicamente pela transferncia das chaves pessoalmente. A presuno que a criptografia requer o compartilhamento do conhecimento de uma chave est to entranhado que ele geralmente no reconhecido. Simplesmente assumido pela maioria que este um defeito das tcnicas de criptografia. Entretanto, tudo mudou em 1976 quando Martin Hellman, Whitfield Diffie, e Ralph Merkle apresentaram a idia da criptografia de chave pblica na Stanford University. A criptografia de chave pblica aborda diferente. Aqui temos 2 chaves cuidadosamente, e uma chave pblica, chave pblica pode ser derivada da o problema de um ngulo completamente uma chave privada, que protegida que pode ser passada a quem a quiser. A chave privada, mas no vice-versa. Os 17

A P O STI L A DE GNU / LINUX algoritmos de chave pblica possuem a propriedade que os dados criptografados pela chave pblica podem ser somente descriptografados pela chave privada correspondente. Com esta descoberta, o problema da troca de chaves est praticamente resolvido. No h mais necessidade de uma mdia segura para a transferncia inicial de chaves, mas voc pode simplesmente criptografar os dados com a chave pblica do recipiente e ter certeza que os dados s podem ser recuperados com a chave privada dele, a qual nunca precisa sair do controle dele. Isto tambm resolve o problema mencionado acima da autenticao - se voc quer ter certeza que algum quemdiz ser, simplesmente criptografe uma pequena quantia de dados (conhecida como "desafio") usando sua chave pblica, e envie a esta pessoa. Esta pessoa ento descriptografa a mesma com sua chave privada e envia de volta (possivelmente criptografada com tua chave pblica). Se os dados que voc receber so idnticos aos dados originalmente enviados, voc sabe que ele quem diz ser. Ento por qu a criptografia de chave privada ainda utilizada? A razo tem a ver com eficincia. Os mtodos atuais de criptografia com chave pblica so muito mais lentos que os mtodos de chave privada, tornando, desta forma, impraticvel a criptografia de enormes quantias de dados. Frequentemente, (como com o SSH), um mtodo de chave pblica pode ser utilizado para autenticao e para a troca de uma chave privada. Se tudo der certo com estes dois passos, a criptografia de chave privada pode ser usada. Funes de Hash Uma funo de Hash simplesmente uma funo que pega uma enorme quantia de dados e encolhe a mesma para um tamanho bem menor. uma funo de uma via (ou seja, a informao original no pode ser determinada a partir do hash resultante). Funes criptogrficas de hash tem a propriedade adicional que uma pequena alterao nos dados originais resulta em uma grande alterao no hash resultante, o que torna extremamente difcil alterar os dados e manter o mesmo hash resultante. Assinaturas Digitais Assinaturas digitais fazem uso das funes de hash criptogrficas para mostrar que o que o recipiente v , de fato, a informao que foi originalmente enviada. Algoritmos de assinatura digital tpicos so baseados na criptografia de chave pblica, e uma viso simplificada de como funcionam mostrada no seguinte exemplo: A pessoa A compe um email para a pessoa B. Quando o email est pronto para ser enviado, ele passado por um algoritmo criptogrfico de hash e o hash resultante criptografado com a chave privada de A e anexado ao email. Quando a pessoa B recebe o email, ela descriptografa a assinatura com a chave pblica de A e passa o 18

A P O STI L A DE GNU / LINUX email pelo mesmo algoritmo de hash. Se o hash resultante idntico ao hash descriptografado, a pessoa B pode confiar que o email no foi adulterado durante o transporte. Mesmo pequenas alteraes, como o acrscimo de pontuaes ou espaos ir resultar em um hash completamente diferente. Assinaturas digitais so uma exigncia legal em alguns estados por que so (praticamente) impossveis de serem forjadas - certamente so muito mais difceis de forjar que uma assinatura fsica. Uma aplicao popular para a criao e verificao de assinaturas digitais (bem como criptografar e descriptografar) o PGP, ou sua alternativa livre, o GnuPG. 4.2 Instalao do OpenSSH Para instalarmos o OpenSSH, sero necessrios 3 (trs) pacotes, que devero ser instalados via apt-get com o seguinte comando: # apt-get install openssh-server openssh-client ssh 4.3 OpenSSH Bsico O OpenSSH uma implementao livre dos protocolos SSH, verso 1 e 2. O nome secure shell um pouco equivocado, uma vez que o mesmo no um shell da mesma forma que o bash ou do tcsh so shell, mas mais do tipo do rsh. Ele usado quando preciso fazer um acesso remoto seguro a uma mquina Unix, mas devido prevalncia de script kiddies que adorariam conseguir sua senha e ober acesso livre a teus servidores, uma boa idia usar o mesmo sempre que voc precisar fazer algum acesso remoto. O uso mais bsico do ssh, e a forma que ele usado pela maioria das pessoas, como substituto do telnet. O telnet transmite toda comunicao, incluindo o login e senha, em texto plano, e esta informao pode facilmente ser interceptadapor qualquer um que tenha acesso fsico a qualquer rede ou roteador em que os seus pacotes passarem. Qualquer coisa transmitida pela Internet em texto plano jogo fcil para qualquer um, por isto voc tem que ser cuidadoso. Usar o ssh ao invs do telnet torna muito mais difcil sua informao ser capturada. O uso bsico do ssh simples. Vamos por exemplo conectar via SSH no nosse endereo de loop-back 127.0.0.1, e com nosso usurio comum desta forma voc pode usar o seguinte comando: $ ssh [email protected] Dependendo de sua verso do ssh, voc pode tambm ver uma mensagem mostrando a fingerprint da chave do host remoto. Esta est ligada a um hash da chave, e se voc estiver sendo extremamente cuidadoso voc vai trocar as fingerprints com o administrador do host remoto atravs de uma linha segura (tipo um telefone ou pessoalmente) antes de fazer a conexo, e ento verificar se as 19

A P O STI L A DE GNU / LINUX fingerprints so idnticas. Isto para proteger-se de um ataque "man-in-the-middle" que eu discuti acima, onde algum fica entre voc e o servidor, trocando as chaves e criptografando e descriptografando suas comunicaes de uma forma que transparente tanto para voc quanto para o servidor, mas permitindo-o ver (e alterar) toda a comunicao. Uma vez que o ssh tenha feito a conexo, ele ir pedir pela sua senha. Esta a senha associada conta de usurio na mquina remota que idntica ao username que voc forneceu ao ssh (se voc no fornecer um username, o ssh assume que voc quer usar o username no qual voc est logado atualmente na sua mquina). Quando voc informar a senha, o ssh criptografa a mesma e a envia para o servidor remoto. Se a senha for idntica senha associada conta remota, o ssh cria um login shell e loga voc na mquina remota. A partir deste ponto, voc pode usar a mquina como se estivesse logado no console. Existem duas verses diferentes do protocolo ssh - ssh1 e ssh2 (ambos so suportados pelo OpenSSH). Vrias vulnerabilidades foram descobertas no ssh1, e a recomendao em geral que se use o ssh2. 4.4 SSH Port Forwarding O telnet e outros mecanismos de login esto longe de serem os nicos protocolos de rede que tem o mau hbito de transmitir informaes descriptografadas. Muitos protocolos comuns, como HTTP, POP3, ou IMAP, transmitem as informaes em texto plano, possivelmente incluindo logins e senhas. Enquanto cada um destes protocolos tem uma verso protegida pelo SSL, as verses seguras no so to comuns quanto as verses no protegidas. Alm disto, a instalao de verses protegidas pelo SSL requer o uso de privilgios de superusurio, e se, por exemplo, voc l seu email via IMAP de um servidor remoto para o qual voc no tem controle direto, voc no pode instalar o IMAP-S. O SSH vem para o resgate aqui. Desde que voc tenha acesso shell ao servidor que voc deseja se conectar, o SSH pode criar um tunel criptografado para voc usar como canal para suas conexes de rede. Ele faz isto criando uma conexo segura ao servidor, abrindo uma porta na sua mquina local, e canalizando tudo que recebe na porta local para uma porta especfica no servidor remoto. Vamos usar o IMAP com exemplo, j que ele que eu uso para verificar meu email. Digamos que voc queira recuperar seus emails de um servidor de nome "vacuum". vacuum est rodando um servidor IMAP, mas no um protegido pelo SSL, e voc prefere no transmitir seu username e senha descriptografados. Voc pode chamar o ssh com o seguinte comando: $ ssh -L2001:vacuum:143 bob@vacuum

20

A P O STI L A DE GNU / LINUX Este comando diz ao ssh para abrir a porta local 2001 e repassar a conexo para a porta 143 em vacuum, e logar em vacuum como bob para isto. Uma vez que voc consiga fazer o login com sucesso no servidor remoto, voc tem um tunel ssh para brincar. Para checar seu email agora, simplesmente informe seu cliente IMAP para ler seu email a partir de localhost, porta 2001. O ssh ir fazer uma conexo transparente para o servidor remoto. 4.5 Autenticao de chaves. Enquanto usar o ssh com uma senha muito mais seguro que o telnet ou rsh, ainda no o sem algumas armadilhas. Ao mesmo tempo que sua senha criptografada e mantida segura de outros olhos durante o trnsito pela rede, uma vez que ela chegue no servidor remoto ela descriptografada novamente para texto plano antes da autenticao. Se o servidor remoto foi comprometido, um atacante pode substituir o sshd por uma verso corrompida que funciona como um cavalo-de-tria, coletando senhas. Um mtodo muito mais seguro de autenticao a autenticao baseada em chaves. A autenticao de chaves SSH baseada nos princpios da criptografia de chave pblica. Voc tem uma chave privada que voc mantm protegida e que posteriormente criptografada com uma senha de acesso, e voc tem uma chave pblica que mantida em cada servidor que voc deseja acessar. Quando voc desbloqueia sua chave privada e tenta conectar a um servidor para o qual voc tenha dado a sua chave pblica, sua chave usada para autenticao em vez de sua senha. Isto significa que suas senhas nunca so enviadas mquina remota, removendo desta forma toda a possibilidade de ataques de roubo de senha. Aqui temos uma viso bsica de como este processo funciona. Quando voc conecta-se a um servidor remoto, o servidor checa para ver se sua chave pblica est no arquivo authorized_keys da sua conta remota. Se ele est, ento o servidor criptografa algum dado aleatrio com sua chave pblica e o envia a voc. Voc descriptografa estes dados, criptografa o mesmo com a chave pblica do servidor remoto, e manda-os de volta. Se o servidor descriptografar e ver que idntico ao que ele enviou originalmente a voc, ento ele sabe que voc quem voc diz ser, e deixa voc entrar sem precisar de senha. Para criar um par de chaves ssh (um conjunto de chaves, uma pblica, e uma privada), tudo que voc precisa fazer executar o seguinte comando: $ ssh-keygen -t rsa Este comando vai pedir por uma senha para criptografar a chave primria e vai salvar a mesma por padro em ~/.ssh/identity. Mantenha esta chave cuidadosamente guardada! Se algum conseguir pegar a chave e a senha que voc usou para criptografar a mesma, este algum pode fazer logon como se fosse voc 21

A P O STI L A DE GNU / LINUX em todos os servidores que estiverem configurados para aceitar suas chaves! Depois que o comando enviado: Generating public/private rsa key pair. Enter file in which to save the key (/home/acc/.ssh/identity): Created directory '/home/acc/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/acc/.ssh/identity. Your public key has been saved in /home/acc/.ssh/identity.pub. The key fingerprint is: e8:96:e0:80:06:b5:e5:e4:22:30:3b:76:47:93:95:73 acc@debianserver Isto tudo que voc precisa fazer! Uma vez que seu keypar tenha sido gerado, voc pode pegar o contedo de identity.pub e acrescentar ao seu ~/.ssh/authorized_keys no servidor remoto. Uma vez que ele tenha sido acrescentado, tente conectar-se ao servidor remoto novamente. Quando voc faz a conexo, em vez de pedir sua senha, ele ir perguntar pela senha que voc usou para proteger sua chave privada: $ ssh acc@debian-server Enter passphrase for RSA key 'acc@debian-server': Quando voc informar a senha para desbloquear sua chave, o ssh usar ento sua chave para fazer sua autenticao com o servidor remoto - sua senha nunca transmitida, e nenhuma informa transmitida pela linha que possa ser mais tarde usada por um atacante para obter acesso a sua conta. Desde que voc mantenha sua chave privada em segurana, sua conta est segura. A autenticao de chaves tem outros benefcios, como a possibilidade de vrias pessoas utilizarem a conta root sem conhecer a senha de root. Simplesmente acrescente as chaves pblicas de cada usurio a ~/.ssh/authorized_keys, e elas podero fazer o login como aquele usurio. ssh-agent A autenticao baseada em chaves tambm traz outras possibilidades interessantes. Por exemplo, se voc est certo que ningum que no seja de confiana ir usar sua sesso de login atual, voc pode usar um programa chamado ssh-agent para manter uma cpia desbloqueada de sua chave privada na memria, de forma que voc no precise escrever sua senha toda vez que faz um ssh para algum lugar. consideravelmente mais seguro que simplesmente usar uma chave privada sem 22

A P O STI L A DE GNU / LINUX senha pois, mesmo quando sua chave est desbloqueada, o ssh-agent no ir dar a chave privada para voc - ele somente assina ou descriptografa dados com ela (como no caso do desafio do servidor). Alm disso, outras pessoas que estejam logadas em seu servidor (fora o root, claro) no tem acesso ao seu ssh-agent. O ssh-agent usado conforme abaixo: $ ssh-agent SSH_AUTH_SOCK=/tmp/ssh-XXvknpQ6/agent.23799; export SSH_AUTH_SOCK; SSH_AGENT_PID=23800; export SSH_AGENT_PID; echo Agent pid 23800; A sada do ssh-agent foi feita para ser examinada pelo seu shell para acrescentar as variveis de ambiente apropriadas. Ou copie e cole a sada na mesma janela de terminal, ou execute algo assim (assumindo que voc est usando um shell bash): bash$ eval `ssh-agent` Agent pid 23800; O ssh-agent est agora rodando e as variveis de ambiente apropriadas foram configuradas de forma que o ssh e os vrios utilitrios ssh podem agora acessar o mesmo. Uma vez que o agente esteja rodando voc pode acrescentar suas chaves privadas com comandos semelhantes ao abaixo: $ ssh-add Need passphrase for /home/acc/.ssh/identity Enter passphrase for acc@debian-server Identity added: /home/acc/.ssh/identity (acc@debian-server) Agora, quando voc fizer um ssh a um servidor remoto que est configurado para aceitar sua chave, voc no precisa fornecer uma senha, voc simplesmente faz a conexo. Obviamente, neste ponto voc precisa ser extremamente cuidadoso sobre deixar pessoas que no so de confianausar sua sesso de login (ssh-add -D faz o ssh-agent esquecer a senha se voc precisar deixar o computador). scp O mtodo tradicional de transferncia de arquivos de uma mquina para outra por uma rede usando o protocolo FTP. O FTP, como o IMAP e outros, transfere as informaes de autenticao em texto plano, que pode no ser desejvel. Infelizmente, devido estrutura do protocolo FTP, muito difcil fazer um tunel para o mesmo atravs de uma conexo ssh.

23

A P O STI L A DE GNU / LINUX O SSH vem com um programa chamado 'scp', que significa 'secure copy' (cpia segura). Ele vem bem a calhar quando voc quer transferir arquivos de um computador para outro de forma segura (ele tambm pode usar compresso se voc usar a opo -C, que boa para transferncia de teto ou outro formato de dado que pode ser comprimido). Ele no usa um protocolo separado, mas envia os dados atravs de uma conexo ssh normal, e por isso ele aceita authorized_keys e conversa com o ssh-agent. O uso do scp bem simples. A sintaxe : scp file1 file2 file3 ... destination Cada um dos argumentos pode ser um arquivo local ou remoto. Por exmeplo, pra compiar seu arquivo .bashr do servidor vacuum para o computador local: $scp vacuum:.bashrc . vacuum:.bashrc a sintaxe que voc usa para copiar de ou para um host remoto host:arquivo. Se voc no especificar um diretrio, ele utiliza por padro o diretrio home. O destino dado como ".", que significa o diretrio atual.

24

A P O STI L A DE GNU / LINUX

5. SERVIDOR SAMBA

O Samba o servidor que permite compartilhar arquivos e acessar compartilhamentos em mquinas Windows. Ele dividido em dois mdulos, o servidor Samba propriamente dito e o smbclient, que permite acessar compartilhamentos em outras mquinas. Usando o Samba, o servidor Linux se comporta exatamente da mesma forma que uma mquina Windows, compartilhando arquivos e impressoras e executando outras funes, como autenticao de usurios. Voc pode configurar o Samba at mesmo para tornar-se um controlador de domnio. A primeira verso do Samba, disponibilizada em 1992, foi escrita por Andrew Tridgell, um Australiano que na poca era estudante de cincias da computao. Como na poca a especificao do SMB utilizada pela Microsoft ainda era fechada, Andrew desenvolveu um pequeno programa, batizado de clockspy, para examinar os pacotes de dados enviados por uma mquina Windows e assim ir implementando uma a uma as chamadas de sistema utilizadas, um trabalho extremamente complexo para ser feito por uma nica pessoa. O resultado foi um programa que rodava no Solaris e era capaz de responder s chamadas SMB como se fosse um servidor Windows. Este arquivo ainda pode ser encontrado em alguns dos FTPs do http://samba.org, com o nome "server-0.5". O objetivo desta primeira verso era apenas resolver um problema domstico, interligar um PC rodando o Windows 3.1 ao servidor Solaris. Na poca isso j era possvel utilizando um dos clientes NFS comerciais para DOS, mas Andrew precisava de suporte a NetBIOS para um aplicativo que pretendia utilizar, o WindX, um servidor X para Windows, que permitia rodar aplicativos via rede a partir do servidor Unix. At a o objetivo era apenas fazer o programa funcionar, no criar um sistema de compartilhamento de arquivos. Depois de algum tempo Andrew recebeu um e-mail contando que o programa tambm funcionava com o LanManager da Microsoft, permitindo compartilhar arquivos de um servidor Unix com mquinas rodando o DOS. Andrew s acreditou depois de testar, mas ficou to maravilhado com o que havia conseguido que criou o 25

A P O STI L A DE GNU / LINUX projeto "NetBios for Unix", e comeou a recrutar voluntrios atravs da Usenet. Mais tarde o projeto passou a usar o nome Samba, que foi adotado no em apologia ao Carnaval, mas apenas porque uma das poucas palavras do dicionrio do Aspell que possui as letras S, M e B, de "Server Message Blocks". Em 94 a Microsoft liberou as especificaes do SMB e do NetBios, o que permitiu que o desenvolvimento do Samba desse um grande salto, tanto em recursos quanto em compatibilidade, passando a acompanhar os novos recursos adicionados ao protocolo da Microsoft, que novamente deixou de ser aberto. Hoje, alm de ser quase 100% compatvel com os recursos de rede do Windows 98, NT e 2000, o Samba reconhecido por ser mais rpido que o prprio Windows na tarefa de servidor de arquivos. Um dos pontos fortes do Samba que o projeto foi todo desenvolvido sem precisar apelar para qualquer violao de patentes. Todas as chamadas (com exceo das que a Microsoft tornou pblicas em 94) foram implementadas monitorando as transmisses de dados atravs da rede, uma espcie de engenharia reversa que no tem nada de ilegal. como se voc descobrisse como funciona um cdigo de encriptao apenas examinando arquivos encriptados por ele. Matemticos fazem isso a todo instante e muitas vezes so bem pagos para isso. Graas a este "detalhe", o Samba no corre o perigo de sofrer restries devido a aes judiciais. Naturalmente j houveram problemas legais com a Microsoft, cujo resultado apenas confirmou esta invulnerabilidade. De qualquer forma, no existem sinais de que a Microsoft pretenda declarar guerra ao Samba, pelo contrrio, foi a existncia do Samba que permitiu que a Microsoft conseguisse colocar PCs rodando o Windows em muitos nichos onde s entravam Workstations Unix, j que com o Samba os servidores Unix existentes passaram a ser compatveis com as mquinas Windows. Ou seja, de certa forma o Samba vantajoso at mesmo para a Microsoft. 5.1 Instalando o Samba O Samba dividido em dois mdulos. O servidor propriamente dito e o cliente, que permite acessar compartilhamentos em outras mquinas (tanto Linux quanto Windows). Os dois so independentes, permitindo que voc mantenha apenas o cliente instalado num desktop e instale o servidor apenas nas mquinas que realmente forem compartilhar arquivos. Isto permite melhorar a segurana da rede de uma forma geral. Para instalarmos o servidor do Samba, ser necessrio o seguinte comando: # apt-get install samba samba-doc swat 26

A P O STI L A DE GNU / LINUX Lembre-se de que voc deve instalar todos os pacotes apenas no servidor e em outras mquinas que forem compartilhar arquivos. O Swat ajuda bastante na etapa de configurao, mas ele opcional, pois voc pode tanto editar manualmente o arquivo smb.conf, quanto usar um arquivo pronto, gerado em outra instalao. Nos clientes que forem apenas acessar compartilhamentos de outras mquinas, instale apenas o cliente. 5.2 Cadastrando usurios. Depois de instalado, o prximo passo cadastrar os logins e senhas dos usurios que tero acesso ao servidor. Esta uma peculiaridade do Samba: ele roda como um programa sobre o sistema e est subordinado s permisses de acesso deste. Por isso ele s pode dar acesso para usurios que, alm de estarem cadastrados no Samba, tambm esto cadastrados no sistema. Existem duas abordagens possveis. Voc pode criar usurios "reais" usando o comando adduser ou um utilitrio como o "user-admin" (disponvel no Fedora e no Debian, atravs do pacote gnome-system-tools). Ao usar o adduser, o comando fica: # adduser maria Uma segunda opo criar usurios "castrados", que tero acesso apenas ao Samba. Esta abordagem mais segura, pois os usurios no podero acessar o servidor via SSH ou Telnet, por exemplo, o que abriria brecha para vrios tipos de ataques. Neste caso, voc cria os usurios adicionando os parmetros que orientam o adduser a no criar o diretrio home e manter a senha desativada at segunda ordem: # adduser --disabled-login --no-create-home maria Isto cria uma espcie de usurio fantasma que, para todos os fins, existe e pode acessar arquivos do sistema (de acordo com as permisses de acesso), mas, por outro lado, no pode fazer login (nem localmente, nem remotamente via SSH), nem possui diretrio home. De qualquer uma das duas formas, depois de criar os usurios no sistema, voc deve cadastr-los no Samba, usando o comando "smbpasswd -a", como em: # smbpasswd -a maria Se voc mantiver os logins e senhas sincronizados com os usados pelos usurios nos clientes Windows, o acesso aos compartilhamentos automtico. Caso os logins ou senhas no servidor sejam diferentes, o usurio precisar fazer login ao acessar. 27

A P O STI L A DE GNU / LINUX Um detalhe importante que, ao usar clientes Windows 95 ou 98, voc deve marcar a opo de login como "Login do Windows" e no como "Cliente para redes Microsoft" (que o default) na configurao de rede (Painel de controle > Redes). Depois de criados os logins de acesso, falta agora apenas configurar o Samba para se integrar rede e compartilhar as pastas desejadas; trabalho facilitado pelo Swat. A segunda opo editar manualmente os arquivos de configurao do Samba, o "/etc/samba/smb.conf", como veremos mais adiante. Neste caso, o ideal comear a partir de um arquivo pr-configurado, alterando apenas as opes necessrias. 5.3 Configurando o Samba usando o Swat O Samba pode ser configurado atravs do Swat, um utilitrio de configurao via web, similar ao encontrado nos modems ADSL. Isso permite que ele seja acessado remotamente e facilita a instalao em servidores onde o X no est instalado. Esta mesma abordagem utilizada por muitos outros utilitrios, como o Webmin e o Pagode. Manter o X instalado e ativo num servidor dedicado considerado um desperdcio de recursos, por isso os desenvolvedores de utilitrios de configurao evitam depender de bibliotecas grficas. Deste modo, mesmo distribuies minimalistas podem inclu-los. No Debian, Slackware e tambm no Gentoo, o Swat inicializado atravs do inetd. A funo do inetd e xinetd parecida, eles monitoram determinadas portas TCP e carregam servios sob demanda. Isto evita que utilitrios que so acessados esporadicamente (como o Swat) precisem ficar ativos o tempo todo, consumindo recursos do sistema. Apesar disso, a configurao dos dois diferente: no caso das distribuies que usam o inetd, voc ainda precisa adicionar (ou descomentar) a linha abaixo no arquivo de configurao do inetd, o "/etc/inetd.conf": swat stream tcp nowait.400 root /usr/sbin/tcpd /usr/sbin/swat Para que a alterao entre em vigor, reinicie o inetd com o comando: # /etc/init.d/inetd restart Para acessar o Swat, basta abrir um Browser disponvel e acessar o endereo http://localhost:901 . No prompt de login, fornea a senha de root para acessar. Ao abrir o Swat, voc ver um menu com vrios links para a documentao disponvel sobre o Samba, que voc pode consultar para se aprofundar no sistema. Na parte de cima, esto os links para as sees da configurao, que o que nos interessa.

28

A P O STI L A DE GNU / LINUX

Na seo Password, voc pode cadastrar usurios, substituindo o uso manual do comando "smbadduser -a". Neste caso, voc precisar primeiro cadastrar os usurios utilizando comando adduser; o Swat apenas cadastra os usurios no Samba.

Em seguida, acesse a seo "Globals", que engloba todas as configuraes de rede e acesso. Nas opes "workgroup" e "netbios name", voc deve colocar o nome do 29

A P O STI L A DE GNU / LINUX computador e o grupo de trabalho a que ele pertence, como faria numa mquina Windows. Voc pode tanto utilizar o mesmo grupo de trabalho em todas as mquinas da rede, quanto agrupar suas mquinas em grupos distintos como "diretoria", "vendas", etc. A opo "netbios aliases" permite criar "apelidos" para o servidor, de modo de que ele possa ser acessado por mais de um nome. Usando um alias, o servidor realmente aparece duas vezes no ambiente de rede, como se fossem duas mquinas. Em geral isso acaba confundindo mais do que ajudando, mas pode ser til em algumas situaes, quando, por exemplo, um servidor desativado e os compartilhamentos movidos para outro. O novo servidor pode responder pelo nome do servidor antigo, permitindo que os usurios que no foram avisados da mudana continuem acessando os compartilhamentos.

A seguir temos a opo "interfaces", que permite limitar os acessos ao servidor se voc tiver mais de uma placa de rede. o caso, por exemplo, de quem acessa via ADSL ou cabo e possui uma segunda placa de rede para compartilhar a conexo com os micros da rede local. Nestes casos a placa da web ser reconhecida como eth0, enquanto a placa da rede local ser reconhecida como eth1, por exemplo. Voc pode, ento, preencher o campo com o endereo da placa da rede local (eth1), assim o Samba s aceitar conexes vindas dos micros da rede local, descartando automaticamente todas as tentativas de acesso vindas da internet. Caso o campo permanea vazio, o Samba permite acessos vindos de todas as placas de rede, e necessrio bloquear os acessos provenientes da internet usando o firewall. 30

A P O STI L A DE GNU / LINUX Na seo Security Options chegamos a uma das decises mais importantes, decidir entre entre utilizar segurana com base no login do usurio (user) ou com base no compartilhamento (share). A opo share oferece um nvel de segurana semelhante ao de uma mquina Windows 98. Os compartilhamentos podem ser acessados por todos os usurios, atravs da conta guest. Em compensao, esta opo a mais simples de configurar e pode ser til em pequenas redes onde no h necessidade de segurana. A opo user a mais recomendvel, pois permite especificar exatamente quais usurios tero acesso a cada compartilhamento, como num servidor NT ou Windows 2000. Naturalmente, para que isso funcione, necessrio que voc tenha registrado todos os usurios no Linux e no Samba (como vimos anteriormente), e que os clientes Windows efetuem login na rede usando estes mesmos logins e senhas, ou os forneam na hora de acessar os compartilhamentos. Escolhendo este modo, as permisses de acesso aos compartilhamentos do samba ficam condicionadas s permisses de acesso de cada usurio. Por exemplo, se voc compartilhar a pasta /home/maria/arquivos, por default apenas a usuria maria ter permisso para gravar novos arquivos e alterar o contedo da pasta. Para que outros usurios tenham acesso pasta, voc deve dar permisso a eles, criando um novo grupo e dando permisso de escrita para os integrantes do grupo ou adicionando os demais usurios no grupo "maria" (que criado juntamente com o login de acesso) e configurando as permisses de acesso de forma que o grupo possa escrever na pasta. Se voc no est to preocupado com a segurana, pode fazer do jeito "fcil", alterando a opo "outros" nas permisses de acesso da pasta, que d acesso a todo mundo. Isto faz com que qualquer usurio local do sistema (ou logado via SSH) tenha acesso aos arquivos da pasta, mas no permite necessariamente que outros usurios do Samba possam acessar, pois neste caso ainda so usadas as permisses de acesso no Samba. Ou seja, necessrio fazer com que os usurios do grupo, ou todos os usurios do sistema possam escrever na pasta, evitando que as permisses do sistema conflitem com as permisses configuradas no Samba. Se configuro o Samba para permitir que o usurio "joao" possa escrever no compartilhamento, mas a configurao das permisses da pasta compartilhada no permitem isso, o Joao vai continuar sem conseguir escrever. Ao criar compartilhamentos no Samba, preciso se preocupar com as duas coisas. Mais abaixo, temos a opo Encrypt Password. Ela tambm importantssima, e deve ser configurada de acordo com a verso do Windows que rodar nas mquinas 31

A P O STI L A DE GNU / LINUX clientes. O Windows 95 original no suporta encriptao de senhas, por isso s poder se conectar ao servidor caso a opo seja configurada com o valor "No". Porm, o Windows 95 OSR/2, Windows 98/SE/ME, Windows NT, Windows 2000 e Windows XP utilizam senhas encriptadas, ento, ao utilizar mquinas com qualquer um destes sistemas (que o mais provvel) a opo deve ser configurada como "Yes", caso contrrio o Samba simplesmente no conseguir conversar com as mquinas Windows. A partir do Samba 3 existe a opo de fazer com que o prprio Samba mantenha as senhas dos usurios sincronizadas em relao s senhas dos mesmos no sistema. Antigamente, sempre que voc alterava a senha de um usurio no Samba, usando o "smbpasswd", precisava alterar tambm a senha do sistema, usando o comando "passwd". As duas senhas precisam ficar em sincronismo, do contrrio camos no problema das permisses, onde o Samba permite que o usurio acesse o compartilhamento, mas o sistema no permite que o Samba acesse os arquivos no disco. Para ativar este recurso, ative a opo "unix password sync" no Swat. Originalmente, esta opo fica desativada e aparece apenas dentro das opes avanadas. Para chegar at ela voc deve clicar no boto "Change View To: Advanced" no topo da tela. Depois de alterar, clique no Commit Changes". Para que tudo funcione, necessrio que as opes "passwd program" e "passwd chat" estejam configuradas com (respectivamente) os valores: "/usr/bin/passwd %u" e "*Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n .". Estes j so os valores padro no Swat, mas no custa verificar.

32

A P O STI L A DE GNU / LINUX

A opo "Hosts Allow" deve incluir os endereos IP de todos os computadores que tero permisso para acessar o servidor. Se quiser que todos os micros da rede tenham acesso, basta escrever apenas a primeira parte do endereo IP, como em "192.168.0.", onde todos os endereos dentro do escopo sero permitidos. Se for incluir mais de um endereo ou mais de um escopo de endereos, separe-os por um espao, como: "192.168.0., 10.0.0., 123.73.45.167". Caso o campo permanea vazio, a opo fica desativada, e todos os micros que tiverem acesso ao servidor Samba podero acessar.

A opo "Hosts Deny" por sua vez permite especificar mquinas que no tero permisso para acessar o servidor. Voc pode usar o Hosts Deny para estabelescer excees ao dito na opo Hosts Allow. Por exemplo, imagine que voc queira que toda a rede local, que usa a faixa 33

A P O STI L A DE GNU / LINUX 192.168.0.x, tenha acesso ao servidor, com exceo dos endereos 192.168.0.2 e 192.168.0.3. Neste caso, a configurao ficaria assim: Hosts Allow: 192.168.0. Hosts Deny: 192.168.0.2, 192.168.0.3 Numa rede Windows, uma das mquinas fica sempre responsvel por montar e atualizar uma lista dos compartilhamentos disponveis e envi-la aos demais, conforme solicitado. O host que executa esta funo chamado de "Master Browser". Na seo Browse Options, a opo "OS Level" permite especificar qual chance o servidor Linux ter de ser o Master Browser do grupo de trabalho ou domnio. Sempre que voc estiver configurando o Samba para ser o servidor principal, desejvel que ele seja o master browser. Para isso, configure esta opo com um valor alto, 100 por exemplo, para que ele sempre ganhe as eleies. O default dessa opo 20, que faz com que ele perca para qualquer mquina Windows NT, Windows 2000 ou Windows XP. Para completar, deixe a opo "Local Master" e "Preferred Master" como "Yes".

A configurao do OS Level muito importante. Caso no seja o Master Browser, voc poder ter problemas para acessar seu servidor Linux a partir de outras mquinas Windows, principalmente rodando o NT/2000/XP. Com o valor 100, sempre que uma das mquinas Windows tentar ser o Master Browser da rede, o Samba convocar uma nova eleio e a mquina Linux sempre ganhar. Abaixo, deixe a opo Wins Support ativada (Yes). A opo Wins Server deve ser deixada em branco, a menos que exista na rede algum servidor Wins (rodando o NT server ou o 2K server) ao qual o servidor Linux esteja subordinado. Caso o nico servidor seja a mquina Linux, voc pode configurar as mquinas 34

A P O STI L A DE GNU / LINUX Windows para utiliz-la como servidor Wins, para isto basta colocar o seu endereo IP no campo "Servidor Wins" na configurao de rede das estaes. Terminando, pressione o boto "Commit Changes" no topo da tela para que as alteraes sejam salvas no arquivo "/etc/samba/smb.conf". Uma observao importante que o Swat l o arquivo smb.conf ao ser aberto, lendo as opes configuradas e mostrando-as na interface, mas gera um novo arquivo sempre que voc clica no "Commit Changes". Ao ler o arquivo, ele procura por trechos especficos de texto, ignorando tudo que for diferente. Isso faz com que ele remova qualquer tipo de comentrio includo manualmente no arquivo. Em geral, quem tem o hbito de editar manualmente o smb.conf, acaba nunca usando o Swat e vive-versa. Depois de cadastrar os usurios no sistema e no Samba e configurar a seo Globals, falta apenas configurar as pastas que sero compartilhadas com as estaes, atravs da seo "Shares". Cada usurio vlido cadastrado no sistema possui automaticamente um diretrio home. Estas pastas ficam dentro do diretrio /home e podem ser usadas para guardar arquivos pessoais, j que, a menos que seja estabelecido o contrrio, um usurio no ter acesso pasta pessoal do outro. Alm dos diretrios home, voc pode compartilhar mais pastas de uso geral. Para criar um compartilhamento, basta escrever seu nome no campo no topo da tela e clicar no boto "Create Share".

Depois de criado um compartilhamento, escolha-o na lista e clique no boto "Choose 35

A P O STI L A DE GNU / LINUX Share" para configur-la. Voc ver uma lista de opes, contendo campos para especificar usurios vlidos e invlidos, usurios que podem ou no escrever no compartilhamento, nomes ou endereos de mquinas entre outras opes.

O campo "path" o mais importante, pois indica justamente qual pasta do sistema ser compartilhada. O nome do compartilhamento diz apenas com que nome ele aparecer no ambiente de rede, que no precisa necessariamente ser o mesmo nome da pasta. A opo "comment" permite que voc escreva um breve comentrio sobre a pasta que tambm poder ser visualizado pelos usurios no ambiente de rede. Este comentrio apenas para orientao, no tem efeito algum sobre o compartilhamento. A opo "read only" determina se a pasta ficar disponvel apenas para leitura (opo Yes) ou se os usurios podero tambm gravar arquivos (opo No). Voc pode tambm determinar quais mquinas tero acesso ao compartilhamento atravs das opes "Hosts Allow" e "Hosts Deny". As configuraes feitas aqui subscrevem as feitas na seo global. Se, por exemplo, a mquina 192.168.0.5 possui permisso 36

A P O STI L A DE GNU / LINUX para acessar o sistema, mas foi includa na campo Hosts Deny do compartilhamento programas, ela poder acessar outros compartilhamentos do sistema, mas no o compartilhamento programas especificamente. A opo "browseable" permite configurar se o compartilhamento aparecer entre os outros compartilhamentos do servidor no ambiente de rede, ou se ser um compartilhamento oculto, que poder ser acessado apenas por quem souber que ele existe. Isso tem uma funo semelhante a colocar um "$" numa pasta compartilhada no Windows 98. Ela fica compartilhada, mas no aparece no ambiente de rede. Apenas usurios que saibam que o compartilhamento existe conseguiro acess-lo. Esta opo tem efeito apenas sobre os clientes Windows, pois no Linux a maior parte dos programas clientes (como o Smb4k) mostram os compartilhamentos ocultos por padro. Finalmente, a opo "available" especifica se o compartilhamento est ativado ou no. Voc pode desativar temporariamente um compartilhamento configurando esta opo como "No". Fazendo isso, ele continuar no sistema e voc poder torn-lo disponvel quando quiser, alterando a opo para "Yes". Um detalhe importante que os usurios s tero permisso para acessar pastas que o login permite acessar. Por exemplo, no Linux o nico usurio que pode acessar a pasta /root o prprio root, ou outro autorizado por ele. Mesmo que voc compartilhe a pasta root atravs do Samba, os demais usurios no podero acess-la. Para editar as permisses de uma pasta, basta abrir o gerenciador de arquivos e, nas propriedades da pasta, acessar a guia "Permisses". As permisses podem ser dadas apenas ao usurio, para todos os usurios pertencentes ao grupo do usurio dono da pasta, ou para todos os usurios. A opo "Aplicar mudanas a todas as subpastas e seus contedos" deve ficar marcada para que as permisses sejam aplicadas tambm s subpastas. Terminadas as configuraes, o servidor j ir aparecer no ambiente de rede, como se fosse um servidor Windows. Os compartilhamentos podem ser acessados de acordo com as permisses que tiverem sido configuradas, mapeados como unidades de rede, entre outros recursos. Para compartilhar uma impressora j instalada na mquina Linux, o procedimento o mesmo. Dentro do Swat, acesse a seo printers, escolha a impressora a ser compartilhada (a lista mostrar todas as instaladas no sistema), configure a opo available como "yes" e configure as permisses de acesso como vimos anteriormente. 5.4 Configurando o Samba manualmente - /etc/samba/smb.conf Toda a configurao do Samba, incluindo as configuraes gerais do servidor, 37

A P O STI L A DE GNU / LINUX impressoras e todos os compartilhamentos, feita num nico arquivo de configurao, o "/etc/samba/smb.conf". Programas de configurao, como o Swat, simplesmente lem este arquivo, "absorvem" as configuraes atuais e depois geram o arquivo novamente com as alteraes feitas. Isto permite que o Swat coexista com a edio manual do arquivo. Como o formato bastante simples e conciso, muitas vezes mais rpido e at mais simples editar diretamente o arquivo do que atravs do Swat. O smb.conf possui as mesmas sees mostradas no swat: global, homes, printers, etc. Para iniciar a edio do arquivo de configurao do smb.conf utilisamos o seguinte comando: # vi /etc/samba/smb.conf Confira abaixo um exemplo do smb.conf e em seguida a explicaao de cada parmetro presente nas seoes: [global] comment = Servidor SAMBA workgroup = EMPRESA security = user os level = 100 announce as = NT Server domain logons = yes logon script = %U.bat logon path = \\%L\Profiles\%U domain master = yes local master = yes preferred master = yes guest account = nobody # wins server = 192.168.0.2 wins support = yes keep alive = 20 debug level = 3 winpopup command = csh -c ''xedit %s;rm %s'' & log file = /var/log/samba_log.%u null passwords = no unix password sync = yes socket options = IPTOS_LOWDELAY TCP_NODELAY printing = bsd printcap name = /etc/printcap 38

A P O STI L A DE GNU / LINUX load printers = yes hosts allow = 192.168.0. 127. hosts deny = 192.168.0.3 192.168.0.4 [homes] comment = Pastas dos Usuarios public = no browseable = yes writeable = yes hosts deny = 192.168.0.250 [printers] comment = Impressoras Linux public = no browseable = yes printable = yes read only = yes create mode = 0700 path = /var/spool/samba admin users = admin, usuario1 [netlogon] comment = Compartilhamento de Scripts path = /etc/scripts public = no browseable = yes writeable = no [diretoria] comment = Grupo Diretoria path = /home/diretoria public = no browseable = yes writeable = yes write list = @diretoria force create mode = 0777 force directory mode = 0777 [comercial] comment = Grupo Comercial path = /home/comercial public = yes browseable = yes 39

A P O STI L A DE GNU / LINUX writeable = yes write list = @comercial read list = @marketing force create mode = 0777 force directory mode = 0777 [transf] comment = Area de Transferencia path = /home/transf public = yes browseable = yes writeable = yes write list = @todos force create mode = 0777 force directory mode = 0775 max disk size = 200 [oculto$] comment = Especifico do Admin path = /home/admin/oculto copy = homes max connections = 1

Parmetros comment workgroup

Funoes Comentrio para este Host na Rede. Especifica o Domnio ou Workgroup a que o Host pertence na Rede. Por padrao o SAMBA utiliza a segurana a nvel de usurio (security = user), mas existem outras opoes: security = share -> Senhas de acesso serao solicitadas por cada recurso compartilhado e nao por usurio, ou seja, cada diretrio ou impressora poder ter uma senha nica conhecida pelos usurios autorizados. security = user -> As permissoes sao dadas de acordo com o login do usurio, ou atravs dos grupos (@grupo). security = server -> O SAMBA tentar validara senha do usurio enviando os dados para outro servidor SMB, como outro servidor SAMBA ou um servidor Windows. Deve-se incluir o parmetro .password server = x.x.x.x. na seao [global] do smb.conf. security = domain -> Usado se o Host for adicionado a um 40

security

A P O STI L A DE GNU / LINUX Domnio Windows atravs do comando smbpasswd. Neste caso as informaoes de usurio e senha serao enviadas para o PDC da rede, exatamente como o servidor NT faria. Note que necessrio que a conta do usurio exista tanto no Linux quanto no servidor primrio. Este parmetro nao obrigatrio se voce nao possui um servidor Windows na rede, mas deve ser usado caso tenha um ou mais. A varivel um nmero de 1 a 255, onde 65 a mesma varivel utilizada pelo servidor Windows. Especifique um nmero maior que este (como 100 por exemplo) para garantir que o servidor SAMBA seja eleito na escolha de validaao do login das estaoes. Permite especificar o tipo de servidor NetBios (nmbd) que ser divulgado na rede. As opoes aceitas pelo SAMBA: "NT Server", "NT Workstation", "Win95" ou "WfW". Usado para validar o login na rede, apenas para estaoes Windows. Indica qual arquivo de logon script ser executado para os usurios. A varivel %u corresponde ao usurio na rede. Deve tambm ser criado um compartilhamento de nome [netlogon] apontando para o diretrio dos scripts. Indica o caminho do perfil remoto do usurio. A varivel %L corresponde ao nome do servidor NetBios (que pode ser o prprio SAMBA). O logon path til quando usurios costumam efetuar logon em mais de um Host na rede, pois seu perfil trazido com o logon. No caso do exemplo, o diretrio "Profiles" deve conter os scripts (em formato Microsoft usando NET USE e etc) e os scripts devem ser criados com o notepad do Windows por exemplo, a fim de conservar o formato do arquivo. Indica se o Host ser o Domain Master Browser da rede inteira (WAN). Indica se o Host ser o Master Browser da rede local. Este parmetro fora a eleiao do SAMBA como Master Browser para o workgroup. recomendvel utilizar este parmetro em conjunto com o .domain master = yes. para garantir a eleiao. Mas tome cuidado: se voce possui uma rede com servidores Windows e SAMBA e j possui um 41

os level

announce as

domain logons

logon script

logon path

domain master local master

preferred master

A P O STI L A DE GNU / LINUX servidor como Domain Master, nao use esta opao e deixe o parmetro .os level = 65. para haver equilbrio. guest account O SAMBA trabalha melhor em redes Microsoft com a existencia de uma conta guest (visitante em ingles). Por padrao a conta usada .nobody. Indica qual o servidor de Wins da rede. Se o prprio Host for o servidor de Wins entao nao utilize este parmetro, pois haver um loop e o sistema travar! Permite ao SAMBA ser o servidor de Wins na rede. Isto significa que o SAMBA ter uma tabela com o ambiente completo da rede, garantindo que as estaoes tenham acesso a estas informaoes e ganho em velocidade para encontrar e acessar os compartilhamentos e impressoras. O Wins Server deve ser especificado na configuraao de rede (TCP/IP) das estaoes, que o endereo IP do servidor. Como mquinas rodando Windows tendem a travar de tempos em tempos, este parmetro usado para verificar o estado da conexao, evitando trfego desnecessrio na rede. Tambm pode ser usado para estaoes Linux. Parmetro usado para dar flexibilidade a configuraao do sistema. Permite ao SAMBA trabalhar corretamente com algumas situaoes de erro, por exemplo. Especifica qual commando ser executado quando o servidor receber mensagens Winpopup. Aqui, muitas opoes podem ser usadas de acordo com a preferencia do Administrador. Se sua rede utiliza mensagens deste tipo, interessante definir um comando para o parmetro, evitando assim possveis mensagens de erro para quem enviou a mensagem ao servidor. Indica o arquivo de log do SAMBA. A varivel %u corresponde ao nome de logon do usurio. Indica se ser ou nao possvel que usurios tenham senha nula de logon (logon sem senha). Se este parmetro for ativado (= yes) entao clientes SMB (como estaoes Windows) poderao trocar sua senha de login. Este parmetro permite configuraoes extras para o 42

wins server

wins support

keep alive

debug level

winpopup command

log file null passwords

unix password sync socket options

A P O STI L A DE GNU / LINUX protocolo, possibilitando uma melhor performance do servidor em lidar com os pacotes na rede. printing printcap name load printers Indica qual o sistema de impressao padrao utilizado pelo Linux. Indica o arquivo impressoras. para busca das definioes das

Disponibiliza as impressoras para a rede. Indica quais mquinas tem acesso ao servidor SAMBA. Pode-se utilizar o endereo IP ou o nome da mquina. Para garantir acesso a toda uma rede por exemplo, escreva: "hosts allow = 192.168.1.". Como em "hosts allow", mas para restringir o acesso ao servidor SAMBA.

hosts allow

hosts deny

A seao [homes] define os parmetros para as pastas pessoais dos usurios na rede (home dir): Parmetros comment public Funoes Comentrio para este compartilhamento. Tambm conhecido como .guest ok., permite ou nao acesso de outros usurios. Define se o compartilhamento ser ou nao visvel para o Ambiente de Rede. Estaoes Windows95 versao 4.00.950C nao aceitam esta opao, onde uma possvel soluao utilizar o nome do compartilhamento seguido de $ (teste$ por exemplo), como faz-se no Windows. Indica se o usurio poder ou nao ecrever em sua pasta pessoal (home dir).

browseable

writeable

As demais seoes correspondem a compartilhamentos presentes na rede. Os parmtros abaixo sao apenas alguns dos possveis: Parmetros comment Funoes Comentrio para o compartilhamento.

43

A P O STI L A DE GNU / LINUX path writeable public / guest ok browseable Caminho do diretrio compartilhado Indica se ser ou nao possvel criar ou excluir arquivos ou diretrios do compartilhamento. Indica se ser ou nao permitido o acesso de outros usurios. Define se o compartilhamento ser ou nao visvel para o Ambiente de Rede. Define os usurios e/ou grupos com acesso de escrita no compartilhamento. Para mais de um usurio, separe os nomes por vrgula (user1, user2, etc) e para grupos utilize @ antes do nome do grupo. Como em .write list., mas define quem ter permissao de apenas leitura. Diz ao SAMBA para forar o tipo de permissao dos arquivos criados (o mesmo que usar o chmod). Esta permissao tem menor prioridade que os parmetros .write list. e .read list.. O mesmo que .force create mode., mas para os diretrios criados no compartilhamento. Indica quais sao os usurios com permissao completa para o compartilhamento (permissao de root). Permite copiar os parmetros de outra seao, como um template por exemplo, til se utiliza compartilhamentos semelhantes. Para alterar parmetros basta inform-los na seao atual. Indica quais mquinas podem acessar o compartilhamento. Pode-se utilizar o endereo IP ou o nome da mquina. Para garantir acesso a toda uma rede classe C por exemplo, escreva: "hosts allow = 192.168.1.". Como em "hosts allow", mas para restringir o acesso ao compartilhamento. Permite especificar o nmero mximo de conexoes simultneas ao compartilhamento. Permite especificar qual o limite de espao em disco que o compartilhamento pode utilizar. Este valor definido em Mb

write list

read list

force create mode

force directory mode admin users

copy

hosts allow

hosts deny max connections max disk size

44

A P O STI L A DE GNU / LINUX (megabytes). A prxima apresenta variveis que podem ser usadas em parmetros: Variveis %S %u %g %H %m %L %M %a %I %T Funoes Nome do Servio (compartilhamento) atual. Nome do usurio. Nome do grupo. Nome do diretrio pessoal do usurio (home dir). Nome da mquina cliente fornecido pelo NetBios. Nome do servidor NetBios, permitindo que a configuraao desejada seja alterada de acordo com o cliente que vai acessar o sistema. Nome Internet da mquina cliente. Sistema Operacional da mquina remota, onde os reconhecidos sao WfW, WinNT e Win95. O endereo IP da mquina cliente. Data e horrio.

Exemplo de um smb.conf bsico para teste e implementao: [global] workgroup = Workgroup server string = Samba server ;wins support = no ###debugging### log file = /var/null syslog only = no security = share guest account = nobody [homes]

45

A P O STI L A DE GNU / LINUX browseable = no creat mask = 0700 directory mask = 0700 ###file sharing### [Compartilhado] path =/mnt/hdb/mpl/ browseable = yes security = user public = yes writable = yes 5.5 O smbclient Da mesma forma que o SAMBA permite que o Linux atue como servidor em redes Microsoft, ele tambm permite atuar como estaao, sem que nenhuma configuraao seja necessria no servidor Microsoft. Com o smbclient possvel acessar dados em um servidor Windows (lembra o comando net da Microsoft, mas os comandos utilizados sao similares aos de FTP). Ele pode ser usado para receber e enviar arquivos, listar diretrios, navegar pelos diretrios, renomear e apagar arquivos, entre outros. Diretrios compartilhados por um servidor SAMBA sao acessados da mesma forma. Para verificar quais compartilhamentos estao disponveis em um determinado Host, execute: #/usr/sbin/smbclient -L host_desejado A resposta ser uma lista de servios, ou seja, nomes de dispositivos ou impressoras que podem ser compartilhados com os usurios na rede. A menos que o servidor SMB nao tenha itens de segurana configurados, ser solicitada uma senha antes de mostrar as informaoes. Exemplo: #smbclient -L servidor1 A resposta ser semelhante a: Server time is Fri Dec 22 15:58:02 2000 Timezone is UTC+10.0 Password: Domain=[EMPRESA] OS=[Windows NT 4.0] Server=[NT LAN Manager 4.0] Server=[servidor1] User=[] Workgroup=[EMPRESA] Domain=[] 46

A P O STI L A DE GNU / LINUX Sharename Type Comment ADMIN$ Disk Remote Administration Public Disk Public C$ Disk Default Share Print$ Disk Printer Control Para acessar uma pasta compartilhada, basta especificar o caminho na rede, conforme abaixo: $smbclient //maquina/pasta1 senha Onde "senha" literalmente a senha de acesso. Se o caminho estiver correto a resposta ser algo como: Server time is Fri Dec 22 16:01:12 2000 Timezone is UTC+10.0 Domain=[EMPRESA] OS=[Windows NT 4.0] Server=[NT LAN Manager] smb:\> Digite help para obter ajuda sobre os comandos do smbclient.

47

A P O STI L A DE GNU / LINUX

6. SERVIDOR DNS BIND9

Boa parte da usabilidade da Internet vem da facilidade que temos para localizar um computador conectado. Apesar da maioria dos computadores s conseguirem localizar outros atravs de endereos IP, ns humanos podemos localiz-los facilmente atravs de um nome inteligvel. o que acontece, por exemplo, quando acessamos a pgina oficial do sistema operacional Linux atravs do nome www.linux.org, ao invs de precisarmos usar o nmero 198.182.196.56 que, c entre ns, bem mais feio. Esta converso de nome para nmeros feita automaticamente atravs do mecanismo de DNS (sigla de Domain Name System). Os administradores de rede gostam de colocar uns nomes um tanto quanto criativos nas suas mquinas. Alguns usam nomes de cidades da regio em que a LAN est localizada (como Olinda, Buque e Jaboato). Outros gostam de usar nomes de personagens de quadrinhos como Mnica, Cebolinha, Casco, Magali. Outros preferem nomes de grandes nomes da msica brasileira como Raul Seixas, Elis Regina e Tom Jobim. Assim como o DNS usado na Internet, pode tambm ser usado em uma rede interna para facilitar sua utilizao. Isso permite, por exemplo que ao invs de digitarmos ssh 10.1.1.4, possamos digitar simplesmente ssh raulseixas, uma seqncia bem mais fcil de ser memorizada. Vamos aprender aqui a configurar uma mquina em uma rede para saber localizar as demais pelo nome, ou seja, servir de "telefonista" para nossa rede. Ela vai receber pedidos do tipo "Estou querendo falar com raulseixas. Qual o endereo dele?" e vai responder "Para falar com o maluco beleza, tente 10.1.1.4". Neste artigo vamos utilizar o programa named, que parte do pacote BIND, disponvel em praticamente todas as distribuies Linux. Ele o programa que vai ficar rodando para receber requisies de mapeamento de nomes em endereos IP e, claro, respond-las adeqadamente. 6.1 Instalao do BIND9 Obter e instalar o named em uma mquina Debian fcil. Basta procurar em seu gerenciador de pacotes preferidos pelo pacote bind9. No obrigatrio, mas sempre bom obter a documentao, que est no pacote bind9-doc. Para instalar usando o apt, podemos fazer como no exemplo. # apt-get install bind9 bind9-doc dnsutils O apt vai ento nos mostrar algumas mensagens e instalar os pacotes que queremos. Depois que ele completar seu trabalho, j teremos nosso servidor DNS 48

A P O STI L A DE GNU / LINUX funcionando. Para tirar a prova, podemos pedir a ele o endereo para alguns nomes. Para isso vamos usar o dig, um programa que faz parte do pacote dnsutils. Poderamos tambm editar o arquivo /etc/resolv.conf para utilizar o novo servidor de nomes, mas mais higinico fazermos isso somente no final, quando tudo estiver funcionando perfeitamente.# dig www.linux.org @127.0.0.1 ; DiG 9.2.4 www.linux.org @127.0.0.1 ;; global options: printcmd ;; Got answer: ;; ->>HEADER 192.168.1.10 --> servidor ftp www --> 192.168.1.10 --> servidor web ns -----> 192.168.1.11 --> servidor dns secundario mail ----> 192.168.1.12 --> servidor de email O que precisamos fazer traduzir este mapeamento para a linguagem entendida pelo named. Crie o arquivo /etc/bind/db.meudominio com o seguinte contedo. # vi /etc/bind/db.meudominio$TTL 86400 @ IN SOA ns.meudominio.org.br. minhamaquina.meudominio.org.br. ( 1130118145 ; Serial 10800 ; Refresh

51

A P O STI L A DE GNU / LINUX3600 604800 86400 ) meudominio.org.br. ftp.meudominio.org.br. www.meudominio.org.br. ns.meudominio.org.br. meudominio.org.br. mail.meudominio.org.br. IN IN IN IN IN IN NS A A A MX 10 A ; Retry ; Expire ; Minimum ns.meudominio.org.br. 192.168.1.10 192.168.1.10 192.168.1.11 mail.meudominio.org.br. 192.168.1.10

As quatro ltimas linhas especificam nosso mapeamento, exatamente como definimos anteriormente. Sempre que quisermos adicionar novos nomes, s precisamos editar este arquivo. Se, por exemplo, quisermos adicionar endereos para as mquinas dos personagens imaginrios Andr e Beto, localizadas nos IPs 192.168.1.17 e 192.168.1.18, respectivamente, basta adicionarmos ao final do arquivo /etc/bind/db.meudominio o trecho abaixo.andre.meudominio.org.br. beto.meudominio.org.br. IN IN A A 192.168.1.17 192.168.1.18

Observe ainda que possvel especificar que o mesmo IP responder por mais de um nome. A mquina 192.168.1.10 do nosso exemplo est respondendo pelos nomes ftp e www simultaneamente. O contrrio, especificar vrios endereos para o mesmo nome, tambm possvel. Agora que terminamos de editar nossos arquivos hora de fazer uma reviso rpida neles e reiniciar o servio de nomes, para que ele carregue os novos dados. # /etc/init.d/bind9 restart Stopping domain name service: named. Starting domain name service: named. Para testar nossa configurao, vamos usar novamente o dig. Do mesmo modo que consultamos anteriormente o endereo para uma mquina na rede externa (www.linux.org), agora vamos consultar o endereo para um nome de mquina na rede interna.$ dig ftp.meudominio.org.br @127.0.0.1 ; DiG 9.2.4 ftp.meudominio.org.br @127.0.0.1 ;; global options: printcmd ;; Got answer: ;; ->>HEADER