manual linux network

Upload: silva1640

Post on 12-Oct-2015

216 views

Category:

Documents


3 download

TRANSCRIPT

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 1

    FORMAO LINUX ADMINISTRATOR

    MDULO

    LINUX NETWORK ADMINISTRATOR (V.2.1S - 2013)

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 2

    Este manual est protegido por direitos autorais,

    sendo a verso averbada legalmente.

    VOC PODEVOC PODEVOC PODEVOC PODE realizar o seu download diretamente do site da M.Cury,

    imprimir e utilizar para estudo ou referncia,

    mantendo a sua integridade e referncias.

    VOC PODEVOC PODEVOC PODEVOC PODE disponibiliz-lo para download em seu site ou pgina social,

    mantendo a sua integridade e referncias.

    VOC PODEVOC PODEVOC PODEVOC PODE utiliz-lo em outro local de treinamento, empresa, curso ou

    palestra, distribuindo-o gratuitamente, de forma impressa ou digital,

    mantendo a sua integridade e referncias.

    .

    VOC NO PODEVOC NO PODEVOC NO PODEVOC NO PODE vend-lo ou utilizar de forma comercial

    em nenhum local, ainda que de forma impressa ou digital.

    Contribua com o Manual da M.Cury.

    Envie sua contribuio ou correes para [email protected]

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 3

    CARACTERSTICAS DO LINUX NETWORK ADMINISTRATOR:

    O curso de Linux Network Administrator uma preparao para as provas do Linux Professional Institute (LPI) de Nvel 2. As provas 117-201 e 117-202 so provas voltadas para o Administrador de Linux Pleno com foco principalmente em servios e na resoluo de problemas (troubleshooting). Alm de ser voltado para as provas de Certificao o objetivo do curso preparar Administradores capazes de:

    Instalar e configurar os principais servios utilizados nas empresas;

    Gerenciar contas e domnios hbridos;

    Analisar Logs e informaes do sistema a fim de resolver problemas e evitar possveis falhas de funcionamento;

    Melhorar a segurana de servios a fim de garantir um melhor funcionamento;

    Estar apto a entender o funcionamento dos servios e desenvolver solues para integrao dos mesmos.

    Alguns dos tpicos vistos neste curso so vises mais aprofundadas de servios vistos no Curso de Linux System Administrator, fortalecendo assim conhecimentos adquiridos no curso anterior e ampliando a aplicao dos mesmos. O Manual visa orientar o aluno em relao matria que ser passada em sala de aula e permitir que o aluno adicione suas prprias impresses e comentrios do Instrutor para complementar o contedo escrito.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 4

    ndice:

    Tpico Pgina 01- Processo de Inicializao do Linux 05 02- Kernel e Mdulos 20 03- Manuteno e Reparo de Sistemas de Arquivos 39 04- Hardware e Arranjos 50 05- Backup 64 06- Gerenciamento de Rede 69 07- Gerenciamento de Domnios 89 08- DHCP 106 09- Compartilhamento de diretrios em Linux 111 10- Gerenciamento de Log 116 11- Agendamentos 125 12- Samba 132 13- LDAP 142 14- SuperDaemons 158 15- OpenSSH 164 16- Servidor FTP 172 17- Servidor HTTP 186 18- Servidor Proxy 196 19- Servidor de Email 205 20- Firewall 227 21- Autenticao PAM 237

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 5

    1- PROCESSO DE INICIALIZAO DO LINUX

    1.1 A inicializao do computador e o Init O Processo Init o mais importante de todo o sistema j que ele que inicia todos os outros processos e permite que cada runlevel seja executado corretamente, fazendo assim o papel de processo pai de todos os processos e o processo de nmero 1. Desde o momento em que ligado o computador executa vrias tarefas e processos que vo desde verificao do hardware presente, execuo de cdigos obrigatrios at o carregamento do Sistema Operacional propriamente dito. Abaixo segue um resumo de como iniciado o computador:

    Ao ser ligado o computador executa o POST (Auto Teste de Ativao) (Power On Self-Test), onde ele verifica se todo hardware mapeado se encontra nos locais indicados;

    Aps isso ele executa o BIOS que foi configurado via SETUP;

    Carrega o BOOTLOADER (GRUB/LILO) que est gravado na MBR (Registro Principal de Inicializao);

    O BOOTLOADER carrega o KERNEL que est mapeado, endereado fisicamente no disco, em seu arquivo de configurao;

    Aps carregar o KERNEL, ele carrega se existir o INITRD, que um arquivo que geralmente contm mdulos adicionais ao kernel e uma estrutura chamada ROOTFS que cria um pseudo / (raiz) na memria, aps carregar o INITRD, o KERNEL o converte em um RAMDISK e libera a memria que o initrd ocupava;

    Aps o carregamento do INITRD executado o script LINUXRC, que monta o raiz no / (real) com o comando pivot_root;

    iniciado o processo INIT que carrega o RUNLEVEL corretamente configurado no /etc/inittab;

    No final da execuo do INIT, carregado geralmente o primeiro comando interativo (GETTY/MINGETTY/AGETTY) que cria os terminais e disponibiliza o prompt de login.

    O funcionamento do initrd e as caractersticas do kernel sero estudadas em captulos adiante.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 6

    Resumindo o mapeamento de hardware feito pelo kernel e o carregamento do sistema operacional e servio feito pelo init. 1.2 Tipos de Init Existem, basicamente, dois tipos de init usado pelas distribuies Linux: A maioria usa o SysV Init e outras como o Slackware usam uma variante do BSD Init, e temos os novos candidatos a substituir o SysV Init que so o Upstart e o SystemD. As principais caractersticas destes sistemas de inicializao so:

    O SysV dividido em runlevels, configurado pelo arquivo /etc/inittab e possui diretrios prprios para os scripts e para os links simblicos que os executam, ele mais complexo e mais flexvel em termos de configurao;

    O BSD init configurado pelo arquivo /etc/rc, no possui runlevels e no tem diretrios especficos para scripts, ele mais simples e mais enxuto termos de configurao.

    1.3 A configurao do INIT Estudaremos o SysV Init que o padro da maioria das distribuies Linux.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 7

    O processo init configurado atravs do arquivo /etc/inittab. Onde so configurados o runlevel, os terminais, scripts principais de inicializao e algumas teclas de controle e funes de gerenciamento de energia. Cada linha do arquivo segue a seguinte estrutura: id:runlevel:action:process

    Onde: id = sigla de identificao da linha, geralmente est relacionada com a ao configurada, uma contrao das palavras que definem a ao; runlevel = em que nvel o processo ser executado; action = ao do init para aquele processo; process = qual comando/script ser executado. As principais aes do init so: initdefault - define o nvel padro do sistema sysinit - define o principal script do sistema, executado antes das outras aes boot - ao prioritria, executada depois da sysinit e antes das outras wait - define que cada script deve ser iniciado e terminado antes de executar o prximo respawn - define que se o processo for morto ele deve ser reiniciado ctrlaltdel - define a ao associada s teclas control + alt + del kbrequest - define a ao associada s teclas alt + seta para cima powerfailnow powerokwait - aes relativas a gerenciamento de energia powefail Estas aes de gerenciamento de energia funcionam quando o computador est ligado a sistemas UPS de energia (no-break inteligente). Os nveis de execuo (RUNLEVEL) so: 0 Desligamento (Halt) 1 Monousurio (Single User) 2 Multiusurio sem NFS 3 Multiusurio com NFS 4 Multiusurio 5 Multiusurio com NFS e Servidor X 6 Reincio (Reboot) Existem outros nveis de execuo que no so documentados pela maioria das distribuies Linux, como os nveis S ou s que na verdade so usados para entrar no nvel de monousurio e no precisam do inittab.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 8

    Os Runlevels so definies de quais servios o sistema deve ou no executar em uma determinada configurao. Assim determinados scripts tem ordem para iniciar em um runlevel e ordem para fechar em outro. Por exemplo:

    No runlevel 6 ele deve fechar todos os servios que estiverem abertos, fechar todos os processos e no final reiniciar o computador;

    No runlevel 1 ele deve fechar quase todos os servios, fechar os terminais e permitir apenas login de root no tty1;

    No runlevel 3 ele deve carregar todos os servios, todos os compartilhamentos, permitir mltiplos logins de usurios e no executar o servidor grfico;

    Portanto o que diferencia um runlevel de outro a deciso que tomada (iniciar ou fechar) com os scripts de inicializao. O init executa, sempre que carregado, o script configurado com a ao sysinit (geralmente rc.sysinit), e aps carregar os scripts do nvel configurado na ao initdefault ele executa o script rc.local. Em distribuies baseadas em Debian o script principal se chama rcS, geralmente pequeno e usado apenas em personalizaes administrativas. Em distribuies baseadas em Red Hat o script principal o rc.sysinit e geralmente carrega as principais funes do sistema, como RAID, LVM, servios de boot, etc. Exemplo de inittab padro Red Hat para o runlevel 5:

    1.3.1 Upstart O upstart um daemon baseado em evento e um substituto do /sbin/init (pai de todos os processos).

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 9

    Ele assegura o comeo e parada das tarefas e servios durante o boot, bem como uma parada programada, alm de supervisionar os sistemas em execuo. Foi originalmente desenvolvida para a distribuio Ubuntu, mas adequado para ser implantado em todas as distribuies Linux como um substituto para o venervel init System-V. Destaques do upstart:

    As tarefas e os servios so comeados e parados por eventos (Signal);

    Os eventos so gerados enquanto as tarefas e os servios esto funcionando ou parados;

    Os eventos podem tambm ser gerados em intervalos programados, ou quando os arquivos de configurao forem alterados;

    Os eventos podem ser recebidos de qualquer um ou de processos do sistema;

    Os servios podem ser reiniciados se morrerem inesperadamente;

    Comunicao bidirecional com o daemon do init, para descobrir se os servios esto funcionando, porque falharam etc.

    Voc pode comear a utilizar o upstart atravs dos comandos de controle. # stop portmap Para o portmap. # initctl list Lista todos os servios em execuo e seu estado (start, stop, waiting). Se voc executou o comando acima para o portmap, ver que ele ir aparecer como waiting. # start portmap Inicia o portmap. # status portmap Verifica o status do portmap. Onde configurar as opes que tinham no inittab? Ao contrrio do System V, que concentrava todas as configuraes em um nico arquivo (/etc/inittab), agindo na forma serial de inicializao, o upstart utiliza um arquivo para cada item, antes contido no inittab. Os arquivos ficam dentro do diretrio /etc/init. Dentro deste diretrio voc ir encontrar os arquivos que habilitam as opes antes encontradas no inittab, como os terminais TTY, control-alt-delete, udev e etc. Exemplo: Para habilitar o tty2 apenas no runlevel 3 edite o arquivo abaixo: # vim /etc/init/tty2.conf

    start on runlevel [2] stop on runlevel [!23]

    respawn exec /sbin/getty -8 38400 tty2 Com o upstart as configuraes ficaram bem mais flexveis. Coloque start para inicializar ou stop para desligar um processo no runlevel desejado. Alterando o seu runlevel default

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 10

    Para alterar o initdefault necessrio alterar o arquivo rc-sysinit.conf. Altere a varivel DEFAULT_RUNLEVEL=2 pelo runlevel que deseja inicializar. No antigo init (SysV init) qualquer alterao no arquivo /etc/inittab, para que as novas configuraes fossem carregadas, necessrio rodar o comando init q sem a necessidade de reiniciar a mquina, e para o upstart o procedimento o mesmo. Finalizando O contedo de um arquivo dentro do /etc/init tem as seguintes caractersticas:

    Os arquivos contidos em /etc/init executam um comando sempre aps o "exec".

    Outro ponto interessante colocar o parmetro "respawn". Esse parmetro monitora o comando executado. Caso o mesmo termine inesperadamente, um novo programa inicializado automaticamente. empregado normalmente para os terminais virtuais (ttys)

    Nos arquivos, alm das execues acima possvel tambm executar um script. 1.3.2 Systemd O sistema de superviso e inicializao de servios Systemd foi anunciado como o novo, revolucionrio e totalmente inovador substituto do venervel SysVinit. De fato, na descrio terica ele parece ser muito poderoso, embora menos flexvel do que uma srie de scripts de shell. Distribuies que utilizam o systemd por padro:

    Fedora 15 e superior;

    Mageia 2 utiliza systemd por padro;

    Mandriva 2011 tem o systemd habilitado por padro;

    OpenSUSE usa systemd por padro a partir da verso 12.1 e superior. Distribuies onde o systemd est disponvel:

    Arch Linux tem pacotes para o system;

    Debian GNU/Linux tem pacotes para systemd no repositrio "testing";

    Gentoo oferece pacotes com systemd. Entre suas caractersticas especiais est o de garantir que determinado servio foi parado e, com ele, todos os processos filhos que este havia gerado. O subsistema que permite esse recurso conhecido como Cgroups (Control Groups, ou grupos de controle) e reside no kernel. Os Cgroups permitem atribuir rtulos (ou tags) a cada processo que for iniciado no sistema, alm de registrar tais informaes (processos e seus respectivos rtulos) num pseudo-sistema de arquivos, o que facilita imensamente sua consulta por qualquer programa ou usurio. Outra caracterstica em relao a montagem de sistemas de arquivos. O Systemd dotado de inteligncia onde necessrio. Ele l o arquivo /etc/fstab durante a inicializao do sistema, e cria as polticas de montagem automtica dos sistemas de arquivos descritos no arquivo. O Systemd no faz uso do servio autofs. Ele utiliza o suporte do kernel ao autofs, mas implementa internamente as montagens automticas, de forma totalmente independente do servio autofs. Arquitetura do Systemd O Systemd visa a agir nos dois principais pontos problemticos do SysVinit: shell e paralelismo. Para eliminar o uso do shell, o Systemd realiza todas as chamadas redundantes isto , aquelas presentes na maioria dos scripts de forma embutida no binrio /sbin/systemd. E para permitir o paralelismo, o Systemd abre sockets para comunicao entre os servios, de forma que todos os servios marcados pelo

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 11

    administrador como desejados possam iniciar em paralelo e, caso dependam de outros servios, estes tambm sejam iniciados sob demanda. Diretrios do Systemd Instalar o Systemd, no momento, uma tarefa restrita a algumas distribuies, como Fedora, openSUSE, Debian, Gentoo, Arch e Ubuntu (este utiliza upstart por padro). Os arquivos responsveis pelos servios no Systemd se localizam em /lib/systemd/system/. No entanto, como cada administrador pode e deve como no caso das montagens de sistemas de arquivos criar os seus prprios servios, h um diretrio especfico para esse tipo de personalizao: /etc/systemd/system/. Ou seja: no mexa no /lib/systemd/system/. Mexa somente em /etc/systemd/system/. No se espera que o diretrio /lib/ tenha arquivos de configurao alterados pelo administrador. Uma listagem do diretrio /lib/systemd/system/ logo aps a instalao revela algo em torno de 140 arquivos e diretrios. Estes so servios que o pacote j traz configurados e instalados para voc. Voc pode se basear neles para escrever os seus prprios servios. Arquivos de servios Um fato muito positivo sobre o Systemd que a documentao j est muito bem feita. O pacote do Systemd j traz as pginas de manual de cada tipo de servio. Experimente: # man -k systemd systemd.automount (5) - systemd automount configuration files systemd.conf (5) - systemd manager configuration file systemd.device (5) - systemd device configuration files systemd.exec (5) - systemd execution environment configuration systemd.mount (5) - systemd mount configuration files systemd.path (5) - systemd path configuration files systemd.service (5) - systemd service configuration files systemd.snapshot (5) - systemd snapshot units systemd.socket (5) - systemd socket configuration files systemd.special (7) - special systemd units systemd.swap (5) - systemd swap configuration files systemd.target (5) - systemd target configuration files systemd.timer (5) - systemd timer configuration files systemd.unit (5) - systemd unit configuration files H uma pgina de manual para os arquivos de servios (systemd.service), e ela que devemos consultar para entender ou desenvolver arquivos de servios. Gerenciar servios com o comando systemctl: # systemctl status irqbalance.service Verifica o estado atual do servio irqbalance. # systemctl enable httpd.service Habilita o servio httpd. # systemctl restart httpd.service Reinicia o servio httpd. # systemctl stop httpd.service Para o servio httpd.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 12

    # systemctl disable telnet.service Desativa o servio telnet. # systemctl list-units --type=service Lista todos os servios ativos. 1.4 O gerenciamento dos scripts de inicializao Os scripts de inicializao ficam no diretrio /etc/init.d (Debian) ou /etc/rc.d/init.d (Red Hat), no Red Hat existe um link para redirecionamento do rc.d para init.d. Para no ser preciso modificar o script em cada runlevel, existem diretrios onde so criados links simblicos apontando para os scripts em /etc/init.d. De /etc/rc0.d at /etc/rc6.d de acordo com o runlevel desejado. Os links simblicos para os scripts so tratados da seguinte forma:

    Os scripts que comeam com K recebem a instruo de fechar naquele nvel (stop);

    Os scripts que comeam com S recebem a instruo de iniciar naquele nvel (start); A ordem de execuo determinada pelos nmeros de 00 a 99 que esto juntos da letra (K ou S) no nome do link simblico. Os links simblicos com a letra K so executados antes dos links com a letra S (ordem alfabtica). Como no exemplo abaixo: K20nomedoscript fechar o script na ordem 20 S35nomedoscript iniciar o script na ordem 35 Para verificar s listar os diretrios dos runlevels: debian:~# ls -l /etc/rc0.d

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 13

    ou debian:~# ls -l /etc/rc2.d

    Os scripts que so carregados na verdade esto em /etc/init.d e so utilizados da seguinte forma: Em qualquer Linux: /etc/init.d/nome_do_script

    Onde o parmetro pode ser no mnimo start ou stop, para iniciar e parar o script respectivamente. Alguns scripts possuem outras instrues de execuo como: restart, reload, status, etc. De acordo com a distribuio utilizada existem ferramentas para lidar com os scripts de inicializao: Em distribuies baseadas em Red Hat: service

    Em distribuies baseadas em Debian: invoke-rc.d

    Segue abaixo um exemplo de script que acata as instrues de stop, start e restart para realizar funes diferentes: debian:~# vi /etc/init.d/teste.sh #!/bin/bash # Script de teste de inicializao # Funo que escreve quando o script recebe a instruo de start inicia () { echo -e \n Iniciando script \n sleep 3 } # Funo que escreve quando o script recebe a instruo de stop para () {

    echo -e \n Fechando script \n sleep 3 }

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 14

    # case para testar os parmetros passados ao scripts case $1 in start) inicia ;; stop) para ;; restart) para ; inicia ;; *) echo Use: /etc/init.d/teste.sh (start|stop|restart) ;; esac ### FIM debian:~# chmod -v 755 /etc/init.d/teste.sh O prximo passo seria criar os links simblicos para todos os runlevels com o comando ln, da seguinte forma: debian:~# ln -s /etc/init.d/teste.sh /etc/rc0.d/K20teste.sh debian:~# ln -s /etc/init.d/teste.sh /etc/rc1.d/K20teste.sh debian:~# ln -s /etc/init.d/teste.sh /etc/rc6.d/K20teste.sh debian:~# ln -s /etc/init.d/teste.sh /etc/rc2.d/S80teste.sh debian:~# ln -s /etc/init.d/teste.sh /etc/rc3.d/S80teste.sh debian:~# ln -s /etc/init.d/teste.sh /etc/rc4.d/S80teste.sh debian:~# ln -s /etc/init.d/teste.sh /etc/rc5.d/S80teste.sh Mas cada distribuio tem sua prpria ferramenta de ativar scripts de inicializao: Em Debian temos o update-rc.d que independente se o script tem a estrutura certa ou no ele cria os links, geralmente ele utiliza um cabealho para estar de acordo com os padres LSB, apesar de que este cabealho no obrigatrio para o correto funcionamento do script ele complementa as informaes do mesmo: update-rc.d

    Criando os links simblicos: debian:~# update-rc.d teste.sh defaults 80 20

    Ele ir criar os links simblicos para runlevel com a seguinte ordem ir fechar como 20 e iniciar como 80.

    Assim fechar no incio do processo de desligamento e iniciar como um dos ltimos scripts j que ele depende que outros servios do sistema estejam carregados. No comando abaixo removemos os links para o script: debian:~# update-rc.d -f teste.sh remove

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 15

    Em Red Hat temos o chkconfig, para adicionar o script ao runlevel: red-hat:~# chkconfig --add Para remover o script: red-hat:~# chkconfig --del Mas o chkconfig trabalha apenas com scripts que tenham as seguintes linhas no incio do arquivo, aps a linha #!/bin/bash : # chkconfig: 2345 80 20 # description: Script para teste de inicializao As linhas acima especificam que o script ser iniciado do nvel 2 ao 5 com a posio 80 e fechado nos outros nveis na posio 20. A descrio facilita na hora de listar o script para identificar sua funo. Se adicionarmos essas duas linhas no incio de nosso script e utilizarmos o chkconfig no Red Hat teremos o seguinte resultado: red-hat:~# chkconfig --add teste.sh red-hat:~# chkconfig --list teste.sh

    Desabilitando o script em um determinado runlevel:

    Existem outros comandos que auxiliam na configurao de quais scripts devem ser executados pelos runlevels, como:

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 16

    NTSYSV Usado em distribuies Red Hat ele usa uma interface em modo texto para ativar ou desativar scripts no nvel de execuo em que o administrador estiver naquele momento. Exemplo: red-hat:~# ntsysv

    RCCONF Usado em distribuies Debian ele usa uma interface em modo texto para ativar ou desativar scripts no nvel de execuo em que o administrador estiver naquele momento. Exemplo: debian:~# rcconf

    1.5 Comandos teis Alguns comandos sero teis para manipular o init durante o uso do sistema, como: INIT O comando init tem como funo manipular o daemon do INIT, mudando o runlevel do sistema ou simplesmente recarregando o arquivo inittab sem reiniciar o computador.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 17

    Exemplo: debian:~# init q Reexecuta o init relendo o inittab debian:~# init 6 Muda o runlevel do sistema para o nvel 6 (reboot) debian:~# init 5 Muda o runlevel do sistema para o nvel 5 (X) debian:~# init u Reexecuta o init sem reler o inittab debian:~# init S Muda o runlevel para o nvel S TELINIT Este comando geralmente tem a mesma funo do comando init. RUNLEVEL Mostra o nvel de execuo anterior e o atual. Se no houver nvel anterior ser mostrada a letra N. Exemplo: debian:~# runlevel N 2 WHO O comando who mostra informaes alm de apenas quem est logado. Como por exemplo o nvel de execuo atual, a data e hora em que foi executado, e o nvel anterior. Exemplo: debian:~# who -r run-level 2 2009-05-03 17:17 last=S 1.6 Contornando o INIT A idia de contornar o processo init alcanar o prompt de comandos sem ter que iniciar os servios e restries que so impostas na inicializao normal ou porque o init est falhando em algum momento. Usamos este tipo de procedimento tanto para corrigir erros de inicializao, ou erros de scripts, quanto para quebrar a senha do root. 1.6.1 Para contornar o processo de inicializao atravs do gerenciador de boot, por problemas durante a execuo do init, ou na montagem das parties (erros no fstab). Digite na tela de edio do gerenciador de boot o seguinte:

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 18

    init=/bin/bash Onde voc est indicando para o sistema que o processo que inicializa o Linux no o /sbin/init e sim o /bin/bash iniciando assim direto no shell. Aps iniciar basta remontar o raiz como leitura/escrita e utilizar o comando desejado, presumindo que o seu sistema raiz seja /dev/sda1: debian:~# mount /dev/sda1 / -o remount,rw debian:~# passwd O problema deste mtodo que como no foi feita a inicializao completa pelo processo init no temos outros terminais e nem sinais de controle, sendo assim se algum comando for digitado errado pode ser que no tenha como interromp-lo. Pode-se desta forma: editar o fstab, corrigir o inittab, mudar uma senha de root que foi esquecida, etc. 1.6.2 Quando o erro for no sistema de arquivos (filesystem), impossibilidade de carregar o init ou ter perdido o gerenciador de boot (instalando outro sistema por cima) basta iniciar o sistema com um CD de instalao ou um LiveCD de Linux e seguir os seguinte passos:

    executar o sistema de instalao at carregar o particionador, ou o LiveCD at o ter um shell

    criar um diretrio para montar o disco do sistema;

    executar o comando de chroot para mudar o raiz do sistema para o diretrio montado;

    executar o reparo do sistema;

    sair do chroot;

    reiniciar o computador. J estando com o sistema no CD executado e o disco identificado, veja o seguinte exemplo: debian:~# mkdir /mnt/sistema debian:~# mount /dev/sda1 /mnt/sistema debian:~# chroot /mnt/sistema /bin/bash debian:~# mount /proc /proc -bind debian:~# grep -v rootfs /proc/mounts > /etc/mtab debian:~# grub-install /dev/sda debian:~# umount /proc debian:~# exit

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 19

    debian:~# umount /mnt/sistema debian:~# reboot Resumo do que foi feito: 1 Criou o ponto de montagem; 2 Montou a partio no ponto de montagem; 3 Transferiu o sistema raiz do CD para a partio montada; 4 Montou o /proc para ter acesso s informaes do kernel; 5 Colocou no mtab a informao da partio raiz montada; 6 Instalou o Grub na MBR no modo no interativo; 7 Desmontou o /proc; 8 Saiu do ambiente de chroot; 9 Desmontou a partio do sistema; 10 Reiniciou o computador. Apesar de usar o mtodo no exemplo para regravar a MBR possvel executar quase todos os comandos e servios em um computador que foi inicializado a partir do CD e transportado para o sistema instalado em disco.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 20

    2- KERNEL E MDULOS

    2.1 Compilao de Kernel Compilar o kernel um passo importante para a otimizao e suporte a hardware que um administrador deve conhecer. O que cobrado nas provas o conhecimento de como compilar e o que est relacionado ao kernel no sistema. A localizao do cdigo fonte do kernel /usr/src e independente de qual verso do kernel est sendo utilizada o sistema procura /usr/src/linux como caminho para o cdigo fonte. Este link simblico utilizado principalmente por drivers que sero compilados posteriormente para esta verso de kernel.

    A compilao de kernel pode gerar dois tipos de imagens (arquivo do kernel j compilado), o zImage e o bzImage. A diferena entre essas imagens que a zImage uma imagem de kernel que ser executada em memria baixa (menos que 640kb) e muito pequena, incompatvel com a maioria do hardware atual que pede muitos drivers e suportes no kernel. A bzImage uma imagem que roda acima de 640kb podendo ter um tamanho muito maior e tambm um nmero muito grande de suporte embutido do kernel. 2.2 Patch O cdigo fonte do kernel pode precisar de modificaes antes de compilar. Isto geralmente feito aplicando um patch ao kernel, esse patch um arquivo que foi gerado na comparao do cdigo fonte do kernel original e um cdigo fonte de kernel modificado, tornando assim desnecessrio o download de outro arquivo de kernel completo.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 21

    Para aplicar um patch utilizamos o comando patch com a sintaxe: patch

    Onde: -i = arquivo de entrada; -R = reverter um patch aplicado; --dry-run = testar a aplicao de um patch; -N = ignora se um patch j foi aplicado; -p = em qual nvel de diretrio o patch deve ser aplicado A opo -p varia de p0 p4. Por exemplo -p0 indica que deve ser aplicado no prprio diretrio, -p1 indica que o patch deve ser aplicado em ../ , -p2 indica que o patch deve ser aplicado em ../.. , -p3 ../../.. , etc. O arquivo de patch geralmente criado com o comando diff, que compara estruturas, arquivos ou diretrios, e mostra em tela apenas as diferenas entre elas. Exemplo: Tendo o diretrio /usr/src/codigo-fonte1 com o kernel original, copio e modifico o que eu achar necessrio em /usr/src/codigo-fonte2, depois utilizo o comando diff para comparar os dois diretrio e mostrar apenas o que est diferente entre eles. Assim eu distribuo apenas as partes que modifiquei, no sendo obrigado a disponibilizar o cdigo fonte todo. Quem desejar modificar seu kernel com as minhas alteraes deve apenas usar o arquivo gerado pelo diff. Testar a aplicao do patch, estando dentro do diretrio do cdigo fonte com: debian:/usr/src/linux# patch --dry-run -p1 -i arquivo-de-patch.diff

    Aplica-se o patch, estando dentro do diretrio do cdigo fonte com: debian:/usr/src/linux# patch -p1 -i arquivo-de-patch.diff

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 22

    Para remover um patch basta digitar o seguinte: debian:/usr/src/linux# patch -p1 -R arquivo-de-patch.diff

    2.3 Make Aps a aplicao ou no de um patch precisamos escolher o que queremos de suporte no kernel e para isso utilizamos o comando make. O comando make uma ferramenta de compilao, na verdade o trabalho dele consiste, basicamente, em instruir o compilador de acordo com as instrues contidas em arquivos Makefile. Ele usado tanto para gerar o arquivo com as configuraes desejadas do kernel, quanto para compil-lo usando gcc. Exemplo: make

    Dentro do diretrio do cdigo fonte devemos gerar o arquivo .config (arquivo que configura os

    suportes e funes que queremos ou no no kernel) com algum dos seguintes comandos: make config - configurao com perguntas em modo texto para cada item do kernel, muito usado no incio do Linux. make xconfig - configurao com interface grfica (qt). make gconfig - configurao com interface grfica (gtk). make menuconfig - configurao com menus em modo texto, mtodo mais utilizado para escolha de opes do kernel. make cloneconfig - gera um .config a partir do arquivo /proc/config.gz do kernel em execuo.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 23

    make oldconfig - seleciona apenas as opes que so diferentes das de um .config existente. Exemplo: Se voc tiver um .config pronto de um kernel anterior ao que eu vou compilar, basta coloc-lo no diretrio do cdigo fonte atual que com o comando oldconfig o make ir escolher apenas as opes que so diferentes das marcadas no .config. make defconfig - seleciona as opes bsicas de hardware. Exemplo de make menuconfig:

    Aps criar o. config e escolher o que precisamos no kernel, que geralmente o passo que mais demora, devemos compil-lo com um dos seguintes comandos: make zImage compila um kernel que ter menos que 512kb. make bzImage compila um kernel que ter mais que 512kb (big zImage). make all compila o kernel e o mdulos. make modules compila os mdulos apenas. make modules_install instala os mdulos no sistema em /lib/modules/. make deb-pkg gera um pacote para Debian com o kernel e os mdulos, para facilitar a instalao em outras mquinas. make rpm-pkg gera um pacote para Red Hat com o kernel e os mdulos, para facilitar a instalao em outras mquinas. make clean limpa arquivos resultantes de compilaes anteriores. make mrpropper retorna ao padro os valores nos arquivos de configurao do kernel. Exemplo de linhas de compilao de kernel:

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 24

    A ordem das opes do make muito importante, e cobrada nas provas, portanto: debian:~# make dep clean bzImage modules modules_install Aps compilado o kernel ele fica no subdiretrio arch/x86/boot/ com o nome de bzImage, dependendo da sua arquitetura 32 bits (x86) ou 64 bits (x86_64).

    Aps instalado o kernel e mdulos teremos as seguintes estruturas no sistema:

    /boot/ - o nome geralmente usado para kernel vmlinuz

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 25

    /boot/System.map - o arquivo System.map um 'mapa' da tabela de nome e smbolos usados pelo kernel, pois a cada compilao eles podem mudar. /boot/config- - arquivo com todos os suporte, servios e mdulos compilados neste kernel (.config) /lib/modules/ - onde ficam os arquivos de mdulos para o kernel.

    2.4 Initial RamDisk O initrd um arquivo que iniciado junto com o kernel, isto ele tambm configurado no gerenciador de boot. A funo principal deste arquivo carregar os mdulos que o kernel precisa para iniciar o sistema, e tambm pode carregar um sistema de arquivos como um raiz (/) reduzido com alguns comandos e scripts que podem ser teis na hora do boot. Para criar o ramdisk podemos utilizar o comando mkinitrd ou mkinitramfs que um formato mais novo. A sintaxe dos comandos : mkinitrd mkinitramfs

    Para verificar um initrd existente faremos o seguinte: 1 Copiar o initrd do kernel para o diretrio /mnt com o nome de initrd.gz 2 - Criar um diretrio init e entrar nele 3 Descompactar o initrd utilizando o gunzip 4 Abrir o arquivo initrd com o cpio 5 Entrar no diretrio initrd Exemplo:

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 26

    Aps abrir o initrd podemos modific-lo se necessrio, podendo at alterar os executveis ou scripts que ele usa. Isto porm no recomendado, j que geralmente no h necessidade de mudanas no initrd. 2.5 Mdulos Os mdulos so os arquivos (geralmente compilados junto com o kernel) que fornecem ao kernel suporte para hardware, servios, protocolos, etc. A localizao dos mdulos fica em /lib/modules//kernel onde so divididos por categoria. Para saber a verso do kernel em uso basta utilizar o seguinte comando: debian:~# uname -r O diretrio dos mdulos /lib/modules/, onde tantos os mdulos como os arquivos de mapas e dependncias esto. No subdiretrio kernel onde ficam os mdulos, propriamente ditos, separados em subdiretrios de acordo com a categoria. Exemplo:

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 27

    Para gerenciar os mdulos usaremos os seguintes comandos: depmod cria/atualiza o arquivo modules.dep que contm a lista de todos os mdulos e suas respectivas dependncias lsmod lista os mdulos carregados em memria (em uso) modinfo exibe informaes de um mdulo (descrio, autor, verso) insmod carrega um mdulo em memria modprobe carrega um mdulo em memria e suas dependncias rmmod descarrega um mdulo da memria Os arquivos do sistema que configuram os mdulos so: /etc/modules nomes dos mdulos que sero carregados automaticamente no boot, em distribuies mais novas utiliza-se o arquivo /etc/modprobe.d/autoload /etc/modprobe.d/aliases apelidos para os mdulos Exemplo:

    /etc/modprobe.d/blacklist mdulos que no sero carregados automaticamente Exemplo:

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 28

    2.6 Gerenciador de Boot GRUB Para que o kernel compilado entre em uso preciso que seja configurado no gerenciador de boot. O GRUB um aplicativo que gerencia o boot tanto de Linux quanto de outros sistemas operacionais. Seus arquivos de configurao ficam em /boot/grub. O GRUB funciona em estgios e a execuo destes permite que o GRUB seja gravado na MBR e ainda assim possa iniciar vrios kernels e sistemas diferentes. O MBR contm o estgio 1 do GRUB. Como a MBR s tem 512 bytes de tamanho para iniciar um sistema, estgio 1 bem pequeno, sua funo carregar o prximo estgio do GRUB, que est gravado em outro setor do disco. O estgio 1 pode carregar o estgio 1.5 ou diretamente o estgio 2. O estgio 1 fica nos 30 primeiros Kb do disco imediatamente aps o MBR. O estgio 1.5 geralmente contm funcionalidades especficas para sistemas de arquivos (ext3, reiserfs, xfs,fat). carregado o estgio 2 que exibe a tela de menu com as opes de sistemas operacionais configurados no arquivo do GRUB. O GRUB carrega na memria o kernel ou o sistema operacional escolhido, assim o GRUB deixa a cargo do processo INIT ou do sistema de boot o resto da inicializao. O GRUB utiliza uma nomeclatura prpria para discos IDE e SCSI, portanto tanto os hda e das para o grub tem o mesmo nome hd0, segue uma pequena tabela de referncia: hda e sda = hd0 hda1 e sda1 = hd0,0 hda2 e sda2 = hd0,1 hda3 e sda3 = hd0,2 hdb e sdb = hd1 hdb1 e sdb1 = hd1,0 hdb2 e sdb2 = hd1,1 hdc e sdc = hd2 hdd e sdd = hd3

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 29

    O arquivo onde so configurados os sistemas e as opes do GRUB /boot/grub/menu.lst . Onde so especificados cada kernel, fundo de tela, tempo de espera, opes para segurana do boot, etc. As principais variveis deste arquivo so: default define o sistema padro a ser carregado; password senha para o GRUB; lock define que a senha para editar o GRUB; timeout tempo de espera at carregar o sistema padro; title nome que aparece na tela do grub; root em que partio est gravado o kernel; rootnoverify em que partio est o sistema, esta partio no ser montada; kernel qual o kernel e com quais opes ele ser iniciado; initrd qual o initrd que ser carregado com o kernel; chainloader qual o carregador de boot que o GRUB vai chamar, se for para chamar o que est no incio do disco basta colocar +1; Exemplo do arquivo do GRUB, utilizando a UUID no lugar do dispositivo: default 0 fallback 1 timeout 5 uuid d7a687a9-3b05-45be-bff1-8aded9e5e42b splashimage=(hd0,0)/boot/grub/splash.xpm.gz title Linux 2.6.26 uuid d7a687a9-3b05-45be-bff1-8aded9e5e42b kernel /boot/vmlinuz-2.6.26 root=UUID=d7a687a9-3b05-45be-bff1-8aded9e5e42b ro noapic nolapic quiet splash vga=792 initrd /boot/initrd.img-2.6.26 quiet title Linux 2.6.26 (recovery mode) uuid d7a687a9-3b05-45be-bff1-8aded9e5e42b kernel /boot/vmlinuz-2.6.26 root=UUID=d7a687a9-3b05-45be-bff1-8aded9e5e42b ro noapic nolapic single initrd /boot/initrd.img-2.6.26 Para gravar o GRUB na MBR podemos utilizar o comando grub-install ou grav-lo pelo shell do grub. Exemplo de disco sda com a partio do boot sendo sda1: Pelo prompt: debian:~# grub-install /dev/das

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 30

    ou debian:~# grub-install hd0 Pelo shell do grub: debian:~# grub grub> root (hd0,0) grub> setup (hd0) grub> quit debian:~#

    2.6.1 GRUB2 O GNU GRUB2 derivado de GRUB, the GRand Unified Bootloader, que foi originalmente concebido e implementado por Erich Stefan Boleyn. Esta atualmente em diversas distribuies GNU/Linux. As melhorias em relao ao GRUB incluem:

    apoio de scripts;

    mdulo de carregamento dinmico;

    modo de recuperao;

    menus personalizados;

    temas;

    Entre outras funcionalidades. Formato No antigo GRUB, os arquivos ficam localizados em /boot/grub/, inclusive o arquivo menu.lst que lido durante a inicializao, sendo exibido ao usurio na forma de menu do GRUB. O Grub2 desmembra em uma nova hierarquia de arquivos e diretrios:

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 31

    /boot/grub/grub.cfg Este o principal arquivo de configurao que substitui o menu.lst, e o mesmo no pode ser editado diretamente.

    Por padro, sempre que o comando update-grub executado, este arquivo refeito como somente leitura. Isto porque a inteno que o arquivo no seja editado manualmente. O usurio tambm ver uma infinidade de arquivos *. mod na pasta /boot/grub. Esses arquivos so de natureza modular do GRUB 2 e so carregados pelo mesmo durante a inicializao. /etc/grub.d/ Este novo diretrio contm os scripts do GRUB. Esses scripts so blocos de construo a partir do qual o arquivo grub.cfg construdo. Arquivos com numeral no incio so executados primeiro comeando pelo menor, exemplo: o 10_linux executado antes do 20_mentest, que executado antes do 40_custom. Entradas personalizadas podem se criadas no arquivo 40_custom ou num outro recm-criado. /etc/default/grub Este arquivo contm as configuraes do menu do GRUB que so lidos pelos scripts do GRUB e escritos em grub.cfg. a famosa parte de personalizao do GRUB. 2.7 Controle do Kernel O kernel pode ser modificado no s em sua compilao, mas tambm em sua execuo. O diretrio /proc/sys contm arquivos que podem ser editados com o kernel em uso e imediatamente mudam o comportamento do kernel para aquele item. Muitos utilizam o comando echo e o redirecionador > para isso, mas existe um comando especfico para esta funo, o comando sysctl. Para mostrar todos os valores do kernel: debian:~# sysctl -a Para reler o arquivo de configurao: debian:~# sysctl -p Para modificar um valor devemos saber o endereo do arquivo e depois modific-lo, exemplo: /proc/sys/net/ipv4/ip_forward debian:~# sysctl -w net.ipv4.ip_forward=1 Estaremos alterando o valor de ip_forward de 0 para 1, ligando assim o roteamento em ipv4.

    Exemplo do arquivo /boot/grub/grub.cfg

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 32

    Para que a alterao seja definitiva devemos alterar o arquivo /etc/sysctl.conf. Existem vrias outras funcionalidades que podemos ativar ou desativar pelo sysctl como ignorar ping, evitar redirecionamento de pacotes, ataques de syn flood, ataques de MITM, ataque de spoof, mximo de swap usada por processos, tamanho dos buffers usados nas conexes, etc.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 33

    3- SISTEMAS DE ARQUIVOS E MONTAGEM

    3.1 Sistemas de Arquivos Os sistemas de arquivos so as estruturas usadas em dispositivos de armazenamento a fim de que estes possam: receber dados, gerenciar os dados, e recuper-los quando necessrio. Utilizamos sistemas de arquivos em todos os sistemas operacionais, alguns j so nossos conhecidos, outros nem tanto:

    msdos

    fat16

    fat32

    ntfs

    iso9660

    udf Cada sistema de arquivos tem caractersticas especficas que os diferem entre si. Os sistemas de arquivos usados no Linux tambm, apesar de serem todos pra Linux ele tem pontos em comum e diferenas que os fazem ser incompatveis para migrao (a mudana s pode ser feita formatando). O primeiro sistema de arquivos usado no Linux foi o do minix, o primeiro sistema de arquivos criado para Linux foi o ext (sistema extendido). Todos os sistemas de arquivos usados hoje em dia (at os em desenvolvimento) usam journaling para evitar perdas de dados. O Journaling um servio de log de atividade do sistema arquivos, ele registra as mudanas que sero feitas no sistema de arquivos e depois grava as mudanas no disco. Ele utiliza arquivos que guardam informaes sobre outros arquivos (metadados) e arquivos com as mudanas que sero escritas no disco. Com isso mesmo que haja um desligamento indevido ou trava do sistema, o journal mantm informaes suficientes para que o sistema de arquivos possa ser iniciado e posto quase no mesmo estado de quando foi fechado. Com isso quase no h perda de dados e diminui muito a necessidade de uso da ferramenta de checagem. O journaling pode utilizar mtodos diferentes de gravao:

    Journal: grava o contedo na rea de metadados e quais mudanas sero feitas no sistema de arquivos antes de fazer a alterao na rea de dados, por isso ele demora mais nas operaes de escrita que os outros mtodos, mas o mais confivel;

    Writeback: grava os metadados no journal, mas no as alteraes que sero feitas no contedo dos arquivos. Assim ele o mtodo mais rpido de journal, mas o mais vulnervel em caso de reinicio indevido de sistema, pois por deixar a gravao das alteraes em disco para depois ele pode ter muitos dados aguardando na fila de gravao e no recuper-los corretamente;

    Ordered: grava as mudanas em arquivos de metadados, mas fora que os dados sejam gravados em disco logo aps serem escritos nos metadados do journal. o mtodo padro de journaling em sistemas ext3, no to rpido como o writeback e no to confivel como o journal, mas com uma relao segurana/velocidade aceitvel.

    O principais sistemas de arquivos utilizados em Linux so:

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 34

    ext2 Armazena arquivos de at 2gb, mapeia discos de at 16tb; sofre muito com inconsistncia dos dados;

    ext3 Basicamente um ext2 mais journaling, mais veloz que o ext2 e com melhores opes de hash e acesso a diretrios;

    ext4 Sucessor do EXT3, este sistema de arquivos suporta arquivos de at 16TB de tamanho e 1 exabyte de blocos no total. Um recurso muito interessante neste filesystem o de verificao de integridade de Journaling, o que incrementa mais confiabilidade para o recurso, que foi melhorado. A gravao atrasada de dados tambm pode ser considerada como um recurso muito til deste sistema de arquivos, pois aumenta a velocidade de leitura e gravao, apenas gravando um dado quando ele realmente for sair de cache. O tamanho do inode tambm maior do que no EXT3 (256bytes ao invs de 128bytes de EXT3), isso necessrio para que o inode possa armazenar informaes extras, como verso do inode ou data de modificao do mesmo.

    reiserfs Projetado inteiramente com journaling, mais rpido com arquivos pequenos, aloca blocos de tamanho varivel para minimizar o desperdcio de espao, usa btree (balanced tree) para buscar metadados, informaes e arquivos de forma mais eficiente;

    xfs Criado pela SGI para o IRIX, pode usar discos de at 16tb em sistemas de 32 bits e 8eb em sistemas de 64 bits, possui journaling e tem velocidade de 300mb/s;

    Existem outros sistemas de arquivos criados para Linux, porm as provas pedem apenas os mais utilizados. Cada um dos sistemas de arquivos tem caractersticas especficas conforme mostrado acima, mas todos com a mesma estrutura bsica: Superbloco, Tabela de Inodos e rea de Dados.

    1. Superbloco: rea de gerenciamento dos blocos, ele que sabe os blocos livres, ocupados e defeituosos; 2. Tabela de Inodos: rea onde residem os inodos (ns ndices), so pequenas reas de dados (128 bytes)

    que indexam um arquivo e tm informaes como: dono, grupo, blocos onde est gravado, data de acesso, data de modificao, permisses, atributos;

    3. rea de Dados: rea onde so gravados os arquivos em disco. A manipulao de sistemas de arquivos consiste em criar, formatar, corrigir e ajustar as estruturas empregadas nas parties para gravar dados. O conhecimento destas ferramentas no necessrio apenas para fazer as provas, mas principalmente para fazer a manuteno necessria do sistema. 3.2 Particionamento O primeiro passo para manipular sistemas de arquivos (filesystems) criar o local onde ser utilizado o sistema de arquivos, ou seja a partio. O principais particionadores do Linux so: fdisk, cfdisk e parted. FDISK um particionador em modo texto que utiliza letras para executar comandos dentro de um shell (interpretador de comandos) prprio. Sua sintaxe : fdisk

    Onde ser listada a tabela de parties do disco sda.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 35

    debian:~# fdisk -l /dev/sda

    Para manipular parties de um dispositivo preciso iniciar o fdisk e utilizar seus comandos internos. debian:~# fdisk /dev/sda

    Com o fdisk podemos criar parties, remover parties, alterar o tipo da partio, etc. Para apagar todas as parties de um disco, criar 3 parties primrias tipo Linux com 10gb cada uma e uma partio extendida com todo o espao restante em disco, com 1 partio lgica de 2gb para swap, usamos a seguinte seqncia de letras: o, n, p, 1, enter, +10000M n, p, 2, enter, +10000M n, p, 3, enter, +10000M

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 36

    n, e, enter, enter n, enter, +2048M t, 5, 82 w, q CFDISK Com o cfdisk temos uma interface onde vemos todos os comandos e todas as parties em uma nica tela: Isto nos permite ter um controle maior sobre o particionamento mais fcil de usar, pois o cfdisk utiliza MB como padro para tamanho de parties e GB para multiplicador de tamanho. Apesar de no possuir a funo de editar o rtulo BSD de uma partio, o cfdisk cumpre com simplicidade o papel de gerenciar parties.

    Onde as setas (cima e baixo) navegam entre as parties e as setas (esquerda e direita) pelas opes do cfdisk. 3.3 Reparticionamento Os reparticionadores tem como funo criar e modificar parties assim como o fdisk ou cfdisk, mas tambm trabalham modificando parties existentes sem ter que remov-la como faria o cfdisk ou o fdisk. Um dos principais reparticionadores do Linux o parted, que alm de trabalhar em linha de comando utilizado por ferramentas grficas como o gparted. PARTED Pode-se trabalhar com o parted de duas maneiras: utilizando comandos internos do parted ou pela linha de comando. Sintaxe: parted

    Para ver os comandos internos do parted basta digitar parted na linha de comando: debian:~# parted

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 37

    Para visualizar as parties na linha de comando: debian:~# parted -s /dev/sda print

    Para criar uma partio na linha de comando usando o parted: debian:~# parted -s /dev/sda mkpartfs logical ext2 9950 11000 writing per-group metadata... 71% (time left 00:00) Onde foi criada um partio lgica, formatando com sistema de arquivos ext2 do tamanho 9950 at o 11000 (tamanho aproximado em mb). Para visualizar a nova partio: debian:~# parted -s /dev/sda print Foi criada /dev/sda5 uma partio ext2, para mud-la para ext3 use o comando abaixo: debian:~# tune2fs -j /dev/sda5 Para manipular parties pela linha de comandos, e no pelo shell do parted usamos a seguinte estrutura:

    parted -s /dev/sda

    Onde a opo -s (script) para no ser interativo. Para apagar uma partio: debian:~# parted -s /dev/sda rm 5 Onde 5 o nmero da partio que ser removida. Para redimensionar a partio: debian:~# parted -s /dev/sda resize 5 11000 11900 Para mover um partio debian:~# parted -s /dev/sda move 5 12000 12900 Para no precisar reiniciar o computador aps manipular parties basta utilizar o comando: debian:~# partprobe Para acessar o shell do parted digitamos parted, teremos as seguintes opes:

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 38

    debian:~# parted

    3.4 Manipulando parties 3.4.1 Formatao O passo seguinte preparar a estrutura da partio para receber os dados, ou seja format-la. MKFS A sintaxe do comando de formatao a seguinte: mkfs -t

    mkfs.

    Alm de criar a estrutura de armazenamento o mkfs tambm pode checar ou atribuir valores personalizados a partio atravs de suas opes. Entre as opes possveis esto: definir a quantidade de inodos, o tipo de uso do journal, tamanho dos blocos, tamanho dos inodos, o label da partio, etc. Exemplo de formatao de uma partio ext3 com checagem de disco, especificando a quantidade de inodos e com blocos de 4kb. debian:~# mkfs -t ext3 -c -N 1600000 -b 4096 /dev/sda5 Cada tipo de sistema de arquivo tem caractersticas prprias, e as opes podem ser diferentes de um tipo para outro. Portanto consulte o manual de cada tipo de sistema de arquivos para saber as caractersticas de cada tipo de formatao. Utilize o man para saber:

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 39

    debian:~# man mkfs.ext3 ou debian:~# man mke2fs debian:~# man mkfs.reiserfs ou debian:~# man mkreiserfs debian:~# man mkfs.xfs Exemplo:

    MKSWAP Para dispositivos de swap o comando que faz a formatao mkswap. debian:~# mkswap -c /dev/sda2 3.4.2 Checagem FSCK A checagem do disco tambm faz parte do processo de manipulao de parties. A sintaxe do comando de checagem a seguinte: fsck -t

    fsck.

    Entre as opes possveis esto: checagem de blocos defeituosos, checagem com reparo automtico, etc.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 40

    Cada tipo de sistema de arquivo tem caractersticas prprias, e as opes podem ser diferentes de um tipo para outro. Portanto consulte o manual de cada tipo de sistema de arquivos para saber as caractersticas de cada tipo de checagem. Utilize o man para saber: debian:~# man fsck.ext3 ou debian:~# man e2fsck debian:~# man fsck.reiserfs ou debian:~# man reiserfsck debian:~# man mkfs.xfs ou debian:~# man xfs_check Lembrando que formatar e checar um sistema de arquivos no deve ser feito com o mesmo montado. Pois a ferramenta de checagem pode considerar os blocos em uso (leitura/escrita) como inconsistentes e tentar corrigi-los, levando a uma perda dos dados. Para checar um sistema de arquivos montado deve-se usar o comando badblocks, que verifica com teste no-destrutivo (padro) o contedo de uma partio e exibe o nmero dos blocos defeituosos ou grava em arquivo. debian:~# badblocks -o lista /dev/sda1 Gerando assim um arquivo chamado lista contendo (se existir) o nmero dos blocos defeituosos. Assim o fsck pode marcar os blocos defeituosos sem alterar os outros blocos do disco. debian:~# fsck.ext3 -l lista /dev/sda1 3.4.3 Ajuste de Parties Algumas caractersticas das parties podem ser ajustadas mesmo aps a formatao, veremos alguns comandos com as principais opes para isso. TUNE2FS Modifica opes de funcionamento de parties ext2/ext3. Sua sintaxe : tune2fs

    Exemplos: debian:~# tune2fs -l /dev/sda1 Onde listamos as opes usadas pela partio /dev/sda1. debian:~# tune2fs -c 35 /dev/sda1 Onde a quantidade mxima de montagens sem passar o fsck durante o boot foi alterada para 35.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 41

    debian:~# tune2fs -c 0 /dev/sda1 Onde a quantidade mxima de montagens sem passar o fsck durante o boot foi desabilitada. Isto pode ocorrer em perda de dados caso o sistema de journaling no esteja funcionando corretamente. debian:~# tune2fs -L Sistema /dev/sda1 Onde adicionado um rtulo (label) na partio. debian:~# tune2fs -i 12m /dev/sda1 Onde o perodo de intervalo entre as checagens modificado de 6 meses para 12 meses. debian:~# tune2fs -m 1 /dev/sda1 Onde a porcentagem de espao em disco reservada para o root passa de 5% (padro) para 1%. debian:~# tune2fs -r 65536 /dev/sda1 Onde a quantidade de blocos reservados passa a ser de 65536 blocos (256MB). debian:~# tune2fs -u user1 /dev/sda1 Onde os blocos reservados da partio deixam de ser para o root e passam a ser para o usurio user1. Isto til em sistemas onde no permitido login de root. debian:~# tune2fs -j /dev/sda5 Onde acrescentado a caracterstica de journaling a uma partio ext2 transformando-a em partio ext3. debian:~# tune2fs -O extents,uninit_bg,dir_index /dev/sda6 Configura uma partio ext3 para suporte a extents,uninit_bg,dir_index (ext4). debian:~# tune2fs -I 256 /dev/sda6 Se o sistema de arquivos foi criado com inodos de 128 bytes, esse comando converte para 256 bytes. debian:~# fsck -fp /dev/sda6 obrigatrio realizar o fsck para que as novas configuraes entrem em vigor. Obs.: No h no momento ferramentas para converter de ext4 devolta para ext3, portanto no tente fazer isso em um sistema de arquivos em produo. Caso seja a partio de boot do sistema no se esquea de passar o parmetro rootfstype=ext4 para o kernel Linux no gerenciador de boot (lilo ou grub). Seguem algumas telas do tune2fs:

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 42

    REISERFSTUNE As parties em reiserfs podem ter suas caractersticas ajustadas pelo comando reiserfstune. Sua sintaxe : reiserfstune

    Exemplo: debian:~# reiserfstune urandom /dev/sda3 Onde criada uma nova UUID, randomicamente, para a partio.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 43

    debian:~# reiserfstune -l Sistema /dev/sda1 Onde o novo label da partio Sistema.

    Outras ferramentas de manipulao de filesystem mais avanadas so: debugfs (ext2/ext3), debugreiserfs. Que manipulam desde tabela de inodos at estrutura blocos, sendo que a opo de recuperar arquivos apagados do debugfs no funciona em ext3. J que o ext3 apaga os registros do arquivo para facilitar o trabalho do journaling. SWAP Para arquivos de swap temos os seguintes utilitrios: Ativar e desativar: swapon

    debian:~# swapon /dev/sda2 Ativa a partio /dev/sda2 para ser utilizada. debian:~# swapon -s Mostra o status das parties de swap. Mesmo resultado produzido por cat /proc/swaps A prioridade das parties de swap determina a ordem em que sero utilizadas. A memria RAM tem prioridade 0, portanto usada em primeiro lugar, a partio que tiver prioridade -1 ser usada em seguida, a que tiver prioridade -2 ser usada em seguida e assim sucessivamente. swapoff

    debian:~# swapoff /dev/sda2

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 44

    Desativa a swap em /dev/sda2 3.5 Montagem A montagem de uma partio tornar os seus dados acessveis para leitura ou leitura/escrita atravs de algum diretrio do sistema. O diretrio se torna o ponto de montagem da partio e atravs dele temos acesso a todo o contedo do dispositivo. Pode ser um dispositivo local como uma partio ou outro disco, pode ser um dispositivo remoto como um compartilhamento, pode at ser um arquivo como de um ISO para verificar a integridade do mesmo. O comando que faz as montagens o comando mount, e sua sintaxe a seguinte: mount

    Montando um pendrive com partio em /dev/sdb: debian:~# mount -t vfat /dev/sdb1 /mnt/pen Montando um cdrom em /dev/hdc: debian:~# mount -t iso9660 /dev/hdc /media/cdrom Montando uma partio /dev/sda3 em ntfs: debian:~# mount -t ntfs /dev/sda3 /mnt/windows Para ter suporte a escrita em ntfs, preciso ter o pacote ntfs-3g instalado. debian:~# mount -t iso9660 -o loop /tmp/arquivo.iso /mnt/iso Monta um arquivo, como o arquivo no possui mapeamento de hardware (tipo bloco ou caractere, major e minor), utilizado (-o) para o comando mount aceitar opes, a opo loop faz com que o sistema use o dispositivo /dev/loop? para mapear o arquivo e mont-lo. A montagem de um dispositivo pode ser feita pela linha de comando, o que a torna temporria pois ao desligar a mquina a montagem se perde ou pelo arquivo que configura as montagens. Para torn-la definitiva devemos configurar a montagem no arquivo /etc/fstab. A estrutura do arquivo /etc/fstab a seguinte:

    Exemplo de fstab:

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 45

    Onde: dispositivo quem ser montado ponto de montagem onde ser montado filesystem em qual tipo de estrutura de dados foi formatado aquele dispositivo opes quais caractersticas de montagem sero utilizadas dump se ir ou no executar o comando dump na inicializao passo prioridade da ferramenta de checagem (0, 1, 2) As principais opes de montagem so: defaults Que signica: auto,rw,exec,async,suid,dev,nouser auto Monta automamcamente a durante o boot noauto No monta automaticamente durante o boot rw Direitos de leitura e escrita no sistema de arquivos ro Direito de somente leitura exec Permite executar arquivos por este sistema de arquivos noexec No permite executar arquivos async Escrita assncrona em disco (usa o buffer de escrita) sync Escrita sncrona (grava direto no disco, sem buer) suid Permite o uso do bit suid nosuid No permite o uso do bit suid atime Grava a hora de acesso dos arquivos (access mme) noatime No grava a hora de acesso dos arquivos owner Permite que um usurio (no root) possa montar o dispositivo se ele for o dono do mesmo user Permite que um usurio comum possa montar o disposimvo e possa desmont-lo depois nouser No permite que nenhum usurio possa montar o dispositivo acl Permite o uso de ACL para o sistema de arquivos usrquota Permite o uso de cotas para usurios grpquota Permite o uso de cotas para grupos errors=continue / errors=remount-ro / errors=panic Dene o comportamento em caso de erros Exemplo: /dev/sda1 / ext3 defaults,acl,erros=continue 0 0

    No lugar do dispositivo possvel tambm especificar a UUID (Unique Universally Identification) que o nmero de identificao de um dispositivo. Com isso mesmo que o dispositivo mude de barramento ele ser identificado e montado no mesmo ponto de montagem. Para descobrir uma UUID (Universally Unique Identifier) basta utilizar o seguinte comando: debian:~# vol_id --uuid /dev/sda1

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 46

    Com isso basta colocar no fstab no lugar de /dev/sda1 a UUID. De: /dev/sda1 / ext3 defaults 0 0 Para: UUID=eed1c6f5-28f6-4c28-b015-275b1ca42551 / ext3 defaults 0 0 E assim mesmo que outro dispositivo seja colocado como sda1 o /(raiz) ser montado com o dispositivo com aquela UUID. Exemplo de fstab com UUID:

    A montagem no se limita apenas a dispositivos, possvel tambm montar arquivos (que no possuem mapeamento de hardware) como arquivos.iso. Com o comando dd copiamos direto de dispositivo para dispositivo ou arquivo. Exemplo: debian:~# dd if=/dev/zero of=/root/arq1 bs=1M count=1600 Criando um arquivo que copia dados do dispositivo /dev/zero para /root/arq1 com blocos de 1 Mb e repete esses blocos 1600 vezes, ocupando 1.6Gb de espao e aps formatar basta montar com o comando: debian:~# mount -t ext2 -o loop /root/arq1 /mnt/dados O dispositivo de loopback (/dev/loop?), empresta seu mapeamento de hardware para o arquivo permitindo que ele seja montado como se fosse um dispositivo. Montando uma iso para verificao de contedo: debian:~# mount -t iso9660 /root/arquivo.iso /mnt/cdrom Lembrando que montar um arquivo de iso no suficiente para alterar seu contedo. 3.5.1 Auto Montagem

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 47

    O autofs um servio que possibilita que dispositivos sejam montado independente do arquivo /etc/fstab e apenas quando forem acessados, a montagem sob demanda tanto de dispositivos locais quanto remotos. Basta acessar o diretrio do configurado como ponto de montagem e a montagem acontece imediatamente. O autofs utiliza 2 arquivos de configurao: /etc/auto.master Arquivo principal onde ficam o ponto de montagem e o arquivo associado a ele. /etc/auto. - Arquivo onde ser configurado cada dispositivo que ser montado naquele ponto de montagem. O autofs pode ser configurado com o sistema em uso e no precisa ser reiniciado porque ele l o arquivo toda vez que for acessado o ponto de montagem. O autofs pode tambm desmontar uma partio por tempo de ociosidade, diminuindo assim o uso de recursos do sistema, utilizando a opo --timeout= no arquivo auto.master. Exemplo do arquivo auto.master para montar sob demanda, utilizando o /misc como ponto de montagem e desmontando caso fique mais de 5 minutos sem atividade: # # $Id: auto.master,v 1.4 2005/01/04 14:36:54 raven Exp $ # # Sample auto.master file # This is an automounter map and it has the following format # key [ -mount-options-separated-by-comma ] location # For details of the format look at autofs(5). /misc /etc/auto.misc --timeout=300 Exemplo do arquivo auto.misc usado para montar um pendrive sob demanda: # # cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom pen -fstype=vfat,defaults,sync :/dev/sda1 Lembrando que apenas o /misc precisa existir, o diretrio pen ser criado dentro do /misc no momento da montagem.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 48

    3.6 Manipulao de ISO e CD Para gravar arquivos em cd preciso preparar os dados em um arquivo no formato que o programa de gravao consiga interpretar. O comando que faz isso o mkisofs. MKISOFS A sintaxe do comando : mkisofs -o

    Exemplo: debian:~# mkisofs -T -r -l -ldots -J -o /root/backup.iso /root/backups Onde: -T = cria o arquivo trans.tbl, que era usado para mapear nomes em sistemas com nomes 8.3 que migraram para o para 256.3. -l = diretrios com nomes maiores que 31 caracteres. -ldots = nomes comeando com . -r = extenso Rock Ridge. Permite suporte a informaes como: dono, grupo, permisses, link simblicos, e nomes de arquivos com mais de 31 caracteres. Adicionando especificaes relativas a norma ISO9660. -J = nomes joliet, para nomes compatveis com os usados pela Microsoft. -o = output (sada). -V = especifica o nome do volume. -b = utiliza uma imagem de boot padro el torito. Lembrando que a ISO no compactada por isso o tamanho do diretrio tem que ser no mximo o mesmo do cd. Para maiores informaes consulte o man do comando. CDRECORD O comando crdecord transfere a iso para o cd. A sintaxe do comando : cdrecord

    Pode ser necessrio identificar o dispositivo de gravao, para isso utilize o comando: debian:~# cdrecord --scanbus Caso o seu gravador de cd seja padro IDE utilize: debian:~# cdrecord --scanbus dev=ATA Gravando o cd:

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 49

    debian:~# cdrecord driveropts=burnfree dev=1,1,0 speed=4 backup.iso Para apagar um cd-rw (deve ser feito antes de gravar dados na mdia): debian:~# cdrecord dev=1,1,0 blank=all debian:~# cdrecord dev=1,1,0 blank=fast GROWISOFS Para gravar DVD podemos utilizar o growisofs. A sintaxe do comando : growisofs

    Gravando um DVD a partir de um arquivo isso existente: debian:~# growisofs -dvd-compat -Z /dev/sr0=arquivo.iso Finalizando um DVD multisesso: debian:~# growisofs -M /dev/sr0=/dev/zero Iniciando um DVD multisesso com os arquivos de um diretrio: debian:~# growisofs -Z /dev/sr0 -R -J /home/dados Continuando uma multisesso com os arquivos de um diretrio: debian:~# growisofs -M /dev/sr0 -R -J /home/backup Onde: -J = para utilizar nomes no padro Joliet. -R = para utilizar as extenses Rock Ridge. /dev/sr0 = dispositivo de DVD

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 50

    4- HARDWARE E ARRANJOS

    4.1 Comandos de Verificao de Hardware Verificar o hardware da mquina necessrio no s para poder escolher o que compilar no kernel mas tambm para poder fazer funcionar os dispositivos que so ligados ao sistema. Bem como planejar upgrades ou modificaes no hardware. Os tipos diferentes de hardware utilizam comandos prprios para verificao, como, por exemplo, os PCI e os USB, etc. LSPCI Para verificar o hardware PCI utilizamos: lspci

    Exemplo:

    Onde as opes pode ser: - b onde mostrada a identificao dos dispositivos pelo barramento PCI e no pelo kernel -v verbose -k mostra o mdulo do kernel relacionado ao hardware -n mostra a ID do dispositivo -x mostra o dump em hexadecimal LSUSB Para verificar o hardware USB utilizamos: lsusb

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 51

    Onde as opes podem ser: -v verbose -t mostra a arvore do barramento usb LSHW

    Para obter um relatrio de hardware:

    lshw

    Onde as opes podem ser: -html cria um html para ser visto pelo browser -xml cria um xml -sanitize omite informaes como: ip, seriais, etc. Recomenda-se redirecionar a sada para um arquivo. LSDEV O comando lsdev mostra o hardware instalado e que IRQ, IO e DMA ele est utilizando. debian:~# lsdev O diretrio /dev uma diretrio de arquivos dinmicos, pois eles so criados por demanda. Quando um hardware inserido no sistema gerado um evento, esse evento captado pelo udevd (daemon de udev) que reordena as chamadas hotplug para que o udevstart crie os dispositivos no /dev. Os arquivos de configurao e as regras de criao de dispositivos esto no diretrio /etc/udev. UDEV Em sistemas Linux mais antigos, o diretrio /dev/ onde ficam os arquivos de dispositivos era esttico, isto , quando instalado o sistema eram criados neste diretrio os arquivos para mapear uma grande quantidade de dispositivos. Mesmo que no existissem os dispositivos na mquina, os arquivos estavam l para mape-los. Em sistemas Linux atuais o servio udev responsvel por criar os dispositivos sob demanda, ou seja, mesmo que no exista um arquivo de mapeamento de um hardware, o udev cria quando o hardware respectivo detectado.

    A uma pequena sinopse de como acontece a criao dos arquivos de dispositivo atravs do udev: 1 - O udevsend envia ao udev os eventos hotplug detectados pelo sistema; 2 - O daemon do udev o udevd ordena os eventos hotplug do sistema antes de envi-los ao udev para

    evitar sadas mltiplas; 3 - O udevstart cria os ns de dispositivos no diretrio /dev/ para os drivers que existam no kernel;

    O diretrio /etc/udev usado para as configuraes e permisses de acesso. O arquivo

    /etc/udev/udev.conf pode ser usado para limitar o tamanho de memria usado pelo udev ou o nvel de log do syslog.

    No diretrio /etc/udev/rules.d/ ficam as regras para criao de uma gama de dispositivos, incluindo

    placas de rede.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 52

    Assim ao inserir uma nova placa de rede na mquina ela recebe um nome complementar s placas existentes. Se j temos eth0, a nova placa ser eth1, mas se formos substituir uma placa defeituosa, provavelmente queremos que ela tenha o mesmo nome da que estava no sistema. Para que isso acontea preciso modificar o arquivo /etc/udev/rules.d/persistente-net.rules para que o MAC Address da nova placa receba a nomeclatura da anterior. Exemplo de arquivo persistent-net.rules

    4.2 Comandos de Configurao de Hardware Existem comandos no Linux que mudam a configurao de hardware, como os comandos hdparm e sdparm. HDPARM O comando hdparm ajusta as caractersticas de funcionamento de discos IDE. O comando hdparm ajusta desde uso de DMA at a acstica do disco. Sintaxe do comando: hdparm

    Ativando o uso de DMA para o disco hda: debian:~# hdparm -d 1 /dev/hda

    SDPARM

    O comando sdparm ajusta as caractersticas de discos SCSI.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 53

    Sintaxe do comando: sdparm

    Ativando o uso do cache de gravao de disco: debian:~# sdparm -s WCE=1 -S -v /dev/sda

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 54

    4.3 RAID Redundant Array of Independent Discs (Arranjo Redundante de Discos Independentes) como chamado o principal mtodo de arranjo de discos utilizados. O RAID uma forma de garantir melhor desempenho, mais segurana de dados dependendo do tipo de RAID utilizado. Inicialmente o RAID no provia segurana, mas com o tempo se tornou o princpio bsico de seu funcionamento. Quando utilizamos alguns discos na mquina podemos trat-los como se fossem apenas um, de modo a combin-los como se fossem um nico disco. RAID 0 Este nvel de RAID faz a soma do espao dos discos utilizados, e tambm tem ganho em desempenho. Utiliza um mtodo de gravao chamado stripping, onde ele basicamente divide os dados a serem gravados em partes e grava uma parte em cada disco quase que simultaneamente, fazendo com que o ganho em velocidade seja considervel, j que temos mais de um conjunto de leitura/escrita trabalhando para cada dado. O RAID 0 trabalha apenas com discos de mesmo tamanho. Apesar da vantagem em desempenho, o RAID 0 no garante a segurana dos dados pois ele no realmente redundante, assim se algum dos discos falhar, os dados que esto fragmentados pelos discos sero inutilizados.

    Vejamos um exemplo de como ele funciona: RAID 1 Este nvel de RAID tem segurana de dados como caracterstica principal. Ele utiliza mirroring (espelhamento) para fazer com que os dados existentes em um disco sejam espelhados em outro. Por isso considerado o mais redundante dos nveis de RAID pois os dados que existem no disco principal esto exatamente iguais no disco espelho. O espelhamento faz com que o tamanho final do arranjo seja o tamanho de um disco. A vantagem que se o disco principal falhar o espelho assume automaticamente, sem que haja parada no sistema. To logo seja feita a troca do disco defeituoso por um disco novo ele comear a fazer a sincronia dos discos, quer dizer, ele comea a refazer o espelhamento para que os dados que existem em um disco tambm existam no outro. O problema que durante a sincronia a performance do sistema cai muito, devida a ter que ler dados no disco em

    Vamos ver que os blocos ordenados de gravao neste RAID 0 de dois discos, podem ser mais discos, esto sendo gravados um em cada dispositivo. Fazendo assim que dois conjuntos de leitura/escrita trabalhem no arquivo ao mesmo tempo.

    Alm de discos de mesmo tamanho, o melhor que sejam tambm discos do mesmo fabricante para que o desempenho do conjunto seja o melhor possvel.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 55

    funcionamento para sincroniz-lo com o outro e ler e gravar dados no disco em funcionamento para uso normal do sistema. Por isso muito comum que empresas apenas substituam discos fora do horrio de trabalho a fim de minimizar o desgaste gerado pela lentido do acesso a disco. O RAID 1 o primeiro nvel de RAID a suportar o uso de discos estepes (spare disks), discos que fazem parte do arranjo mas no so utilizados. Assim um disco que quase no utilizado, o sistema apenas verifica periodicamente se o disco est em condies de funcionamento, no costuma apresentar defeitos. Seu tamanho no contado na soma total do arranjo e tem a vantagem de se um disco falhar o sistema inicia a sincronia imediatamente, no necessitando de troca imediata do disco defeituoso e ainda assim garantindo que mais de um dispositivo contenha os dados desejados.

    Vejamos um exemplo de como ele funciona: RAID 5 Este nvel de RAID utiliza paridade de dados para fazer a redundncia, a paridade o uso de um algoritmo para fazer que a estrutura dos dados de um disco seja escrita em um espao menor do que o original. Resumindo serial algo como faz um algoritmo de compactao, escreve dados numa rea menor. As vantagens deste tipo de RAID so maior velocidade de leitura/escrita (mais de leitura) em relao ao RAID1 e melhor tolerncia a falhas j que os dados so espalhados pelos discos do arranjo. Basicamente falando, na hora de gravar um dado o RAID5 utiliza disco que estiver menos ocupado naquele momento, assim h um bom uso dos conjuntos de leitura/escrita, e na hora da fazer a sincronia quando h falhas o sistema tambm apresenta um bom desempenho em relao ao RAID1. Quando usamos RAID 5 cerca de 1/3 (um tero) de cada disco reservado para acomodar a paridade de outro disco do arranjo, assim sendo ele s pode ser feito com 3 ou mais discos. Por exemplo, se temos um arranjo com 5 discos de 120 Gb, sendo quatro ativos em um estepe temos um arranjo de aproximadamente 320 Gb, ou seja:

    Retiramos um tero de cada disco, 120 x 2 = 240 / 3 = 80, sem a paridade cada disco tem apenas 80 Gb livres. Multiplicamos pela quantidade de discos ativos, 4 x 80 = 320. Lembrando que o estepe no entra na soma de espao do arranjo.

    Vejamos um exemplo de como ele funciona:

    Vamos ver que os blocos ordenados de gravao neste RAID 1 de dois discos, podendo ter um estepe se necessrio, esto sendo gravados igualmente em cada um dos dispositivos. Fazendo assim que dois dispositivos tenham os mesmos dados ao mesmo tempo.

    Alm de discos de mesmo tamanho, o melhor que sejam tambm discos do mesmo fabricante para que o desempenho do conjunto seja o melhor possvel.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 56

    Apesar de o RAID via hardware ainda apresentar melhor desempenho, a relao custo/benefcio nos mostra que com os avanos atuais o RAID via software pode ser empregado para solucionar problemas de armazenamento e dar mais segurana aos dados de sua empresa. O comando mdadm o responsvel pela criao e manuteno dos dispositivos de RAID, os metadevices. Eles se localizam no diretrio /dev/md/* e podem ser acessados por /dev/md* tambm. Aps a criao do md os discos utilizados no RAID no so mais tratados individualmente e sim atravs do arranjo. MDADM A sintaxe do comando mdadm : mdadm

    Supondo que coloquemos mais 3 disco padro SATA no computador, presumindo que o sistema est instalado no /dev/sda, teremos /dev/sdb, /dev/sdc, /dev/sdd. Criaremos uma partio primria tipo FD em cada um dispositivo e teremos /dev/sdb1, /dev/sdc1 e /dev/sdd1. Assim vamos criar um RAID 1 com 2 discos ativos e um disco estepe: debian:~# mdadm -C /dev/md0 -a yes -l 1 -n 2 /dev/sdb1 /dev/sdc1 -x 1 /dev/sdd1 Onde: -C = modo de criao de metadevices -a = cria o md0 de modo persistente -l = nvel de RAID -n = nmero de discos ativos e quais so -x = nmero de discos estepes e quais so Aps criar o arranjo podemos verificar sua constituio de duas formas, pelo comando mdadm ou pelo arquivo /proc/mdstat. Primeiro pelo comando mdadm:

    Vamos ver que os blocos ordenados de gravao neste RAID 5 de quatro discos, podendo ter um estepe se necessrio, esto sendo gravados entre os dispositivos. E a paridade de um disco fica gravada e outro. Assim quando um disco falha o sistema no pra seu funcionamento.

    Alm de discos de mesmo tamanho, o melhor que sejam tambm discos do mesmo fabricante para que o desempenho do conjunto seja o melhor possvel.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 57

    debian:~# mdadm -D /dev/md0 Onde: -D = detalhamento

    Ou debian:~# cat /proc/mdstat Veja o exemplo do comando mdadm:

    Veja o exemplo do arquivo mdstat:

    OBS: Nestes exemplos no h disco estepe. Aps o arranjo criado os passos que faltam para torn-lo utilizvel so: formatar e montar. Para format-lo usaramos o exemplo abaixo: debian:~# mkfs -t ext3 /dev/md0 Lembrando que aps criarmos o arranjo no manipulamos os discos individualmente. Exceto nos casos abaixo: Para testar o funcionamento do RAID podemos usar o mdadm para simular falha. debian:~# mdadm -f /dev/md0 /dev/sdb1 Onde a opo -f far que o dispositivo /dev/sdb1, disco principal do RAID, seja tratado como um dispositivo defeituoso dentro do arranjo /dev/md0. Assim o sistema o marcar como falhado e o colocar como ltimo dispositivo do arranjo, e havendo um disco estepe iniciar a sincronia de dados.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 58

    Para remover o disco falhado do arranjo: debian:~# mdadm -r /dev/md0 /dev/sdb1 Onde a opo -r far que o disco defeituoso, /dev/sdb1, seja removido do arranjo. Assim o arranjo passa a ser de apenas dois discos. Para adicionar um novo disco ao arranjo, novos discos entram como estepes se a quantidade de discos ativos estiver completa, usamos: debian:~# mdadm -a /dev/md0 /dev/sde1 Onde a opo -a far com que o disco /dev/sde1 seja adicionado ao arranjo e entrar no lugar do estepe que saiu. No caso de possuirmos quatro discos de sdb at sde respectivamente e cada um com uma partio primria, poderamos criar um RAID 5 com um disco estepe. debian:~# mdadm -C /dev/md0 -a yes -l 5 -c 128 -p left-symmetric -n 3 /dev/sdb1 /dev/sdc1 /dev/sdd1 -x 1 /dev/sde1 Onde: -c = chunk-size, RAID de paridade utiliza a gravao em blocos para poder manipular os dados, assim a opo -c determina em kb o tamanho destes blocos. -p = algoritmo de paridade, determina qual tipo algoritmo ir construir e armazenar a paridade, left-symmetric j o algoritmo padro, portanto poderia ser omitido. O mdadm possui um arquivo de configurao que usado para garantir que o RAID ser inicializado junto com o boot da mquina. Sua sintaxe simples e de fcil compreenso. Exemplo de arquivo do mdadm em /etc/mdadm/mdadm.conf:

    As variveis do arquivo so:

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 59

    DEVICES = Indica quais parties so escaneadas para ver se fazem parte de algum arranjo, pode usar caracteres coringa ou deixar apenas partitions. ARRAY = Qual o arranjo que est sendo configurado, qual nvel (level=), quais dispositivos fazem parte do arranjo (devices=), podemos utilizar no lugar de devices o UUID do arranjo. CREATE = Como sero criados os dispositivos de metadevices HOMEHOST = Nome do sistema que contm os arranjos MAILADDR = Email de quem ser notificado quando o arranjo apresentar algum problema. Basta ter um servidor de email de sada para que as mensagens possam ser enviadas para servidores externos.

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 60

    4.4 LVM Existem formas de manipular discos de modo que eles ajam como um nico dispositivo. Visando segurana de dados, desempenho ou apenas soma do espao em disco, uma dessas formas o LVM (Logical Volume Manager). As vantagens so: desde melhor velocidade em alguns casos de LVM, a possibilidade de expandir o conjunto quando precisar de espao, e at a capacidade de fazer snapshots para backup. O LVM bastante flexvel, sua implementao no Linux permite que seja criado tendo apenas um dispositivo e adicionando mais conforme seja preciso, incluindo at o uso de criptografia. Para melhor trabalhar com LVM, preciso antes de entender alguns conceitos. O Device-Mapper utilizado quando necessrio que haja algo no lugar entre o acesso ao dispositivo e o dispositivo real, ele cria uma camada sobre os dispositivos, seja para criar um arranjo de dispositivos ou criptografia sobre os mesmos. Uma das funes do device-mapper redirecionar I/O de um dispositivo para outro permitindo interao entre eles, trabalha com multipath como os servios de storage melhorando significativamente o acesso a disco. LVM, RAID e parties criptografadas so exemplos de dispositivos que utilizam Device-Mapper. Componentes do LVM: PV Phisical Volume: Cada disco em si, a parte fsica do volume. PE Phisical Extends: Extenses fsicas, unidades de alocao de espao, ou seja, pequenos pedaos de um VG. Um VG dividido em vrios PE. Eles dividem o espao em disco, gerenciam a gravao de dados e criam uma camada que permite que vrios discos sejam enxergados como um nico arranjo. VG Volume Group: Grupo de volumes, um VG responsvel por agrupar um ou mais discos (PV). LV Logical Volume: o volume lgico, ou seja, uma partio (diviso) de um VG. VGDA Volume Group Descriptor Area a tabela de alocao do VG, onde todos os dados so do VG so armazenados. Divide-se em quatro partes bsicas: descritor de PV, descritor de VG, descritor de LV e vrios descritores de PE e LE. Os limites do LVM so 256 dispositivos ou 64000 vezes o tamanho de cada PE. Por exemplo um PE de 2Gb permitir um LVM mximo de 128Tb e assim sucessivamente. Criando um LVM: Prepare os dispositivos fsicos como PV: debian:~# pvcreate /dev/hda6 /dev/hda7 /dev/hda8 Verifique os PV criados: debian:~# pvdisplay Crie o VG com os PV e determine o tamanho do PE. debian:~# vgcreate aula /dev/hda6 /dev/hda7 /dev/hda8 -s 128M

  • MANUAL DE TREINAMENTO LINUX NETWORK ADMINISTRATOR

    MANUAL DE TREINAMENTO M.CURY LINUX NETWORK ADMINISTRATOR PGINA 61

    Verifique os dados do VG incluindo o espao livre para uso: debian:~# vgdisplay aula Crie o LV com os PE livres do VG: debian:~# lvcreate aula -l 100 -n dados Onde: -L determina o valor de tamanho que ser alocado, o "FREE PE/SIZE" que ser disponibilizado para todo o grupo de volume. -l determina a quantidade de PE -n ou --name determina o nome do dispositivo lgico de volume. -s determina o tamanho de cada PE FREE PE/SIZE espao disponveis para o grupo. Formatando o LV: debian:~# mkfs.ext3 /dev/grupo/data Verificando informaes do LV: debian:~# lvdisplay /dev/grupo/data Criando o ponto de montagem: debian:~# mkdir /mnt/lvm Montando o LV: debian:~# mount /dev/grupo/data /mnt/lvm Para aumentar o tamanho do grupo de volume, basta seguir os passos abaixo, lembrando que filesystem como reiserfs no precisa ser desmontado para redimension-lo: Adicione o novo PV: debian:~# pvcre