Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas Baseados em
ATENO
Todos os direitos sobre este material didtico esto reservados a LinuxClass (2009). A propriedade intelectual deste trabalho protegida por lei de direitos autorais (copyright) em sua ntegra, fica proibida a reproduo completa ou parcial ou qualquer outra forma de utilizao e/ou exposio individual ou coletiva. Nenhuma instituio comercial ou sem fins lucrativos autorizada a utilizar este material sob nenhuma forma, configurando crime previsto no cdigo penal. Se voc acredita que este material esta sendo utilizado de forma indevida, denuncie anonimamente pelo telefone 048-3024-0276, ou mandando e-mail para linuxclass@linuxclass.com.br O objetivo deste material didtico no fornecer um manual em portugus para sistemas baseados em Red Hat Enterprise Linux detalhando todos os comandos e funes, nem mesmo ser um guia rpido para consultas. Esta apostila tem com objetivo servir apenas de acompanhamento para as aulas presenciais e explicaes dos instrutores. Todo material fornecido neste treinamento entregue sem nenhum tipo de garantia ou responsabilidade contra qualquer tipo de danos ou mal uso.
Rua Jornalista Manoel Menezes 149, Conj 402 Florianpolis SC CEP 88034-060
Fone/Fax +55 (48) 3024-0276 - linuxclass@linuxclass.com.br
TabeladeContedos
O Red Hat Enterprise Linux Introduo Listas de compatibilidade de Hardware Listas de compatibilidade de Software Suporte a CPUs SLAs de Suporte SLAs de suporte da Red Hat Verses do Red Hat Enterprise Linux Kernels Disponibilizados Aplicativos Populares Suportados O Linux Kernel Mdulos Dinmicos Carregveis Dispositivos e Processos Arquivos de Dispositivos Dispositivos de caractere Dispositivos de bloco Pseudo-dispositivos Outros tipos de Arquivos Criando dispositivos Identificando e listando os dispositivos PCI Bus Suporte Hotplug Instalando o Red Hat Enterprise Linux Primeiro Estgio Segundo Estgio Durante a Instalao Firstboot, Configuraes Bsicas Aps a Instalao Configuraes Gerais do Sistema Particionamento Particionamento dos Sistemas de Arquivos durante a Instalao
01 01 01 01 01 02 02 02 03 03 04 04 04 05 05 05 06 06 06 07 07 07 08 08 09 09 10 10 11 11
Software RAID, Hardware RAID, Nveis de RAID RAID Hardware e RAID Software RAID Via Hardware Tipos de Hardware RAID Via Software Controlador de Mltiplos Dispositivos (MD) Nveis de RAID RAID-linear RAID-0 RAID-1 RAID-2 e RAID-3 RAID-4 RAID-5 Tipos de RAID Hbridos Tabela de Comparao dos Nveis de RAID LVM, Gerenciador de Volumes Lgicos Apresentao do LVM Terminologia do LVM Desenhos Ilustrativos do LVM Registrando o RHEL5 na RHN, rhn_register YUM, Yellowdog Updater Modified YUM RHNPlugin Instalando novos repositrios no YUM Registrando o RHEL4 na RHN, up2date Atualizando e instalando software no RHEL4, up2date Kickstart Kickstart por Disquete Kickstart por Rede Ajuda para Kickstart On-line Construindo seu arquivo Kickstart Diretivas de utilitrios Diretivas de Particionamento de disco Outras diretivas do Kickstart Diretivas de Instalao de Pacotes Diretiva %pre Diretiva %post
12 12 12 13 13 14 14 15 15-16-17 17-18 18-19-20 20-21 21-22 22-23 23-24 25 25 26 27-28 29 29-30 30 30-31 31-32 32 33 33 33 33 34 34 34 34 35 35 36
A Red Hat Network (RHN) RHNSD Mdulos Comerciais da RHN Mdulo Management Mdulo Provisioning Mdulo Monitoring Satellite Server Proxy Server Ajuda da RHN On-line Resumo do Processo de Boot do Sistema GRUB Outras opes do GRUB Linha de comandos do GRUB Re-fazendo o Primeiro Estgio do GRUB Inicializao do Kernel Inicializao do Init Script /etc/rc.d/rc.sysinit Script /etc/rc.d/rc System V run-levels Script /etc/rc.d/rc.local Controlando e Configurando os Servios de Inicializao System V Laboratrio GRUB, Recuperao do sistema e Troubleshooting Recuperao do Sistema Sistema de arquivos ext3 e ext2 Funcionamento padro dos sistemas de arquivos em Linux Erros e corrompimento do sistema de arquivos Journaling Sistema de arquivos ext3 Tipos de Journaling: Journal,Ordered,Writeback Particionamento: fdisk, sfdisk, parted Particionamento On-Line: partprobe Criando Sistemas de Arquivos: mkfs Convertendo um filesystem ext2 para ext3 Montando Filesystems Remontando Filesystems
Nomes de Volumes fstab Montando Todos os Dispositivos do fstab Automounter Documentao On-line do Automounter Atributos Extendidos do Filesystem Filesystem ACLs Quotas Implementao de quotas Laboratrio QUOTAS, cenrio de configurao Teste de implementao/Validao Soluo do laboratrio QUOTAS SELinux Strict, Targeted Policys Contextos dos Objetos Configuraes Bsicas do SELinux Visualizando Objetos e Processos SELinux Implementando o Software RAID Configurando o software RAID com mdadm Otimizao do RAID Verificando o RAID Software RAID Recovery Laboratrio RAID, cenrio de configurao Teste de Implementao/Validao Soluo do laboratrio RAID Implementando LVM Criando Volumes Lgicos Otimizao do LVM Redimensionando Volumes Lgicos On-line Gerenciando Volumes Lgicos Convertendo LVM1 em LVM2 Introduo ao GFS
57 58 58 59 59 60 60 61 61 62 62 63 64 64 64-65 65 66 67 67 67 68 68 69 69 70 71 71 71 71 72 72 73
Ilustrao da Aplicao do GFS com Oracle Laboratrio LVM, cenrio de configurao Teste de Implementao/Validao Soluo do laboratrio LVM Gerenciamento de Contas e Grupos do Sistema Umask Setgid Scripts de Inicializao de Ambiente Gerenciamento de Pacotes com RPM Objetivos de Desenvolvimento do RPM Usando o RPM Instalando Pacotes Pacotes J Instalados Arquivos Conflitantes Dependncia No-resolvida Desinstalando Pacotes Atualizando (Update) Recarregando (Freshen) Busca (Query: Verificando Importando Chaves Verificando a Assinatura de Pacotes Autenticao PAM Configurao da PAM Principais Mdulos da PAM Analizando a Configurao da PAM por exemplos Name Service Switch (NSS) Configurando Autenticao LDAP Cliente Gerenciando as interfaces de Rede
Gerenciando os LOGs do Sistema: syslogd, klogd Facilidades Nveis de prioridade Destinos Exemplos de Configuraes do Syslog Importantes arquivos de Logs do Sistema Manuteno e Rotao dos Logs Monitorando os Logs CUPS CRON Exemplo de Evento no CRON ATD Gerenciamento dos Mdulos do Kernel Kernel Tainting Modprobe, modprobe.conf, modinfo, lsmod Dependncia de Mdulos Initrd, Imagem de Ramdisk /proc Filesystem /proc/sys Filesystem Sysctl, Ajustes de parmetros no Kernel NFS Introduo Instalando Pacotes/Softwares Necessrios Opes de Montagem do NFS Usando o automounter para montar NFS Laboratrio NFS, cenrio de configurao de mdio porte Arquivos de configurao envolvidos Teste de Implementao/Validao Configurao do Servio (Parte do Cliente) FTP Introduo Instalando Pacotes/Softwares Necessrios Configurao do Servio Laboratrio FTP, cenrio de configurao de mdio porte
97-98 98 99 99 100 100 101 101 102 103 104 104 105 105 105-106 106 106 107 107 108 109 109 109 110 111 112 112 113 113 114 114 114 114 114-115
Arquivos de configurao envolvidos Ativando o Servio na Inicializao do Sistema Teste de Implementao/Validao SAMBA Introduo Instalando Pacotes/Softwares Necessrios Configurao do Servio Autenticao no Samba Arquivos de configurao envolvidos Ativando o Servio na Inicializao do Sistema Gerenciando Contas de Usurios no Samba Montando Automaticamente Compartilhamentos Samba no fstab Teste de Implementao/Validao (Samba Clients) Laboratrio Samba, cenrio de configurao de mdio porte Teste de Implementao/Validao Soluo do laboratrio Samba APACHE Introduo Instalando Pacotes/Softwares Necessrios Configurao do Servio Arquivos de configurao envolvidos Configurao de Acesso Diretrios e Arquivos Laboratrio APACHE, cenrio de configurao para Virtual Hosts Ativando o Servio na Inicializao do Sistema Teste de Implementao/Validao SQUID Introduo Instalando Pacotes/Softwares Necessrios Configurao do Servio Laboratrio SQUID, cenrio de configurao de pequeno porte Arquivos de configurao envolvidos Ativando o Servio na Inicializao do Sistema Teste de Implementao/Validao
115 115 115 116 116 116-117 117-118 118-119 119 119 120 120 121 122 122 123-124-125 126 126 126 127 127 128 129-130 130 130 131 131 131 132 133 133 133 134
MUAs, MTAs, MDAs Escolhendo o MTA no RHEL com alternatives POSTFIX Introduo Instalando Pacotes/Softwares Necessrios Ativando o Servio na Inicializao do Sistema Configurao do Servio Aliases, Virtual, Access Arquivos de configurao envolvidos Domnios Virtuais DOVECOT Introduo Instalando Pacotes/Softwares Necessrios Configurao do Servio Criando o certificado PEM para utilizao do IMAPS Arquivos de configurao envolvidos Ativando o Servio na Inicializao do Sistema Teste de Implementao/Validao Laboratrio POSTFIX-DOVECOT, cenrio de configurao de pequeno porte Teste de Implementao/Validao OpenSSH Introduo Instalando Pacotes/Softwares Necessrios Configurao do Servio Arquivos de configurao envolvidos Gerando chaves pblicas e privadas Autenticao baseada em hosts Ativando o Servio na Inicializao do Sistema Laboratrio OpenSSH, cenrio de configurao de mdio porte Teste de Implementao/Validao Soluo do laboratrio OpenSSH DHCP Introduo Instalando Pacotes/Softwares Necessrios
135 136 137 137 138 138 138-139 139 140 140 141 141 141 142 143-144 144 144 144 145-146-147 147 148 148 148 149 150 150 150 150 151 151 152 153 153 153
Configurao do Servio Configurao do Cliente DHCP Arquivos de configurao envolvidos Ativando o Servio na Inicializao do Sistema XINETD Introduo Instalando Pacotes/Softwares Necessrios XINETD Configurao Padro dos Servios XINETD Configurao Particular dos Servios Arquivos de configurao envolvidos Ativando o Servio na Inicializao do Sistema TCP WRAPPERS Introduo Especificao do Daemon (Servidores) Especificao do Clientes Sintaxes Complexas Cenrio de Exemplos Laboratrio XINETD-TCP WRAPPERS, cenrio de configurao Teste de Implementao/Validao Soluo do laboratrio XINETD-TCP WRAPPERS Netfilter Introduo Mdulos Base e Extenses do Netfilter Fluxo dos Pacotes no Netfilter Verificao das Regras Alvo das Regras Chains Definidas por Usurios: Extenses de Chains Operaes Bsicas nas Regras das Chains Operaes com Chains Critrios de verificao das Chains Extenses TCP Extenses UDP Extenses ICMP Checagens de estado dos pacotes
154-155-156 156 156 156 157 157 157 158-159 160 160 160 161 161 161-162 162 162-163 163-164 165 165 166 167 167 167 168-169 169 169 170 170-171 171 171-172 173 174 175 175 175-176
NAT Source NAT Masquerading Destination NAT Redirecionamento Salvando as Regras do Iptables Laboratrio IPTABLES, cenrio de configurao de pequeno porte Teste de Implementao/Validao Soluo do laboratrio IPTABLES Laboratrio IPTABLES-SYSLOG, cenrio de configurao de pequeno porte Teste de Implementao/Validao Soluo do laboratrio IPTABLES-SYSLOG
176-177 178 178 179 179 179 180 180 181 182 182 183
RedHatEnterpriseLinux: Introduo:
ORedHatEnterpriseLinuxdesenvolvidopartirdacomunidadedesoftwarelivre,pormaRedHat tambmagregaperformanceeestabilidadeaoproduto.ARedHatpossuiinmerosprogramadoresde cdigo(core)dacomunidadeemseucorpodefuncionrios,existemclulasdedesenvolvimentoem muitospases. So efetuados tambm testes intensivos em seus produtos, criando e certificando uma lista de compatibilidadedehardwareeSoftwareondeestoosmaioresfabricantesdomercadoatual,taiscomo Dell,IBM,Fujitsu,HPeOracle. VocencontraaslistasdecompatibilidadedeHardwareem: https://hardware.redhat.com/hwcert/index.cgi VocencontraaslistasdecompatibilidadedeSoftwareem: https://www.redhat.com/rhel/com patibility/software Comumciclodevidadeprodutolongoasempresaspodemusufruirdeumaltonveldepadronizao nesta plataforma o que tambm agrega estabilidade e um slido planejamento para migrao e atualizao.
SuporteaCPUs:
Intelx86compatible IntelItanium2 AMD64/IntelEM64T IBMPowerPC(eServers,iSeriesepSeries) IBMMainframe(eServer,zSerieseS/390) 1
SLAsdeSuporte:
ARedHatofereceoGSS(GlobalSupportServices)noBrasilenomundo,engenheiroscertificadose comaltonveldecompetnciaemRedHatEnterpriseLinuxiroajudaloaresolvertodoequalquer problemasuportadopeloseucontrato,ouseja,suaSLA.TodososengenheirosdesuportedaRedHatso certificadosRHCEsprimariamenteparaseuscargos. OsuportedivididoemBasic,StandartePremium,possvelcontratarosuportedaRedHatemat24 Horaspor7Diasnasemanaparaproblemasdeseveridade1,ouseja,problemasgravesqueimpactam diretamente na produo de sua organizao, outrasformasdesuporte almdo telefnico, como o suporteviaWEBtambmestodisponveis. ParaacessarasSLAsdesuportedaRedHatentreem: https://www.redhat.com/support/policy/sla/production/
AsVersesdoRedHatEnterpriseLinux:
AtoreleaseRHEL4oprodutoeradivididonasversesAS,ESeWS.AversoASouAdvancedServer eraaversomaiscompletadestinadaaomercadocorporativodesistemasoperacionaisparaservidores. AversoESofereciaamesmaqualidadedesoftwaredaversoASpormtinhalimitaesquantoa quantidadedememriafsicaequantidadedeCPUssuportadas.AversoWSeradestinadaaosegmento dedesktops. AnovaversoRHEL5veiocommuitasnovidades.OtopodacadeiadeprodutosdeservidoresoRed HatEnterpriseLinuxAdvancedPlatformqueagregatotalsuporteavirtualizao,softwaredeclustere gerenciamento, suporte ao GFS (Global File System), no h limitaes quanto ao nmero de processadoresoumemriafsicaemquinasvirtuais. EnquantooAdvancedPlatformocupaosegmentodemercadodoantigoAS,ochamadoBaseServer ocupaolugardotambmantigoES,asdiferenassoqueoBaseServernoacompanhasuporteao clustersuitenemaoGFSe destinadoamquinascomat2processadores.ParavirtualizaooBase serverrecomendadoparaat4mquinasvirtuais.
KernelsDisponibilizados:
Kernel1CPUat4GBRAM KernelSMP2oumaisCPUsat16GBRAM KernelHugemem1,2oumaisCPUsate64GBRAM ParaPlatafomax86nodisponibilizadooKernelHugemem.
AplicativosPopularesSuportados:
OusodoRedHatEnterpriseLinuxcobretodooambientedeTI,conformeficoudemonstradopelo amplo ecossistemadeaplicativosISVcertificados.Atabelaaseguirapresentabrevemente algumas implementaescomuns:
ExemplodeAplicativos
Benefcios
OfereceserviosdearquivoedeimpressoparaosclientesMicrosoft Windows,comintegraodoActiveDirectoryenovosuporteparaos ServidordeArquivo/Impresso gruposreunidos.Ofereceserviosdeimpressoraedearquivospara osambientesUnix,comsuporteNFSv4eAutoFS,incluindobinds autenticadosemapascompartilhados. ServidorWeb OServidorhttpdaRedHatEnterpriseLinuxbaseadonoApache. Oferecealtaperformance,excelenteseguranaeumvastoconjunto depluginsopcionais. OcontainerApacheTomcatservlet,includonoRedHatEnterprise Linux, referncia em implementao, pois atribui poder aos aplicativoswebdelargaescalaemissocrtica. Escolha dentre os bancos de dados open source MySQL e PostgreSQLincludosnoRedHatEnterpriseLinuxouumprodutode terceirosobtidodevendedorascomoIngres,SybaseeOracle.
Servidordeaplicativos
Servidordobancodedados
OLinuxKernel:
ControlarosdispositivosdehardwareafuncionalidadeprimriadoKerneldeumsistemaoperacional, isto ,oKernelnamaioriadasvezesfaladiretamentecomohardware.ChamadasparaCPU,Memria RAM,DispositivosemslotsPCIsorealizadasdiretamentepeloKernel.Geralmenteaidentificaoe configuraodessescomponentesetambmdosBridgesdaplacamesorealizadosautomaticamente peloKernel.
MdulosDinmicosCarregveis:
Parasuportaragrandevariedadedeperifricosexistenteshoje,oKernelutilizaosuporteamdulos dinmicos.ParaacessarcadaperifricoemparticularoKernelprecisadeumdriver,ouseja,umblocode cdigodebaixonvelquecontmasins truesparafalarcomesteperifricoemquesto. Os mdulos podem ser compilados estaticamente junto ao Kernel, aumentando o tamanho dele consideravelmente,oucomomdulosdinmicoscarregveis,isto ,quando necessrioutilizartal perifricooKernelcarregaestemduloesuasdependncias,eapsousodesteperifricodescarregao mduloassimotimizandoosrecursosdosistema. FoiatribuidoaoKernelaresponsabilidadedecontrolaroutrasimportantesimplementaesnoLinux, comooNetfilter,queresponsvelpeloFirewall dosistema.
DispositivoseProcessos:
OsdispositivosnoLinuxsorepresentadoslogicamentecomoarquivos,algumasabstraesdevemser consideradas,asinterfacesderedesoumexemplodeabstraonoLinux. Ogerenciamentodosdispositivosatualmente realizadodinamicamentepeloUDEV,ele responsvel porpopularodiretrio/devcomosdispositivospresentesnosistema. OsaplicativosdosusuriosfalamcomoKerneldoLinuxatravsdealgumasfunesprdefinidasda LIBC, essas funes so chamadas de system calls. Um exemplo, a aplicao do user space OpenOfficequandovaigravarumdocumentonoseimportacomosblocosousetoresdodiscorgido,a aplicaofazumasystemcallondeoKernelrealizaestaoperao. Aintercomunicaoentreosprocessosocorrepormeiodossignals,mensagemprdefinidasso enviadasaosprocessosquandoalgumeventoocorre.Paraterminarumprocessoexisteumsignal especificoparaestafunoporexemplo.
ArquivosdeDispositivos:
ComoobservamosoUDEVresponsvelporpopularodiretrio/devcomosdispositivospresentesem nossosistema.NoLinuxosdispositivossoacessadosdiretamentepelosseusarquivoscorrespondentes geralmentenestediretrio.Podemosenviardadosparasadadaimpressorafacilmentedestaforma: cat/etc/passwd>/dev/lp0
Dispositivosdecaractere:
Os"dispositivosdecaractere"ou"arquivosespeciaisdecaractere"sousadoscomocorrespondentesde dispositivos cujos dados so transmitidos na forma de um caractere por vez. Estes dispositivo so frequentementeutilizadosnacomunicaoserialparamquinasdeteletipo,terminaisvirtuaisemodens seriais. Namaioriadasimplementaes,osdispositivosdecaractereutilizamrotinasdeI/Onobuferizadas", isto,cadacaracterelidoeescritonodispositivoimediatamente.
Dispositivosdebloco:
"Dispositivos de bloco" ou "arquivos especiais de bloco" so utilizados como correspondentes de dispositivosnosquaisosdadossotransmitidosnaformadeblocos.Osdispositivosdeblocosmais comunssodiscosrgidosedrivesdeCDROM. Amaiordiferenaentreosdispositivosdeblocoedecaractereest nofatodosdispositivosdebloco utilizaremrotinasdeI/O"bufferizadas".Osistemaoperacionalalocaumbufferparamanipularumnico blocoparacadaentradaesaida.Quandoumprogramaenviaumarequisiodeleitura,ouescrita,para umdispositivo,cadacaracterededadoarmazenadono bufferapropriado.Quandoobufferficacheioe umblococompletoobtido,aoperaodeI/Orealizadaeobufferesvaziado.
Pseudodispositivos:
OsnsdedispositivonossistemasoperacionaisdotipoUnix,nonecessariamentetemumdispositivo fsicocorrespondente.Osnsquenotmestacorrespondnciasochamadosde"pseudodispositivos". Elessoutilizadosemvriasfunesesogerenciadospelosistemaoperacional.Ospseudodispositivos maiscomunsso:
OutrostiposdeArquivos:
OutrostiposdearquivostambmpodemserobservadosnoLinux,existemosarquivostiposocketque efetuamaintercomunicaoentreprocessosearquivostipo pipe queefetuamfluxosdedadosentre processos.Raramenteumadministradorprecisarcriararquivosdestestiposmanualmente.
Criandodispositivos:
Ocomando mknod utilizadoparacriardispositivos,pormcriardispositivos umaprticapouco utilizadaesaconselhvelemcasosmuitoespecficos.Vejaadocumentaodasmanpagesdomknod paraajudarnacriaodearquivosdedispositivos.
Identificandoelistandoosdispositivos:
Observealistagemdocomandolslaabaixo: brwrw1rootdisk22,0Apr2421:04hdc crw1rootroot14,1Apr2421:04sequencer OdispositivohdcaparececomoumdispositivodeBloco(Acessorandomico),jodispositivosequencer aparececomodispositivodeCaracteres(AcessoSequencialouCorrentedeDados).Temostambmo majoreminornumberqueporsuavezsignificamodriveraserutilizadoparaessedispositivoeum parmetroaserutilizadonestedriveremparticular. Nadocumentaodokernelestabelecidoumaajudaderefernciaparaessesnmerosmuitotil, vejaem:/usr/share/doc/MAKEDEV*/devices.txt.
PCIBus:
Atualmenteamaioriadosperifricosnaarquiteturax86soPCI.DispositivosPCIsogeralmentePlug andPlay,vocpoderfazerumaprocuraouscannosslotsPCIdesuamquinacomocomandolspci, utilize lspciv paraumasadamaisdetalhada.Perifricoscomoplacasdesomemodensgeralmente estoatachadosaosslotsPCIdesuamquina.
SuporteHotplug:
DispositivoshotpluggeralmenteestoatachadosaoUSBBus,IEEE1394(FireWire)ouPCMCIA Bus.OcomandolsusbvlistaosdispositivosUSBeosperifricosatachadosaelesetambmmostra diversasinformaesimportantes. AssimcomoosdispositivosUSB,osdispositivosPCMCIAtambmsoimplementadospormdulosdo Kernel. A configurao da controladora PCMCIA pode ser definida em /etc/sysconfig/pcmcia. Os eventoshotswapsomonitoradospelodaemon /sbin/cardmgr. Cartespodemseridentificados pelo comando /sbin/cardctl.Odiretrio /etc/pcmcia contmosarquivos deconfiguraoparamapear os dispositivos PCMCIAe os mdulos do Kernelutilizados.ParainicializarosdispositivosPCMCIA, utilize:servicepcmciastart. 7
InstalandooRedHatEnterpriseLinux:
AinstalaodoRedHatEnterpriseLinuxdivididaemdoisestgios:
PrimeiroEstgio:
Oprimeiroestgiobasicamenteresponsvelpelobooteaescolhadotipodemdiaondeencontramse ospacotesdoRHEL.Noprimeiroestgiotambmpossvelescolhersevocdesejaefetuarainstalao nomodogrfico(InstalaoPadro)ounomodotexto(linuxtext). configuradoaindanoprimeiro estgiooidiomaelayoutdeteclado. Paraforaraescolhademdiause:linuxaskmethod,estodisponveisinstalaesvia: LocalCDROM Hardrive NFS FTP HTTP Paraforaraverificaodemdiause: linuxmediacheck, sempreaconselhvelverificarsetodasas mdiasestoperfeitasantesdeprocederainstalao,porexemplo,sealgumCDapresentarproblemaem qualquermomentodainstalao,todooprocessoestarcomprometidoresultandonumainstalaono confivel. Existemtambmoutrasopesquepodemseracessadasapartirdoprimeiroestgio,paravisualizaro menucomtodasasopestecleF2. VocencontradentrodoCD1doRHELnodiretrio/imagesosarquivos: boot.iso,estearquivo umaimagemdoCDdebootdoRHEL. tilquandovocdesejaefetuaruma instalao,porexemploviaFTPeapenasdesejaqueosistemasejabootadopeloCDROM.Paracriaro CDapartirdestaimagemISO,utilizeoseuaplicativopreferidoparaqueimarCDs. diskboot.img, este arquivo uma imagem de um sistema de arquivosVFAT. destinado para ser utilizadoemumUSBpendriveporexemplo,ouqualqueroutramdiamaiorqueumdisquete.Observe quesuaBIOSdevetersuporteparabootviadispositivosUSB.Estaimagemdeveserescritacomodd. TambmpossvelrealizarobootviaambientePXE,paraistoprocureosarquivosdedocumentao. 8
SegundoEstgio:
Osegundoestgioumavezlocalizadoecarregadopeloprimeiroestgioirinicializaroanacondaque detectarsuaconfiguraodevdeoecontinuarainstalaoemmodogrfico,oumodotexto(Menus). Nosegundoestgiovriasopesprimriasdeconfiguraoserodefinidaspelousurio,soelas: AtivaodosinstallationNumbers ParticionamentodeDisco ConfiguraodeRede ConfiguraodeTimeZone ConfiguraodopassworddousurioRoot SeleoouCustomizaodePacotesouGruposdePacotesparaaInstalao
DuranteaInstalao:
Duranteainstalaopossvelacessarosconsolesvirtuaisparacertificarsequetudoestacorrendobem, abaixoencontramseasteclasdeatalhoeasdescriesparaosconsolesvirtuais: SevocestiverinstalandoemmodogrficovocprecisapressionarasteclasCtrleAltaomesmotempo. AltF1Oprogramadeinstalaoemmodotexto. AltF2UmshellBash(Somenteparaosegundoestgio). AltF3MensagensdeLogdoprogramainstalador. AltF4MensagensdeLogsdoKernel. AltF5Saidadomke2fs(Programaqueformataasparties)edogrub(Bootloader). AltF7Oprogramadeinstalaoemmodogrfico. Depoisdecompletartodooprocessodeinstalaoimportantetambmconferiroslogsdosistemapara detectarpossveisfalharoudetalhesdeconfiguraesquesvezesnosocomunicadaspeloprograma deinstalao.Apsoprimeirobootdeseunovosistema,verifiqueosarquivosdo/var/log.Osprincipais arquivosdelogsso: /var/log/dmesg(Mensagensdobufferdokernel) /var/log/messages(Saidadosyslogd) /root/install.log(Informaesdelogdoprogramainstalador,muitoimportante!)
Nota: Observe cuidadosamente o primeiro boot de seu novo sistema. Qualquer mensagem de erro deve ser cuidadosamenteinvestigadanoslogs.Verifiquetambmaversooficialinstaladaexecutandoocomando: cat/etc/redhatrelease
Firstboot,ConfiguraesBsicasApsaInstalao:
ORHELexecutaumprogramachamadofirstbootapsainstalaocasoseusistemaestiverconfigurado emrunlevel5(InterfaceGrfica).Ofirstbootofereceumasriedeconfiguraesbsicasiniciaisparao seusistema,soelas: Firewall SELinux Kdump(KernelCrashLogger) DataeHora(NTPD). RegistroeAtualizaodePacotes(RHN). CriacontasadicionaisdeUsurios. ConfiguraodaplacadeSom. InstalaSoftware/PacotesAdicionaisdeoutrosCDs(EXTRAS). Pararodarofirstbootnovamentevocprecisaconfigurarocontedodoarquivo/etc/sysconfig/firstboot paraRUN_FIRSTBOOT=YES.Nainterfacegrficaabraumterminaleexecuteocomandofirstboot.
ConfiguraesGeraisdoSistema:
Muitas ferramentasdeconfiguraodaRedHatestodisponveisparaconfigurardiversos itensno RHEL, as ferramentas comeam seu nome com systemconfig*. Decubra todas as ferramentas disponveisdigitandosystemconfigeateclaTABduasvezesemumterminal. Odiretrio/etc/sysconfigconcentradiversosarquivosdeconfiguraesprimriosnoRHEL. Verifique o arquivo de ajuda localizado em: /usr/share/doc/initscripts*/sysconfig.txt. Este arquivo muito til, nele existem todas as TAGs (Opes) de configurao detalhadas dos arquivos do /etc/sysconfig. 10
Particionamento:
Os discos so divididos em parties lgicas, os principais benefcios do particionamento so a independnciadesistemadearquivosesistemasoperacionaisentreaspartiesetambmofatodeque seumapartioficarcheiaistonoafetarasdemaispartiesexistentes. O sistema de particionamento mais comum onde as quatro primeiras parties so chamadas de primrias,sehouvernecessidadedecriarmaispartiesumadaspartiesprimriasirserconvertida empartioestendida,oquepossibilitaracriaodemaispartieslgicas. OprimeirosetordecadadiscochamadodeMBRouMasterBootRecord,suaestruturaaseguinte: 446BytessoparaoBootstrap 64Bytessoparaasentrasdas4partiesprimarias(4x16) 2Bytessoparaaassinatura Nmeromximoparaparties: ParadiscosIDEolimitede63parties. ParadiscosSCSIolimitede15parties. TcnicasavanadasdeparticionamentocomoRAIDouLVMtambmestodisponveis,diversosnveis deconfiguraespodemseralcanadasdeacordocomoseuobjetivoequantidadedediscos.
ParticionamentodosSistemasdeArquivosduranteaInstalao:
Algumasconsideraesimportantesdevemserlevadasemcontanaseodeparticionamentodurantea instalao,soelas: Otamanhodapartiodeswapgeralmente2vezesotamanhodesuamemriafsica(RAM). aconselhvelacriaodeumapartio/bootcomnomnimo100MBparaacomodarnovoskernels. /var ondeosistemaconcentraosarquivosquemudamfreqentemente,comoarquivosdeLOGse tambmfilasdeMail.aconselhvelnomnimo4GBdeespao. /usr onde seroinstaladososprogramaseaplicativosseutamanho varivelpelaquantidade de pacotesquevocdeterminoudurantea instalao. /etc/lib/bin/sbin/devnodevemestarempartiesdiferentes,elasdevemserpartedodiretrio(raiz/), poisnessaspartiesencontramsearquivosindispensveisparaobootdosistema. /tmpondeseroarmazenadosarquivostemporriosdosistema. 11
SoftwareRAID,HardwareRAID,NveisdeRAID:
RAIDacrnimoparaRedundantArrayofInexpensiveDisks.Estearranjousadocomoummeiopara criarumsubsistemadeunidadededisco,rpidoeconfivel,atravsdevriosdiscosindividuais. Apesar do RAID ter sido feito para melhorar a confiabilidade do sistema, atravs da adio de redundncia, pode tambm levar a uma falsa sensao de segurana e confiana quando usado incorretamente.Estafalsaconfianapodeacarretaremgrandesdesastres.Particularmente,oRAID feitoparaprotegerfalhasnodisco,noparaprotegerfalhasdeenergiaouerrosdooperador. Falhasdeenergia, bugs nodesenvolvimentodokernelouerrosdeadministradoresedeoperadores podemdanificarosdadosdeumaformairrecupervel.RAIDno umsubstitutoapropriadopara executarumbackupdoseusistema.Saibaoquevoc est fazendo,faatestes,sejaconhecedore cientedetodososdetalhesqueenvolvemaimplementaodeRAID. RAIDpermitequeocomputadorganhedesempenhonasoperaesdeacessoadisco,edamesmaforma, rpidarecuperaoemcasodeperdadealgumdisco.Otipomaiscomumdearranjodeunidades um sistemaouumacontroladoraquepossibilitaousodemltiplasunidadesdediscorgido,configuradas paraqueosistemaoperacionalsecomportecomoseexistisseapenasumdiscoinstaladonocomputador.
RAIDViaHardwareeViaSoftware:
RAID pode ser implementado por hardware, na forma de controladoras especiaisde disco, ou por software,comoummdulodokernelqueficadivididoentreacontroladoradediscodebaixonveleo sistemadearquivosacimadele.
RAIDViaHardware:
RAIDporhardwaresempreumacontroladoradedisco,isto,umdispositivoquepodeatravsdeum caboconectarosdiscos.Geralmenteelevemnaformadeumaplacaadaptadoraquepodeser"plugada" emumslotISA/EISA/PCI/SBus/MicroChannel.Entretanto,algumascontroladorasRAIDvmnaforma deumacaixaqueconectadaatravsdeumcaboentreosistemacontroladordediscoeosdispositivos dedisco. RAIDspequenospodemserajustadosnosespaosparadiscodoprpriocomputador;outrosmaiores podemsercolocadosemumgabinetedearmazenamentocomseuprprioespaoparadiscoesuprimento deenergia.OhardwaremaisrecentedeRAIDusadocomamaisrecenteerpidaCPUirgeralmente fornecer o melhor desempenho total, porm com um preo significante. Isto porque a maioria das controladorasRAIDvemcomprocessadoresespecializadosnaplacaememriacache,quepodeeliminar uma quantidade de processamento considervel da CPU. As controladoras RAID tambm podem forneceraltastaxasdetransfernciaatravsdocachedacontroladora. 12
RAIDporhardwaregeralmenteno compatvelentrediferentestipos,fabricantesemodelos:seuma controladoraRAIDfalhar,melhorqueelasejatrocadaporoutracontroladoradomesmotipo.Parauma controladora deRAIDviahardwarepoderserusadanoLinuxelaprecisacontarcomutilitriosde configurao e gerenciamento, feitos para este sistema operacional e fornecidos pelo fabricante da controladora.
TiposdeHardware:
Tendovriasopesdecontroladoras,necessriopensarcuidadosamentesobreoquevocquerfazer. DependendodoquequerfazeredonveldeRAIDqueir usar,algumascontroladoraspodemser melhoresqueoutras. Otipoencapsuladoligadodiretamentehabilidadedetroca"quente"[5]daunidadeeaossistemasde advertncia,ouseja,exibeindicaodefalhasdaunidadeequetipodetratamentosuaunidadereceber. Umexemploparaistopodeserrefrigeraoredundanteefornecimentodeenergia.Osencapsulamentos fornecidospelaDPT,HP,IBMeCompaqtrabalhamextremamentebem,mastmumcustoalto tambm.
RAIDViaSoftware:
RAID via software uma configurao de mdulos do kernel, juntamente com utilitrios de administrao que implementam RAID puramente por software, e no requer um hardware especializado.Podeserutilizadoosistemadearquivosext2,ext3,DOSFATououtro. EstetipodeRAID implementadoatravsdosmdulosMDdokerneldoLinuxedasferramentas relacionadas. RAIDporsoftware,portersuanaturezanosoftware,tendeasermuitomaisflexvelqueumasoluo porhardware.OladonegativoqueeleemgeralrequermaisciclosecapacidadedeCPUparafuncionar bem,quandocomparadoaumsistemadehardware.Eleofereceumaimportanteedistintacaracterstica: operasobrequalquerdispositivodeblocopodendoserumdiscointeiro(porexemplo,/dev/sda),uma partio qualquer (por exemplo, /dev/hdb1), um dispositivo de loopback (por exemplo, /dev/loop0)ouqualqueroutrodispositivodeblococompatvel,paracriarum nicodispositivo RAID.IssodivergedamaioriadassoluesdeRAIDviahardware,ondecadagrupojuntaunidadesde discointeirasemumarranjo. Comparandoasduassolues,oRAIDviahardware transparenteparaosistemaoperacional,eisto tendeasimplificarogerenciamento.Viasoftware,hdelongemaisopeseescolhasdeconfiguraes, fazendocomqueoassuntosetornemaiscomplexo. 13
OControladordeMltiplosDispositivos(MD):
OcontroladorMD usadoparaagruparumacoleodedispositivosdebloco,emum nicoegrande dispositivodebloco.Normalmente,umconjuntodedispositivosSCSIeIDEsoconfiguradosemum nicodispositivoMD. As extenses do controlador MD implementam modo linear, RAID0 (stripping), RAID1 (espelhamento), RAID4 e RAID5 por software. Isto quer dizer que, com MD, no necessrio hardwareespecialoucontroladoras dediscoparaobteramaioriadosbenefciosdeRAID. Ateno AadministraodeRAIDnoLinuxno umatarefatrivial,e maisvoltadaparaadministradoresde sistemaexperientes.Ateoriadaoperaocomplexa.Asferramentasdosistemaexigemmodificaes nosscriptsdeinicializao.Erecuperarsedeumafalhanodisconoumatarefasimples,passvelde erros humanos. RAID no para iniciantes, e qualquer benefcio em busca de confiabilidade e desempenhopodeserfacilmenteacrescidodecomplexidadeextra. Certamente,unidadesdediscoevoludassomuitoconfiveis,econtroladoraseCPUsavanadasso muitopotentes.Vocpodeobtermaisfacilmenteosnveisdeconfiabilidadeedesempenhodesejados, comprandohardwaredealtaqualidadeepotncia. OskernelsdoLinuxdasrie2.4.xincluemosuporteaRAIDporsoftwareporpadro.Omesmonvel desuporteaRAIDpodeserobtidonoskernelsdasrie2.2aplicandosecorreesoupatches(vejano FTPdokernel).Oskernelsdasrie2.4.xsuportamRAIDviasoftwarecomsistemadearquivos journalled(porexemplo,ext3),diferentedokernel2.2.x,quenopossuaestesuporte.
NveisdeRAID:
Asdiferentesmaneirasdecombinarosdiscosemums,chamadosdenveisdeRAID,podemfornecer tantograndeeficinciadearmazenamentocomosimplesespelhamento,oupodemalterarodesempenho delatncia(tempodeacesso).Podemtambmfornecerdesempenhodataxadetransfernciadedados paraleituraeparaescrita,enquantocontinuammantendoaredundncia.Novamente,isto idealpara prevenirfalhas. Os diferentes nveis de RAID apresentam diferentes desempenho, redundncia, capacidade de armazenamento,confiabilidadeecaractersticasdecusto.Amaioria,masnemtodososnveisdeRAID, ofereceredundncia falhadedisco.Dosqueoferecemredundncia,RAID1eRAID5soosmais populares.RAID1oferecemelhordesempenho,enquantoqueRAID5forneceumusomaiseficientedo espaodisponvelparaoarmazenamentodosdados.
14
Dequalquermodo,oajustededesempenhoumassuntobastantediferente,dependentedeumagrande variedadedefatores,comootipodaaplicao,ostamanhosdosdiscos,blocosearquivos. ExisteumavariedadedetiposdiferenteseimplementaesdeRAID,cadaumacomsuasvantagense desvantagens. Por exemplo, para colocar uma cpia dos mesmos dados em dois discos (operao chamadadeespelhamentodediscoouRAIDnvel1),podeseacrescentardesempenhodeleitura,lendo alternadamentecadadiscodoespelho.Emmdia,cadadisco menosusado,porestarsendousadoem apenasmetadedaleitura(paradoisdiscos),ouumtero(para3discos),etc.Almdisso,umespelho podemelhoraraconfiabilidade:seumdiscofalhar,o(s)outro(s)disco(s)tmumacpiadosdados. AseguirserodescritososdiferentesnveisdeRAID,nocontextodeimplementaodeRAIDpor softwarenoLinux.
RAIDlinear:
umasimplesconcatenaodepartiesparacriarumagrandepartiovirtual.Istopossvelsevoc temvriasunidadespequenas,equercriaruma nicaegrandepartio.Estaconcatenaonooferece redundncia, e de fato diminui a confiabilidade total: sequalquer um dos discos falhar, a partio combinadairfalhar.
RAID0:
AgrandemaioriadosnveisdeRAIDenvolveumatcnicadearmazenamentochamadadesegmentao dedados(datastripping).Aimplementaomaisbsicadessatcnica conhecidacomoRAID0e suportadapormuitosfabricantes.Contudo,pelofatodeestenveldearranjonosertoleranteafalhas, RAID0no verdadeiramenteRAID,aomenosquesejausadoemconjunocomoutrosnveisde RAID.
15
Figura91.RAID0 Segmentao(stripping) ummtododemapeamentodedadossobreomeiofsicodeumarranjo,que serveparacriarumgrandedispositivodearmazenamento.Osdadossosubdivididosemsegmentos consecutivosoustripesquesoescritosseqencialmenteatravsdecadaumdosdiscosdeumarranjo. Cadasegmentotemumtamanhodefinidoemblocos. Porexemplo,sabendoqueotamanhodecadasegmentoestdefinidoem64kbytes,eoarranjodediscos contm2discos,quandoumarquivode128kbytesforgravado,osprimeiros64kbytesserogravados noprimeirodisco,sendoqueosltimos64kbytesiroparaosegundodisco,enormalmenteissofeito emparalelo,aumentandoconsideravelmenteodesempenho. Umarranjodessetipopodeoferecerummelhordesempenho,quandocomparadaaumdiscoindividual, seotamanhodecadasegmentoforajustadodeacordocomaaplicaoqueutilizaroarranjo:
EmumambientecomusointensivodeE/Souemumambientedebancodedadosondemltiplas requisiesconcorrentessofeitasparapequenosregistrosdedados,umsegmentodetamanho grandepreferencial.Seotamanhodesegmentoparaumdiscograndeosuficienteparaconter umregistrointeiro,osdiscosdoarranjopodemresponderindependentementeparaasrequisies simultneasdedados. Em um ambiente onde grandes registros de dados so armazenados, segmentos de pequeno tamanhosomaisapropriados.Seumdeterminadoregistrodedadosestendeseatravsdevrios discosdoarranjo,ocontedodoregistropodeserlidoemparalelo,aumentandoodesempenho totaldosistema.
16
RAID1:
Aformamaissimplesdearranjotoleranteafalhas oRAID1.Baseadonoconceitodeespelhamento (mirroring),estearranjoconsistedevriosgruposdedadosarmazenadosemdoisoumaisdispositivos. ApesardemuitasimplementaesdeRAID1envolveremdoisgruposdedados(daotermoespelhoou mirror),trsoumaisgrupospodemsercriadosseaaltaconfiabilidadefordesejada. Se ocorre uma falha em um disco de um arranjo RAID1, leituras e gravaes subseqentes so direcionadasparao(s)disco(s)aindaemoperao.Osdadosentosoreconstrudosemumdiscode reposio (spare disk) usando dados do(s) disco(s) sobrevivente(s). O processo de reconstruo do espelhotemalgumimpactosobreodesempenhodeE/Sdoarranjo,poistodososdadosterodeserlidos ecopiadosdo(s)disco(s)intacto(s)paraodiscodereposio.
17
Figura93.RAID1 RAID1 oferece alta disponibilidade de dados, porque no mnimo dois grupos completos so armazenados.Conectandoosdiscosprimrioseosdiscosespelhadosemcontroladorasseparadas,pode seaumentaratolernciaafalhaspelaeliminaodacontroladoracomopontonicodefalha. Entreosnohbridos,estenveltemomaiorcustodearmazenamentoporrequerercapacidadesuficiente paraarmazenarnomnimodoisgruposdedados.Estenvelmelhoradaptadoparaservirpequenasbase dedadosousistemasdepequenaescalaquenecessitemconfiabilidade.
RAID2eRAID3:
Raramentesousados,etornaramseobsoletospelasnovastecnologiasdedisco.RAID2 similarao RAID4,masarmazenainformaoECC(errorcorrectingcode),que ainformaodecontrolede erros,nolugardaparidade.Estefatopossibilitouumapequenaproteoadicional,vistoquetodasas unidadesdediscomaisnovasincorporaramECCinternamente.
18
Figura94.RAID2 RAID2 pode oferecermaior consistncia dos dados se houver quedadeenergia durante a escrita. Bateriasdeseguranaeumdesligamentocorreto,porm,podemoferecerosmesmosbenefcios.RAID3 similaraoRAID4,excetopelofatodequeeleusaomenortamanhopossvelparaa stripe.Como resultado,qualquerpedidodeleiturainvocartodososdiscos,tornandoasrequisiesdesobreposio deE/Sdifceisouimpossveis. Afimdeevitaroatrasoemrazodalatnciarotacional,oRAID3exigequetodososeixosdasunidades dediscoestejamsincronizados.Amaioriadasunidadesdediscomaisrecentesnopossuemahabilidade de sincronizao do eixo, ou se so capazes disto, faltam os conectores necessrios, cabos e documentaodofabricante.NemRAID2enemRAID3sosuportadospelosdriversdeRAIDpor softwarenoLinux.
19
Figura95.RAID3
RAID4:
Esteumtipodearranjosegmentado,masincorporaummtododeproteodedadosmaisprtico.Ele usainformaessobreparidadeparaarecuperaodedadoseasarmazenaemdiscodedicado.Osdiscos restantes, usados para dados, so configurados para usarem grandes (tamanho medido em blocos) segmentosdedados,suficientementegrandesparaacomodarumregistrointeiro.Istopermiteleituras independentesdainformaoarmazenada,fazendodeRAID4umarranjoperfeitamenteajustadopara ambientestransacionaisquerequeremmuitasleituraspequenasesimultneas. ArranjosRAID4eoutrosarranjosqueutilizamparidadefazemusodeumprocessoderecuperaode dadosmaisdinmicoquearranjosespelhados,comoRAID1.Afunoouexclusivo(XOR)dosdadose informaessobreparidadedosdiscosrestantes computadaparareconstruirosdadosdodiscoque falhou.Pelofatodequetodososdadossobreparidadesoescritosemum nicodisco,essedisco funciona como um gargalodurante as operaesde escrita, reduzindo o desempenho durante estas operaes.
20
RAID5:
Este tipo de RAID largamente usado funciona similarmente ao RAID 4, mas supera alguns dos problemasmaiscomunssofridosporessetipo.Asinformaessobreparidadeparaosdadosdoarranjo sodistribudasaolongodetodososdiscosdoarranjo,emvezdeseremarmazenadasemumdisco dedicado. Essaidiadeparidadedistribudareduzogargalodeescrita(writebottleneck),queeraonicodiscode umRAID4,porqueagoraasescritasconcorrentesnemsemprerequeremacesso sinformaessobre paridade em umdiscodedicado.Contudo,odesempenhodeescritageralaindasofreporcausa do processamentoadicionalcausadopelaleitura,reclculoeatualizaodainformaosobreparidade.
21
Figura97.RAID5 ParaaumentarodesempenhodeleituradeumarranjoRAID5,otamanhodecadasegmentoemqueos dadossodivididospodeserotimizadoparaaaplicaoqueestiverusandooarranjo.Odesempenho geraldeumarranjoRAID5equivalenteaodeumRAID4,excetonocasodeleiturasseqenciais,que reduzemaeficinciadosalgoritmosdeleituraporcausadadistribuiodasinformaessobreparidade. Comoemoutrosarranjosbaseadosemparidade,arecuperaodedadosemumarranjoRAID5 feita calculandoafunoXORdasinformaesdosdiscosrestantesdoarranjo.Pelofatodeainformao sobre paridade ser distribuda ao longo de todos os discos, a perda de qualquer disco reduz a disponibilidadedeambososdadosedainformaosobreparidade,at arecuperaododiscoque falhou.Istopodecausardegradaododesempenhodeleituraedeescrita.
TiposHbridos:
ParasuprirasdeficinciasdeumnvelououtrodeRAIDpossvelusarumnveldeRAIDsobreoutro, aproveitandoporexemplo,oexcelentedesempenhodeumdeterminadonveleaconfiabilidadedeoutro. Issotudo,claro,pagandoopreodeumamaiorquantidadedematerial. Umexemplo oRAID10.Comooseunomeimplica, acombinaodediscosespelhados(RAID1) comasegmentaodedados(datastripping)(RAID0).
22
OmtododecriaodeumarranjoRAID10 diversificado.EmumaimplementaoRAID0+1,os dados so segmentados atravs de grupos de discos espelhados, isto , os dados so primeiro segmentadoseparacadasegmentofeitoumespelho.JemumRAID1+0osdadossoprimeiramente espelhados,eparacadaespelhohasegmentaosobrevriosdiscos. RAID10 oferece as vantagens da transferncia de dados rpida de um arranjo espelhado, e as caractersticas de acessibilidade dos arranjos espelhados. O desempenho do sistema durante a reconstruodeumdisco tambmmelhorquenosarranjosbaseadosemparidade,poisosdadosso somentecopiadosdodispositivosobrevivente. ORAID50 umarranjohbridoqueusaastcnicasdeRAIDcomparidadeemconjunocoma segmentao de dados. Um arranjo RAID50 essencialmente um arranjo com as informaes segmentadasatravsdedoisoumaisarranjosRAID5. Dependendodotamanhodecadasegmentoestabelecidoduranteaconfiguraodoarranjo,estesarranjos hbridospodemoferecerosbenefciosdeacessoparalelodosarranjoscomparidade(altavelocidadena transfernciadedados)oudeacessoindependentedosarranjoscomparidade(grandequantidade).Como em outros arranjos RAID com paridade, a reconstruo de um disco falho gera um impacto no desempenhodoprogramausandooarranjo.
TabeladeComparaodosNveisdeRAID:
PodesefazerumacomparaoentreosvriosnveisdeRAID,deacordocomdesempenho(leitura, gravaoereconstruo),disponibilidadededadoseonmeromnimodeunidadesrequeridas.Observe natabelaadescriodestesatributosparacomparaodosnveisdeRAID.Seguindoasreferncias: A=DisponibilidadedosDados B=DesempenhodeLeitura C=DesempenhodeGravao D=DesempenhodeReconstruo E=NmeroMnimodeUnidadesRequeridas
23
Nenhuma Muitobom
Muitobom
No disponvel Bom
RAID1 RAID4
Bom
2N
E/Sseqencial:BoaE/SE/S seqencial: Muito boaSatisfatria N + 1 (N transacional:Boa E/Stransacional:Ruim pelo menos 2) E/Sseqencial:BoaE/SSatisfatria(amenosqueoRuim transacional:Muitoboa cache writeback seja usado) Satisfatria Satisfatria Boa N + 1 (N pelo menos 2) 2N
RAID5
Boa
Satisfatria N+2
24
LVM,GerenciadordeVolumesLgicos:
OGerenciadordeVolumesLgicos(LVM)umsubsistemaparagerenciamentoativodearmazenagem emdiscoquesetransformouemumpadroparagerenciamentodearmazenagememsistemasUNIX. OGerenciadordeVolumesLgicosconsisteemumacamadaadicionalentreosdispositivosfsicosea interfacedeE/Snokernelparafornecerumavisolgicanoarmazenamento.Aocontrriodosesquemas departicionamentoatuaisondediscossodivididosempartiescontnuasdetamanhofixo,oLVM permiteaousurioconsiderardiscos,tambmconhecidoscomoVolumesFsicos(PV),comoumvolume dearmazenamentodedados,consistindodeextensesdetamanhosiguais. UmsistemadeLVMcompesedegruposarbitrriosdevolumesfsicos,organizadosemGruposde Volumes(VG).Umgrupodevolumepodeconsistirdeumoumaisvolumesfsicos.Podehavermaisde umgrupodevolumenosistema.Umavezcriado,ogrupodevolume,enoodisco,aunidadebsica dearmazenamentodedados(umdiscovirtualcompondosedeumoumaisdiscosfsicos). Aquantidadedeespaoemdisco,que representadaporumgrupodevolume,podeseralocadaem partiesvirtuais,chamadasdeVolumesLgicos(LV)devriostamanhos.Umvolumelgicopode conterumnmerodevolumesfsicosourepresentarapenasumaporodeumvolumefsico.Otamanho deumvolumelgico determinadopeloseunmerodeextenses.Umavezcriados,volumeslgicos podemserutilizadoscomopartiesdediscoregularesparacriarumsistemadearquivosouum dispositivodetroca.
ApresentaodoLVM:
Tradicionalmente,otamanhodeumapartiodefinidonainstalaodosistema.Oredimensionamento departiesestticaspodeserrealizadocomoaplicativoparted.Issorequerqueoadministradorfaaum planejamentoprviodaquantidademximadedadosqueapartiopoderviraarmazenarnofuturo. Quandoumusurioexcederoespaodeumapartio,eleterdereparticionar(oquepodeenvolveruma reinstalaocompletadosistema)ouseutilizardeartifcios,comoasligaessimblicas. Porexemplo,suponhaquevoc possuiumdiscode1GBecriaseumapartio /home utilizando 600MB.Imaginequevoc necessitademaisespaoedescobrequesernecessrio1GBno /home. Utilizandoaantiganoodeparties, necessrioteroutraunidadedepelomenos1GBdetamanho. Ento,podeseadicionarodisco,criaronovo/homeecopiarosdadosexistentesparaele. Entretanto,comumaconfiguraoLVM,necessrioapenasadicionarumdiscode400MB(oumaior)e adicionar esta unidade de armazenamento na partio /home. Outras ferramentas permitem o redimensionamentodeumsistemadearquivosjexistentesemanecessidadedesereformataromesmo.
25
Nota: Note que, como o LVM depende de mdulos do kernel, algumas parties simplesmentenopodemserusadascomLVM.O/eo/bootsoexemplosclarosdisso, poisosmdulosdokernelnecessriosparaamontagemdeumvolumevirtual(almdo prpriokernel)noestariamacessveis.
TerminologiadoLVM:
OLVMvemcomvriosjargesqueprecisamserentendidosparanohaverproblemascomossistemas dearquivos.NestaseoservistaestaterminologiautilizadapeloLVM. Vocdeveusarapalavrafsicacomumpoucodecuidado;dequalquerforma,inicialmenteelaservista como sendo um simples disco rgido, ou uma partio. Por exemplo, /dev/hda, /dev/hda2, /dev/sda.Podesetransformarqualquernmeroconsecutivodeblocosdeumdispositivodeblocos emumVolumeFsico. UmPVnonadamaisqueummeiofsicocomalgunsdadosadministrativosadicionadosaeleuma vezqueadicioneseestesdados,oLVMirreconhecloscomoproprietriosdasExtensesFsicas. ExtensesFsicassocomoblocosdeumsistemadearquivos(regiescontnuasdodisco)realmente grandes,muitasvezescomumtamanhonacasadosmegabytes.PEspodemseratribudasaumGrupode Volumes. UmVG compostoporumdeterminadonmerodeExtensesFsicas.DesteGrupodevolumes,PEs podemseratribudasaumVolumeLgico. UmVolumeLgicooresultadofinaldetodootrabalho,eaquiqueasinformaessoarmazenadas. Eleumdispositivodeblocofuncionalmenteequivalenteaumapartio.sobreoVolumeLgicoque sercriadoumsistemadearquivos. Osistema de arquivospodeserdevriostipos:oext3padro,oext2,etc.Paraousurio, no h diferenaentreumapartioregulareumVolumeLgico.
26
DesenhosIlustrativosdoLVM:
Observealgunsdiagramasabaixoquepermitemvisualizarestesconceitos.
Figura81.VolumeFsicocomExtensesFsicas
Figura82.GrupodeVolumescomDoisPVseSeisExtensesFsicas
27
Figura83.GrupodeVolumesexpandido
28
RegistrandooRHEL5naRHN,rhn_register:
NoRHEL5no maisdisponibilizadoocomandoup2date.Orhn_register aferramentaclienteque registraseusistemanaRedHatNetworkounoRedHatNetworkSatellite.Depoisderegistradoseu sistemapodereceberatualizaes,instalarnovossoftwaresesergerenciadoremotamenteatravsdaRed Hat Network.Invocadosemnenhumargumentoaferramenta rhn_register executadanoambiente grfico,paramodotextouse:rhn_registernox Casosuaconexocomainternetnosejadireta,sernecessrioconfiguraraferramentaparautilizao deproxydemodoqueositedaRHNsejaalcanado. Aps o sistema estar registrado criado um ID digital de seu sistema localizado em: /etc/sysconfig/rhn/systemid.EstaaidentidadeutilizadaparareconhecerseussistemasnaRHN. Oarquivo/etc/sysconfig/rhn/up2dateguardaasinformaesdasferramentasclientedaRHN.
YUM,YellowdogUpdaterModified:
YUMumsistemainterativodeatualizaoegerenciamentoparamantersistemasbaseadosemRPM.O YUM procura automaticamente em diversos repositrios configurados por pacotes RPM e suas dependnciasfacilitandoegerenciandoaatualizaoeinstalaodesoftwarenosistema. VejaabaixoosprincipaiscomandodoYUM:
Parainstalarumpacote:
yuminstallapache
Pararemoverumpacote:
yumremoveapache
Paraatualizarumpacote:
yumupdateapache
29
Paraprocurarumpacote:
yumsearchapache
Paraprocurarinformaosobreumpacote:
yuminfoapache
Listatodospacotesquecontmumtermo:
yumlistapache
Determinaquepacotecontmumarquivoemparticular:
yumwhatprovideshttpd.conf
YUMRHNPlugin:
TodaintegraodaRHNcomoYUM entregueatravsdorhnplugin.Oplugin responsvelpor configurartodososrepositriosnecessriosparaasatualizaeseinstalaesdesoftwarenoRedHat Enterprise 5. Adicionalmente podem ser efetuadas configuraes nos arquivos: /etc/yum/pluginconf.d/rhnplugin.conf,/etc/sysconfig/rhn/up2date.
InstalandonovosrepositriosnoYUM:
ParainstalarumnovorepositriodesoftwarenoYUM,crieumnovoarquivoem:/etc/yum.repos.d Porexemplo,parainstalaropidgin(Onovonomedeprojetodoantigogaininstantmessenger),crie umarquivodenome/etc/yum.repos.dcomoseguintecontedo: [pidgin]
name=PidginforRHEL/CentOS$releasever$basearch baseurl=http://rpm.pidgin.im/centos/$releasever/$basear ch/ enabled=1 gpgcheck=1 gpgkey=http://rpm.pidgin.im/RPMGPGKEYpidgin
30
RegistrandooRHEL4naRHN,up2date:
Oup2datepermiteacomunicaodeseuservidorlocalcomaRedHatNetwork(RHN).Aferramenta up2dateestdisponveltantoparainterfacegrficaquantoparaoconsoleemmodotexto. Ocomportamentodoup2datepodeserconfigurado,massuaprincipalutilidade conectarseaRHNe verificarseexistealgumpacotedeatualizaoouerratarelevanteparaoseusistema,casoexistaeleir efetuarodownloaddospacotesedependnciasparaodiretrio /var/spool/up2date eposteriormente instalarospacotesautomaticamente. Atravsdoup2datevocpodecriarumnovacontanaRHNouefetuaroregistrodeseuservidoremuma contajexistente.Paraistoutilizeocomando:up2dateregister aconselhvelutilizaromodointerativodescritoacimaviainterfacegrfica.Sempreacompanheo statusdesuacontaviaWEBnositedaRHNantesdeprocedercomestecomando. TodatrocadeinformaoentreoservidoreaRHNsegurautilizandoprotocoloHTTPS. Vocserquestionadoporumusernameepasswordetambmumnomedesistema(systemname),este nomedesistemairidentificaresteperfildeservidorparasempre.Vocpodeapagarerecriaroperfil deseusservidoresquantasvezesfornecessrio.
31
AtualizandoeinstalandosoftwarenoRHEL4,up2date:
Oup2datepodeserchamadonomodointerativo(menus)ouembatchmode(linhadecomando),scripts podemchamaroup2datecasoistosejanecessrio.Vejaabaixoalgunsdosprincipaiscomandosemmodo batch:
Kickstart:
OKickstartpermiteaoinstaladorlerasconfiguraesdeumarquivosespecificoaoinvezdeinterromper e perguntar ao usurio que esta realizando a instalao, isto permite automatizar a instalao para mquinascomhardwaresimilar,ouquandooinstaladorconseguereconhecerohardwareperfeitamente. Sealgumitemforomitidonoarquivodeinstalaodokickstart,oinstaladorirpausarainstalaoe fazerestaperguntaaousurio.Geralmenteoarquivodekickstart fornecidoemumdisqueteouem rede.AsinstalaespelokickstartpodemserviaCDROMLocal,DiscoRgidoLocal,NFS,HTTPe FTP.Abaixoestoasinstruesdecomofazerumkickstartpordisquetesepelarede:
KickstartporDisquete:
Crieumarquivopadronizadodeconfiguraesdokickstartcomonomedeks.cfg. Formateumdisquetecomext2ouext3e copieoks.cfgparaodiretrioraizdeseunovodisquete. ReinicieoservidorqueirserinstaladocomokickstartcomoprimeiroCDdoRHELedigite: linuxks=floppy.
KickstartporRede:
UmservidordeDHCP/BOOTP requeridomesmoseaconfiguraoIPfinaldoservidorseresttica. UmservidordeNFStambmser requerido.OservidordeDHCPir instruirparaalocalizaodo arquivodekickstartnoservidorNFS.Geralmenteinstalaesautomticaspelaredeutilizamumservidor deNFSparaproverospacotestambmporrede,unificandotodooprocessodeinstalaoautomatizado porrede. NoservidordeDHCPsonecessriasalgumasconfiguraesespeciaisnoarquivodhcpd.conf,soelas:
filename"/usr/newmachine/kickstart/ks.cfg"; nextserverblarg.redhat.com;
AjudaparaKickstartOnline:
Outrostiposdeconfiguraodekickstarttambmestodisponveisetambmumaexplicaodetalhada detodosospassosencontramsenolinkabaixo: http://www.redhat.com/docs/manuals/enterprise/RHEL4Manual/ sysadminguide/chkickstart2.html 33
ConstruindoseuarquivoKickstart:
Aprimeiradicaestudaroarquivo/root/anacondaks.cfgquegeradoautomaticamentepeloinstalador deacordocomainstalaorealizadanamquina.
Diretivasdeutilitrios:
Aprimeiraseo adecomandos,aordemdoscomandono significativa.Paracadacomandoo instaladorirtomarumaao,emmuitoscomandosoinstaladorirpassardiretamenteparmetrospara osutilitriosdeconfigurao.Conheaabaixoalgumasdiretivaseosutilitrioscorrespondentes: DiretivaUtilitrio keyboard systemconfigkeyboard timezone systemconfigtime xconfig systemconfigdisplay auth systemconfigauthentication mouse systemconfigmouse rootpw systemconfigrootpassword firewall systemconfigsecuritylevel
DiretivasdeParticionamentodedisco:
Asdiretivasdeparticionamentoconteminformaessobreparticionamentodedisco,RAIDeLVMque sero passadasparao diskdruidemordem a criar o tamanho das partiesepontosdemontagem especificadosno/etc/fstab.Abaixoestoasprincipaisdiretivasdeparticionamento: part<filesystem>size<size>[growmaxsize<size>] partswapsize part<raudcomponet> raid logvolvolgroup
OutrasdiretivasdoKickstart:
Muitasoutrasdiretivasestodisponveisparaconfiguraodedetalheseajustesfinosdeinstalao. ConsulteolinknaseodeAjudaparaKickstartOnlineparaumalistacompletaedetalhadadosdemais itens. 34
DiretivasdeInstalaodePacotes:
Adiretiva%packagesmarcaoiniciodaseodoarquivokickstartquelistaospacotesquedevemser instalados.Aseodeinstalaodepacotesvemapsaseodecomandosdescritaacima.Nomesde pacotesindividuaisougrupospodemserlistados.Ocaracter@significaumgrupodepacoteenquanto pacotesindividuaisdevemserlistadossemverso,releaseouarquitetura.Adefiniodosgruposestno primeiroCDdeinstalaodoRHELlocalizadaem:RedHat/base/comps.xml. ObservequeosgruposCoreeBasejestoselecionadosporpadroenoprecisamseradicionados. Abaixoestumbreveexemplodaseo%packages:
%packages @XWindowSystem @GNOMEDesktopEnvironment @GraphicalInternet @SoundandVideo dhcp
Diretiva%pre:
Adiretiva%preficalocalizadanofinaldoarquivokickstart,soexecutadososcomandos(scripts)da seo%preapsoarquivodekickstartserlido,isto,antesdeparticionar,formataroucopiarqualquer pacoteparaosistema.Observequeoscomandosdaseo%presoexecutadosemumambientebastante reduzido,aresoluodenomesporexemploaindanoestaacessvel. Observeumexemplodescript%pre:
%pre #CreatepartitionsbycopyinganMBRimage mknod/tmp/hda ddif=/mnt/source/pub/mbr.imgof=/tmp/hda
35
Diretiva%post:
Adiretiva%postficalocalizadaapsadiretiva%preoutambmnofinaldoarquivodekickstart.Ao contrariodaseo%pre,aseo%post muitomaispoderosa,todosospacotesjforamdevidamente instaladoseosistemaconfigurado,umainfinidadedeadequaespodemserrealizadasaqui.possvel afirmarquecomaseo%postsomadadaversatilidadedosscriptspossvelfazerqualquercoisa. Observequeaseo%postrodaemchrootem/mnt/sysimageondeest onovosistemainstalado. possivelacessaroambientediretamente,paraissovocdeveespecificaroargumentonochroot. Observeumexemplodescript%post:
%postnochroot /sbin/chkconfiglevel345telnetoff /sbin/chkconfiglevel345fingeroff /sbin/chkconfiglevel345lpdoff /sbin/chkconfiglevel345httpdon
36
RedHatNetwork(RHN):
ARedHatNetworkumplataformadetrabalhobaseadanaWEBparagerenciartodasuainfraestrutura deservidoresRedHatLinux.Atravsdeumaextensaecomplexainterfacegrficaosadministradores podemgerenciarosservidores,efetuaratualizaeseerratas,agendarmanutenesemuitomais. Os servios oferecidos pela RHN so comercializados e divididos por mdulos, para cada mdulo adquiridoaumentadoonmerodefuncionalidadesquevocconseguevisualizarnasuaconta.
RHNSD:
RHNSDumdaemonqueexecutadoembackgroundecontataaRHNperiodicamenteparaverificarse halgumatarefaagendadaparaseusistema.Seforencontradaalgumatarefaagendadaodaemonexecuta atarefa.Opcionalmentevocpodeinvocaroprocessoparaserexecutadoemforeground. Orhnsdefetuaverificaesnomomentodesuainicializao,casoseusistemaaindanotenhasido devidamenteregistradoemumcanaldaRHNelesimplesmentenoiraserexecutado. OrhnsdinicializadoatravsdeumscriptestiloSystemVlocalizadoem/etc/init.d/rhnsd.Ointervalode tempo padro configurado para contatar a RHN de 240 minutos e o tempo mnimo pode ser configuradoparaat60minutos.Paraativarodaemonnainicializaouse:chkconfigrhnsdon Paraverificarporatualizaesorhnsdchamaumprogramaexternochamado rhn_check, apenasum pequenoexecutvelquegerenciaaconexoderedecomaRHN.Odaemonrhnsdnoabrenenhuma portanoservidor,semprequenecessrioconectarsecomaRHNoaplicativorhn_check chamadoe iniciaconexocomaRHN. Oarquivodeconfiguraodorhnsdestalocalizadoem/etc/sysconfig/rhn/rhnsde chamadoquandoo daemoninicializadopeloscript/etc/init.d/rhnsd.Oprincipalparmetrodeconfiguraoointervalode tempoemminutosqueserconfiguradoparaodaemoncontataraRHN. Novamente, necessrio antes seu sistema estar devidamente registrado na RHN para o rhnsd ser executado.
37
MdulosComerciaisdaRHN:
Omdulodeupdateconsideradobsicoejvmporpadroemqualquersubscrioadquirida.Ele responsvelporefetuarasatualizaesnossistemas.Osprincipaisoutrosmdulosso:
Management:
Omdulodegerenciamentopermiteorganizarsuainfraestruturadeservidoresemgrupos,indicadapara organizaes com um grande nmero de servidores, permite fcil administrao e visualizao de centenasdeservidorescomosefossemums.Suasprincipaisfuncionalidadesso: AgrupamentoeOrganizaodesistemas.(SystemGroupping) Gerencieumgrupodeservidorescomamesmafacilidadequegerenciaapenaumnicoservidor. PermissionamentoGernciaveldaAdministraodosGrupos.(SystemPermissions) AgrupeseusistemadeacordocomsuasnecessidadeseadicioneapermissoparaadministradoreseSub administradoresdosgruposcriandoseupolicycustomizadodeadministrao. AgendamentodetarefasparaGrupos.(ScheduledActions) Agendeeorganizeaatualizaooucorrees(erratas)paraosgruposdeservidores. ProcuradetalhadaemGruposeSistemas.(SystemSearch) UmsistemadeprocuraavanadopodeencontrarpacotesRPM,erratasouespecificaesdeservidores nosgrupos. ComparaoentreSistemas.(PackageProfileComparisonTools) Comparedoisservidoresdiretamente.Permiteencontrarasdiferenasegerarboletinsdosresumosdas diferenasentreservidores. GerenciamentoMultiPlataforma.(MultiPlataformManagement) PermiteogerenciamentodesistemasSolarisnaRHN(Somentecomomdulosatellite).
38
Provisioning:
Omdulodeprovisionamento capazdegerenciarocompletociclodevidadesuainfraestruturade servidores.Oadministrador capazdeprojetar,gerenciar,atualizareremanejartodainfraestruturade mquinas Linuxatravsdeumconsolegrfico(GUI).Contmtodasasfuncionalidadesdo mdulo Management. Provisionamento.(BareMetalProvisioning) InstalaoeRemanejamentodenovosservidoresautomaticamenteatravsdoKickstart. ProvisionamentodeEstadodeExistencia.(ExistingStateProvisioning) Comumscliqueoadministradorpodereplicaroestadodeumamquinajemproduoparaumnovo servidor. Rollback.(MultiStateRollback) Permitearmazenaroestadodeconfiguraoesoftwaredeumservidoreretornaraesseestadoquando desejar. GerenciadordeConfigurao.(ConfigurationManagement) Permitegerenciargruposdeconfiguraesecombinadocomasferramentasdekickstartentregaum completogerenciamentodeaesdeprovisionamento. ProvisionamentodeSoftwareRPM.(RPMbasedapplicationprovisioning) PermiteumcompletoprovisionamentodeaplicativosRPM. EditordeConfiguraodoKickstart.(Kickstartconfigurationwritter) Ferramentadeedioemanipulaodoarquivodeconfiguraodokickstart.
39
Monitoring:
Omdulodemonitoramentopermiterastrearseusservidoreseaplicativosatravsdeumconsolecentral naRedHatNetworkgerandorelatriosperidicosprincipalmentesobreperformanceecarga. AnalizadordeSistema.(SystemProbes) Marcadorespodemserdisparadosparaefetuarachecagemdedziasdeindicadores,comomemria, capacidadedediscoeCPUporexemplo. AnalizadordeAplicaes.(ApplicationsProbes) MarcadorespodemserdisparadosparamonitoraraplicaespopularescomoOracle,BEA,MySQLe Apache. AnalizadoresPersonalizaveis.(CustomProbes) Marcadorespodemsermanipuladosparamonitorarsuasaplicaesparticulares. GruposdeAnalizadores.(ProbesSuites) Organizegruposdemarcadoresparamelhoraraconsistnciadeseusservidores. CentraldeNotificaes.(Notification) Alarmesdeestadocrticopodemserenviadosparaemailsoupagers. CentraldeStatus.(CentralStatus) Resumos dos marcadores de monitoramento organizados em uma pgina centralizando todas as informaespodemsergeradasparafacilitaroacompanhamentodegruposdeservidoresemproduo. Relatrios.(Reporting) RelatriospodemserorganizadosgerandogrficoseLOGsdeacordocomosmarcadoresselecionados.
40
SatelliteServer:
TodasfuncionalidadesdaRedHatNetworksoarmazenadasemsuaredelocal,ossistemasgerenciados conectamseaosatelliteserverreduzindoousodainternet.ApenasosatelliteserverconectaaRedHat networkparasincronizarcomonovocontedo.Estemodelopermiteogerenciamentodeservidoressem oacessopblicodiretooqueaumentaaindamaisaseguranadeseudomniocorporativo.
ProxyServer:
Oproxyserverpodeseradicionadoaosatelliteserverconcentrandoecachenadodownloadspara diminuiraindamaisoacessoainterneteprovercommaiorvelocidadeatualizaoeerratasaossistemas gerenciados.
AjudadaRHNOnline:
TodadocumentaodasfuncionalidadesdaRHNpodemserencontradasnositedaRedHatnolink abaixo: https://rhn.redhat.com/help/abo ut.pxt
41
ResumodoProcessodeBootdoSistema:
AbaixoosprincipaispassosdoprocessodeBootdoSistemaresumidos:
OKernelchamadoinicializadoosdriversbuiltinemdulos.Essesdriversdetectameinicializamos dispositivosdehardwaredamquina,ofilesystemraizmontadoemreadonly.
Oinitiniciadoeentranorunlevelprdefinidono/etc/inittab,comooinitoprimeiroprocessoele temoPIDnmero1,todososdemaisprocessosdamquinaseroseuparente.
/etc/rc.d/rc.sysinit chamadoefazdiversasconfiguraesdeambientenosistemacomoconfiguraro hostname, ativar swap, ativar RAIDs e LVMs, montar e checar os demais filesystems, efetuar as configuraesdeparmetrosdokerneldefinidasem/etc/sysctl.conf,ativarquotas,configurarorelgio dosistemaeetc...
/etc/rc.d/rcexecutaosscriptsdodiretrio /etc/rc.d/rcX.d/correspondenteaorunlevel.
/etc/rc.d/rc.localexecutado.
Acompanhenasprximaspgi nastododetalhamentodecadaumdostensacima. 42
GRUB:
GRUB asiglaparaGRandUnifieldBootloader.Tratasedeumgerenciadordebootdesenvolvido inicialmente por Erich Stefan Boleyn, disponibilizado como software GNU. Entre seus principais recursosestacapacidadedetrabalharcomdiversossistemasoperacionais,comooLinux,oWindowse asversesBSD,eseuconseqentementesuporteavriossistemasdearquivos,comooext2,ext3, reiserfs,FAT,FFS,entreoutros.
Agoraquevoc j sabecomooGRUBtrataosdiscosdamquina,abaixosegue,comoexemplo,o contedodeumarquivogrub.conf: default0 timeout5 fallback1 splashimage=(hd0,1)/grub/splash.xpm.gz titleFedoraCore(2.6.91.667) root(hd0,1) kernel/boot/vmlinuz2.6.91.667roroot=/dev/hda2 initrd/boot/initrd2.6.91.667.img titleWindowsXP rootnoverify(hd0,0) makeactive chainloader+1 Aprimeiralinhadefault0indicaaoGRUBqualsistemaoperacionalinicializarcasoousuriono faanenhumaescolha.Noexemplo,elevai"bootar"oFedoraLinux,poisonmero0fazrefernciaao primeirosistemalistadonoarquivo.CasooWindowsXPtivessequesercarregadoporpadro,bastaria mudaralinhaemquestoparadefault1,poisnoarquivoessesistemaosegundoaserlistado(noteque oGRUBfazalistagemcomeandoemzero). Alinhapreenchidacomtimeout5determinaotempo(emsegundos)queousurioterparaescolherum sistemaoperacionalparainicializar.AssimqueoGRUB"entraemao",elemostranatelaumalistados sistemasoperacionaisinstalados.Ousuriopoderescolherumalternandoosatravsdasteclasdeseta dotecladoepressionandoobotoEnterquandoaescolhaforfeita.Nocasodesseexemplo,otimeout recebeovalor5.Issosignificaqueousurioter5segundosparaescolherumsistema.Casonenhuma oposejaescolhida,apsos5segundos,oGRUBcarregar osistemapadro,definidoatravsda primeiralinha. Porsuavez,aterceiralinha(nemsempreusada) fallback1indicaaoGRUBqualsistemainicializar casoocarregamentodaprimeiraopofalheporalgummotivo.Esserecursoespecialmentetilquando hmaisdedoissistemasoperacionaisinstaladosnocomputador. Aquartalinhasimplesmenteconteminformaesparacarregarasconfiguraesgrficas(comoimagem defundo)paraquandooGRUBexibirasopesdesistemaoperacionaldisponveis.
44
Observequenestearquivogrub.confalistadesistemasoperacionais mostradadepoisdaquartalinha deconfigurao.OprimeirosistemadalistaoFedoraLinux: titleFedoraCore(2.6.91.667) root(hd0,1) kernel/boot/vmlinuz2.6.91.667roroot=/dev/hda2 initrd/boot/initrd2.6.91.667.img AprimeiralinhaacimamostraottuloqueosistemarecebenoGRUB. essenomequeserexibido quandooGRUBmostraralistadesistemasoperacionaisqueousuriopodeescolher.Podeseusar qualquerfrasedepoisdetitle.Obviamente,informealgorelacionadoaosistemaoperacionalemquesto. A segunda linha root(hd0,1) informa ao GRUBondeo sistemaoperacionalest instalado. No exemplo,eleseencontranasegundapartiodoprimeiroHD.Apalavra roottemafunodeindicar queaquelaapartioprincipaldosistema(ouapartioraiz)eque,portanto,deversermontada. AterceiraeaquartalinhainformamaoGRUBokernelasercarregadoepossveisparmetros.Neste caso,roindicaqueapartiodevesermontadainicialmentecompermissesapenasdeleitura. NapartedoarquivoquetratadoWindowsXP,asintaxeamesma.Noentanto,asegundalinharecebeo parmetrorootnoverify aoinvsde root,poisamontagemdepartionoseaplicaaoWindows.O rootnoverifyusadoporqueesseparmetronotentafazernenhumamontagem. titleWindowsXP rootnoverify(hd0,0) makeactive chainloader+1 ComooWindowstrabalhademaneiradiferentedoLinux,aopodecarregarokerneltambmnose aplicaaosistemadaMicrosoft.Nolugardesseparmetro,geralmente usado chainloader+1,que "chama"ocarregadordebootdoWindows,deixandoaesseatarefadeiniciarosistema.Notequeem nossoexemplo,humparmetronalinhaacimadechainloader+1,omakeactive.Estetemafunode definirapartioemquestocomoativa.
45
Existe umparmetrochamado map quepermiteocarregamentodoWindowsquandoesteno est instaladonoprimeiroHD(regraobrigatrianoWindows9x,porexemplo).Suautilizao feitada seguinteforma(SupondoqueoWindowsestejanosegundodisco): map(hd0)(hd1) map(hd1)(hd0)
OutrasopesdoGRUB:
Voc j deve ternotadoque,basicamente,oGRUB divididoemduaspartes:aprimeira contem configuraes gerais referentes ao prprio GRUB e a segunda parte contem a lista dos sistemas operacionaisinstaladosnamquina.Voctambmdeveternotadoqueopreenchimentodasinformaes dasegundapartemudamdeacordocomosistema. Naprimeiraparte, possveladicionaroutrosparmetros,entreeleso password eo hiddenmenu.O primeirosolicitaumasenhadefinidaporvocparaoacessoadeterminadosrecursos,comoaopode linhadecomandodoGRUB(sintaxe passwordsenha).Osegundosimplesmenteescondealistade sistemasoperacionaisquandooGRUBcarregado.Essalistapodeficarvisvelpressionandoseatecla ESCdoteclado. Casovocqueirapossibilitaroacessoaumdeterminadosistemaoperacionalsomenteatravsdesenha, bastainserirapalavralockdepoisdalinhatitlereferenteaosistemaemquesto.Noentanto,paraisso, necessrio queaopo password tenhasidoinserida na primeiraparte,pois estasenha que ser solicitada: titleWindowsXP lock rootnoverify(hd0,0) (...) Seautilizaodeoutrasenhafornecessria,bastainserirocampopasswordsenhaabaixodalinhatitle. Nessecaso,asolicitaodesenhasomenteserfeitaseosistemaoperacionalemquestoforescolhido: titleWindowsXP passwordsegredo rootnoverify(hd0,0) (...)
46
LinhadecomandosdoGRUB:
OGRUBcontacomumrecursomuitointeressante(Muito tilprincipalmentepararesolverproblemas nocarregamentodosistemaoperacional)umalinhadecomandosquepodeseracessadaassimqueo GRUBcarregado.Paraisso,quandooGRUBestiverdisponvel,podeseapertarumadeterminadatecla (geralmenteobotoC)ouescolheressaoponalistadesistemasoperacionais.Tudodependedaforma comooGRUBfoiconfigurado(oGRUBgeralmenteacionaalinhadecomandoquandonoencontraa listadesistemasoperacionais). HumasriederecursosquepodemserusadosnalinhadecomandosdoGRUB.Quandoestivernela, pressioneateclaTabdeseutecladoduasvezesseguidasparaobteralistacompletadecomandos.Para obterdetalhessobreumcomandoespecfico,digitehelpcomando,porexemplo:helpcmp ParamaioresinformaesdetalhadassobreoGRUBuse:infogrub
RefazendooPrimeiroEstgiodoGRUB:
SeporalgummotivosuaMBRforcorrompida,ousimplesmentevoc desejarefazerainstalaodo grub,utilizeocomando/sbin/grubinstall<dispositivodeboot>. Aindaseocomandoacimafalhartente: 1. 2. 3. 4. Digitegrubepressioneenter Digiteroot(hd0,0) Digitesetup(hd0) Digitequit
OBS:AcimaainstalaodoprimeiroestgioocorreranaMBRdoprimeirodisco. 47
InicializaodoKernel:
Quando o Kernel inicializado mensagens de deteco de hardware e inicializao de drivers de dispositivos comeam a surgir na tela. Um forma de visualizar essas mensagens posteriormente verificarocontedodoarquivo/var/log/dmesg. Osdriversdedispositivocompiladosdentrodokerneltentamencontrarseusrespectivosdispositivosde hardware,quandoodispositivoencontradoeleinicializadoemensagensdelogsseroemitidas. Montarofilesystemraizemreadonlytambmumatarefarealizadapelokernel. Todososdriversdedispositivosnecessriosparaobootdosistemataiscomodriversdecontroladoras SCSI por exemploprecisamestarcompilados dentrodokernelou entocontidosem uma imagem chamadainitrd.OinitrdmontadopelokernelnamemriaRAMemtempodebootafimdeexpandiro nmerodemdulosoudriversdedispositivosnecessriosparaoboot.
InicializaodoInit:
ApsokernelserinicializadoelepassaocontroleparaoprocessoInit.AconfiguraodoInitest localizadaem/etc/inittab.TodososprocessosdamquinasoparentesdoInit,algumasdasprincipais funesdoInitsoinicializarosconsolesvirtuais,mapearseqnciasdeteclascomoporexemploo Ctrl+Alt+Del, executar o contedo do diretrio do runlevel prdefinido, executar um script de inicializaodosistema. Casooarquivo/etc/inittabestejacorrompidoosistemaestarapenasdisponvelemmododeemergncia (emergencymode) Avarivelinitdefaultnoarquivo/etc/inittabcontrolaorunlevelpadrodosistema,seuformato: id:x:initdefault; Ondexrepresentaorunlevelpadodosistema. Paramaioresdetalhessobreoinituse:maninit Para alterar o runlevel do sistema em execuo basta como usurio root usar: init x, onde x representaonmerodorunleveldesejado.Osistemair parartodososserviosdorunlevelatuale inicializaroprximorunlevel.Ocomando/sbin/runlevelinformaorunlevelatualdosistema. 48
OScript/etc/rc.d/rc.sysinit:
O script rc.sysinit quandoiniciadoforneceaopoaousuriodeentrarnomodointerativo,isto realizadopressionandoateclai.Omodointerativoefetuaperguntasantesdeexecutaramaioriadas aesrealizadaspeloscript.Essescript responsvelporconfigurarboapartedosistema,algumasdas principais funes do rc.sysinit so configurar os parmetros do kernel de acordo com o arquivo /etc/sysctl.conf,ativarRAIDseLVMs,ativarquotas,ativarapartiodeswap,configurarorelgiodo sistemaeetc...
OScript/etc/rc.d/rc:
Estescriptresponsvelporiniciarepararosserviosquandoorunleveldosistemaalterado. Em tempo de boot ele responsvel por inicializar os servios do runlevel padro definido no /etc/inittab.
SystemVrunlevels:
Osscriptsdecontrole(start,restart,stop)dosserviosficamem/etc/rc.d/init.d/,linkssimblicosnos respectivosdiretrioscomoporexemploo/etc/rc.d/rc3.dquerepresentaorunlevel3(fullmultiuser) indicam ainicializaooufinalizaodosservios,umaordemnumrica associadainformandoa prioridadesdoservio,aletraSindicainicializaoenquantoaletraKindicaafinalizao do servio.Vejaosexemplosabaixo: rwxrxrx1rootroot2051Nov2807:21vncserver rwxrxrx1rootroot1548Sep12006winbind rwxrxrx1rootroot1650Oct272006wpa_supplicant rwxrxrx1rootroot3934Jul132006xfs rwxrxrx1rootroot2497Oct12006xinetd rwxrxrx1rootroot3320Aug312006ypbind rwxrxrx1rootroot1097Nov1014:59yumupdatesd [root@vibe/etc/rc.d/init.d]# lrwxrwxrwx1rootroot11Dec105:18S99local>../rc.local lrwxrwxrwx1rootroot16Nov3011:46K99smartd>../init.d/smartd lrwxrwxrwx1rootroot20Nov3012:00K99xendomains>../init.d/xendomains [root@vibe/etc/rc.d/rc3.d]#
49
OScript/etc/rc.d/rc.local:
Oscriptrc.local executadocomoum ltimoserviofinalizandooprocessodebootdosistema.Caso voctenhaaplicativosparainiciareessesaplicativosnotenhamscriptsdecontroleestiloSystemV (start,restart,stop)vocpodeiniciarlosutilizandoestescript.
ControlandoeConfigurandoosServiosSystemV:
Paraconfigurarosserviosdecadarunlevelsoutilizadasalgumasferramentasdisponveisnosistema paraosuperusurio.
systemconfigservices: Ferramentabastantecompletaparaoambientegrfico. ntsysv: Ferramentabaseadaemmenusparaomodotexto.Porpadroquandoinvocadoeleconfiguraorunlevel atual,paraconfiguraroutrorunlevelutilizeoparmetrolevel. chkconfig: Ferramentadelinhadecomandoouparaserutilizadoemscripts.Utilizadonokickstart.Muitoverstile largamenteutilizadopelosadministradoresmaisexperiente.amelhoropo. service: Aferramentaservice utilizadaparacontrolarumservioemexclusivoimediatamente,porexemplo: parainiciarosambause:servicesmbdstart.Estodisponveistodososargumentossuportadospelo scriptestiloSystemVdecadaservio,istogeralmente(Start,Stop,Restart, Status). Obs:Osystemconfigservicesechkconfigapenastemefeitoimediatodeparareiniciarserviosqueso baseadosnoxinetd,paraosdemaisserviosasconfiguraesalteradassiroterefeitoapsobootdo sistema.Useaferramentaserviceparaatenderimediatamenteordensdetrminoouinicializaode servios.
50
LaboratrioGRUB,RecuperaodosistemaeTroubleshooting:
IremosreproduzirumacidentenaMBR,todaconfiguraodoprimeiroestgiodoGRUBserperdida. Seusistemanoefetuarmaisboot,pormastabelasdepartioaindaestarointactas,destaforma iremosprocedercomoresgatedosistemareinstalandooGRUBnaMBRnovamente. Sigaospassosabaixocomateno: ParadestruiroprimeiroestgiodoGRUBnaMBRexecuteocomandoabaixo.
ATENO:qualquererrodedigitaonocomandoabaixopoderresultarnaperdaintegraldosistema.
ddif=/dev/zeroof=/dev/hdabs=446count=1;reboot
RecuperaodoSistema:
1. Efetueobootdosistemacomoprimeirodisco(CDROM)doRedhatEnterpriseLinux 2. Nopromptdigite:linuxrescue 3. OsistemaderesgateirencontrarainstalaodoRHEL,confirmeamontagememreadwritee examineasadadoscomandomountefdiskl/dev/hda 4. Verifiquequeosistemaderesgatemontouseusistemasobarvore/mnt/sysimage 5. Examineoarquivo/mnt/sysimage/etc/grub.conf 6. ParareinstalaroGRUBnaMBRexecuteoscomandosabaixo: chroot/mnt/sysimage grubinstall/dev/hda exit 7. Agoraefetueorebootdosistema
51
Sistemadearquivosext3eext2: FuncionamentopadrodossistemasdearquivosemLinux:
Os sistemas de arquivos so criados em parties do disco, de forma que seja possvel armazenar programasedadosemformatodearquivosediretrios(pastas).OLinux,assimcomopraticamente todos os sistemas operacionais baseados em Unix, usa um sistema de arquivos que possue uma hierarquia,compostadearquivosediretrios,quepodemconteroutrosdiretriosouarquivos. Osarquivos/diretriosparaoLinuxsodisponibilizados(oumontados)paramanipulaoatravsdo comando "mount",geralmenteacionadonoprocessodestartup(inicializao),queocorrequandoo computadorligadoecomeaacarregarosistemaoperacional.OLinuxconseguetrabalharcomvrios sistemasdearquivosemummesmodisco(situaocomum usuriosquepossuemWindowseLinux em suas mquinas, por exemplo) e para "enxerglos", armazena a lista de sistemas de arquivos disponveisnoarquivo/etc/fstab(repareque/etc/indicaumcaminhodediretrio).Noentanto,huma listadesistemasdearquivosqueestoefetivamenteemuso,disponvelnoarquivo/etc/mtab,tambm conhecidocomo"tabelamount".Estalista atualizadanoprocessodestartup,paraindicaraosistema operacionalquaissistemasdearquivoselepoderacessar. Paracadasistemadearquivosmontadonostartup,umbitnocabealhodosistemadearquivoszerado paraindicaqueosistemadearquivosestemusoapartirdaquelemomentoequeasestruturasdedados usadasparaaalocaoeorganizaodearquivos/diretriospodemsofrermudanas(atualizaes). QuandoousuriodecidedesligarocomputadoreusacomandosparaencerraroLinux,ossistemasde arquivossodesmontados,fazendocomqueobitcitadoacimasejamodificadoparaindicar queo sistemadearquivosestconsistente,ouseja,nopodemaissofrermudanas.
Errosecorrompimentodosistemadearquivos:
OssistemasdearquivosparaLinuxj sofrerammuitostiposdetratamentosereescritadecdigopara eliminar o corrompimento causado por aplicaes ou pelo prprio kernel. No entanto, eliminar o corrompimento de dados em arquivos causados, por exemplo, pela queda de energia ou pelo desligamentoincorretoporpartedousurio,semprefoiumatarefapraticamenteimpossvel.Quandoo sistemadesligadoincorretamenteobitdocabealhodosistemadearquivosnoajustado.Asoluo foifazercomque,noprximoprocessodecarregamentodoLinux,sejaverificadoseocabealhoest comobitdecabealhosetadoparaindicarqueosistemadearquivosestconsistenteenomanipulvel. Casonoesteja,aferrramenta"fsck"verificaosistemanabuscadeerros.
52
Journaling:
Ofsckconsegueproverresultadossatisfatrios,masacorreodeerrospodelevarmuitotempo,algo inaceitvel em aplicaes crticas. Alm disso, se o desligamento incorreto do computador ocorreu quando dados estavam sendo gravados no disco, o fsck no conseguir completar esses processos, ocasionandoaperdadasinformaesqueestavamsendogravadas. Diantedessesproblemas,foiapresentadaumasoluovivel:autilizaodesistemasdearquivoscoma tecnologia"Journaling",quepossuemacapacidadedeacompanharasmudanasqueserofeitasno sistemadearquivos(porexemplo,gravaes/atualizaesdedados)antesquerealmentesejamfeitas. EssasinformaesqueoJournalingcapturasoentoarmazenadasemumaparteseparadadosistemade arquivos,denominada"Journal"(mastambmconhecidapor"registrosdelog").Quandoasinformaes soarmazenadasnoJournal,osistemadearquivosaplicaasmudanasregistradasneleeento,remove asinformaesdoJournal. Agora,entendaporqueoJournaling umasoluoeficienteparaosproblemasdeerro.Osregistrosde logsoescritosantesqueasmudanasefetivamenteocorramnosistemadearquivoseessesregistros somente so eliminados quando as mudanas so feitas. Assim, se o computador indevidamente desligado,oprocessodemontagemnoprximostartupverificarseh mudanasgravadasnoJournal "marcadas"comonofeitas.Sehouver,taismudanassoentoaplicadasaosistemadearquivos.Isso fazcomqueosriscosdeperdadedadossejamreduzidosdrasticamente.
Sistemadearquivosext3:
ExistemvriossistemasdearquivosdisponveiscomatecnologiaJournaling,comooXFS,desenvolvido originalmentepelaSiliconGraphicseposteriormentedisponibilizadocomcdigoaberto,oReiserFS, desenvolvido especialmente para Linux, JFS, desenvolvido originalmente pela IBM mas tambm liberadocomcdigoaberto,eomaisconhecidodeles:oext3,desenvolvidopeloDr.StephenTweedie juntamentecomoutroscolaboradores, naRedHat,atualmenteoext3tambmmantidopelaRedHat. Osistemadearquivosext3basicamenteosistemadearquivosext2comrecursosdeJournaling.Talvez, essasejaarazodeseuusoamplo:eletotalmentecompatvelcomext2(quefoiumsistemadearquivos muitousado),oquenenhumoutrosistemadearquivosbaseadoemJournaling. O ext3 passou a ser efetivamente suportado pelo kernel do Linux a partir da verso 2.4. Conseqentemente, todas as distribuies Linux lanadas com esse kernel ousuperior, tem suporte padroparaext3. Noext3,ocdigodeJournalingusaumacamadachamada"JournalingBlockDevice"(JBD).AJBDfoi criadacomopropsitodeimplementarJournalemqualquertipodedispositivocombaseemblocosde dados.Porexemplo,ocdigoext3informae"pedeautorizao"JDBparaefetuarasmudanas,antes demodificar/adicionarqualquerdadonodisco. 53
Sendoassim,oJDBqueverdadeiramente"gerencia"oJournal.Ofatomaisinteressantedissoque,a JDBfuncionacomoumaentidadeindependente,permitindoquenosoext3ause,mastambmoutros sistemasdearquivos. AJDButilizaummtododiferentedeoutrosJournalingspararecuperaodeinformaes.Aoinvsde armazenarasinformaesembytesquedepoisdevemserimplementados,aJDBgravaosprprios blocosmodificadosdosistemadearquivos.Assim,oext3tambmarmazena"rplicas"completasdos blocosmodificadosemmemriapararastrearasoperaesqueficarampendentes.Adesvantagemdesta forma de trabalho queoJournalacabasendomaior.Noentanto,oext3noprecisalidar coma complexidadedosJournalingsquetrabalhamgravandobytes.
TiposdeJournalingnoext3:
Oext3suportatrsdiferentesmodosdetrabalhodoJournaling.Soeles: Journal:gravatodasasmudanasemsistemadearquivos.omaislentodostrsmodos,masoque possuimaiorcapacidadedeevitarperdadedados; Ordered:gravasomentemudanasemarquivosmetadata(arquivosquearmazenaminformaessobre outrosarquivos),masguardaasatualizaesnoarquivodedadosantesdefazerasmudanasassociadas aosistemadearquivos.EsteJournalingopadronossistemasdearquivosext3; Writeback:tambmsgravamudanasparaosistemadearquivoemmetadata,masutilizaoprocesso deescritadosistemadearquivosemusoparagravao.omaisrpidoJournalingext3,masomenos confivel. OmodoOrdered opadronoext3,mas possvelespecificarqualomodoquevoc desejausar, atravsdaatualizaodoarquivofstab.Porexemplo,podeserquealinha/dev/hda1tenhasuaopo datacomovalorordered.Vocpodemudarestevalorparawritebackoujournal.
54
Particionamento:
Almdeorganizarmelhorepermitirautilizaodemaisdeumtipodesistemaoperacionalnomesmo disco,existemrazesadicionaisparaseutilizarmaisdeumapartionoLinux,sendoaprincipaldelasa segurana.NoLinux,possvelmontaraspartiescomopesquemelhoramaseguranadosistema, evitandocertasaesemdeterminadasparties. GeralmenteparaseparticionarumdisconoLinux utilizadoaferramenta fdisk,queapesardonome no o mesmo utilizado em sistemas MSDOS, outras ferramentas tambm disponveis para particionamentosoosfdisk,oGNUparted.
ParticionamentoOnLine:
Quandoosistema inicializadookernelguardaumacpiadatabeladeparticionamentonamemria. Qualquer alterao no particionamento s ter efeito quando o kernel reler a tabela de partio, geralmenteisso realizadoapenasnoprximobootdosistema.Paraforarareleituradatabelade partioutilizeocomandopartprobe.
CriandoSistemasdeArquivos:
Ocomandomkfs umfrontendparavriosoutroscomandocomoporexemplomkfs.ext2,mkfs.ext3, mkfs.minixeassimpordiante,utilizandoaopotqueespecificaotipodefilesystemomkfsbuscao comandoapropriado.Osargumentosmaisusadosso: b
Verificaosblocosantesdeformatar,aformataoficabemmaisdemoradautilizandoestaopo.
55
Especifica diretamente o nmero de inodes, aconselhvel somente para parties extremamente grandes.Usecomcuidado.
Especifica um nome de volume para a partio (Volume Label). Lembrese que a montagem dos filesystempodeserreferenciadaapartirdestenomena/etc/fstab.
Convertendoumfilesystemext2paraext3:
Umfilesystemext2exatamenteigualaumfilesystemext3semojournal.Paraconverterumapartio ext2emext3sigaospassosabaixo : 1. Verifiqueseoseukerneltmomduloparaext3compilado,noRHELissojpadro. 2. Mudeaentradacorrespondenteaofilesystemno/etc/fstab. 3. Paracriarojournal,executeocomando:tune2fsj<partio>.
MontandoFilesystems:
ParaMontarumfilesystemuse: mountt<tipodefilesystem>o<opes><dispositivo><pontodemontagem>
56
ParaRemontarumdispositivouse:
mountoremount<dispositivo>
NomesdeVolumes:
importantesempredefinirnomesdevolumes(VolumeLabel)paratodassuaspartieseefetuaresta referncianahoradamontagematravsdo /etc/fstab.Lembresequesemprequemudarosdiscosde controladoraosnomesdosdispositivosseroalteradoscausandosriosproblemasnahoradobootdo sistema.Nuncausenomedevolumesiguaisparadispositivos,mesmoqueestejaefetuandobackupdos mesmos.
57
O/etc/fstab:
Osfilesystemslistadosnofstabsoutilizadosparamontagemautomticadeacordocomumaespciede hierarquianahoradobootpeloscriptrc.sysini t. Observeaestruturado/etc/fstab: DispositivoPontodeMontagemTipoOpesDump_freqFsck_order /dev/VolGroup00/LogVol00/ext3defaults11 Dispositivo Nomedoarquivoespecial dedispositivoounomedovolumesermontado. PontodeMontagem Ocaminhoparaacessarodispositivodepoisdemontado. Tipo Otipodofilesystem,ext2,ext3etc... Opes Opesdemontagemseparadasporvrgula,aoponoautoporexemplosignificaparanosermontado emtempodeboot,geralmente usadoporCDROMs. Dump_freq Frequenciadeverificaoutilizadapelodump(backupdosistema),0=Nunca,1=Diariamente,2=qualquer outrodia. Fsck_order Ordemdeverificaodofsck,0=ignore,1=primeiro(deversempreserofilesystemraiz),29=segundo ,terceiroeassimpordiante.Filesystemscomomesmonmerosochecadosemparalelo. CDROMsedispositivosderededevemserignoradosutilizandoonmero0.
MontandoTodososDispositivosdofstab:
Paraforaramontagemdetodososfilesystemslistadosno/etc/fstabapsobootutilize:mounta.
58
Automounter:
Afunododaemonautomonter monitorardiretriosemontardispositivosquandoalgumtipode requisioforverificada. indicadoparadispositivosquenosoutilizadosfreqentementeetambm paraliberarrecursosdosistema,poisalmdemontarodispositivoquandosolicitadoodaemondesmonta quandoodispositivoficarocioso(idle)automaticamente. Parainstalareconfiguraroautomountersigaospassosabaixo: 1. Instaleoautofsrpmivhautofs 2. Configureoautofsparaserinciadonobootchkconfigautofson 3. Configurenoarquivo/etc/auto.masterosdiretriosqueseromonitorados,vejaoexemplo: /misc/etc/auto.misc Alinhaacimasignificaqueodiretrio/miscestasendomonitoradoequeaconfiguraodeste diretrioestanoarquivo/etc/auto.misc. 4. Configureoarquivo/etc/auto.misc,vejaoexemplo: #KeyOptionsLocation cdfstype=iso9660,ro,nosuid,nodev:/dev/cdrom Key Geralmenteumnomedeumdiretriochave(Vocnoprecisacriaressediretrio) Options Solistasdeopesdemontagemseparadasporvrgula,consulte:man8mount Location Indicadeondeofilesystemirsermontado.Geralmenteumdispositivooucaminhoderede.
DocumentaoOnlinedoAutomounter:
Paramaioresinformaes,arquivosdeexemploelistasdeopescompletasdoscomandosconsulte: manautofs man8automount man5autofs man5auto.master
59
AtributosEstendidosdoFilesystem:
Ossistemasdearquivosext2eext3suportamalgunsatributosquepermitemaalteraodamanipulao dosdadosdosarquivos.LembrandoquenemtodososatributosherdadosdoUNIXestodisponveisno kernelatualdoLinux. lsattr(lsattr*)
Listaosatributosdosarquivos.
chattr(chattr+i/root/anacondaks.cfg) Efetuaalteraesnosatributosdosarquivos.
FilesystemACLs:
Criarlistasdeacessosparaofilesystempermitegerenciaraspermissesdeformagranular.Nomodode permissionamentotradicionalpossvelconfigurarpermissesrwxparaodonodoarquivo,paraogrupo eparaosdemaisusuriosdosistema(outros).ComasACLspodemosdizerqueogrupovendase o usuriojooporexemplotenhampermissesparticulares. ParasuportarACLsofilesystemdevesermontadocomaopoacl,veja: mountoremount,acl/dev/hda1/
Exemplos: getfacl*
60
Quotas:
Asquotasnolinuxsoativadasporfilesystem.necessriomontarofilesystemcomasopesusrquota ougrpquotaindicandoaokernelautilizaodequotasporusurioouporgruposrespectivamente.O policy estabelecidoporblocos(Quantidadedeblocosqueumusurioougrupopodeconsumirdo filesystem) ouinodes(Quantidadedearquivosqueumusurioougrupopodecriarnofilesystem). Podemserestabelecidoslimitessoftehard,quandoumusurioougrupoalcanaramarcasofteleser alertado,pormquandoalcanaramarcahardokernelirimpediroabusodopolicyestabelecido. Podeserdefinidotambmograceperiodque otempoqueumusurioougrupopodeficarentrea marcasoftehard.Paratrabalharcomquotasnecessrioinstalarasferramentasdopacotequota.
Implementaodequotas:
1. Editeoarquivofstabadicionandocomoopodemontagemusrquotaougrpquotanofilesystem quevocdesejainstalarocontroledequotas. 2. Remounteodispositivomountoremount<dispositivo> 3. Inicializeasquotasparaestedispositivoquotacheckc<pontodemontagemdodispositivo>,este comandotambmtilparaatualizaradatabasedequotas. 4. Executequotaona 5. Editeasquotasparaosusurios,porexemplo:edquotarodrigo Ovalor0indicaquenohquotaestabelecida.Porexemplo,paralimitaresseusurioa100Megas utilize100000nohardlimit. Paraestabelecerograceperiodutilizeocomando:edquotat. Parareplicaropolicydequotasdeumusurioparaoutrosutilizeocomando: edquotap<user1><user2> Osuperusuriopodeverificarasquotasdosusurioscomocomandorepquota,josprpriosusurios podemverificarseuslimitescomocomandoquota. Nomomentodobootasquotassoverificadaseativadaspeloscriptrc.sysinit,pormseporalgum motivooarquivodedatabasedasquotasficarforadesincronia,porexemplo,casoasquotastenhamsido desligadasporumperodo,precisoinicializaradatabasenovamentecomocomandoquotacheck. Paradesligarasquotasdosistemautilizeocomandoquotaoff. possveltambmconfigurarasquotasvialinhadecomandoouemscriptsu tilizandosetquotas.
61
LaboratrioQUOTAS,cenriodeconfigurao:
Ativeasquotasnofilesystemraiz(/)demodoqueosusuriosCarloseAndrepossamutilizarapenas 200MBcada. OBS1:Nahoradeativarasquotascomocomandoquotachecknecessrioacrescentaroparmetrom paraforaremfunodofilesystemraizseraltamentesolicitado. OBS2:TalvezsejanecessriocriarosusuriosCarloseAndrecasonoexistamnosistema.
Testedeimplementao/Validao:
LoguesenosistemacomousurioCarlos. Certifiquesequeodiretrio/home/carlos(DiretriohomedeCarlos)estamontadodentrodoraiz(/). Executeocomando:ddif=/dev/zeroof=/home/carlos/testebs=1Mcount=190 Ocomandoacimaircriarumarquivode190MBnodiretriohomedecarloschamadoteste.Utilizeo comandoduh/home/carlosparacertificarsequetudoestaok.Apsapagueoarquivoteste. Vamosagoraexcederolimitedequotade200MBestabelecido.Osistemadeveimpediroabusodo policyseasconfiguraesestiveremcorretas. Executeocomando:ddif=/dev/zeroof=/home/carlos/testebs=1Mcount=210
62
SoluodolaboratrioQUOTAS:
1. 2. 3. 4. 5. Editeoarquivo/etc/fstabeadicionenofilesystemraiz(/)aopousrquota. Remounteofilesystemraizcomocomando:mountoremount,usrquota/ Inicializeasquotasparaestedispositivocomocomando:quotacheckcm/ Executeocomando:quotaona EditeasquotasparaousurioCarloseadicioneovalor200000nohardlimitdosblocoscomo comando:edquotacarlos 6. RepliqueopolicydequotasdeCarlosparaAndrecomocomando:edquotapcarlosandre
63
SELinux:
OSELinuxdesenvolvidoemparceriapelaNSA,RedHateoutrasempresascomoIBMeHP.Aidia adicionar uma outra camada de segurana no Linux e retirar o poder absoluto do usurio root da mquina. O SELinux baseado em MAC (Mandatory Access Control), uma proposta totalmente diferentedaqueconhecemosatualmentenolinuxqueusaomodelotradicionalDAC(Discretionary AccessControl).NoDACosusuriostmprivilgiosaosarquivoseprocessosquelhepertencem,por exemplo,seumprocesso executadosobreapropriedadedousurioJoo,esteprocessoteracessoa todososarquivosquepertencemaousurioJoo.NomodeloMACasaplicaesapenastemprivilgios derealizarostrabalhosparaqueforamprojetas,isto ,apenas permitidofazeroquerealmentea aplicaofoidesenhadaparafazer.
Strict,TargetedPolicys:
NoiniciooSELinuxeradistribudocomopolicystrict,issona pocadoFedoraCore2,strictpolicy tinha como diretriz principal bloquear tudo e apenas permitir aquilo que se estivesse especificado. Rapidamenteosengenheirosobservaramqueissonoestavasendomuitoprtico,principalmenteparaos aplicativosdouserspace.Especificartodasaplicaescomoporexemploumfirefoxouumsshera muitocomplicado,asnicasperguntasnosforuns naquelapocaeracomodesligaroSELinux. Foisubstituidoostrictpolicypelotargetedpolicy,aprincipaldiferenaquenotargetedtudoliberado pordefaulteapenasoque definido verificadopeloSELinux.Opadrosoasaplicaesno definidasseremexecutadasnoquesechamadeunconfined_t,isto ,noambientenoconfinadoonde basicamenteasaplicaesfuncionamcomoseoSELinuxnoexistisse.Apenasasaplicaesdefinidas (targeted)soexecutadasconfinadasdentrodeseudomnioSELinuxespecificado.
ContextosdosObjetos:
Todososarquivosregularesdosistema,processosedispositivosdehardwaresochamadosevistos como objetos peloSELinux.Cadaobjeto rotuladocomumcontexto.Omdulodesegurana do SELinuxnokernel(LSM)permiteoubloqueiaacessoaosobjetosdeacordocomumpolicyondeos contextossoanalizadoseverificados.
64
Aformataodoslabels(rtulos) <user>:<role>:<type>,naverdadequandoestamosfalando do policy targeted o que realmente importa o <type>. Aplicaes que so executadas num determinadodomnioporexemplo,ohttpdnotemprivilgiosaoutrosdomniosnoespecificadosna mquinacomonamedporexemploouodiretriohomedousurioJoo,eassimasaplicaesficam confinadas aoacessoexclusivamenteemseusdomnioselevandoconsideravelmenteasegurana no sistema.
ConfiguraesBsicasdoSELinux:
O SELinux encontrase basicamente em 3 estados: disabled ou desligado, modo enforcing, onde o SELinuxestaplicandoopolicy,oupermissive,ondeoSELinuxestapenasemmododewarmonly, isto,apenaslogandoosAVC(MensagemdoSELinuxdoKernel).Omodopermissiveindicadopara efetuarajustesfinosnopolicyeparaverificarasconfiguraes. Quando o SELinux estiver ativado ser criado um novo filesystem chamado /selinux, este um filesystem virtualque a janeladecomunicao einformao entre os processos damquina e o SELinux.O/selinuxfilesystemmuitosemelhanteao/proce/sys. AsmensagensdelogdoSELinux(AVCs)soregistradasnoarquivo /var/log/messages edevemser cuidadosamenteverificadasquandoqualquerproblemacomearasurgirnosistemaapsoativamentodo SELinux.
Aferramentagrficasystemconfigsecuritylevel amaisfcildeusaredevisualizarasconfiguraes correntesdoSELinux.Adicionalmenteusesystemconfigselinuxparaajustesnospolicysebooleans. O comando sestatus mostra o estado atual do SELinux, para efetuar mudanas utilize o comando setenforce. Para salvaras alteraes paraoprximo bootdosistema necessrio editaro arquivo /etc/sysconfig/selinux.Ocomandosetseboolutilizadoparaefetuaralteraesnosbooleans. possiveltambminformarviaparmetronobootloaderoestadodoSELinuxeforarobootneste estado,paraistonecessrioforneceroparmetroenforcing=xparaokernel.Ondexpodeser0para warmonlye1paraenforcing.
65
VisualizandoObjetoseProcessosSELinux:
Paraverificarocontextodosprocessosutilize psZ, observequeamaioriadosprocessosestasendo executadonocontextounconfined_t,oquesignificaquenohpolicyestabelecidoerelacionadoaesses processos,ouseja,elessoexecutadocomoseoSELinuxnoexistisse.Paraprocessosconfigurados, existeumdomnio/contextoestabelecidoparacadaum,vrioscontextosj estodisponveisparaos serviospopularesdeinternetcomohttp,dns/bindeetc... ParalistarocontextodosarquivoutilizelsZ,arquivosnovossocriadosapartirdealgumadefiniono policyouocontexto copiadododiretriopai,Ocomandochconefetuaalteraesnoscontextosdos arquivos, sua sintaxe parecida com os comandos regulares do Unix para alterao de permissionamento,taiscomoochmodechown.Aoporeferencepodeserutilizadaparaestabelecer ummodelodearquivoondeseucontextosercopiadoparaosdemais.
66
ImplementandooSoftwareRAID: ConfigurandoosoftwareRAIDcommdadm:
1. UseofdiskparacriaraspartiesqueseroutilizadasnoRAID,tipo LinuxRAIDautodetect cdigofd. 2. Useocomandopartprobeparaatualizaratabeladepartionamemria. 3. Inicializeoarraycomocomando:mdadmC/dev/md0l1n2/dev/hdaX/dev/hdaY 4. CrieofilesystemnodispositivoRAID:mkfs.ext3/dev/md0 5. Crieodiretrioqueseropontodemontagemeadicioneaentradaapropriadaparamontagem automticaemtempodebootnoarquivo/etc/fstab.mkdir/raid1 6. MonteodispositivoRAIDnodiretrioque voccriou:mount/dev/md0/raid1
OtimizaodoRAID:
possvel otimizar ainda mais a performance da sua configurao de RAID criando o filesystem alinhado com o tamanho da stripe size do RAID. Isso permite que os dados acomodemse perfeitamente nos blocos e evite que o sistema efetue clculos adicionais assim degradando a performance.AdocumentaooficialdoLinux(tldp)dizqueaperformancedosnveisdeRAID4e5 soafetadosdiretamenteporessaopoemboranosetenhacertezadequantoissoinfluenciaoutros nveisdeRAID. Oclculo bastantesimples,apenasdividaochunksize(Default64)pelotamanhodeumblocoem Kbytes,geralmente4.Paraverificarotamanhodoblocouseodumpe2fs.Exemplo:64/4=16 mkfs.ext3b4096Rstride=16/dev/md0 sempreaconselhvelefetuartestesdeperformancecriandoarquivosgrandesemensurandoseutempo demanipulaodentrododispositivoRAID.Utilizeoddparacriararquivosgrandes,porexemplo: ddif=/dev/zeroof=/home/testebs=1Mcount=300 Estecomandocriarumarquivonodiretriohomechamadotestecom300MB.Osdadosdessearquivo seronulos. 67
VerificandooRAID:
possvelverificarostatusdoarraycomocomandomdadmdetail/dev/md0outambmverificandoo contedodoarquivo/proc/mdstat.
SoftwareRAIDRecovery:
ApsidentificadoafalhadealgumdiscodoRAIDutilizandoosdevidoscomandosapresentadosna seoVerificandooRAID,horadeefetuaramanuteno. Ateno!Vocprecisaterprecisamenteaidentificaodosdiscosquefalharamparaprocedercom qualqueraodemanuteno,emcasodedvidasnotomenenhumaaoatterprecisamentea identificaodosnomesdosdispositivosqueapresentamproblemas. Iremossimularafalhadeumdispositivoeemseguidaremoverlo.Apsiremosadicionarumnovo dispositivoeefetuarorebuilddoarray.Sigaospassosabaixo:
SimuleaFalhadeumdiscocomocomando:mdadm/dev/md0f/dev/hdaX Observecomoficouseuarraycomocomando:cat/proc/mdstat Removaodiscodoarraycomocomando:mdadm/dev/md0r/dev/hdaX Observenovamenteseuarraycomocomando:mdadmdetail/dev/md0 Desliqueamquinaesubstituaodiscocomproblemasporumnovo(AplicaseemcasoREAL) CrieumanovapartiotipoLinuxRAIDautodetectcomomesmotamanhodapartioantiga Atualizeatabeladepartiesdamemriacomocomando:partprobe Insiraonovodisconoarraycomocomando:mdadm/dev/md0a/dev/hdaZ Omdadmautomaticamenteirprocedercomorebuild Observenovamenteseuarraycomocomando:mdadmdetail/dev/md0
LaboratrioRAID,cenriodeconfigurao:
CrieumaconfiguraodeSoftwareRAIDdenvel1(Mirroring)emontepermanentementeodiretrio /datanestedispositivo.Osistemadearquivosdevesertipoext3eoespaototaldisponveldeveserde aproximadamente100MB. OBS:Provavelmentesuamquinadeestudosnoter mltiplosdiscosparaefetuaraconfigurao adequadadeSoftwareRAID,nestecasoiremoscriarsimbolicamenteduas(02)partiesnoespao livredoprimeirodiscodisponvelparasimularasconfiguraesdestelaboratrio.
TestedeImplementao/Validao:
Verifiqueasadadocomando:mdadmdetail/dev/md0 Verifique com o comando df Th se o dispositivo /dev/md0 corresponde ao diretrio /data e tem aproximadamente100MBtipoext3.
69
SoluodolaboratrioRAID:
1. Useofdiskparacriarduaspartiesde100MBtipoLinuxRAIDautodetectcdigofdno espaovagodeseudisco. 2. AtualizeatabeladepartiesdoKernelnamemriacomocomando:partprobe 3. CrieoRAIDcomocomando:mdadmC/dev/md0l1n2/dev/hdaX/dev/hdaY 4. Crie/Formateosistemadearquivoscomocomando:mkfs.ext3/dev/md0 5. Crieopontodemontagemcomocomando:mkdir/data 6. AdicionealinhaparamontagemautomticadoRAIDnoarquivo/etc/fstab 7. Montetodososdispositivosdasuafstabcomocomando:mounta 8. ComocomandodfThverifiqueseotamanhododiretrio/datadeaproximadamente100MB
70
ImplementandoLVM: CriandoVolumesLgicos:
1. 2. 3. 4. 5. 6. Executeocomandovgscan. UseofdiskparacriaraspartiesqueseroutilizadasnoLVM,tipoLinuxLVMcdigo8e. Executeocomandopartprobeparaatualizaratabeladepartionamemria. RegistreessaspartiestipoLinuxLVMcomovo lumesfsicos:pvcreate/dev/hdaX/dev/hdaY Crieovolumegroupatribuindoosvolumesfsicos:vgcreatevgteste/dev/hdaX/dev/hdaY Criequantosvolumeslgicosvoc desejarapartirdovolumegroup,voc deveespecificaro nomedovolumelgicoetambmoseutamanho. lvcreateL300Mnlv1vgteste 7. Crieofilesystemnovolumelgico:mkfs.ext3/dev/vgteste/lv1 8. Crieopontodemontagemeadicioneaentradaespecficaparaestefilesystemno/etc/fstab
OtimizaodoLVM:
Sevocestaplanejandocriarumvolumelgicorealmentegrandevocterqueespecificarotamanho dosPEs,issoporqueporpadro1PEtm4MBes possvelatribuir65534PEsparaumvolume lgico.Porexemplo,paracriarumvolumelgicode2TBnecessrioatribuir32MBdetamanhopara1 PE.Vejaoexemploabaixo: vgcreates32Mvgteste/dev/sdbX/dev/sdcY
RedimensionandoVolumesLgicos:
Paraaumentarumvolumelgicooureduzirseutamanho necessrioutilizarasferramentaslvextend (Aumentar)oulvreduce(Diminuir),issoquandoofilesystemest desmontado.Paraprocedercomo redimensionamento online necessrio outra ferramenta chamada ext2online. No exemplo abaixo iremosaumentar200MBdenossovolumelgicojmontado. lvextendL+200M/dev/vgteste/lv1 resize2fs/dev/vgteste/lv1
71
GerenciandoVolumesLgicos:
possvelexpandirosvolumegroupsadicionandomaisvolumesfsicos,istocomoconectareampliar aindamaisacapacidadedovolumegroup,paraissoutilizeocomandovgextend.Pararemoveralgum volumefsicodeumvolumegroupprecisoredistribuirosPEsocupadosparaoutrosvolumefsicocom ocomandopvmoveesapsissodesconectalodovolumegroupcomocomandovgreduce. Umgrupodeferramentasparaajudarnavisualizaoereunirinformaesestodisponveis,soelas:
ConvertendoLVM1emLVM2:
O RHEL utiliza por padro o formato LVM2 para armazenar os metadados. possvel converter sistemasqueoperamemLVM1paraoformatodoLVM2quemaiscompactoeseguro,paraissoutilize ocomandovgconvert.Vejaoexemploabaixo: vgconvertM2teste1 Ocomandoacimairconverterovolumegroupchamadoteste1deLVM1paraLVM2.
72
IntroduoaoGFS:
OGFS umsistemadearquivoscompartilhado,seuprincipaldiferencial acapacidadedesuportar mltiplosnsdeumclusteraomesmotempo.Emsituaesonde necessrioquevriasmquinas tenhamacessoaumnicofilesystemaomesmotempo(AtivoAtivo)oualternadamente(AtivoPassivo) oGFSrecomendado. ParaproveracapacidadedecompartilhamentodediscosimtricaoGFSpossuiumcomplexosistemade locksetambmdeI/Ofencing,issogarantenveissegurosdeoperaoemambientescomvriosns.Os componentesdoGFSso:CusterManager(CMAN),gerenciadoresdelocks(DLMouGuLM),sistema deconfiguraodocluster(CCS)emdulosparafencing. UmasdasprincipaiscaractersticasdoGFSadesuportargrandescapacidades,parasistemasem32bits suportadoat16TB,jemsistemasde64bitsolimitede8EB.OGFSsuportaat300ns,embora existam outras limitaes quanto a infraestrutura do software de gerenciamento de cluster. Existe tambmsuporteaquotaseaatributosestendidos,osuporteaoSELinuxaindaestaemprocessode desenvolvimento. OsuporteaoLVM2 realizadoatravsdeumabibliotecaespecialmentedesenvolvidaparatrabalhar emambientesclusterizados,oCLVM(ClusterLogicalVolumeManager),quetambmpodesedizerque umdoscomponenteparasetrabalharcomoGFS. Ogerenciamentodejournaling realizadodaformaondetodososnsdoclusterpossuemumjournal prprio,sealgumn doclusterfalhaele desligado,outrosnspodemcolocarofilesystemonline novamente,garantindoassimaaltadisponibilidadedosistemadearquivos. OGFSemsiapresentaseaokerneldoLinuxatravsdemdulos, necessrioquetodososnsdo clusterqueacessemofilesystemGFStenhamessesmdulosdevidamenteinstalados.Comrelaoao user space diversas ferramentas tambm devem ser instaladas para trabalharse com o GFS, a ferramentagfs_mkfsporexemploutilizadanacriaodofilesystem. ObservequecomooGFSpermiteacentralizaodaestruturadedadosemum nicofilesystem,em ambientesmaudimensionadosissopodecausargargaloselimitaesoperacionais.necessriotambm um planejamento antes da criao do filesystem, o administrador deve ter um mente as metas de crescimentoeexpansonahoradeespecificarotamanhodojournaletambmonmerodensque poderamacessearessefilesystemnofuturo. 73
IlustraodaAplicaodoGFScomOracle:
74
LaboratrioLVM,cenriodeconfigurao:
Criedois(02)volumesfsicosdeaproximadamen te150MBcada. Crieum(01)grupodevolumeschamadovg1eadicioneosvolumesfsicoscriados,apscriedois(02) volumeslgicoschamadoslv1elv2respectivamente.Umdetalheimportantesobreovg1queeledeve ter PEs de tamanho igual a 8 MB. O tamanho dos volumes lgicos lv1 e lv2 deve ser de aproximadamente 100MB cada. Monte o lv1 em /dados e lv2 em /projetos e adicione as entradas necessriasno/etc/fstabparamontagemautomticaduranteoprocessodeboot. Criee manipulearquivosdentrode/projetose/dadoseverifiqueotamanhoedisponibilidade dos filesystemscomocomandodfTh.Inspecionetambmsuasconfiguraescomoscomandos:vgdisplay elvdisplay. Adicionemaisumvolumefsicode30MBaovg1. Agoraaumenteaproximadamente50%dotamanhodelv1elv2comosfilesystemsmontados. Verifiqueseosseusdadoscontinuamintactosdentrodosdiretrios/projetose/dados. Verifiqueseotamanhorealmenteaumento uaproximadamente50%analizandoasadadocomando: dfTh. OBS: Voc ter que criar novas parties no espao disponvel de seu disco para satisfazer os requerimentosdestelaboratrio.Certifiquesequehespaodisponvelantesdecomear.
TestedeImplementao/Validao:
Os testes de validao deste laboratrio consistem em verificar o tamanho e a disponibilidade de manipulaodedadosnosdiretrios/dadose/projetos. Utilizeoscomandos:vgdisplay,lvdisplayedfTh.
75
SoluodolaboratrioLVM:
1. Crieduas(02)partiesdetamanhoaproximadode150MB,tipoLinuxLVMcdigo8e 2. AtualizeatabeladepartiodememriadoKernelcomocomando:partprobe 3. Crieospvscomocomando:pvcreate/dev/hdaX/dev/hdaY 4. Crieovg1comocomando:vgcreates8Mvg1/dev/hdaX/dev/hdaY 5. Crieosvolumeslgicos:lvcreateL100Mnlv1vg1;lvcreateL100Mnlv2vg1 6. Crieofilesystemext3nosLVs:mkfs.ext3/dev/vg1/lv1;mkfs.ext3/dev/vg1/lv2 7. Crieospontosdemontagenseadicioneasentradasnafstab:mkdir/dados;mkdirprojetos 8. Montetodasuafstabcomocomando:mounta 9. VerifiquecuidadosamenteasadadocomandodfThemount 10. Criearquivosem/dadose/projetos: ddif=/dev/zeroof=/dados/testebs=1Mcount=20 ddif=/dev/zeroof=/projetos/testebs=1Mcount=25 11. Verifiqueasadadocomando:lvdisplay/dev/vg1/lv1;lvdisplay/dev/vg1/lv2 12. Verifiqueasadadocomando:vgdisplayvg1 13. Criemaisuma(01)partiodetamanhoaproximadode100MB,tipoLinuxLVMcdigo8e 14. Atualizeatabeladeparties:partprobe 15. Crieonovopvcomocomando:pvcreate/dev/hdaZ 16. Adicioneonovopvaovg1:vgextendvg1/dev/hdaZ 17. Aumente50%delv1elv2:lvextendL+50M/dev/vg1/lv1;lvextendL+50M/dev/vg1/lv2 18. Utilizeocomando:resize2fs/dev/vg1/lv1;resize2fs/dev/vg1/lv2 19. Verifiqueseosdadoscontinuamintactos! 20. VerifiqueasadadocomandodfTh
76
GerenciamentodeContaseGruposdoSistema:
adduser: Este ocomandomaistradicionalparainserirnovascontas. equivalenteaeditarmanualmenteos arquivos: /etc/passwd /etc/group, criar o diretrio home com as permisses adequadas e popular o diretriohomecomocontedodo/etc/skel. newusers: Estecomando indicadoparaquandovocdesejaadicionarmuitascontasdeumas vez.Onewusers processaumarquivotextoformatadoonde inseridoonomedosnovosusurioseseusrespectivos passwords. userdel: Paradeletarusuriosdosistemausesempreouserdel.equivalenteaeditarmanualmenteosarquivos: /etc/passwd /etc/shadow /etc/group /etc/gshadow /var/spool/mail. Sem parmetros preservado o contedododiretriohomedousurio. usermod: Paraalteraroscamposdeumacontano/etc/passwduseocomandousermod. possvelentremuitos tensalteraroIDdousurio,Shell,Diretriohome,NomedeLogineetc.. passwd: Efetuaatrocadepasswordcriptografadadosusurios.Alteraocontedodoarquivo/etc/shadow. chage: Estecomandoestabeleceumapolticadevalidadeparaospasswords.possveldeterminaroespaode tempoentreatrocadepassword,isto ,foraopassworddosusuriosaexpirarem,ondeelesso obrigadosatrocar.Entreoutrasopestambm possvelespecificaroperododetempomnimoque umusurioterquepermanecersemtrocardepassword.extremamenteaconselhvelestabeleceruma polticadevalidadedepasswordsdentrodeseudomnio. groupadd: Criagruposadicionandoentradasno/etc/group.
77
groupmod: Efetuamodificaesnosgrupos,autilidademaiscomum trocarnomesdegrupospreservandoseus membros. groupdel: Para deletar grupos utilize o groupdel. Equivalente a editar manualmente os arquivos: /etc/group /etc/gshadow. gpasswd: utilizadoparaadministrarosarquivos/etc/groupe/etc/gshadow.Suautilidademaiscomumalmde configurarmembrosdegruposgerenciaradministradoresepasswordsparaosgrupos. systemconfigusers: Ferramentagrficadesenhadaparagerenciartotalmenteascontasegruposdosistema.Muitopoderosae verstil, capazdeefetuarotrabalhodetodososcomandoscitadosnestecaptuloparagerenciaras contasegrupos.Fcilutilizaoevisualizao.
Umask:
amscaradepermissionamentodacriaodearquivosediretrios.Semaumaskqualquerarquivo criadonosistemateriaapermissopadrode666ediretriosde777.Oscript /etc/bashrcconfigurano momentodeloginumaumaskpadroparatodososusuriosdosistema,noRHELaumaskpadrodeum usurio0002edousurioroot0022.Paraefetuaroclculodaumaskapenasdiminuaovalordesua umaskde666paraarquivosoude777dadiretrios.Ocomando umask utilizadoparamostrarsua umaskoutambmefetuaralteraes,lembrandoqueparasuasalteraesseremresistentesaoboot necessrioconfiguraraumasknoscript~/.bashrc.
Setgid:
Normalmentequandocriamosarquivos,essesarquivospertencem aogrupopadrodousurio. Quandoconfiguramoso setgid bitemumdiretrio,automaticamenteoarquivocriadoter seugrupo configurado para o mesmogrupododiretriopai,issopermiteummecanismoque ajusta o group ownershipautomaticamente.Configuraro setgid muito tilquandodiversosusuriosdeummesmo grupoestoacessandoarquivosemcomumdentrodeumdiretrio.Paraconfiguraro setgid vejao exemplouse:chmodg+s<diretrio>
78
ScriptsdeInicializaodeAmbiente:
Vriosscriptssoexecutadosemtempodeloginparaumacontaquepossuiumshell.Essesscriptsso responsveisporconfigurartodooambienteparaousurio,inmerasvariveistaiscomooPatheAlias decomandosglobaissoconfigurados.Vejaabaixoaordemdeexecuodessesscriptsnomomentodo login:
/etc/profile: Esteoprimeiroscriptquechamadoparaologindecontasquepossuemshell.Eleresponsvelpor configurarasprincipaisvariveisdeambientecomo:PATH,HISTSIZE,LOGNAME,USER. Estescript tambmexecutaoutrosscriptsde /etc/profile.d. /etc/profile.d: Nestediretrioencontramsescriptsdeconfiguraoeinicializaodeaplicativos,sempreduascpias domesmoscriptsestodisponveis,umaemBourneshelleaoutraemCshell.Ascoresdolsso configuradasaquientreoutrasdefiniesparaaplicativoscomoglib,gnome,kdeeetc... ~/.bash_profilee~/.bashrc Estesscriptscontminicializaesparticularesdecadausurio.Podemsercolocadasvariveis,aliases ou comandos de inicializao. Comandos que geram sada na tela devem ser colocados no ~/.bash_profileenuncano~/.bashrc. /etc/bashrc: Nestescriptsoconfiguradasfunesglobaisdoshellqueafetamtodososloginsdosusurios. ~/.bash_logout: Este script executadoquandoousuriosefetualogout. tilparasituaesonde precisofazer backupsdearquivos,deletartemporrioseetc...Estescripttambmparticulardecadausurioedeve estarnodiretriohome.
79
GerenciamentodePacotescomRPM:
OGestordePacotesRPM(RPM)umsistemadeempacotamentoaberto,disponvelparausodetodos, querodanoRedHatEnterpriseLinuxassimcomoemoutrossistemasLinuxeUNIX.ARedHat,Inc. incentivaoutrosfabricantesausaremoRPMemseusprodutos.ORPMpodeserdistribudosobos termosdaGPL. ORPMfacilitaasatualizaesdosistemaparaousuriofinal.Tarefascomoinstalar,desinstalare atualizarospacotesRPMpodemserfeitascomcomandoscurtos.ORPMmantemumbancodedadosde pacotesinstaladoseseusarquivosparaquevocpossaefetuarbuscaseverificaespoderosasemseu sistema.Sevocpreferirainterfacegrfica,podeusaraferramentadeadministraodepacotesGUI. Duranteasatualizaes,oRPMlidacuidadosamentecomosarquivosdeconfiguraoparaquevoc nuncapercaapersonalizao,algoimpossveldeserfeitocomarquivos.tar.gznormais. Paraodesenvolvedor,oRPMpermitelevarocdigofontedosotfwareeempacotloemumafontee pacotesbinriosparausuriosfinais.
ObjetivosdeDesenvolvimentodoRPM:
ParaentenderousodoRPM,podesertilentenderseusobjetivosdedesenvolvimento:
CapacidadedeAtualizao UsandooRPMvocpodeatualizarcomponentesindividuaisdeseusistemasemprecisarreinstal loscompletamente.Quandovocobtemumanovaversodeumsistemaoperacionalbaseadoem RPMs(comooRedHatEnterpriseLinux),noprecisareinstalloemsuamquina(comoocaso de sistemas operacionais baseados em outros sistemas de empacotamento). O RPM permite atualizaes inteligentes totalmente automatizadas e certeiras de seu sistema. Os arquivos de configuraodospacotessopreservadosaolongodasatualizaesparaquevocnopercasua personalizao.Noh arquivosespeciaisnecessriosparaaatualizaodeumpacoteporqueo mesmoarquivoRPMusadoparainstalareatualizaropacotenoseusistema.
80
BuscaPoderosa ORPMdesenvolvidoparaproveropespoderosasdebusca.Vocpodeprocurardeterminados pacotesouarquivosnoseubancodedadosinteiro.Voctambmpodedescobriraqualpacoteum arquivopertenceedeondeopacoteveio.OsarquivosqueopacoteRPMcontmestoemum arquivocomprimido,comumcabealhobinriopersonalizadocontendoinformaesteissobreo pacoteeseucontedo,permitindoquevocprocurepacotesindividuaisfcilerapidamente. VerificaodoSistema Umaoutrafuncionalidadeimportanteaverificaodepacotes.Sevocnosabeseapagoualgum arquivoimportantedealgumpacote,verifiqueo.Voc ser notificadodequaisqueranomalias. Nesteponto,vocpodereinstalaropacotesenecessrio.Todososarquivosdeconfiguraoque vocmodificousopreservadosduranteareinstalao. Instalaodepacotesnuncainterativa TodosoftwaredistribudoemRPMinclusiveabasedosistemaoperacional
UsandooRPM:
ORPM temcincomodosdeoperaobsicos(semcontaracompilaodepacotes):instalar,des instalar,atualizar,buscareverificar.Estaseocontmumavisogeraldecadamodo.Paraveros detalheseopescompletas,use:rpmhelp.
InstalandoPacotes:
Os pacotes RPM geralmente tm nomes de arquivos como foo1.01.i386.rpm. O nome do arquivoincluionomedopacote(foo),verso(1.0),subverso(1)earquitetura(i386).Instalarum pacotemuitosimples,bastaautenticarsecomorootedigitaroseguinteemumajaneladecomandos:
rpmUvhfoo1.01.i386.rpm
Seainstalaoforbemsucedida,oseguinteoutputapresentado:
Preparing...###########################################[100%] 1:foo###########################################[100%]
81
Seaassinaturanova,somentecomcabealho,apareceumamensagemdeerroparecidacomaseguinte:
error:HeaderV3DSAsignature:BAD,keyID0352860f
Sevocnotemachaveapropriadainstaladaparaverificaraassinatura,amensagemcontmapalavra NOKEY,talcomo:
warning:V3DSAsignature:NOKEY,keyID0352860f
PacoteJInstalado:
Seopacotedamesmaversojestinstalado,oseguinteapresentado:
Preparing...###########################################[100%] packagefoo1.01isalreadyinstalled
Sevocdesejainstalaropacotedequalquermaneiraeamesmaversojestinstalada,vocpodeusara oporeplacepkgs,quepedeaoRPMparaignoraroerro:
rpmivhreplacepkgsfoo1.01.i386.rpm
ArquivosConflitantes:
Sevoctentarinstalarumpacotequecontmumarquivoquefoiinstaladoporoutropacoteouporuma versomaisantigadomesmopacote,apareceoseguinte:
Preparing...###########################################[100%] file/usr/bin/foofrominstalloffoo1.01conflictswithfilefrompackagebar2.0.20
82
ParafazercomqueoRPMignoreesteerro,useaoporeplacefiles:
rpmivhreplacefilesfoo1.01.i386.rpm
DependnciaNoresolvida:
OspacotesRPMpodem"depender"deoutrospacotes,oquesignificaqueelesrequeremainstalaode outros pacotes para rodarem apropriadamente. Se voc tentar instalar um pacote que tem uma dependncianoresolvida,apareceumoutputsimilaraoseguinte:
Preparing...###########################################[100%] error:Faileddependencies: bar.so.2isneededbyfoo1.01 Suggestedresolutions: bar2.0.203.i386.rpm
Seainstalaodosdoispacotesforbemsucedida,apareceumoutputsimilaraoseguinte:
Preparing...###########################################[100%] 1:foo###########################################[50%] 2:bar###########################################[100%]
Seopacotequecontmobar.so.2estnobancodedadosinstaladopelopacoterpmdbredhat,o nomedopacoteapresentado:
bar2.0.203.i386.rpm
Paraforarainstalaodequalquermaneira(umamidiajqueopacoteprovavelmentenorodar corretamente),useaoponodeps.
83
Desinstalando:
Desinstalarumpacotetosimplesquantoinstalarum.Digiteoseguinteemumajaneladecomandos:
rpmefoo
Nota Notequeusamoso nome dopacotefoo enoonomedo arquivo dopacoteoriginal foo 1.01.i386.rpm. Para desinstalar um pacote, substitua foo pelo nome verdadeiro do pacoteoriginal.
Vocpodeencontrarumerrodedependnciaaodesinstalarumpacote,casoumoutropacoteinstalado dependadaquelequetentaremover.Porexemplo:
Preparing...###########################################[100%] error:removingthesepackageswouldbreakdependencies: fooisneededbybar2.0.203.i386.rpm
Atualizando(Update):
Atualizarumpacotesimilarainstalarum.Digiteoseguinteemumajaneladecomandos:
rpmUvhfoo2.01.i386.rpm
84
Esta mensagem significa que suas alteraes ao arquivo de configurao talvez no sejam "compatveis"comonovoarquivodeconfiguraonopacote,portantooRPMsalvouoarquivooriginal einstalouumnovo.Vocdeveverificarasdiferenasentreosdoisarquivosdeconfiguraoeresolv lasoquantoantesparagarantirobomfuncionamentodoseusistema. Narealidade,atualizarumacombinaoentreinstalaredesinstalar,portanto,duranteumaatualizao doRPM,vocpodeencontrarerrosdeinstalaoedesinstalao.SeoRPMachaquevocesttentando atualizarparaumpacotecomumaversomaisantiga,ooutputsimilaraoseguinte:
packagefoo2.01(whichisnewerthanfoo1.01)isalreadyinstalled
ParafazercomqueoRPM"atualize"dequalquermaneira,useaopooldpackage:
rpmUvholdpackagefoo1.01.i386.rpm
Recarregando(Freshen):
Recarregarumpacotesimilaraatualizarum.Digiteoseguinteemumajaneladecomandos:
rpmFvhfoo1.21.i386.rpm
Aopoderecarregamento(freshen)doRPMverificaasversesdospacotesespecificadosnalinhade comandocomasversesdospacotesquejforaminstaladosnoseusistema.Quandoumaversomais recentedeumpacotejinstaladoprocessadapelaopoderecarregamentodoRPM,atualizadapara aversomaisnova.Entretanto,aopoderecarregamentodoRPMnoinstalaumpacotesenohouver umoutropreviamenteinstaladocomomesmonome.IstodiferedaopodeatualizaodoRPM,jque aatualizaoinstalaospacotes,independentedofatodehaverumaversomaisantigadopacoteouno. A opode recarregamentodoRPMparapacotessimplesouumgrupodepacotes.Sevoc fez o downloaddeumgrandenmerodepacotesdiferenteses desejaatualizarospacotesquej esto instaladosnosistema,orecarregamento amelhoropo.Seusarorecarregamento,no necessrio apagarpacotesnoquistosdogrupobaixado(download)antesdeusaroRPM. Nestecaso,invoqueoseguintecomando:
rpmFvh*.rpm
ORPMatualizaautomaticamentesomenteaquelespacotesquejestoinstalados.
85
Busca(Query):
Useocomandorpmqparaefetuarbuscasnobancodedadosdepacotesinstalados.Ocomando rpm qfooexibeonome,versoesubversodopacoteinstaladofoo:
foo2.01
H diversas maneiras de especificar quais informaes devem ser apresentadas sobre os pacotes encontrados.Asopesaseguirsousadasparaselecionarotipodeinformaopelaqualvocprocura. EstassochamadasdeOpesdeSeleodasInformaes.
i apresentaasinformaesdopacoteincluindonome,descrio,verso,tamanho, data de criao,datadeinstalao,fabricanteeoutrasinformaesdiversas. lapresentaalistadosarquivoscontidosnopacote. sapresentaoestadodetodososarquivosdopacote. dapresentaumalistadosarquivosmarcadoscomodocumentao(pginasman,pginasinfo, READMEs,etc.). c apresentaumalistadosarquivosmarcadoscomoarquivosdeconfigurao.Estessoos arquivos que voc altera aps a instalao para configurar o pacote ao seu sistema (ex.: sendmail.cf,passwd,inittab,etc.).
Paraasopesqueapresentamlistasdearquivos,vocpodeadicionarvaocomandoparaapresentar aslistasnumformatolslfamiliar.
86
Verificando:
Verificarumpacotecomparaasinformaessobreosarquivosinstaladosdeumpacote smesmas informaesdopacoteoriginal.Dentreoutrascoisas,averificaocomparaotamanho,somaMD5, permisses,tipo,proprietrio(owner)eogrupodecadaarquivo. Ocomando rpmV verificaumpacote.Voc podeusarqualquerumadas OpesdeSeleode Pacotes listadasparaaprocura,paraespecificarospacotesquedesejaverificar.Umusosimplesda verificaorpmVfoo,queverificasetodososarquivosdopacotefooestocomoestavamquando foramoriginalmenteinstalados.Porexemplo: Paraverificarumpacotecontendoumdeterminadoarquivo:
rpmVf/bin/vi
ParaverificarTODOSospacotesinstalados:
rpmVa
ParaverificarumpacoteinstaladosobreumarquivodopacoteRPM:
rpmVpfoo1.01.i386.rpm
Este comando pode ser til se voc suspeitar que seus bancos de dados RPM estejam corrompidos. Se tudo for verificado apropriadamente, no haver output. Se houver discrepncias, estas sero apresentadas. O formato do output um conjunto de oito caracteres (um c denota um arquivo de configurao) eentoonomedoarquivo.Cadaumdosoitocaracteresdenotaoresultado de uma comparaodeumatributodoarquivoaovalordestemesmoatributoregistradonobancodedadosRPM. Um nico . (ponto)significaqueotestefoiaprovado.Osseguintescaracteresdenotamafalhade determinadostestes:
ImportandoChaves:
ParaverificarospacotesdaRedHat,vocdeveimportarachaveGPGdaRedHat.Parafazlo,execute oseguinteemumajaneladecomandos:
rpmimport/usr/share/rhn/RPMGPGKEY
ParaexibirumalistadetodasaschavesinstaladasparaaverificaodoRPM,executeocomando:
rpmqagpgpubkey*
ParaachavedaRedHat,ooutputinclui:
gpgpubkeydb42a60e37ea5438
Para exibir detalhes sobre uma chave especfica, use rpm qi seguido pelo output do comando anterior:
rpmqigpgpubkeydb42a60e37ea5438
VerificandoaAssinaturadePacotes:
ParaverificaraassinaturaGnuPGdeumarquivoRPMapsimportarachaveGnuPGdocriador,useo seguintecomando(substitua<rpmfile>pelonomedoarquivodopacoteRPM):
rpmK<rpmfile>
88
AutenticaoPAM:
Pluggable Authentication Modules um sistema de autenticao e autorizao modular, aplicaes podemcompartilhardeumsistemanicocentralizadodeautenticaoevalidaodecontasnosistema ondeoaplicativocompatvelcomaPAMchamaasbibliotecas(mdulos)PAMeapscorrertodosos requisitosconfiguradosretornaumcdigodesadadesucessooufalhaparaoaplicativo.Utilizandoa PAMomecanismodeautenticao nicoparadiversasaplicaesassimcentralizandoefacilitandoa verificaodequalquerproblemapossvel. ComoosistemadeautenticaodaPAM modular possveladicionarnovosmduloseremover mdulosantigos,assimadicionandofuncionalidadesparasuportarvriosmtodosdeautenticao. UmexemploclssicodeaplicativoqueconversacomaPAM ologincujaprincipalfuno fazera autenticaodeusuriospadronoUNIX.Oprogramaloginlinkadonalibpam.so,istosignificaqueo login compatvelcomautenticaoPAM.Apsoprogramalogincoletartodososdadosrelevantes como passwordeoutrasinformaes,elefazaconversaocomaPAMqueporsuavez utiliza a configuraodosconjuntosdemdulosconfiguradaparaaquelaaplicaopararetornarumvalorde sucessooufalha.importantelembrarqueaPAMnofazidiaseessaautenticaovmdeumconsole textoougrficoouatselocalouviarede,aresponsabilidadedajaneladecomunicaodaaplicao.
ConfiguraodaPAM:
Os mdulos da PAM que fazem as verificaes esto instalados no diretrio /lib/security. Alguns mdulosdependemdeconfiguraesparticularesespeciaisparaefetuarsuasverificaesefinalidades,a localizao desses arquivos deconfigurao podem variardemdulo para mdulo.Alguns usam o tradicional,porexemplo, /etc/nologin outrospodemsalvarseusarquivosdeconfiguraonodiretrio /etc/securitty.
89
Existem5categoriasprimriasdegerenciamento,soelas:
Cada uma dessas cinco categorias totalmente independente. Os mdulos no suportam todas as categorias,aaplicaoirchamarcadamdulorespectivoparasuacategoriaporvez.
Existeumconjuntodecontrolesquedeterminamcomocadamdulovaiinterferirnoresultadofinalda operao. A ordem dosmdulos checados, e como essa verificao ir proceder determinada no arquivo de configurao de cada aplicao, muitos mdulos possuem parmetros especiais que influenciamnostestes.Oscontrolesprimriosso:
Required Averificaodeverpassarnesteitemparaoresultadofinalserpositivo,quandoesteitemfalhaa verificaocontinuadaatofim,pormoresultadofinalj estacomprometido. Sufficient Seaschecagensdetodosositensanterioresrequiredforempositivas,bastaapenasachecagem deumnicoitemsufficientparaverificaoretornarpositiva. Optional Seaverificaopassaroufalharaqui,esseresultadonoinfluenciara. Requisite Seaverificaofalharaquioresultadofinaljsernegativo.
90
PrincipaisMdulosdaPAM:
pam_unix GerenciaaautenticaopadrodoLinuxatravsdaschamadasdalibc.Este omdulocentral daPAM. pam_permit,pam_deny Essessomdulossimplesquesempreiroresultaremverdadeirooufalso. pam_stack Estemdulochamaoutroarquivodeconfiguraodeaplicativo,oretornodasverificaesneste arquivoserooresultadofinaldopam_stackemverdadeirooufalso. pam_cracklib Este mdulo chamadoquandoousuriotrocasuasenha,vriasverificaessofeitas no passwordcomoaquantidademnimadecaracteres,verificaoemdicionrioseetc... pam_env Configuravariveisdeambiente,seuarquivodeconfigurao/etc/security/pam_env.conf. pam_securetty Permiteautenticaodeusuriosoudorootso mentepelasTTYslistadasem/etc/securetty. pam_rootok Retornaverdadeiroseousurioforroot pam_console Retornaverdadeiroseaautenticaoveiodeumconsole
SealgumaplicativocompatvelcomaPAMpedirautenticaoenoforencontradoseuarquivode configurao, a PAM sempre utiliza um arquivo padro para essa situao localizado em /etc/pam.d/other.Aconfiguraodefaultdo/etc/pam.d/otherrestritivafazendoousodapam_deny.so.
91
AnalizandoaConfiguraodaPAM:
VejaabaixoumexemplodeconfiguraodaPAM,iremosanalisarsomenteocontroledeautenticao (auth): [root@vibe~]#cat/etc/pam.d/login #%PAM1.0 auth[user_unknown=ignoresuccess=okignore=ignoredefault=bad]pam_securetty.so authincludesystemauth accountrequiredpam_nologin.so accountincludesystemauth passwordincludesystemauth #pam_selinux.socloseshouldbethefirstsessionrule sessionrequiredpam_selinux.soclose sessionincludesystemauth sessionrequiredpam_loginuid.so sessionoptionalpam_console.so #pam_selinux.soopenshouldonlybefollowedbysessionstobeexecutedintheusercontext sessionrequiredpam_selinux.soopen sessionoptionalpam_keyinit.soforcerevoke EstaaconfiguraodaPAMdoaplicativologin.Vejaquehumincludenasessodeauthquechama um outro arquivodeconfiguraochamado systemauth.Vejanaprximapginaaconfiguraodo systemauth.Aprimeiralinhadasessoauthapenasdefinevaloresaseremutilizados. [root@vibe/etc/pam.d]#catsystemauth #%PAM1.0 #Thisfileisautogenerated. #Userchangeswillbedestroyedthenexttimeauthconfigisrun. authrequiredpam_env.so authsufficientpam_unix.sonulloktry_first_pass authrequisitepam_succeed_if.souid>=500quiet authrequiredpam_deny.so accountrequiredpam_unix.so accountsufficientpam_succeed_if.souid<500quiet accountrequiredpam_permit.so 92
Na primeira linha encontramos a pam_env.so, seu arquivo de configurao est localizado em /etc/security/pam_env.so.Afunodomdulopam_env.so apenasconfigurarvariveisdeambiente, nenhumtesterealizadoaqui.
Nasegundalinhaqueaconteceaautenticaoemsiatravsdomdulopam_unix.so.Oparmetronullok indicaquepermitidopasswordsnulos(vazio).
93
NSS:
NaautenticaotradicionaldoUNIX,osaplicativosfazemusodafunogetpwnam()daLIBCpara autenticaodeusurios.Essafunooriginalmentefoiprogramadaparaacessarsomenteosrepositrios dearquivoslocaiscomoo /etc/passwd/etc/shadow/etc/hosts eassimpordiante.Comachegadade novosserviostaiscomoDNSeNIS,umareescritadafunogetpwnam()foirealizada.Reescrevera funofoinecessrioparacadanovotipodeservioourepositrioquesurgisse. ParacontornaressasituaofoicriadooNameServiceSwitch,quetornamodularomecanismode acessoaoutrosserviosourepositrio sdecontas.ComoNSSnomaisnecessrioreescreveraLIBCe novos servios podem ser suportados apenas fornecendo o mdulo necessrio ao NSS em /lib/libnss_service.so. Para as aplicaes o NSS transparente e as autenticaes continuam sendo realizadasdaformatradicional. AordemdeprocuradosserviosverificadospeloNSS configuradanoarquivo /etc/nsswitch.conf. O primeiro item por linha o nome da base de dados de nomes consultada pela LIBC, so eles: aliases,ethers,group,hosts,netgroup,networks,passwd,protocols,rpc,services,shadow.Seguidodabasede dadosvemalistadosserviosemordemqueserochecadosparabuscarasinformaes.Paraconsultar umabasededadosuse:getentpassw d.Vejaoexemplodaseguinteconfigurao:passwd:filesldapnis Noexemploacimaestaconfiguradoqueorepositriodeusuriosaserverificadoemprimeirolugaro files ouseja, /etc/passwd,casoousurionosejaencontradoainda procuradoemumabase ldap e mesmoassimseaindanoforencontrado,procuradoemumabaseNIS.ObviamenteosserviosLDAP eNISdevemestarcorretamenteconfiguradoseoperandoparaqueissosejarealizado. Apenas4resultadossopossveisdeserretornadosquandooNSSverificaumservioourepositrio, soeles:
ONSSirretornarnoprimeiroSUCCESS,casocontrariooutrasbasesconfiguradasseroverificadas. 94
ConfigurandoAutenticaoLDAP:
Iremosverapenasapartedeconfiguraoquepermitequeseuservidorautentiqueseemumserviode diretriobaseadonoprotocoloX500jexistente. necessrioinstalarospacotes nssldapeopenldap queprovemtantoaparteclientecomoosservidoresebibliotecasparatrabalharcomoLDAP. AconfiguraodeumservidorLDAP,ondeslapd oservidorstandaloneparaservirrequisiesLDAP eslurpd oservidorstandaloneresponsvelpelasreplicaesesincronizaesdoserviodediretrio, noseroabordadasnestecaptulo. EmgeralquandooserviodediretrioLDAPusadoparaautenticaoomaiorbeneficiogarantidoa autenticaocentralizada,todasascontasficamarmazenadasemumnicorepositriocentralediversos servidoreseserviosbuscamautenticaoapenasnele.Facilmentepodemosreplicarasinformaes desse repositrio criando backups altamente consistentes. Podemos destacar tambm que possvel estenderosatributosdeuma nicacontaparasuportarvriostiposdeservios,destaformanum nico registropossvelsuportarautenticaesdeserviosdistintos,porexemplo,UNIXeSAMBA. Podemserarmazenadasnoserviodediretrioqualquertipodeinformao,oLDAPumaespciede bancodedadosparainformaesrelativamentepequenas,ouseja,informaeslevessoorganizadas hierarquicamente,geralmentesostringsdecaracteresquesorapidamentetransferidospelarede.Todas informaesdosarquivos/etc/passwd/etc/shadow/etc/group/etc/hosts,tabelasde DNS soexemplos tpicosdedadosencontradosnoserviodediretrio. Umconjuntodearquivosdevemsermodificadosparaconfigurarseuservidorcomoumclienteldappara autenticao.Aformamaisfcildefazerisso utilizandoaferramentasystemconfigauthentication, disponvelparainterfacegrfica. importantetambmusarcriptografiaTLS,casocontrarioassenhas serotransmitidasemtextopuropelaredeparacadaautenticao.Paraconsoletextoestadisponvela ferramentaauthconfigtui quetemamesmafinalidade.CertifiquesequeoseuservidorLDAPpossui suporteaTLSeefetueodownloaddocertificado,necessriotambmconheceroendereodoservidor eobaseDNreferenteaorepositriodeusurios,paraissocontateoadministradordesuarede. Os arquivos /etc/ldap.conf /etc/openldap/ldap.conf /etc/nsswitch.conf /etc/pam.d/systemauth sero modificadosemordemasuportarautenticaoLDAP.
95
GerenciandoasinterfacesdeRede:
Ogerenciamentodasinterfacesderederealizadopeloscomandosifupeifdownqueiniciameparamas interfaces.Paracadainterfacederede,existeumarquivodeconfiguraoespecfico,diversasopesde configuraoestodisponveis,asprincipaisso:EndereoIP,Netmask,Rotas,NomedeDispositivo, DisponibilidadeAutomticaouManualnoBOOT. Os arquivos de configurao das interfaces de rede esto localizados em /etc/sysconfig/network scripts/ifcfgxxx.Podemosdividirasconfiguraesem3grandesgrupos:
static Configuraesestticasmanuaisgravadasnoarquivodeconfigurao. dhcp Indicaqueestainterfaceir buscarsuasconfiguraesemumservidorDHCPdisponvelno mesmosegmentoderede. bootp Indicaqueestainterfaceir buscarsuasconfiguraesemumservidorBOOTPdisponvelno mesmosegmentoderede.
O arquivo deconfiguraoglobalparatodasinterfaces o /etc/sysconfig/network. definido neste arquivosasinformaesprimriasparaofuncionamentodarede,soelas: networking Osvalorespodemseryesouno.Definebasicamentesehounosuportearede. hostname onomecompletodesteservidor(fqdn). gateway Indicaarotapadro. nisdomain EspecificaonomededomnioNIS.Emgeralestaoponoutilizada. Paraadicionar,deletaroueditarasconfiguraesdasinterfacesderedeestodisponveisasferramentas systemconfignetwork paraomodogrficoeconsoletexto.Lembrandoqueparaasalteraesterem efeitoapsexecutarasferramentasdeconfiguraonecessrioreiniciarasinterfacescomocomando: servicenetworkrestartouifdown<interface>eifup<interface> Aferramentanetconfig ir editarasconfiguraesdainterfacederedepadro,paraconfiguraroutra interface necessrio utilizar: netconfig device eth1, onde eth1 o nome da interface desejada. LembrandoqueaferramentanetconfignomaissuportadanoRHEL5. 96
GerenciandoosLOGsdoSistema:
Mesmoquandoosistemanoapresentaproblemasexplcitossemprenecessrioinspecionaroslogsdo sistema. Alm de erros crticos, so logados tambm: conflitos de hardware, m configurao de software,abusosnopolicydesegurana,mensagensinformativasextremamente teisparatunningde performanceeetc.Oslogsdosistemaconcentramseem /var/log eoslogsdoKernelem /proc,para acessarosarquivosdelogsvocpodediretamenteexibirocontedodosarquivoscomcomandoscomo: cat,tail,head,lesseetc...
Osdaemonsquesoresponsveisporreportaroslogsdosistemaso:
Oarquivo/etc/syslog.conf utilizadoparaconfigurarosyslogd,noqualsoespecificadasasregraspara registrarcadatipodemensagem. Asregrasapresentamdoiscampos,seleo(selector)edestino(target),camposquesoseparadospor espaosoutabulaes.Ocamposeleoapresentaduaspartes,facilidadeeprioridade,separadasporum ponto,nasquaisocamposeleo designaumpadrodefacilidadeseprioridadespertencentesauma aoespecificada.Ocampofacilidadeinformaaosyslogotipodeaplicativoqueoriginouamensagem (email,kernel,sistemadeimpresso,entreoutros),eocampoprioridadeaimportnciadamensagem.O campodestinoparaondeasmensagemiroserenviadas.
97
Facilidades:
kern user mail daemon auth syslog lpr news uucp * kernel nveldeusurio subsistemademail daemonsdosistema seguranaeautorizaes syslogdaemon subsistemadeimpresso subsistemadenews subsistemadeuucp todasasfacilidades
98
Nveisdeprioridade:
emerg alert crit err warning notice debug info none mensagensdeemergncia mensagensdealerta mensagenscrticas mensagensdeerro condioesanormais,masrecuperveis mensagensimportantes mensagensdedebug mensagensinformativas excluifacilidadeselecionada
Destinos:
/filename @host user * caminhocompleto nomedamquina usurio todososusurios
99
ExemplosdeConfiguraesdoSyslog:
*.err;kern.debug;auth.notice; mail.crit *.notice;kern.debug;auth,lpr.info; mail.crit;news.err mail.info lpr.info cron.* *.err *.notice;news.err *.alert *.emerg news.crit news.err news.notice !startslip *.* /var/log/slip.log /dev/console /var/log/messages /var/log/maillog /var/log/lpderrs /var/cron/log root root root * /var/log/news/news.crit /var/log/news/news.err /var/log/news/news.notice
ImportantesarquivosdeLogsdoSistema:
/var/log/dmesg Estearquivodelogescritologoapsoprocessodeboot.Contmmensagensemitidasdokernel duranteoprocessodeboot. /var/log/messages Este oarquivopadrodelogqueosyslogdutilizaparaefetuarregistrodetodosossoftwares instaladosnosistema. /var/log/maillog No maillog centralizado todos os logs relativos ao sistemas de mail instalados, como SMTP,POP,IMAPeetc... /var/log/secure Nestearquivo concentradomensagensrelacionadasasegurana.Aplicativoscomoologin, xinetdetcp_wrappersgeramlogsnestafacilidade.
100
ManutenoeRotaodosLogs:
Casonenhumaaofortomada,atendnciadeumarquivodelog crescerinfinitamente,isto ,at ocupar100%dofilesystemresultandonotravamentointegraldosistema.Emgeralosarquivosdelogs sobastantepequenos,eosnveisdecompressoalcanados soexcelentesparaestetipodedados. TodasdistribuiesdeLinuxjvmcomologrotateinstaladoporpadro.Ologrotateumaferramenta derotaoparaquandoosarquivosdelogalcanamumtamanhoprdefinidoouumperododetempo estabelecido.possvelespecificarcompressodelogsantigossenecessrio. O logrotate executadodiariamentecomoumatarefado cron,em/etc/cron.daily eseuarquivode configuraoestalocalizadoem/etc/logrotate.conf.Aconfiguraoderotaoparacadaarquivodelog necessria em /etc/logrotate.d e geralemente instalada automaticamente pelo RPM no mesmo momentodainstalaodaaplicao.Aespecificaoderotaoparaosarquivosgeradospelosyslogd porexemploestoem/etc/logrotate.d/syslogd. Emgeralaconfiguraodologrotatebastantefcil,paramaioresinformaesconsulteasmanpages.
MonitorandoosLogs:
AferramentalogwatchjvminstaladaporpadronamaioriadasdistribuiesdeLinuxatualmente.O logwatch tambm executado diariamente no /etc/cron.daily e seu arquivo de configurao esta localizadoem/etc/log.d/conf/logwatch.conf. A principal funo do logwatch monitorar os logs de acordo com os filtros e disparar emails informativos sempre que alguma atividade anormal verificada. A programao dos filtros extremamente complexa, porm h diversos filtros j programados para analisar logs de aplicaes populares configurados por padro. A documentao adicional esta localizada em /usr/share/doc/logwatch*. Umaoutraformademonitoraroslogs desviandoasadapadroparaumconsolequenoestasendo utilizado,vejaoexemploabaixo: cd/var/log;tailfmessagesfsecure>/dev/tty8& Com este comando sempre que algum log for incrementado no arquivo /var/log/messages ou /var/log/secure,istosermostradonatty8automaticamente.Paraacessaratty8useasteclasdeatalho Ctrl+Alt+F8naintefacegrficaouapenasAlt+F8nomodotexto.
101
CUPS:
AimpressoemUnix/Linuxnosofregrandestransformaesamuitotempo.Podemosencontrarainda emusoolpd(lineprinterdaemon),soluocominmeraslimitaesenocompatvelcomoIPP (InternetPrintingProtocol),que abasedegerenciamentode jobs (servios)efilasdeimpresso, ficandolimitadoaumacertaquantidadedeimpressoras.ComoCommonUnixPrintingSystem(CUPS) podemosintroduzirumasoluodeimpressouniversalparaarede. O CUPS um gerenciador de impresso que pode ser utilizado via web (HTTP), atravs do qual podemosadicionar,excluir,alterareconfigurarimpressoras,bemcomoadministrarjobsdeimpressode umaoudetodasasimpressorascompartilhadasnarede.Proporciona,ainda,aosusuriosdeUnix/Linux uma impressoeficienteeconfivel,porsercompatvelcomoIPPemmodonativoepor possuir interface para LPD, SMB (Server Message Block) e JetDirect. O CUPS oferece navegao pelas impressorasdaredeeusaarquivosPostScriptPrinterDescription(PPD). OCUPSrespondepelaportapadro631.Utilizandoqualquerbrowser,bastaespecificarnabarrade endereosaseguintelocalizao:http://localhost:631(seasconfiguraesnoarquivocupsd.confforem efetuadasdigitandoemvezdelocalhostoendereoIPdoservidor,teromesmoefeito,sempreseguido da porta do CUPS 631). Isto abrir uma janela em seu navegador, de qualquer ponto da rede. LembrandoqueporpadrooCUPSsaceitarrequisiesdamaquinalocal.Paraautenticarseousurio precisasermembrodogruposysouroot.Nohcriptografia,portantotenhacautelanautilizaodeste meiodegerenciamentodoCUPS. OarquivoprincipaldeconfiguraodoCUPSestalocalizadoem/etc/cups/cupsd.confesuasintaxede configurao similarao do ApacheWebServer(httpd.conf).As definiesdeimpressoras ficam armazenadasnoarquivo/etc/cups/printers.conf,e geradaautomaticamentepeloscomandos:lpadmin, systemconfigprinter,systemconfigprintertuiouaindapelaconsoledeadministraoWEBdoCUPS. Paraobterinformaesrelativasasclasses,trabalhoseimpressorasutilizeocomandolpstat.Quando usado sem argumento ele fornece o status da fila de impresso do usurio corrente. Para remover trabalhosnafiladeimpressoutilizeocomandolprm.Vejaabaixoalgumasopesdolpstat:
CRON:
O CRON largamenteutilizadoemquasetodasdistribuiesdeLinuxparaagendaraexecuode eventosrecorrentes. possvelespecificarqualquerperododetempoparaumeventoseragendado. Existemtambmdiretriosespeciaisparaeventospreviamenteagendados,soeles: /etc/cron.hourly Executaosscriptsdestediretrioacada01(Uma)hora. /etc/cron.daily Executaosscriptsdestediretrio01(Uma)vezpordia. /etc/cron.weekly Executaosscriptsdestediretrio01(Uma)vezporsemana. /etc/cron.mounthly Executaosscriptsdestediretrio01(Uma)vezporms.
Osexecutveiscontidosnosdiretriosacimasoexecutadospelousurioroot,porpadroj existem algunsscriptsquerealizamtarefasdeatualizaoelimpezadearquivostemporriosdosistema. Oseventosagendadopelo CRON soexecutadoscomaspermissesdoseuusuriocriador,qualquer retorno dos comandos executadosso enviados automaticamente para seu email, ou para o email especificadonavarivelMAILTO=.Oseventossoarmazenadosnodiretrio /var/spool/cron que somenteacessadoporusuriosprivilegiadosesoprocessadospelodaemon crondquedeveestarativo.
Para agendar eventos no CRON o usurio utiliza o comando crontab. Veja abaixo os principais argumentos: u<usurio> Agendaeventosparaousurioespecificado.(Funcionaapenascomusuriosprivilegiados) e Entranomodoeditor,utilizadoparacriar/editar/deletareventosdousuriocorrente. l Listaoseventosagendadosparaousuriocorrente. r Removeocrontabcorrente.
103
ExemplodeEventonoCRON:
[carlos@vibe]$crontabe MAILTO=mike@centos.com 4310***/home/carlos/manutencao Noexemploacima,todososdiass10:43damanhserexecutadooscript/home/carlos/manutencaoe qualquerretornogeradodestescriptserenviadoparaoemailmike@centos.com. Paraacessarmaisexemplo,execute:man5crontab.
ATD:
atf/home/carlos/testem19:05 Noexemploacimafoiagendadaaexecuodocomando /home/carlos/teste para s19:05de hoje.Seahoraespecificadajestiverpassada,serexecutadonoprximodia. atf/root/dotestm8am+7days Nesseexemplooscript/root/dotestserexecutados8horasdamanh,setediasdepois. atf/root/dotestm10pmjan15 Aquioscriptfoiagendado paraexecuonodia15dejaneiros10horasdanoite.
Ocomandoatq utilizadoparavisualizarosagendamentosrealizadosdousurio,nocasodousurio root possvel visualizar todos os agendamentos do sistema. Para apagar agendamentos utilize o comandoatrmespecificandoonmerodotrabalhoaserremovido.
GerenciamentodosMdulosdoKernel:
TodoscomponentesdoKernelassimcomodriversdedispositivos,filesystemseoutrasfuncionalidades sorealizadosemantidoscomomdulos.QuandocompilamosumaversodeKerneltemosaopode escolher se os mdulos sero embutidos ou dinmicos carregveis. Mdulos dinmicos carregveis adicionamfuncionalidadesaoKernelsemaumentaroseutamanhooqueajudaaaumentaraperformance dosistema.Geralmentepodemosescolhercomomdulosdinmicoscarregveisdriverssuplementares paradispositivospoucoutilizados,filesystemsadicionaiseetc... Todos mdulos necessrios para o boot devem ser embutidos (Builtin), caso o Kernel no acesse corretamenteodispositivoraizdosistemadearquivos(rootdevice)eleirtravarcausandoemkernel panic.
KernelTainting:
QuandoalgummduloproprietriocarregadojuntoaoKernel,podemosdizerqueoKernelpassaaser tainting(Corrompido).Mdulosproprietriossogeralmentedriversdefabricantesdehardwarecujo cdigofontenodisponibilizado.importantelembrartambmquequandooKernelestataintingele no suportadopelaRedHat,fatodosengenheirosnopoderemanalisaroqueexatamenteocdigo proprietriopodeestarcausando.
modprobe,modprobe.conf,modinfo,lsmod:
OsmdulosdoKernelestolocalizadosem/lib/modules/kernel(verso),casoosistematenhamaisde umKernelinstaladovocir encontrardiversasverses,utilizeocomandounamerparadeterminar qualversoestemusocorrente. OKernelpodedeterminarquandonecessrioocarregamentodealgummduloedamesmaformapode efetuarodescarregamentocasoodispositivooufuncionalidadedeixedesersolicitada.Geralmenteos mdulostmdiversosparmetrosdisponveisparaoajustefinodesuasconfiguraes,podemoslistaros parmetrosdeummdulocomocomandomodinfo,outrasinformaestambmsomostradascomo: tipo de licena do mdulo, autor, verso e etc... use modinfo <mdulo> (No h necessidade de especificaropathenemaextenso.kodomdulo).
105
Ocomando lsmod listaosmdulosqueestocarregadosnoKernel,enquantoocomando modprobe carrega mdulos e dependncias automaticamente, o arquivo de configurao /etc/modprobe.conf consultadoinformandoaliases,opes eparmetrosespeciais.Pararemovermdulosutilize: modprober<mdulo>.
DependnciadeMdulos:
Algunsmdulosdependemdiretamentedequeoutrosmdulosestejamcarregados.Ocomando depmod utilizadoparacriarabasededadosdedependnciasdosmduloslocalizadaem: /lib/modules/(kernelrelease)/modules.dep Essearquivoestaemformatotextoepodeservisualizadocomqualquerferramentadeediodetexto.
Initrd,ImagemdeRamdisk:
Caso exista necessidade de adicionar suporte para algum dispositivo indispensvel para o boot necessrio adicionar os mdulos solicitados embutidos no Kernel. Um outra forma mais rpida de disponibilizaressesmdulossemrecompilaroKernel criandonovamenteo initrd.O initrd uma imagemdeumfilesystemquemontadonamemriaRAMemtempodeboot,elecontemmdulospara acessardispositivoscomoSCSI,RAIDeetc...Ocomandomkinitrdutilizadoparagerarnovasimagens. indispensvelqueobootloaderestejachamandoanovaimagemcorretamenteparaqueissofuncione. Oinitrdcapazdeidentificarondeestaoseurootfilesystem(sistemadearquivosraiz)deacordocoma fstab e verificar os dispositivos necessrios para seu acesso. Qualquer parmetro especificado no modprobe.conf utilizadonahoradoprcarregamentodomdulo. possveltambmincluirmdulos arbitrariamentenaimagem. Asintaxedomkinitrdaseguinte:mkinitrd<arquivo.img><versodokernel>.Vejaoexemplo: mkinitrd/boot/initrd2.2.515.img2.2.515
106
/procFilesystem,LogsdoKernel:
Osistemadearquivos/procmontadoduranteoprocessodebooteespecificadopelo/etc/fstab.Este umfilesystemvirtualondeotamanhodosarquivos zero.Naverdadeestefilesystem umajanela virtualdecomunicaodoKernelcomousurio,ondesoinformadosemtemporealoslogsdokernel. Diversas informaesdosistema so apresentadas incluindoo detalhamento detodos os processos, informaessobrememria,CPU,redeeetc...Vejaabaixoosprincipaisarquivos:
Algunsdiretriosdentrodaestrutura/procrecebemdestaque,soeles:
/proc/sys,AjustesonlinenoKernel:
Comomostrado,o/proc umajaneladecomunicaoondeoKernelmostravaloresparadeterminados tens do sistema, a nica parte do /proc que interativa o /proc/sys, onde possvel efetuar modificaesonlinenosparmetrosdoKerneldoLinux. UmainfinidadedeconfiguraespodemserrealizadasdiretamenteaoKernel,paraumalistacompleta dosparmetrossuportadosconsulteadocumentaolocalizadaem/usr/share/doc/kerneldoc*/sysctl/ou executeocomando:sysctla 107
Sysctl,AjustesdeparmetrosnoKernel:
Geralmente as funcionalidades aceitam valores 1 que representa Ativo, ou 0 que representa inativo, porm outras funcionalidades apresentam estruturas de dados mais complexas. Veja alguns exemplosdecomomudarparmetrosonlinenoKerneldoLinux.
[root@vibe~]#echo"1">/proc/sys/net/ipv4/tcp_syncookies AcimaestamosAtivandoaproteodoTCPcontraataquesdeSynfloods.
[root@vibe~]#echo"1">/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts Aquiestamosinstruindoaokernelparaignorararespostaparapingsdebroadcasts.
108
NFS: Introduo:
OSistemadeArquivoemRede(NetworkFileSystem),tambmconhecidocomoNFSepermitequeum sistemacompartilheseusdiretriosearquivoscomoutrossistemasatravsdeumarede.UsandoNFS,os usurioseprogramaspodemacessararquivosemsistemasremotosquasecomosefossemarquivos locais,ouseja,deformatransparente. AlgunsdosbenefciosmaisnotveisqueoNFSpodeoferecerso: Estaeslocaisusammenosespaoemdiscoporquedadosfreqentementeusadospodemser armazenadosemumanicamquinaeaindapermaneceremacessveisaoutraspelarede. Noh necessidadedeusuriosteremdiretriospessoaisseparadosemcadamquinadarede. DiretriospessoaispodemserconfiguradosnoservidorNFSeseremdisponibilizadosatravsda rede. Dispositivosdearmazenamentocomodisquetes,leitoresdeCDROMeleitoresdeZIPpodemser usadosporoutrasmquinasnarede.Istopodereduzironmerodeleitoresdemdiaremovvel emtodaarede.
InstalandoPacotes/SoftwaresNecessrios:
ComooNFS umservioRPCelesolicitaoportmapparamapearaschamadasdasmaquinasparao servioRPCcorreto.TambmnecessrioqueoKerneltenhasuporteparaonfsbemcomoosdaemons rpc.nfsderpc.mountdativos.TudojvemprontonoRHEL,bastainiciarosservicosportmapenfs. Verifiqueseospacotesdoportmape nfsutilsestoinstalados,casocontrarioinstaleos: rpmqa|grepportmap rpmqa|grepnfs rpmUvhportmap<verso>.rpm rpmUvhnfsutils<verso>.rpm 109
OpesdeMontagemdoNFS:
Emdiversascircunstnciasespeciaisnecessrioespecificaropesnahorademontarumfilesystemde rede,especialmenteparatratardeperformanceeindisponibilidadestemporriasocasionais,vejaabaixo asprincipaisopesquepodemserespecificadasnahorademontarumfilesystemviaNFS:
hardousoft Casoofilesystemexportadoestejaforadoar,usandoaopohardaaplicaoqueestiver tentando acessar o filesystem ir congelar e aguardar. Para soft imediatamente um erro retornadoparaaplicao. Se hard for especificado o usurio no ir conseguir interromper a aplicao, causando no travamentodoprocessoquesolicitaoNFS. Quando soft especificado o usurio pode configurar adicionalmente o parmetro timeo=<valor>,ondeovaloronmerodesegundosparaaguardarantesdeserreportadoerro. intr PermiterequisiesdeNFSsereminterrompidasquandooservidorestivertemporariamentefora doar. nolock ocasionalmentenecessrioparacomunicaocomservidoresdeNFSantigos. noexec Desabilitaaexecuodebinriosnofilesystemremoto. nosuid Desabilitaosbitsdepermissosuidegidparaofilesystemremoto. rsize=8192ewsize=8192 AumentaconsideravelmenteavelocidadedoNFSaumentadoajaneladeblocosdeleiturae gravao.Procuremaisajudaparainseriroutrosvalores. nfsvers=2ounfsvers=3 Especificaqualversodoprotocolousar.
110
UsandooautomounterparamontarNFS:
Oautomounter(autofs)tambmpodeserutilizadoparamontaredesmontarfilesystemsremotospor demanda. Uma configuraomuito frequente mapear odiretrio homedetodosos usurios paraum outro servidor, neste caso voc ter que especificar alguns caracteres coringa no autofs veja abaixo um exemplotpicodestecenriodeconfigurao: Oarquivo/etc/auto.master,indicaqueodiretrio/homedenossamquinalocalestasendomonitorado peloautofsequeseuarquivodeconfiguraosero/etc/auto.misc: # #$Id:auto.misc,v1.22003/09/2908:22:35ravenExp$ # #Thisisanautomountermapandithasthefollowingformat #key[mountoptionsseparatedbycomma]location #Detailsmaybefoundintheautofs(5)manpage /home//etc/auto.misc Agora no arquivo /etc/auto.misc vamos colocar o endereo do servidor e as opes de montagem relativasaoNFS,destaformamapearemostodososdiretrioshomedosusuriosrespectivamente, veja: # #$Id:auto.misc,v1.22003/09/2908:22:35ravenExp$ # #Thisisanautomountermapandithasthefollowingformat #key[mountoptionsseparatedbycomma]location #Detailsmaybefoundintheautofs(5)manpage * 10.0.0.1:/home/&
Podemosespecificaralgumasopesavanadasparagarantirotratamentodoserrosdeconexoque podem ocorrer e aumentar ainda mais a performance, o protocolo UDP s utilizado quando especificado,poisopadroesuportadosempreTCP: *rw,soft,intr,rsize=8192,wsize=8192,udp10.0.0.1:/home/& 111
LaboratrioNFS,cenriodeconfiguraodemdioporte:
Osdiretriosqueseroexportadosdevemestarlistadosnoarquivo/etc/exports.Asintaxedestearquivo a parte crticadaconfiguraodoservidor de NFS.Cada linha representa um diretrio que ser exportadoparaumaouumgrupodemquinascompermissesemcomum. Reproduzaasconfiguraoabaixono/etc/exportsdesua mquinalocal: /mnt*(rw,no_root_squash) /home/carlos*.exemplo.com(ro) /home 192.168.200.0/255.255.255.0(rw,sync) /opt *(ro) Naprimeiralinhaodiretrio/mnt exportadoparaomundointeiro,oacesso deleituraegravao. UsuriosdeUID/GID0(superusurios)seromapeadoscomosuperusurios,poisporpadrooNFS mapeia usurios de UID/GID 0 (root) para UID 65534 (nfsnobody), obviamente por questes de segurana. Na segunda linha mostrado um exemplo com coringa *, onde todas as mquinas do domnio exemplo.comteroacessogarantidosomenteleiturapara/home/carlos.Assimcomoo*,ocoringa? tambmvlidoeapenastrocaumcaractere. NaterceiralinhatodososdiretrioshomedosusuriosseroexportadosparatodaclasseCdarede 192.168.200.0. A opo sync indica que qualquer alterao no filesystem feita imediatamente, dispensandoassimosbuffersoucachesdedisco/controladora. Naquartalinhaodiretrio/optexportadoparaomundointeirocompermissodesomenteleitura.
Arquivosdeconfiguraoenvolvidos:
/etc/exports
AtivandooServioeajustandoaInicializaoAutomticanoBoot:
serviceportmapstart;servicenfsstart;servicenfslockstart chkconfigportmapon;chkconfignfson;chkconfignfslockon 112
TestedeImplementao/Validao:
ParaverificarseoNFSestativoeoqueeleestaexportandouse:exportfsv Asaidadestecomandodevemostraroqueestasendoexportadoetodasasopesepermissesomitidas porpadro.Paraqualquermensagemdeerroaqui,todoprocessodevesernovamenterevisado. Outraspossveisverificaesso: serviceportmapstatus servicenfsstatus rpcinfoplocalhost showmountelocalhost
ConfiguraodoServio(PartedoCliente):
Na mquina cliente, ou seja, onde ser montado o filesystem remoto que esta sendo exportado no servidor,tambmprecisadosuporteaoNFSnoKernel,ocomandomountirsolicitarestemdulona horademontarofilesystemviarede.FelizmenteoRHELjvempreparadoparaserumNFSclientee nadaprecisaseradicionadoaoKernel. AgorairemostrabalharemduplasdecolegasparapoderrealmentetestaroservidordeNFSacessandoos exportsdeseuvizinho.
DescubraoendereoIPdeseucolega,peaparaeleexecutar:ipaddrshoweth0 Crieumpontodemontagemnasuamquinalocal:mkdir/nfsteste Verifiqueosexportsnamquinadeseucolega:showmounte<ip_do_colega> Monteoexportnopontodemontagemcriado:mount<ip_do_colega>:/opt/nfsteste Adicioneumaentradanoseu/etc/fstabsemelhanteabaixoparamontagemautomtica: ip_do_colega:/opt /nfsteste nfs defaults 00 Peaparaseucolegacriararquivosemanipule(copie)osarquivosviaredeparatestar.
113
FTP: Introduo:
FTPumacrnimoparaFileTransferProtocolouProtocolodeTransfernciadeArquivos.Oprotocolo FTPpermiteatransfernciasdearquivosbinriosearquivostextocomaltaeficinciaatravsdeuma rede.muitointeressanteparaempresasquedesejamcompartilhararquivoscomosusuriosnarede,ou servidoreswebquedesejamdisponibilizarreasparausuriosfazeremtransfernciadearquivos.
InstalandoPacotes/SoftwaresNecessrios:
ORHELporpadroutilizaovsftpd,eesteoservidordeFTPoficial/suportadodaRedHat. Verifiqueseopacotedovsftpdjestainstalado,casocontrrioinstaleo: rpmqa|grepvsftp rpmUvsftpd<verso>.rpm
ConfiguraodoServio:
Oarquivodeconfiguraoprincipaldovsftdpestalocalizadoem/etc/vsftpd/vsftpd.conf.
LaboratrioFTP,cenriodeconfiguraodemdioporte:
NestelaboratrioiremosconfiguraroserviodeFTPdaseguinteforma: Usuriosreaisteroacessodeleituraeescritaeestaroconfinadosemseudiretriohome. Usuriosannimosteroacessosomenteaodiretriopubepoderoefetuardownloadsdeseucontedo. UsuriosannimospoderofazerUploadssomentenodiretrio/uploads,pormosarquivosqueforem enviadosestaroofflinedoFTPporquestesdesegurana.
114
Efetue a instalaodospacotesnecessriosparaoservioFTP.Apartirdaconfiguraopadro de /etc/vsftpd/vsftpd.conf,efetueasconfiguraesabaixodemodoqueosrequisitosdestelaboratriosejam alcanados: chown_uploads=yes chown_username=ftp anon_upload_enable=yes chroot_local_user=yes Agora vamos criar o diretrio para o usurio anonymous efetuar os uploads e aplicar as corretas permisses. mkdir/var/ftp/uploads chmod730/var/ftp/uploads chownftp.ftp/var/ftp/uploads Voc pode utilizar um arquivo .message para dar breves explicaes sobre os propsitos dos diretriosqueestosendoacessados.Almdisso,vocpoderiaajudarousurioaencontraroqueele est procurando. Para testar, crie um arquivo .message como um arquivo texto e coloqueo no diretrioondeeledevesermostrado,commensagensteissobreoacessoaoservidorFTP. AtiveoserviodeFTPparaserinicializadoautomaticamenteduranteoprocessodebooteinicieo serviomanualmente.
Arquivosdeconfiguraoenvolvidos:
/etc/vsftpd/vsftpd.conf
AtivandooServionaInicializaodoSistema:
chkconfigvsftpdon;servicevsftpdstart
TestedeImplementao/Validao:
UtilizeocomandotradicionalftpdoLinux/Unixparaefetuarostestesnasuamquinalocal. Efetuedownloadseuploadsdearquivosparatestaraspermissescomusuriosreaisecomousurio anonymous.Use:ftplocalhost 115
SAMBA:
Introduo:
OSamba umaplicativoquetornapossvelocompartilhamentoderecursoscommquinasrodando Windows.OnomeSambaderivadodoprotocoloutilizadopeloWindowsparacompartilhardiscos eimpressoras:oprotocoloSMB,ServerMessageBlock. AtravsdautilizaodoSamba possvelcriarredesmistas,utilizandoservidoresLinuxeclientes Windows.OSambatambmpermitequeoLinuxacessediscosexportadosdemquinasWindows. Almdecompartilharrecursos,oSambacapazdeexecutarvriasfunesdeumservidorWindows, comoporexemploautenticaodeclientes,servidorWINS,eat mesmoagircomoumControlador PrimriodeDomnio(PDC)ou(BDC)completo. Apartirdaverso3.0oSambatambmpodefazerusodealgumascaractersticasdoMicrosoftActive Directory(AD). UmrecursomuitointeressantedoSamba autenticaroservidorLinuxemumcontroladordedomnio Windowsatravsdoserviowinbind,destaformaamquinaLinuxirbuscarautenticaodeusuriose gruposnorepositriocentraldecontasconfiguradonoWindo ws. O Samba basicamente composto por dois daemons: smbd, que responsvel pela autenticao e autorizao de usurios arquivosou compartilhamentos e impressorase o daemon nmbd, que responsvelpelaresoluodenomes,anncios,procuranaredeeresoluodeendereosWINS.
InstalandoPacotes/SoftwaresNecessrios:
Para configurar um servidor Samba necessrio a instalao dos pacotes: sambacommon*, sambaclient*, samba3* e systemconfigsamba*. Esses pacotes acompanham um grupo de ferramentasparainstalaoeconfiguraocompletadeumservidorousimplesmenteparafigurarcomo uma estao cliente. Vrias ferramentas tambm sero disponibilizadas para realizar diversos testes necessrios.
116
ConfiguraodoServio:
OarquivodeconfiguraoprincipaldoSambaestalocalizadoem/etc/samba/smb.conf.Estearquivo muito bem comentado e aconselhase a configurao do Samba atravs dele. Uma outra forma de configuraroSamba utilizaraferramentagrficasystemconfigsambadisponibilizadapelaRedHat quefacilitaacriaodeusuriosecompartilhamentosnoambientegrfico.
ConfiguraesGlobaiseParmetrosdoSamba:
OarquivodeconfiguraodoSamba divididoentreseeseparmetros,existemtrsprincipais sees,soelas: [global] [homes] [printers] ConfiguraesGenricasGlobais. Estaseousadaparaentregaroacessoaosusuriosdeseusdiretrioshome. Carregaautomaticamenteasimpressorasdefinidasno/etc/printcapporpadro.
Os caracteres # e ; indicam que a linha um comentrio e deve ser ignorada. Sees e compartilhamentossodefinidasatravsdecolchetes[].
117
Asprincipaisemaisfrequentesopesutilizadasnoscompartilhamentosso:
public Configuraumcompartilhamentopblicodeacessolivre,acessoguest. browseable Configuraumcompartilhamentoquepodeservistonaslistasdeanncios. writable Indicaqueocompartilhamentodeleituraegravao. writelist Especificaarbitrariamenteosusuriosou@gruposque teroacessodeescrita. printable Indicaqueumdispositivodeimpresso,noumdisco. createmask Foraamscaradepermissesparacriaodenovosarquivos. directorymask Foraamscaradepermissesparacriaodenovosdiretrios. validusers Especificaarbitrariamenteosusuriosou@gruposque teroacessoaocompartilhamento. *Paraespecificargruposdosistemabastacolocarocaracterarroba@.exemplo:@grupo
AutenticaonoSamba:
Talvezoparmetromaisimportantedeconfiguraosejaosecurity=<mtodo>,queindicaomtodo deautenticaoqueoSambairutilizarparavalidarosusurios.Ospossveismtodosdeautenticao suportadospeloSambaso:
share Cadacompartilhamentoter umpassworddefinido,ousurioquetiveroconhecimentodeste passwordteracessoaocompartilhamento. users OscompartilhamentosdoSambaserovalidadosnoporpasswordscomoacima,massimpor usuriosougrupos.Estemtodopadroqueosambautiliza,oadministradorterquecadastrar todososusuriosnoarquivo/etc/samba/smbpasswd. server omesmoqueusers,pormdeveserespecificadoumservidorparabuscarosusuriose passwords. 118
Para cada um dos mtodos utilizados acima, necessrio a utilizao de parmetros adicionais de configurao.Porexemplo,quandoespecificadoaautenticaodomain,oservidorSambapodeser configuradocomoumPDCouumBDCouat mesmoparasomenteserummembrodeumdminio Windowsjexistente. ExisteminmerasecomplexasopesdeconfiguraespossveisparaoSamba,asconfiguraesvo desdepequenasinfraestruturasdetrabalhocomoporexemploumescritriode50mquinasat infra estruturasgigantescasdedomniosconfiados(TrustedDomain s)comautenticaoLDAPcentralizadas. NadocumentaodoSambalocalizadaem/usr/share/doc/samba*,podemosencontrarinmerasopes deconfiguraeseexemplosdecenrioscomplexos. AdiantenolaboratrioSambairemosverumaconfiguraoparaatenderumademandademdioporte deumempresautilizandoaautenticaotipousers.
Arquivosdeconfiguraoenvolvidos:
AtivandooServionaInicializaodoSistema:
chkconfigsmbon;servicesmbstart
119
GerenciandoContasdeUsuriosnoSamba:
OcomandosmbpasswdutilizadoparagerenciarascontasdosusuriosnoSamba.importantequeo usurioj tenhaumacontanosistemaantes.Casooadministradordesejeapenasforneceracessoao Sambabastaconfiguraroshelldousurioemquestopara/dev/nullnoarquivo/etc/passwd. ParaincluirumusurionoSambautilizeocomando:smbpasswda<usurio>. Paramaioresdetalhesuse:mansmbpasswd.
MontandoAutomaticamenteCompartilhamentosSambanafstab:
ParamontarautomaticamenteumcompartilhamentoSambaduranteoprocessodeBootbastaadicionar umalinhasemelhanteabaixonoarquivo/etc/fstab: //servidor/compartilhamento/pontodemontagem cifsdefaults,credentials=/etc/sa mba/cred 00 Crieoarquivo /etc/samba/cred apenascompermissesdeacessoparaorooteadicioneonomedo usurioeopasswordparaconectarseaocompartilhamentoreferido.Exemplo: username=carlos password=teste
120
TestedeImplementao/Validao:
Paravalidaraimplementaodosambaserveruse::
testparm DestinaseaverificaodeparmetrosvlidosnoarquivoprincipaldeconfiguraodoSamba (smb.conf).Use:testparm<caminhoabsolutoparaosmb.conf> smbclient umaferramentautilizadapeloclienteparaconectarseaumservidorSamba.Seuestilode navegaomuitosemelhanteaumclienteFTP.Vejaosexemplosabaixo: smbclient//servidor/compartilhamentoUusurio Usecdparanavegarpelosdiretriosegetparaefetuardownloadsdearquivos. smbclientL<servidor>Uusurio(Listatodoscompartilhamentosdisponveis) mount PermiteamontagemdeumfilesystemremotoCIFS.Vejaoexemploabaixo: mount//servidor/compartilhamento/ponto_de_montagemouser=usurio
121
LaboratrioSamba,cenriodeconfiguraodemdioporte:
IremosconfigurarumservidorSambaparaatenderodepartamentodevendasdeumaorganizao.Siga rigorosamenteasespecificaoabaixo: Somenteasmquinasnarede192.168.200.0podemacessaroservioSambadesteservidor. CrieascontasdosvendedoresCarlos,MarcioeFelipecomopasswordtesteeadicioneelesaum gruposecundriochamadovendas. CrieascontasdosgerentesAlbertoeAntoniocomopasswordultraeadicioneelesaumgrupo secundriochamadogerencia. Crieporfim,ascontasdopessoaldemarketingJuliaeSilvano,comopasswordsupereadicioneeles aogruposecundriodemarketing. Opessoaldodepartamentodevendastmumdiretrioexclusivodetrabalho,crieodiretriovendase compartilhenoSamba.Somenteopessoaldogrupodevendasegerenciadeveteracessoaesse compartilhamento. importantequequalquerarquivocriadonestediretriotenhaacessodeleiturae escritaetambmpertenaaogrupovendas. OservidorSambadeverpertenceraogrupodetrabalhoSUPERD,queonomedaorganizao. CarloseMrciodeveramteracessodeleituraegravao,Felipesomenteleituraaocompartilhamento vendas. Opessoalnogrupodemarketingnoteracessoaocompartilhamentovendas. Opessoalnogrupodegerenciadeverteracessoaescritanocompartilhamentovendas. CrieodiretriogerenciaemontenumdispositivodeRAID1(mirror).Compartilheessediretriono Sambademodoqueapenasosusuriosdogrupogerenciatenhamacesso. Crie02partiesde50MB(Assimrepresentandosimbolicamente02discos),pararealizaodoRAID1. Configure o servidor Samba para inicializao automtica no Boot e inicie o servidor Samba manualmente.
TestedeImplementao/Validao:
Apsaconfigurao,testeosparmetrosdo/etc/samba/smb.confcomoseguintecomando: testparm/etc/samba/smb.conf Populeoscompartilhamentosvendasegerenciacomarquivoscriadospordiferentesusurios.Teste cuidadosamenteaspermissesdeacessoutilizandoaferramentasmbclient.Logueseutilizandotodosos usurioscriados.Exemplo,use:smbclient//localhost/gerenciaUalberto SimuleafalhanodispositivodeRAID1paratestaraaltadisponibilidade.Ocompartilhamentodeve continuaracessvel. 122
SoluodolaboratrioSamba:
VerifiqueseoconjuntodepacotesdoSambajestoinstalados,casocontrrioinstaleos: rpmqa|grepsamba rpmUvhsambacommon* rpmUvhsambaclient* rpmUvhsamba3* rpmUvhsystemconfigsamba* Criecorretamenteodiretriovendasegerenciacomaspermissesadequadas: groupaddvendas groupaddgerencia mkdir/home/vendas chgrpvendas/home/vendas chmod2770/home/vendas mkdir/gerencia chgrpgerencia/gerencia chmod2770/gerencia RemounteofilesystemcomsuporteaACLseconfigureasseguintesACLs: mountoremount,acl/ setfaclmg:gerencia:rwxR/home/vendas Crie02partiesde50MBtipoLinuxRaidAutodetectcdigofdnofdisk Executeocomando:partprobe necessriodesmontarolaboratriodeRAIDanteriorparacontinuar,paraissouse: umount/dev/md0 mdadmstop/dev/md0 AgoraremovaaentradaantigareferenteaolaboratrioRAIDdo/etc/fstab
123
Crieosgruposeascontasdosusuriosrequeridos noLinuxenoSamba: groupaddmarketing useraddcarlospteste useraddmarciopteste useraddfelipepteste useraddantoniopultra useraddalbertopultra useraddjuliapsuper useraddsilvanopsuper touch/etc/samba/smbpasswd smbpasswdacarlos smbpasswdamarcio smbpasswdafelipe smbpasswdaantonio smbpasswdaalberto smbpasswdajulia smbpasswdasilvano Adicioneosusuriosrecmcriadosaosgrupossecundrioscorretos: usermodGvendascarlos usermodGvendasmarcio usermodGvendasfelipe usermodGgerenciaantonio usermodGgerenciaalberto usermodGmarketingjulia usermodGmarketingsilvano
124
Ainda editando o arquivo /etc/samba/smb.conf adicione ao final do arquivo o compartilhamento vendasegerencia: [vendas] comment=DepartamentodeVendas path=/home/vendas validusers=@vendas@gerencia writeable=no writelist=carlosmarcio@gerencia createmask=777 directorymask=2777 [gerencia] comment=DepartamentodeGerenciaRAID1 path=/gerencia validusers=@gerencia writeable=yes ConfigureoservioSambaparainicializarautomaticamenteemtodosrunlevelseinicieoservio: chkconfigsmbon servicesmbstart Monte todas entradas da fstab para certificarse que seu dispositivo de RAID1 foi especificado corretamenteno/etc/fstab: mounta SimuleafalhaemalgumdosdispositivosqueformamoarraydoRAID1utilizandoocomando: mdadm/dev/md0f/dev/hdaX VerifiqueostatusdoarraydoRAID1: cat/proc/mdstat 125
APACHE: Introduo:
Oservidorweb umprogramaresponsvelpordisponibilizarpginas,fotos,ouqualqueroutrotipode objetoaonavegadordocliente.Eletambmpodeoperarrecebendodadosdocliente,processandoe enviandooresultadoparaqueoclientepossatomaraaodesejada(comoemaplicaesCGI's,banco dedadosweb,preenchimentodeformulrios,etc). OApache umservidorwebextremamenteconfigurvel,robustoedealtaperformancedesenvolvido porumaequipedevoluntrios(conhecidacomoApacheGroup)buscandocriarumservidorwebcom muitascaractersticasecomcdigofontedisponvelgratuitamenteviaInternet.AutilizaodoApache muitopopular,elemaisusadoquetodososoutrosservidoreswebdomundojuntos. UmacaractersticadoApachemuitoimportanteacapacidadedemultiplicaodosprocessosdeacordo comademanda,isto,quandovriasrequisiessofeitasaoservidoroprocessoprincipal(Pai)realiza ochamadoprefork,assimcriandonovosprocessos(Filhos)para atenderessademanda.Observequeos recursos do sistema principalmente a memria, s utilizada quando criada uma demanda ser atendidaassimotimizandoepreservandoosrecursosdosistema. Outra importante caracterstica a capacidade de carregar mdulos dinamicamente, atravs desta funcionalidade possvelestenderosrecursosadicionandonovosmdulossemanecessidadedere compilaroApache.Existemdiversostiposdemdulosdisponveisparaoapache,vocpodeencontrar umalistacompletaeatualizadaem:http://modules.apache.org/.
InstalandoPacotes/SoftwaresNecessrios:
VerifiqueseoservidorHTTPApachejestainstalado,casocontrrioinstaleo.Aconselhasetambma instalaodoelinksqueumnavegadorparainterfacetextosendomuitotilparatestarrapidamenteas configuraesdoApache.Abaixoencontramseospacotesdoapacheedependnciasrequeridas. rpmUvhapr1* rpmUvhpostgresqllibs* rpmUvhaprutil1* rpmUvhhttpd2* rpmUvhhttpdmanual* rpmUvhelinks*
126
ConfiguraodoServio:
OarquivoprincipaldeconfiguraodoApacheestalocalizadoem/etc/httpd/conf/httpd.conf.Aconselha se a configurao do servidor editando este arquivo manualmente, existem diversos parmetros de configuraoeestearquivo muitobemcomentado.Umaformamaiscmoda utilizaraferramenta disponibilizada pela Red Hat chamada systemconfighttpd, porm esta ferramenta esta limitada a configuraosomentedosparmetrosmaisusuaisdoApache,nopossvelfazerajustesfinos. Osarquivosdeconfiguraodosmduloslocalizamseem/etc/httpd/conf.d/*.Porpadroodiretrioraiz doservidor/var/www/html,esseodiretrioquedevemsercolocadasaspginasweb. O arquivo de configurao do Apache muito extenso, existem muitos parmetros e variveis de configurao.Iremosnoslimitaraverapenasosprincipaisparmetrosdeconfigurao.Soeles:
preforkMPM Neste parmetro regulado a capacidade de carga do servidor. Na maioria dos sites no necessriosmudarosvalorespadro.Apenasparasitescommaisde256requisiessimultneas necessrio ajustar o parmetro MaxClients. Os parmetros MinSpareServers e MaxSpareServerssomentedevemserajustadosparasitesextremamentevisitados. Listen NesteparmetrodefinidoondeoApacheiraesperarporrequisies.Vocpodeespecificarum endereoIPespecficocasotenhavriosendereosIPsoumudaraportapadroquea80. User/Group AquivocconfiguraousurioeogrupodoproprietriodosprocessoscriadospeloApache.Em geralaconselhasedesignarumusuriosemprivilgiosnosistemaparaoApache.Deixaresta opopadroomaiscomum. ServerTokens Estaopocontrolaonveldedetalhamentodeinformaoqueoservidorir passardesuas configuraesparaosclientes.AconselhaseusarovalorProd. LoadModule Especificaocaminhoeomduloasercarregado.
Arquivosdeconfiguraoenvolvidos:
ConfiguraodeAcessoDiretrioseArquivos:
Os parmetros order,allow,deny soutilizadosparaespecificaraordemdalistadeacessopara um diretrioouarquivoshos pedados:
Observeoexemploabaixo:
Noexemploacimaoacessoaodiretrio/var/www/html/restritosergarantidoapenasaosclientescujoIP reversosejamresolvidosdentrododomnioexemplo.com.br.
ExistemdiversasoutrasformasdeimplementarsegurananoApache,paramaioresinformaesconsulte adocumentaoonlineem:http://httpd.apache.org/docs/
128
LaboratrioAPACHE,cenriodeconfiguraoparaVirtualHosts:
Um nicoservidorpodehospedardiversosWEBsites,estafuncionalidade conhecidacomoVirtual HostsdentrodoApache.Nolaboratrioabaixo,temososdomniosfictcios www.kingofsea.com e www.lobomar.comqueestoconfiguradosnummesmoservidorApachequeestaaceitandorequisies noendereolocal(loopback)IP127.0.0.1naportapadro80.Observequedevemserefetuadasas devidasconfiguraesnoarquivo/etc/hostsparaproverascapacidadesdeDNSutilizadasnesteexemplo. Instaletodosospacotesdoapache edoelinksedependnciasnecessrias. Reproduza s configuraes abaixo em sua mquina local editando no final do arquivo /etc/httpd/conf/httpd.conf: NameVirtualHost127.0.0.1 <VirtualHost127.0.0.1> ServerAdminroot@localhost DocumentRoot/var/www/html ServerNamewww.kingofsea.com ErrorLoglogs/kingofseaerror.log CustomLoglogs/kingofseaaccess.logcommon </VirtualHost> <VirtualHost127.0.0.1> ServerAdminroot@localhost DocumentRoot/var/www/html1 ServerNamewww.lobomar.com ErrorLoglogs/loboerror.log CustomLoglogs/loboaccess.logcommon </VirtualHost> ParaefetuarostestescomaconfiguraodeVirtualHostsacima necessrioadicionarentradas semelhantesabaixonoarquivo/etc/hostsafimderedirecionararesoluodosdomniosutilizadosneste exemploparaamquinalocal.Noefetuequalqueralteraono/etc/hosts,apenasacrescenteaslinhas abaixoaofinaldoarquivo: 127.0.0.1www.kingofsea.com 127.0.0.1www.lobomar.com 129
AtivandooServionaInicializaodoSistema:
OcomandoabaixoativaoservioHTTPemtodososrunlevelseemseguidainiciaoservidor.Qualquer mensagem de erro na inicializao ou recarga do servidor devem ser cuidadosamente verificadas. SempreobserveosarquivosdeLOGsquandoefetuarmodificaesnosarquivosdeconfigurao. chkconfighttpdon;servicehttpdstart ApsqualqueralteraonasconfiguraesreinicieoservidorApachecomocomando: servicehttpdreload
TestedeImplementao/Validao:
Useoelinksparatestarrapidamenteasconfiguraes: elinksdumpwww.kingofsea.com elinksdumpwww.lobomar.com
FimdoLaboratrioAPACHE
130
SQUID: Introduo:
Squidumservidorproxycachedealtodesempenhoparaclientesweb.Desenvolvidoemcdigoaberto sobalicenaGNUGPL,oresultadodacontribuiodemilharesdeprogramadoresdomundointeiro. Completo,estveleseguro,apesardenormalmenteassociadoaouniversodoLinux,rodaemvrios outrossistemasoperacionais,incluindooWindows.Emborasejausadoprincipalmenteparaprotocolos HTTP e FTP, tem suporte para outros protocolos como TLS, SSL e HTTPS. Almdasfunesdecache,osquidtemamplosuporteparalistasdecontroledeacessoelogging,ou seja,funesmuitoteisparaempresasqueprecisambloquearcontedosnorelacionadoscomareade trabalho e tambm efetuar uma espcie de monitorao do que acessado pelos navegadores dos funcionrios.Issoajudaaaumentaraprodutividadeereduzirotrfegonainternetcomcontedosno relacionados. Tambmh suporteparahierarquiasdecache,onde possvelespecificaroutrosservidoresdecache parentesparatrabalharseemconjunto.ExistemtambmafunodeaceleradordeHTTPondeosquid posicionaseentreoservidorHTTPeoclienteescutandorequisiesnaporta80edisponibilizandoo contedoarmazenadoemcache,essemecanismoacabamaximizandoacapacidadedeatendimentodo servidorwebumavezqueaceleraarespostanassolicitaes. Emgeralosquidajudaareduzireorganizarotrafegodesadadeinternetdaempresaarmazenandotodo contedovisitadoemobjetosedisponibilizandoquandosolicitadonovamente.Todocontedodinmico comoporexemploscriptsCGIssoredirecionadosdiretamenteenosocacheados.
InstalandoPacotes/SoftwaresNecessrios:
Verifiqueseopacotedosquidjestinstalado,casocontrarioinstaleo. rpmqa|grepsquid rpmUvhsquid*
131
ConfiguraodoServio:
Oprincipalarquivodeconfiguraodosquidest localizadoem /etc/squid/squid.conf. Estearquivo muitobemcomentadoe fortementerecomendadoaconfiguraodosquideditandomanualmentee lendocuidadosamenteessescomentrios. Existem centenas de parmetro configurveis no squid, iremos nos limitar a ver somente os mais importanteparaconfiguraodeumainfraestruturabsicaoperacional.Osprincipaisparmetrosso:
http_port Aquivocespecificaaportaondeosquidir escutarasrequisiesdeseusclientesemgeral navegadoresdaredeinterna.Aportapadro3128maspodeseralteradapara8080seissofor necessrio. Caso esteja utilizando o squid em modo acelerador de HTTP configure neste parmetroaporta80. https_port S necessrio configurar esse parmetro de voc estiver utilizando o squid em modo de aceleradordeHTTPeaindaestiverdisponibilizandosuporteHTTPS/SSLparaseusclientes. icp_port Aquivoc especificaaportadecomunicaocomosparentesqueformamahierarquiade cache.Ovalorpadroo3130.Geralmentenohmotivoparamudaressaporta. cache_dir Especificaodiretrioqueserarmazenadoocachedosobjetosemdisco,otamanhodocacheem MegaByteseestruturadesubdiretriosenveisdearvoresparaorganizaodocache. Ovalorpadrodetamanhodecacheemdisco de100MB,mudeestevalorparaumtamanho compatvelcomonmerodeclientesetambmcomotamanhodeseudisco.Tenhacautela,pois cachesgigantescossemnmerodeclientescompatveistornaaindamaislento, necessrioum estudoparadimensionarotamanhodecachecomotamanhodesuarede. acl Defineumalistadecontroledeacesso. http_access Permiteoubloqueiaoacessobaseadonasaclsdefinidas.
132
LaboratrioSQUID,cenriodeconfiguraodepequenoporte:
Oobjetivodestelaboratrioapenastornarfuncionalousodosquidconfigurandoumalistadecontrole deacessocompatvelcomsuaredeeclientes.Nosercobertoaconfiguraodomododeacelerao HTTPehierarquiasdecacheparentesICP.Adicionalmenteiremosconfiguraralgumasrestriesa sitesproibidos.Sigaasorientaesabaixo: 1. Editeoarquivo/etc/squid/squid.confcomseueditorpreferido. 2. ProcureaseodeACCESSCONTROLeadicioneumaACLcomorangedeIPsdesuarede localexemplo:(Nesteexemploespecificamo soescopodeumaclasseCnarede192.168.200.0) acl redelocal src 192.168.200.0/24 3. AgoraativeaACLredelocalrecmdefinida.Procureaseohttp_accesseincluaoexemplo abaixo.PosicionealinhaabaixodocomentrioINSERTYOUROWNRULEHERE. http_access allow redelocal 4. Iremosbloquearalgunssitespopularesdewebmailcomoexemploderestriodedomnios. NovamentenaseodeACCESSCONTROLincluaaslinhasabaixo: acl blockmail dstdomain .gmail.com acl blockmail dstdomain .hotmail.com acl blockmail dstdomain .yahoo.com 5. AgoraativeaACLblockmailparabloquearoacessoaessesdomnios.Voc deveinserira linhaantesdaqueliberaoacessoasuaredelocal. http_access deny blockmail 6. Inicieosquidcomocomando:servicesquidstart
Arquivosdeconfiguraoenvolvidos:
/etc/squid/squid.conf
AtivandooServionaInicializaodoSistema:
Paraativaroservionainicializaoemtodosrunlevelseiniciaroserviouse: chkconfigsquidon;servicesquidstart
133
TestedeImplementao/Validao:
Inicieainterfacegrficaeconfigurenoseunavegadorpreferidoasseguintesopesdeproxy: IP:localhostPORTA:3128 1. Tenteacessardeseunavegadorumendereobloqueado,exemplo:www.gmail.com Seasconfiguraesestiveremcorretasiraparecerumamensagemdosquidinformandoqueeste endereoestabloqueado. 2. Peaparaseucoleganomesmosegmentoderedeutilizarseuproxy,destemodovocirefetuar otestedaACLredelocal. OBS:.Ostestesdeimplementaodestelaboratriopartemdoprincpioquenoh conexocoma internetdisponvel.
134
MUAs,MTAs,MDAs: Processodecriaodamensagem:
Quandoousuriodecidircriarouenviarumemailgeralmentesousadosaplicativosconhecidoscomo MUAs(MailUserAgents),umexemplobemconhecidodeMUAoMicrosoftOutlook. ApsescritaamensagemoMUAir encaminharestaparaalgumservidordeMTA(MailTransfer Agent)configurado,queprovavelmenteseroseugatewaydeprovedordeacessoainternet.
Processoderouteamentodamensagem:
OservidordeMTA(NoLinuxgeralmenteosendmailoupostfix)irverificaravalidadedocampodo destinatriodamensagemesentoirinformaraoMUAqueamensagemfoienviada.Issoaindano querdizerqueamensagemfoientregueaodestinatriofinal,issoapenassignificaqueoprocessode routeamentodessamensage miniciouse. OserviodeDNS fundamentalparaqueorouteamentodasmensagenssejabemsucedido,podemos dizerqueoserviodeMAILdependediretamentedofuncionamentodoserviodeDNS,issoporqueo MTA ir sempre buscar o servidor MX (Mail Exchanger) para o domnio do destinatrio de cada mensagem. OMX oservidorresponsvelporreceberasmensagemdeumdeterminadodomnio,casooservidor MXprimrioestejaofflineporalgummotivo,emdomniostecnicamentebemconfiguradosexistem outrosservidoresMXsecundriosparareceberasmensagenssemprequehouverqualquerproblema. possvel haverdiversos servidoresMXconfigurados paraumdomnio,principalmente em casos de domnios extremamente requisitados como por exemplo o domnio gmail.com, onde milhares de mensagemsoentreguestodososdias.
Processodeentregadamensagem:
Quando a mensagem chega ao servidor final e todos os filtros so aplicados, essa mensagem armazenadanafilademensagensdousuriopeloMDA(MailDeliveryAgent)quegeralmentepartedo mesmoaplicativoMTA(GeralmentesendmailoupostfixemambientesLinux). Odestinatriofinalefetuaodownloaddesuafilademensagens(mailspool)geralmentepelosprotocolos POPouIMAPutilizandotambmaplicativostipoMUA. 135
EscolhendooMTAnoRHELcomalternatives:
Oaplicativoalternativesgerenciaatrocadegruposdepacotesdeserviosqueexecutamamesmafuno dentrodadistribuio.NocasodeMAIL,existem02(Dois)MTAsdisponveissuportados,soeles:o sendmaileopostfix.VocirdecidireconfigurarqualdessesdoisMTAsestarativoemseusistema utilizandoaferramentaalternatives. O alternatives manipula links simbolicos que efetuam a troca das aplicaes no diretrio /etc/alternatives. PodemosdizerqueoprimeiropassoparaconfiguraodoserviodeMAIL configurandooMTA desejadopeloalternatives,vejaabaixocomorealizadaestasimplesconfigurao:
OBS:OMTApadrooSendmail.ParapoderescolheroPostfixnecessrioainstalaodospacotes doPostfixantesdeusaraferramentaalternatives. OBS1: Embora o sendmail seja extremamente eficiente e verstil e tambm largamente utilizado, recomendase a utilizaodoPostfix que um MTA considerado da novageraoe totalmente compatvel/transparentecomoantigosendmail. OBS2:NosprximoscaptulosiremoscobriraconfiguraobsicadoPostfix.Noiremosabordaro sendmail.
136
POSTFIX: Introduo:
OPostfixvemseconsolidandocomoumaalternativaaosendmailemrazodesuascaractersticas,como maiorrobustez,melhordesempenhoemaiorfacilidadenamanutenoeconfigurao.Almdomaiso Postfix capazdeemularvriasfunesdosendmail,evitandoassimmodificaesnasaplicaesque utilizamosendmail. Outra caractersticaimportantedoPostfix asuaconstruomodular,facilitandoamanutenodo cdigoepermitindoaimplementaodenovasfuncionalidadesmaisfacilmente. Postfixtambmimplementatcnicasavanadasdeprogramaosemelhante susadasemwebserver para criao emanipulaodeprocessosfilhos,destaformamquinascomhardwaresno muito poderososconseguemmanipularmilharesdemensagenspordia. Umfatorchavetambmparamigraoparaopostfixfacilidadedemanutenoeconfiguraoatravs deumarquivoprincipaldeconfiguraocomparmetrosclarosebemcomentados. Grandesesforosnareadeseguranatambmforamrealizadosnaimplementaodopostfix,nenhuma conexocomainternetrealizadaparaassubpartesdoprogramaqueefetuamaentregaemanipulao demensagemnofilesystemlocal.Quasetodosprocessospodemserexecutadosemchrootjailcom privilgiosmnimosdesegurana. Vriassubpartesdopostfixestodisponveisparaexecutardiferentesfunes,conheaabaixoapenasas principais:
master Processo principal de coordenao dos demais processos do postfix, este processo no trata diretamentedemanusearmail,apenasgerenciaosdemaisprocessos/daemons.Seuarquivode configuraoestalocalizadoem/etc/postfix/master.cf
137
InstalandoPacotes/SoftwaresNecessrios:
Sempreverifiqueantesseospacotesjencontramseinstaladosnahoradeinstalarnovospacotes. rpmqa|greppostfix rpmUvhpostfix2*
AtivandooServionaInicializaodoSistema:
Ative o servio em todos os runlevels. Sempre que fizer qualquer alterao nos arquivos de configuraoreinicieoservio.Use: chkconfigpostfixon servicepostfixrestart
ConfiguraodoServio:
Oarquivoprincipaldeconfiguraodopostfixestalocalizadoem /etc/postfix/main.cf.Estearquivo muitobemcomentadoeaconselhaseaconfiguraointegraldopostfixeditandomanualmente este arquivocomseueditorfavorito. Abaixoosparmetrosbsicosetambmprincipaisparaaconfiguraodoservidordemail: myorigin Este parmetroespecificaodomnioqueser apresentadonas mensagensenviadas pelo seu sistema.
mydestination Especificaosdomniosqueseusistemaconsideraelemesmocomodestinofinal. mynetworks Especifica a lista de clientes STMP confiveis ou clientes internos que possuem mais privilgiosqueosclientesconsi deradosclientesdefora.
Vejaagoracomoconfigurardeformarpidaeprecisaessesparmetros,osvaloresabaixoserofictcios erepresentamasconfiguraesmnimasnecessriasparaumservidordemailoperar: postconfemyorigin=laboratorio.com.br postconfemydestination=laboratorio.com.br postconfemynetworks=192.168.200.0/24,127.0.0.1 postconfeinet_interface=all Semparmetrosocomando postconf apresentaalistadetodosparmetrosconfiguradosnoarquivo /etc/postfix/main.cfeidealparaverificarasconfiguraes.
Aliases,Virtual,Access:
Opostfixfoidesenhadoparasertotalmentecompatvelcomosendmailinclusivenasintaxedosarquivos relativosaaliasesdeusuriosemapeamentodeusuriosvirtuais. Osarquivosaliases,virtualeaccessencontramselocalizadosnodiretrio/etc/postfixesoprocessados comosrespectivoscomando spostmapepostalias. aliases(Aliasesparausurioslocais) virtual(Mapeamentodedomniovirtual) access(Controlesderouteamentodemail)
139
Arquivosdeconfiguraoenvolvidos:
DomniosVirtuais:
Emordemarecebermaildemltiplosdomniosemseusistemasigaoexemploabaixo:
1/etc/postfix/main.cf: 2virtual_alias_domains=exemplo.com...outrosdominios... 3virtual_alias_maps=hash:/etc/postfix/virtual 5/etc/postfix/virtual: 6postmaster@exemplo.compos tmaster 7info@exemplo.comcarlos 8vendas@exemplo.comjaime 9#Descomentealinhaabaixopararedirecionarqualquerendereododomnioparausurioandre. 10#@exemplo.comandre 11...virtualaliasesparamaisdomnios...
Maiores informaes de como configurar domnios virtuais esto localizadas em: /usr/share/doc/postfix*/README_FILES/VIRTUAL_README
140
DOVECOT:
Introduo:
DovecotumservidoropensourcedeIMAPePOP3parasistemasLinuxeUnix,estadisponvelpara quasetodasplataformasedistribuies.Dovecotfoidesenhadoparaatenderinfraestruturasdemailde peguenograndeporte,todooseuprojetofoidirecionadoparareadesegurana.Elerpidoeverstil enorequernenhumaatenoespecialnaadministrao.Serleveeconsumirpoucamemriatambm foiumdosobjetivosdoprojeto. disponibilizadosuporteaosprotocolosIMAP4rev1ePOP3,SSLeTLS.Odovecottambmsuporta oficialmenteospadresmailboxemaildirbemcomoNFSetambmsistemadearquivosparaclusters. Recentementefoiimplementadoosuporteaquotasemmaildir++esuporteaACLs.
InstalandoPacotes/SoftwaresNecessrios:
Verifiqueseospacotesjestoinstalados,casocontrrioinstaleos. rpmqa|grepdovecot rpmqa|grepperlDBI rpmqa|grepmysql5 rpmIvhperlDBI* rpmIvhmysql5* rpmIvhdovecot*
OBS:perlDBIemysqlsopacotesdedependnciasnecessriasparaainstalaododovecot.
141
ConfiguraodoServio:
O arquivo principal de configurao do dovecot encontrase localizado em /etc/dovecot.conf e aconselhaseaconfiguraoeditandomanualmenteestearquivocomseueditorpreferido.Estearquivo deconfiguraomuitobemcomentadoeaconselhasetambmlercomatenoocomentriodetodos osparmetroscomcautelaparaqualqueralterao.Nogeralosvalorespadresatendemamaioriados casos. Ainstalaoeconfiguraomnimadodovecotmuitosimplesequasenorequernenhumajuste.
Acompanheabaixoaconfiguraomnimasugerida:
protocols=pop3pop3simapimaps
142
CriandoocertificadoPEMparautilizaodoIMAPS:
Useseueditorpreferidoparacustomizarasinformaesdesuaorganizaonoarquivo: /etc/pki/dovecot/dovecotopenssl.cnf. Vejaabaixoumexemplode/etc/pki/dovecot/dovecotopenssl.cnf: [req] default_bits=1024 encrypt_key=yes distinguished_name=req_dn x509_extensions=cert_type prompt=no [req_dn] #country(2lettercode) C=BR #StateorProvinceName(fullname) ST=SantaCatarina #LocalityName(eg.city) L=Florianopolis #Organization(eg.company) O=laboratorio #OrganizationalUnitName(eg.section) OU=Laboratorio #CommonName(*.example.comisalsopossible) CN=alunoX.laboratorio.com #Emailcontact emailAddress=postmaster@alunoX.laboratorio.com [cert_type] nsCertType=server 143
Arquivosdeconfiguraoenvolvidos:
/etc/dovecot.conf /etc/pki/dovecot/dovecotopenssl.cnf
AtivandooServionaInicializaodoSistema:
chkconfigdovecoton;servicedovecotstart
TestedeImplementao/Validao:
Nesteexemploiremosusaroaplicativomuttparatestarasconfiguraes: muttf{carlos@localhost/ssl}
144
LaboratrioPOSTFIXDOVECOT,cenriodeconfiguraodepequenoporte:
OBS:SubstituaalunoXpelovalorrealrepresentadopelonmerodesuamquinanasaladeaula. Exemplo:aluno1paramquina1,aluno2paramquina2,aluno3paramquina3eassimpordiante.
OBS:DetermineseuIPcomocomandoifconfigeuseessevalorparaconfigurarcorretamenteo arquivo/etc/hostsdaformasugeridaacimasubstituindoovalor192.168.200.XpeloseuIPreal.
145
Instaletodospacotesabaixonaordememqueaparecem: rpmivhpostfix2* rpmivhperlDBI* rpmivhmysql5* rpmivhdovecot* Pareosendmail: servicesendmailstop ConfigureopostfixcomoMTApadro: alternativesconfigmta Ativetodasinterfacesderedepararecebimentodemailnopostfix: postconfeinet_interfaces=all Editeoarquivodeconfiguraododovecotlocalizadoem/etc/dovecot.confeadicionealinhaabaixo: protocols=pop3pop3simapimaps Useseueditorpreferidoparacustomizarcominformaesfictciasdesuaorganizaooarquivo: /etc/pki/dovecot/dovecotopenssl.cnf . Deleteoscertificadosantigos: rm/etc/pki/dovecot/certs/dovecot.pem rm/etc/pki/dovecot/private/dovecot.pem Crieseunovocertificadoexecutandoocomandoabaixo: /usr/share/doc/dovecot*/examples/mkcert.sh
146
TestedeImplementao/Validao:
Crieousuriocarlosseeleaindanoexistir.EnvieumamensagemdetesteparaousuriolocalCarlos, apsresgateamensagemutilizandooprotocoloIMAPSpeloMUAmu tt. mailstestecarlos@alunoX.laboratorio.com.br</proc/cpuinfo muttf{carlos@alunoX.laboratorio.com.br/ssl} OBS:SubstituaalunoX.laboratorio.com.brpelasadadocomandohostname.
147
OpenSSH: Introduo:
OprojetodoOpenSSHveioparasubstituirantigosmtodosinsegurosdecomunicaoeautenticao, podemosdizerqueoOpenSSH umsubstitutodiretodorlogin,rshetelnetevaialmdasubstituio incorporandocaractersticasprpriasenovasfunesextremamenteteisnosdiasatuais. OOpenSSHproveautenticaosegura,execuoremotaseguraeloginshellremotosegurobsicamente, diversasformasdeautenticaoestodisponveis,podemosestabelecerlistasdeacesso,criarpadresde senhasforteseat aautenticaoautomticapormeiodechavespblicascriptografadas,mtodo extremamentetilparaserusadoemshellscriptsouemeventosde manutenesautomatizados. Toda sesso criptografada fazendo uso das rotinas e bibliotecas do OpenSSL que requerido, adicionalmentepossvelfazerarbitrariamenteTCPportforwarding,isto,nestecasooOpenSSHir criarumtnelcriptografadoondequalqueraplicaoouprotocolopossautilizar. AopodeX11Forwardingquandoutilizadaenvia/redirecionapelotnelcriptografadoaconexoao servidor X da mquina remota para o servidor X da mquina local, desta forma, as aplicaes ou programasgrficosexecutadospeloshellremotoirosermostradasnodisplaylocal.
InstalandoPacotes/SoftwaresNecessrios:
Emquase100%doscasos,todosospacotesjestaroinstalados,oOpenSSHconsideradoumsoftware padrodemanutenoemsistemasLinux/Unix.Vejaabaixoospacotesnecessrios esuasdescries: openssh Pacoteprincipalqueprovefuncionalidadescoreparaambossshclienteesshservidor. openssl Bibliotecaserotinasdecriptografiaeferramentasparageraodechavesecertificados opensshclients EstepacoteproveosprogramasnecessriosparautilizaodoOpenSSH. opensshserver Estepacoteproveodaemonsshdnecessrioparadisponibilizaroacessoremotodeseusistema. opensshaskpass EstepacoteproveacapacidadededialogoX11dopassphraseparaoOpenSSH.
148
ConfiguraodoServio:
VeremosagoraaconfiguraodoOpenSSHservidor(sshd),osarquivosdeconfiguraodeambos OpenSSH Servidor e OpenSSH Cliente podem ser localizados em /etc/ssh. O principal arquivo de configuraodoOpenSSHServidorestalocalizadoem /etc/ssh/sshd_config.Vejaabaixoasprincipais opesdeconfiguraodestearquivo:
AllowUsers Este parmetro a forma mais simples de especificar arbitrariamente a lista de usurios permitidosautilizarosshd.Porpadroosshdpermitetodososusurios. PasswordAuthentication Especificase permitidaounoologinutilizandopasswords.Opadro permitido,omais comumaqui quandomudaresteparmetroparaimpedirologinporsenhas criaraschaves publicaseprivadasparagarantirseuacesso. PermitRootLogin Esteparmetrocontrolaoacessoaosuperusurionosshd.Ospossveisvaloresdesteparmetro so: yes valor padro, withoutpassword bloqueia a autenticao do super usurio por password. forcedcommandsonly Aceita autenticao do super usurio por chave publica somenteseespecificadoalgumcomando,estaopotilparaaexecuodealgumcomandono sistemaremotopoisnopermiteologin.nodesligaoacessodosuperusurio. Protocol Especifica as verses de protocolo suportadas pelo sshd. Lembrando que fortemente aconselhvelpermitirsomenteoprotocoloversoSSH2.OprotocoloversoSSH1aindaexiste apenasparamantercompatibilidadecomsistemamuitoantigos. Port Especificaaportaqueosshdiraguardarporconexes. X11Forwarding Ospossveisvaloressoyesouno,esteparmetrocontrolaoredirecionamentodasconexes aoservidorX.OvalorpadroyesnoRHEL. PermitTunnel EsteparmetrocontrolaocomportamentododispositivoTunusadoparaestabelecerVPN.O valorpadrodesligadono.
149
Arquivosdeconfiguraoenvolvidos:
/etc/ssh/* /etc/ssh/sshd_config
Gerandochavespblicaseprivadas:
Em ordem a gerar o par de chaves pblica (Servidor) e privada (Usurio) para implementar a autenticaoautomticasigaospassosabaixo: 1. 2. 3. 4. 5. Nodiretriohomedousurioexecute ocomando:sshkeygen TecleENTERparaaceitarovalorpadroparaonomedachavepblica TecleENTERparaignorarautilizaodepassphrase TecleENTERnovamenteparaconfirmaranoutilizaodopassphase Executeocomando:cp~/.ssh/id_rsa.pub~/.ssh/authorized_keys
Autenticaobaseadaemhosts:
Osshdfoicompiladocomsuporteabibliotecalibwrap.so,destaformapossvelfazerusodosarquivos /etc/hosts.allowe/etc/hosts.denyemordemaimplementaraautenticaobaseadaemhosts,isto ,em nmerosIPsounomesdemaquinasedomnios.Paraliberaroacessoaosshdsigaoexemploabaixo: Noarquivo/etc/hosts.allowadicioneaseguintelinha: sshd:<IPsounomesdemquinas/domniospermitidos>
AtivandooServionaInicializaodoSistema:
chkconfigsshdon;servicesshdstart 150
LaboratrioOpenSSH,cenriodeconfiguraodemdioporte:
Disponibilize o acesso remoto ao sistema configurando o servidor OpenSSH. Um detalhe muito importantequeousuriorootapenasteracessoautenticandosepormeiodechavepblica/privada. Deformaalgumaosuperusuriopoderlogarsenosistemainformandoseupassword. Osdemaisusuriosdosistemapoderoautenticarseviapasswordouchavepblica/privadacasotenham criado.
TestedeImplementao/Validao:
1. Testeoacessoviapassworddeusuriosregularesdosistema:sshcarlos@localhost 2. Disponibilizandoachavepblicatesteoingressoautomticonosistema:sshroot@localhost 3. Agoraremovaachavepblicadousuriorootetentelogarse: rm/root/.ssh/authorized_keys sshroot@localhost
151
SoluodolaboratrioOpenSSH:
1. 2. 3. 4. 5. 6. InstaletodospacotesrequeridosparaoclienteeservidorOpenSSH ConfigureoservidorOpenSSHparainicializaoautomtica:chkconfigsshdon Configureoparmetronoarquivo/etc/ssh/sshd_configPermitRootLogin=withoutpassword Crieaschavespblica/privadacomocomando:sshkeygen Renomeieoarquivo/root/.ssh/id_rsa.pubpara/root/.ssh/authorized_keys Reinicieoservio:servicesshdrestart
152
DHCP: Introduo:
ODHCP(DynamicHostConfigurationProtocol)eoBOOTP(InternetBootstrapProtocol)hojeso desenvolvidosemantidospeloISC(InternetSoftwareConsortium).Aprincipalfuno permitirque mquinas num determinadosegmento TCP/IP solicitem suas configuraes de rede de um servidor central comum. O DHCP prove as informaes de configurao de rede para mquinas ainda desconhecidasnarede,informaescomooEndereoIP,Gateway,MscaradeRede,Endereodesub net,ConfiguraesdeDNSeetc.OprotocoloBOOTPproveasmesmasfuncionalidadescomrestries. GeralmenteexisteapenasumservidordeDHCPparacadasegmentoderede,asmquinasbuscamo servidor enviando pacotes de broadcast que so prontamente respondidos assim configurando dinamicamentearede.Oadministradoralocapoolsdeendereosquesoalugadosparaasmquinas porumperododetempoconfigurado,istochamadodeleasetime,quandoessetempoexpiradoo clientedecideseirounorenovaressemesmoendereo,paraoprotocoloBOOTPnohleasetime, essaumadasdiferenasentreoDHCPeBOOTP. EndereosIPspodemseralocadosestaticamentedeacordocomoendereonicoMACdasinterfaces.O administradorpodefacilmenteporexemploreservarumrangedeendereosparaumdeterminado grupodemquinasdentrodeumsegmentoderede,ouento,especificarqueoservidordeDHCPir apenasrespondersolicitaesdeumgrupodeclientesdefinidospeloendereoMAC. AdicionalmenteoservidordeDHCPtambmpodeproverasinformaesrelativasaoKickstart,desta forma,umamquinapodeserinteiramenteinstaladaeconfiguradaremotamente.
InstalandoPacotes/SoftwaresNecessrios:
Emquase100%dasinstalaesospacotesrelativosaoclientedeDHCPj estaroinstalados,para configuraroservidordeDHCPnecessrioainstalaodepacotesadicionais,vejaabaixo: dhclient EstepacoteforneceoDHCPDaemonCliente. dhcp EstepacoteforneceoDHCPDaemonServidoreoAgentedeRedirecionamento. dhcpv6_clientedhcpv6 Pacotesparaoperarcomcliente/servidorparaDHCPv6pararedeseparmetrosIPv6.
153
ConfiguraodoServio:
OarquivodeconfiguraoparaoservidordeDHCPestalocalizadoem/etc/dhcpd.conf,paracriarsuas configuraesutilizeoexemploqueacompanhaopacotedhcplocalizadoem: /usr/share/doc/dhcp3*/dhcpd.conf.sampleouverifiqueasmanpages:mandhcpd.conf. Vejaabaixoumexemplode/etc/dhcpd.conf # ddnsupdatestyleinterim; ignoreclientupdates; subnet192.168.0.0netmask255.255.255.0{ #defaultgateway optionrouters 192.168.0.1; optionsubnetmask 255.255.255.0; optionnisdomain "domain.org"; optiondomainname "domain.org"; optiondomainnameservers 192.168.1.1; # optionntpservers 192.168.1.1; # optionnetbiosnameservers 192.168.1.1; #Selectspointtopointnode(defaultishybrid).Don'tchangethisunless #youunderstandNetbiosverywell # optionnetbiosnodetype2; rangedynamicbootp192.168.0.128192.168.0.254; defaultleasetime21600; maxleasetime43200; #wewantthenameservertoappearatafixedaddress hostns{ nextservermarvin.redhat.com; hardwareethernet12:34:56:78:AB:CD; fixedaddress207.175.42.254; } } 154
ddnsupdatestyleeignoreclientupdates ConfiguramaatualizaodenomesautomticanoservidordeDNSgeralmenteotambmdaISC NAMED,nesteexemploapenasestaseconfigurandoqueotipodeatualizaoser apadro (interim) e que solicitaes vindas de clientes devem ser ignoradas. Para configurar a conversao/atualizao entre o servidor de DHCP e o servidor de nomes NAMED demais parmetrosdevemseradicionados.Procuredocumentaoadicionalparaisto. subnetenetmask DefineoescopoderedequeesteservidordeDHCPirtrabalhar. optionrouters Defineogatewaypadro.
optionsubnetmask Defineamscaraderede.
optiondomainnameeoptionnisdomain EspecificaonomedeseudomnioeonomedodomnioNIScasoexista.
optiondomainnameservers Especificaoendereodoservidordenomesprimrio. optionntpservers Especificaoendereodoservidordetempo(NTP). optionnetbiosnameservers EspecificaoendereodoservidorWINS. rangedynamicbootp DefineoescoporeservadodeendereosIPsaosprotocolosDHCPeBOOTP. defaultleasetimeemaxleasetime Defineotempodealuguelpadroeotempodealuguelmximoemsegundos. hardwareethernetefixedaddress FixaestaticamenteumendereoIPparaumendereofsicoMAC. 155
OservidormantemumalistaatualizadadosendereosIPsdisponibilizados/alugadosparaosclientesem: /var/lib/dhcp/dhcpd.leases.
ConfiguraodoClienteDHCP:
Para configurar uma interface de rede permanentemente para utilizar o servio de DHCP utilize a ferramenta systemconfignetwork eselecioneaoporeferenteaoDHCP,emseguidareinicieesta interfacecomocomandoifup.Exemplo:ifupeth0 ManualmenteoprocessodeconfiguraodoclienteDHCPpodeserfeitoapartirdocomando:dhclient
Arquivosdeconfiguraoenvolvidos:
/etc/dhcpd.conf
AtivandooServionaInicializaodoSistema:
chkconfigdhcpdon;servicedhcpdstart
156
XINETD: Introduo:
Oxinetdveioparasubstituiroantigoinetd,oprincipalobjetivoumsuperservidorquegerenciaoutros servios que no so muito requisitados ou tambm servios que necessitam recursos adicionais principalmentena readesegurana.Oxinetd capazdecontrolarvriosaspectosdesegurananos serviosvinculadosaeleetambmliberarrecursosdosistemaumavezqueosserviosapenasso acordadosquandoalgumasolicitaonasuaportaocorre,podemosdizerqueosuperservidorxinetd monitora as requisies em todas as portas de seus servios vinculados e dispara os respectivos servidoresdeacordocomademanda. Adicionalmenteoxinetd linkadonabibliotecalibwrap.sooquepermiteumcontroledeautenticao baseadoemIPsounomesdemquinaedomnios.Mesmoqueoserviovinculadoaoxinetdnotenha suporteaautenticaobaseadaemhosts,comooxinetd capazdegerenciarasconexes,todosos servios vinculados iro submeterse a checagem nos arquivos /etc/hosts.allow e /etc/hosts.deny preliminarmenteesapsmecanismosdeseguranaparticularesdoxinetdseroaplicados. Entreoutrosrecursosoxinetd capazdeoferecercomocitadoacimaautenticaobaseadaemhosts, redirecionamento de IP, recursos extensivos de logs do sistema, estatsticas, policy de nmero de conexesporsegundo,opomuitoeficientenocontroledoabusodeservioeporfimreservarrecursos dosistema,umavezqueosserviossodisparadossobdemanda. Sua estrutura de configurao muito objetiva, o controle de portas realizado pelo arquivo /etc/services,umarquivodecontroleprincipalpadrolocalizadoem/etc/xinetd.confcomumatodosos servios e arquivos de configurao particulares para cada servio localizados dentro do diretrio /etc/xinetd.d.Observequeonomedosarquivosdentrodaestrutura /etc/xinetd.d representatambmo nomedoservio,estaprticadenomenclaturamuitofrequente.
InstalandoPacotes/SoftwaresNecessrios:
Vejaabaixooscomandosnecessriosparaverificarseoxinetdjestainstaladoeinstalarlo. rpmqa|grepxinetd rpmUvhxinetd
157
XINETDConfiguraoPadrodosServios:
Oarquivodeconfiguraoglobalestalocalizadoem/etc/xinetd.conf,nestearquivoseroconfigurados parmetrospadresqueafetaramtodososdemaisserviosvi nculadosaoxinetd.
Vejaabaixoumexemplode/etc/xinetd.conf
# #Thisisthemasterxinetdconfigurationfile.Settingsinthe #defaultsectionwillbeinheritedbyallserviceconfigurations defaults { log_type=SYSLOGdaemoninfo log_on_failure=HOST log_on_success=PIDHOSTDURATIONEXIT cps=5010 instances=50 per_source=10 v6only=no groups=yes umask=002 } includedir/etc/xinetd.d
158
log_type Determinaparaonde os logs sero enviados.Noexemploacima para facility daemon do syslogdcomprioridadeinfo. log_on_failure Determinaquetipodeinformaesserologadasemcasodefalhaquandoalgumservidor iniciado. log_on_success Determinaquetipodeinformaesserologadasemcasodesucessoapsalgumservidorser iniciado. cps Limitaonmerodeconexodeentrada.Oprimeiroparmetroespecificaonmerodeconexes mxima por segundo, o segundo parmetro especifica o tempo que o servio ir ficar indisponvelquandoolimitedeconexesforultrapassado. instances Determinaonmerodeservidoresquepodeserativosimultaneamenteparacadaservio. per_source DeterminaonmeromximodeconexesoriginadasdeummesmoIP. V6only EspecificaseaoperaoserexclusivanoformatoIPv6. Groups Os valores para esse parmetro podem ser yes ou no. Quando especificado yes os servidoresiroserexecutadoscomacessoaogrupodousurioUIDqueoserviopertence.Caso oparmetrogrouptenhasidoespecificadoosserviosteroacessoaogrupoespecificadopelo parmetrogroup=. umask Especificaarbitrariamenteumaumaskparaosservios.
includedir Todososarquivoscontidosnodiretrioespecificadoserocarregadospeloxinetd.
159
XINETDConfiguraoParticulardosServios:
Abaixo esta a configurao do servio telnet vinculado ao xinetd (/etc/xinetd.d/telnet). O principal parmetrodeconfigurao odisablequecontrolaseoservioestaounoativo.Observequeeste parmetrocontroladoealteradopelasferramentaschkconfigountsysvquandooadministradorefetua algumaalteraonorunlevel. #default:on #description:Thetelnetserverservestelnetsessions;ituses #unencryptedusername/passwordpairsforauthentication. servicetelnet { flags=REUSE socket_type=stream wait=no user=root server=/usr/sbin/in.telnetd log_on_failure+=USERID disable=yes }
Arquivosdeconfiguraoenvolvidos:
/etc/xinetd.conf /etc/xinetd.d/*
AtivandooServionaInicializaodoSistema:
chkconfigxinetdon;servicexinetdstart OBS:Parareiniciaroxinetderelertodasuaconfiguraouse:killallHUPxinetd 160
TCPWRAPPERS: Introduo:
OTCP_WRAPPERSimplementaaseguranabaseadaemhosts,isto ,aautenticaodeacordocomo endereoIPounomededomniodosclientes.Geralmenteosservidoresqueutilizamotcp_wrappers fazemusodabibliotecalibwrap.so,pormpodemocorrerimplementaesindependen tes. Nosarquivos/etc/hosts.allowe/etc/hosts.denyexistemduascolunasquedividemoscampos.Oprimeiro campoespecificaalistadeexecutveis,noconfundaonomedosexecutveiscomonomedosservios ou servidores. O segundo campo contm a lista das especificaes dos clientes, diversas formas diferentespodemserutilizadascomo:endereoIP,nomedamquina,endereosderede,nomesde domnioouparesdemscarasderedeeetc.OscoringasvlidossoALLeEXCEPT. Oprocessodeimplementaoocorredaseguinteforma,quandooclientefazumasolicitaoaalgum serviovinculadoaotcpwrappersosarquivos /etc/hosts.allow e /etc/hosts.deny soverificados,toda regraimplementadanessesarquivos aplicadanaordememque encontrada.Porprimeirooarquivo /etc/hosts.allow examinado,seotrfegoexplicitamenteno permitidooarquivo /etc/hosts.deny examinadosetambmotrfegonoforexplicitamentebloqueadooacessoliberadoparaoclientepela regradefaltadeomisso,isto ,essaconexonoencontrounenhumaregraaplicvelaela.Para entenderissotenhaemmentequeumaregralistadanoarquivo/etc/hosts.allowirpermitiraconexo, enquantoumaregralistadanoarquivo /etc/hosts.deny ir bloquear.Asmudanassoimediatamente efetivas,nonecessrioreiniciarqualquertipodeservioouservidor.
EspecificaodoDaemon(Servidores):
Noprimeirocampoespecificadoalistadosexecutveisparaosserviosseparadasporvirgula,.Veja abaixoalgunsexemplos: in.telnetd: sshd,gdm: 192.168.200.1 192.168.200.1
EspecificaodoClientes:
Diversasformaspodemserutilizadasparaespecificaodosclientes.Vejabaixoalgunsexemplos:
EndereoIP 192.168.1. 192.168.1.5 Network/Netmask 192.168.200.0/255.255.255.0 NomedaMquina aluno1.laboratorio.com.br .laboratorio.com.br NomedaRede (ApenasnomesdoNISoude/etc/networks) @exemplo
SintaxesComplexas:
Oscoringasvlidosso:
OBS:AdeterminaodosnomesdehostsocorrepormeiodaverificaonoserviodeDNSetambm nosarquivoslocaisderesoluodenomes.
162
Osoperadoresvlidosso:
ALL(Especificatudo) EXCEPT(Podeserusadonalistadeservidoreseclientesparaefetuaraexcluso)
CenriodeExemplos:
Exemplo1: #/etc/hosts.allow sshd,portmap: in.telnetd: #/etc/hosts.deny ALL: in.telnetd: sshd,portmap:
192.168.200. 192.168.200.10
163
ALL
Noexemploacimaoacesso apenaspermitidoparaoserviossh darede192.168.200.0 equalquer mquina do domnio .laboratorio.com.br. Oservio telnet tambm permitido somentea todas as mquinadodomnio.laboratorio.com.br. Todososdemaisserviosestarobloqueadosaqualquercliente. Oexemploacimamuitoprticodesermantidoetambmimplementaumaltograudesegurana,pode sedizerqueaformamaisseguraeeficazdeliberaroacessogradualmenteaosservios.
164
LaboratrioXINETDTCPWRAPPERS,cenriodeconfiguraodemdioporte:
Paramantercompatibilidadecomsistemasmaisantigosouatpermitiracomunicaocomdispositivos de rede como roteadores e modens o uso do protocolo telnet ainda utilizado. Muito cuidado necessrionautilizaodesteprotocolopoisnohcriptografiaeatrocadenomesdeusuriosesenhas ocorrem em textoplanopelarede.Oobjetivodestelaboratrio disponibilizaroserviode telnet vinculadoaosuperservidorxinetdeaplicarrestriesdeacessopelotcpwrappers.Oacessodeveser permitidoapenasparaamquinalocal(localhost.localdomain/127.0.0.1). OBS: Esse laboratrionovisa a funcionalidadedotelnet, massimadisponibilizao do servio vinculadoaoxinetdeaaplicaodasregraspelotcpwrappers.
TestedeImplementao/Validao:
1. Testeoacessolocaldotelnet:telnetlocalhost 2. ExecuteocomandoifconfigedescubraseuIP.InformandoseuIPaumcolega,peaaelepara tentaracessarseuservidor:telnet<endereoIP>
165
SoluodolaboratrioXINETDTCPWRAPPERS:
1. Instaleospacotesdoxinetdetelnet:rpmivhxinetd;rpmivhtelnet 2. Configure o servidor xinetd e telnet para inicializao automtica: chkconfigxinetdon;chkconfigtelneton 3. Inicieoservioxinetd:servicexinetdstart 4. Configureoarquivo/etc/hosts.denydaseguinteforma: in.telnetd:ALLEXCEPT127.0.0.1
166
Netfilter: Introduo:
AfiltragemdepacotesnoLinuxocorrenapilhaderededentrodoKernel,aanaliseeverificaodos pacotesocorremsemnenhumtipodeaplicativooudaemonexterno.Ainspeodospacotes muito rpida, isso porque analisadoeverificadosomenteocabealhodospacotes,isto ,umgrupo de informaespresentesqueincluemoendereodeorigem,endereodedestino,portadeorigem,portade destino,tipodeprotocoloeetc. A inspeo padro do netfilter ocorre pelo modelo OSI (Open Systems Interconnect) representado principalmentenascamadas4(Transportedeprotocolo),3(Rede)e2(Enlacededados),adicionalmente podemserincorporadosoutrosmdulosoufuncionalidadesqueampliemseuraiodeinspeoparaato contedodospacotesporexemplo,assimpartindoparaoutrascamadascomoodaaplicaoemsi. AcompanhandooLinux,aarquiteturadastecnologiasdefiltragemdepacotesdesenvolveusemuitonos ltimosanos,naversodoKernel2.0ofiltrodepacoteschamavaseipfwadm,apscomoKernel2.2 passouasechamaripchainseporfimcomoKernel2.4emdianteveiooNetfilterutilizandocomo ferramentaoiptables.Oprojetodonetfilter aberto,desenvolvidoemantidopelacomunidadevem contribuindoparaodesenvolvimentodoKerneletambmdosucessodoLinux.Ositeoficialdoprojeto podeseralcanadoem:http://www.netfilter.org.
MdulosBaseeExtensesdoNetfilter:
Oiptablesextensvel,assim,tantookernelquantooiptablespodemserextendidosparafornecernovas funcionalidades.Asextensesdoiptablessobibliotecascompartilhadasasquaisgeralmenteestoem: /lib/modules/<versoatual>/kernel/net/ipv4/netfilter,juntamentecomosmdulosbase. Extensesvmemdoistiposdiferentes:novosalvos(targets),enovasassociaes(depoisfalaremos maissobrenovosalvos'targets').Algunsprotocolosautomaticamenteoferecemnovostestes:atualmente soelesTCP,UDPeICMPcomomostradoabaixo. Paraessesprotocolosvocpoderespecificarnovostestesnalinhadecomandodepoisdaopo`p',que carregaraextenso.Paranovostestesexplcitos,utilizeaopo`m'paracarregaraextenso,depoisde m,todasasopesdaextensoestarodisponveis. Paraconseguirajudacomumaextenso,utilizeaopoqueacarrega(`p',`j'ou`m')sucedidapor`h' ou`help',conformeoexemplo:iptablesptcphelp 167
FluxodosPacotesnoNetfilter:
Oprocessodefiltragemdospacotesocorre basicamenteem5principaispontos,soeles:
PREROUTING Esteoprimeiropontodefiltragemlogoemqueospacoteschegam.(TabelaNAT) RoutingDecision Seoendereofinaldopacote osistemalocal,entoopacoteir serdirecionadoparaser verificadolocalmente.Seodestinodopacoteforoutrosistemaeacapacidadederouteamentode pacotes do kernel estiver ativada (/proc/sys/net/ipv4/ip_forward), ento o pacote ira ser redirecionadoeentreguedeacordocomatabeladerouteamento.
168
FORWARD: Estepontodefiltragemprocessaospacotesqueiropassarpeloseusistema,ouseja,quandoo destinofinalnoosistemalocal.(TabelaFILTER) INPUT: Estepontodefiltragemprocessaospacotesdestinadosaosistemalocal.(TabelaFILTER) OUTPUT: Estepontodefiltragemprocessaospacotesgeradosnosistemalocal,antesdePOSTROUTING. (TabelaNATeFILTER) POSTROUTING: Estepontodefiltragemprocessaospacotesimediatamenteantesdesuasada.(TabelaNAT)
VerificaodasRegras:
Asregrassonumeradaeordenadasdentrodaschains,aposiodeumaregradentrodachain fundamentalparasaberseelaserounoprocessada.Asverificaesiniciamsedocomeoparaofim, ouseja,asregrassotestadasumaporvez,aprimeiraregratestadaaregradenmero1. Quandoumaregra encontradaeaplicadaopacote entregueeaverificaoseencerra,asdemais regrasdachainnosoverificadas.Pararegrascomvrioscritrios,opacotedevesatisfazertodosos critriosparaserentregue.Casoaofinaldoprocessamentodachainnoforencontradonenhuma regraqueapliqueseaopacote,entoaplicadoopolicypadrodachain. Paravisualizarasregrasnumeradasuse:iptablesLvlinenumbers
AlvodasRegras:
Agoraquesabemosquaisasanlisespodemserfeitasemumpacote,precisamosdeumaformadedizer oquefazercomospacotesquepassamnascondiesqueestabelecemos.Isso chamadodealvo (target)daregra.Paraescolherumalvoutilizeaopoj. Hdoisalvosbemsimples:DROP(descartar)eACCEPT(aceitar).Searegraseassociacomopacotee seualvoumdessesdois,nenhumaoutraregraconsultada:odestinodopacotejfoidecidido. Hdoistiposdealvosdiferentesdosdescritosacima:asextenseseaschainsdefinidasporusurios. 169
ChainsDefinidasporUsurios:
Umafuncionalidadequeoiptablesherdoudoipchains apossibilidadedousuriocriarnovaschains, almdastrspadro(INPUT,FORWARDeOUTPUT).Porconveno,chainsdefinidaspelousurioso escritasemminsculas,diferenciandoas. Quandoumpacoteassociasecomumaregracujoalvo(target) umachaindefinidapelousurio,o pacotepassaaseranalizadopelasregrasdessachaindefinidapelousurio.Seachainnodecideoque deveserfeitocomopacote,omesmovoltaaseranalizadopelachainpadroquecontinhaaregraqueo levavaparaachaindefinidapelousurio.
ExtensesdeChains:
Ooutrotipodealvo umaextenso.Umaextensoalvoconsisteemummdulodokernel,euma extenso opcional ao iptables para prover opes de linha de comando. H diversas extenses na distribuiopadrodonetfilter:
LOG: Essemduloprovloggingdospacotessubmetidos.Possuiasseguintesopesadicionais: loglevel Seguido de um nmero de nvel ou nome. Os nome vlidos (sensveis a maisculas/minsculas)so`debug',`info',`notice',`warning',`err',`crit',`alert'and`emerg', correspondendoanmerosde7at 0.Vejaapginademanualdosyslog.confparauma explicaaomaisdetalhadadessesnveis. logprefix Seguidodeumastringdeat29characters,estaseradicionadanoinciodamensagemde log,permitindomelhoridentificaodamesma. Essemdulo tilapsumacomparaoporlimite(limitmatch),assim,vocnosobrecarrega seuslogs.
170
OperaesBsicasnasRegrasdasChains:
Adicionaregraaofinaldachain,seatabelanoforespecificadaserassumidaatabela filter,exemplo: iptablesAINPUTs192.168.200.254jDROP Insere uma regra no inicio de uma chain ou na posio desejada representada numericamente,exemplo: iptablesIOUTPUTd192.168.0.0jDROP Deletaumaregrabaseadaemseunmerodeposionachain.Oexemploabaixoir deletararegranmero3dachainINPUT.Paravisualizaronmerodasregrasuse: iptablesLlinenumbers,exemplo: iptablesDINPUT3
OperaescomasChains:
Umafuncionalidademuitoimportantedoiptables ahabilidadedeajuntarregrasemchains(cadeias). Vocpodedaronomequequiserparaaschains,mas recomendadaautilizaodeminsculaspara evitarconfusocomaschainspadrooucomosalvos(targets).Nomesdechainspodemterat 31 letras. Criandoumanovachain: Usadoparacriarchains,vamoschamladetest.Utilizaseasopes`N'ou`newchain':
#iptablesNtest
171
ApagandoumaChain: Apagarumachaintosimplesquantocrila,utilizandoasopes`X'ou`deletechain'.
#iptablesXtest
Listandoumachain: Podeselistartodasasregrasdeumachainutilizandoasopes`L'(ou`list') Seonomedachainomitido,todasaschainsserolistadas,atasvazias. Htrsopesquepodemacompanhar`L'.Aopo`n'(numrico)muitotil,umavezqueprevine que o iptables tenteresolverosendereosIP,oque(sevoc utilizaDNSassimcomoamaioriadas pessoas)causariagrandesatrasosseoDNSnoestconfiguradocorretamente,ouvocestfiltrando requisiesDNS.EssaopotambmfazasportasTCPeUDPseremimpressascomonmerosemvez denomes. Aopo`v'mostratodososdetalhesdasregras,comooscontadoresdepacotesebytes,ascomparaes TOS,easinterfaces.Casotaloponosejapassada,essesvaloresseroomitidos. Notequeoscontadoresdepacotesebytessoimpressoscomossufixos`K',`M'ou`G'para1.000, 1.000.000e1.000.000.000respectivamente.Utilizandoaflag`x'(expandirnmeros)osnmerossero impressosinteiros,independen tedeseutamanho. #iptablesLvn Zerandocontadores: tilzeraroscontadores.Issopodeserfeitocomaopo`Z'(ou`zero'). #iptablesZFORWARD
172
CritriosdeverificaodasChains:
Emumaregrapodemosespecificardiversascaractersticasdeumpacote,vejaabaixoascaractersticas bsicas:
i Interfacederededeentrada.Exemplo: iptablesAINPUTieth1jDROP o Interfacederededesada.Exemplo: iptablesAOUTPUToeth0jREJECT p Protocolo.Exemplo: iptablesAINPUTpudpjDROP s OendereoIPdeorigem.Exemplo: iptablesAINPUTs192.168.200.0jACCEPT d OendereoIPdedestino.Exemplo: iptablesAOUTPUTd192.168.1.254jDROP
173
ExtensesTCP:
AsextensesTCPsoautomaticamentecarregadasseespecificadaaopo`ptcp'.Elasprovm asseguintesopes(nenhumaassociasecomfragmentos):
Essa regra indica que todas as flags devem ser examinadas (`ALL' sinnimo de `SYN,ACK,FIN,RST,URG,PSH'),masapenasSYNeACKdevemestarativadas.Tambmhum argumento`NONE'quesignificanenhumaflag.
syn Indicarequisiodeiniciodeconexo.
sport Indicaportadeorigem.
dport Indicaportadedestino.
tcpoption seguidapor`!'opcionaleumnmero,associasecomumpacotecomaopoTCPigualaodo nmero passado. Um pacote que no tem um cabealho TCP completo automaticamente descartadosehumatentativadeexaminarsuasopesTCP.
OBS:Asportaspodemserespecificadaspelosseusnomesassociadosao/etc/service.Rangede portassoespecificadosseparadospelocaracter:.Paranegaoutilizeocaracter!.
174
ExtensesUDP:
Essasextensessoautomaticamentecarregadasseaopo`pudp'especificada.Elaprovasopes `sourceport',`sport',`destinationport'and`dport'conformedetalhadoparaoTCPacima.
ExtensesICMP:
Essasextensessoautomaticamentecarregadasseaopo`picmp'especificada.Elaspossui umaopodiferentedasdemais:
icmptype Especifica um nome de tipo icmp (por exemplo, `hostunreachable'), ou um tipo numrico (exemplo`3'),ouumtiponumricoecdigoseparadospor`/'(exemplo`3/3').Umalistadetipos icmppassadautilizandose`picmphelp'.
Checagensdeestadodospacotes:
Ocritrioparafiltragemdepacotesmais til providopelaextenso'state'queinterpretaaanlisedo controledaconexofeitapelomdulo`ip_conntrack'.Essaextensoaltamenterecomendada. Especificando`mstate'aopo`state'tornasedisponvel,aqualumalistadosestadospossveisdos pacotes separada por vrgula (a opo `!' indica para que a regra no se associe com os estados passados). Esta semdvidasacapacidademaispoderosadoNetfiltersobreoantigoipchains.Utilizandoesta extenso possvelevitardeabririnmerasportasderetornoparaospacotes.Antigamentecomo ipchainsasregraseramescritasemparesdeentradaesada. Existeumaumentosignificativonoconsumodememriaquandoutilizadoessaextenso,pormexiste tambm uma pequena vantagem pois o nmero de regras testadas reduzido aps a conexo ser estabelecida. Vejanaprximapginaadescriodessasextenses:
175
NEW Umpacotequecriaumanovaconexo.
NAT:
NATou(NetworkAddressTable)umatcnicaquemanipulaalgunscamposdocabealhodopacote, como:endereodeorigem,endereodedestino,portadeorigemeportadedestinoafimderealizar roteamentosouredirecionamentosnarede.VejaabaixoostiposmaiscomunsdeNAT:
DestinationNATouDNAT OspacotessomanipuladosnachainPREROUTING,isto ,logoquandoospacoteschegam. Somanipuladososcamposdedestinoreenviandoospacotesparaoutroendereoouporta.Este tipodeNAT muitocomumemDMZs,ondeosservidoresdeMAIL,WEBporexemplo, pertencemaredeinterna. realizadoumredirecionamentodoIPvlidoparaosIPslocaisque correspondemaosservidoresquerespondemrequisiesdeMAILeWEB.Portforwarding,load sharing,eproxytransparentesoformadeDNAT.
176
SourceNATouSNAT,MASQUERADE OspacotessomanipuladosnachainPOSTROUTING,isto ,logoquandodeixamosistema. So manipulados os campos deorigemdospacotesqueestosaindo.Isso umaforma de mascararumaconexopoissemudadeondevmumaconexo.Masquerading umaforma especializadadeSNAT.
ExemploPrticodeNAT:
ObserveaDMZ(ZonaDesmilitarizada)abaixo:
AsmquinasservidorasdewwweftpnopossuemIPsvlidosnaInternet,pormsoacessadaspelo mundo exterior devido a regras de DNAT implementadas no firewall, isto , existem regras de redirecionamentodeconexesquechegamnofirewallnosprotocoloshttpeftpparaendereoslocais.
177
SourceNAT:
VocquerfazerSourceNAT;mudaroendereodeorigemdasconexesparaalgodiferente.Issofeito na chain POSTROUTING, logo antes de que o pacote saia da mquina. Isso um detalhe muito importante,poissignificaquequalquertarefadasuamquinaLinux(routing,packetfiltering)vero pacoteinalterado.Issotambmsignificaqueaopo`o'(interfacedesada)podeserutilizada. SourceNATespecificadocom`jSNAT',eaopo`tosource'demonstraumendereoIP,umrange deendereosIP,eumaportaopcionalouumrangedeportas(apenasparaosprotocolosTCPeUDP).
##Mudandooendereodeorigempara1.2.3.4. #iptablestnatAPOSTROUTINGoeth0jSNATto1.2.3.4 ##Mudandooendereodeorigempara1.2.3.4,1.2.3.5ou1.2.3.6 #iptablestnatAPOSTROUTINGoeth0jSNATto1.2.3.41.2.3.6 ##Mudandooendereodeorigempara1.2.3.4,portas11023 #iptablestnatAPOSTROUTINGptcpoeth0jSNATto1.2.3.4:11023
Masquerading:
HumcasoespecialdeSourceNATchamadomasquerading,quesdeveserutilizadoparaendereos IPdinmicos,comoasconexesdialup(paraendereosIPestticos,utilizeSNATdescritoacima). Nomasquerading,nonecessrioexplicitaroendereodeorigem:serutilizadooendereodeorigem dainterfacedesadadopacote.Masomaisimportante queseolinkcair,oendereodeorigemque estavasendoutilizado descartado,dandolugaraumnovoendereodeorigemdainterfacequandoo linkforrestabelecido.
##Mascarandotudoquesaipelainterfaceppp0. #iptablestnatAPOSTROUTINGoppp0jMASQUERADE
178
DestinationNAT:
DNAT feitonachainPREROUTING,assimqueopacotechega;issosignificaquetodasasoutras tarefas da sua mquina Linux (routing, packet filtering) vero o pacote j indo para seu destino verdadeiro.Aopo`i'(interfacedeentrada)podeserutilizada. Paraalterarodestinodepacotesgeradoslocalmente,achainOUTPUTdeveserutilizada,masissono muitoutilizado. Destination NAT especificada utilizando `j DNAT', e a opo `todestination' especifica um endereoIP,umrangedeIPs,eumaportaopcionalouumrangedeportas(apenasparaprotocolosTCP eUDP).
##Mudandodestinopara5.6.7.8 #iptablestnatAPREROUTINGieth0jDNATto5.6.7.8 ##Mudandodestinopara5.6.7.8,5.6.7.9ou5.6.7.10. #iptablestnatAPREROUTINGieth0jDNATto5.6.7.85.6.7.10 ##Mudandodestinodotrfegowebpara5.6.7.8,porta8080. #iptablestnatAPREROUTINGptcpdport80ieth0\ jDNATto5.6.7.8:8080 ##Redirecionarpacoteslocaiscomdestinoa1.2.3.4paraloopback. #iptablestnatAOUTPUTd1.2.3.4jDNATto127.0.0.1
Redirecionamento:
HumcasoespecializadodeDestinationNATchamadoredirecionamento:umasimplesconvenincia, aqualequivaleafazerDNATparaoendereodaprpriainterfacedeentrada.
##Mandandotrfegowebdaporta80paranossosquidproxy(transparente) #iptablestnatAPREROUTINGieth1ptcpdport80\ jREDIRECTtoport3128
SalvandoasRegrasdoIptables:
OiptablesumaferramentaquemanipulaasregrasdofiltrodepacotesdoKernel,asregrasficamativas namemriaatqueosistemasejareiniciado,quandoosistemadesligadotodasasregrasnamemria sero perdidas. O RHEL disponibiliza de uma forma muito prtica e eficaz de gravar toda sua configuraoderegrasatravsdogerenciamentodeumscriptrealizadocomocomandoservice.
LaboratrioIPTABLES,cenriodeconfiguraodepequenoporte:
Antesdeiniciarestelaboratrio: Certifiquesequenohnenhumarestrioestabelecidanoarquivo/etc/hosts.denyetambmquenoh nenhumaregradefiltragemjconfigurada,paraissouse:iptablesL. Verifiqueseosserviosdesshehttpestoconfiguradoseativos.
Implementaodolabotatrio: Crieumaconfiguraodefirewallpersistenteaorebootparabloquearasconexesparaosserviosde sshehttp.Umdetalheimportante queoclientedevereceberumamensagemICMPderetornosea conexonoforrealizada.Todososbloqueiosdeconexesdevemserdevidamentelogadosnosistema. Apenas os servios descritos devem ser bloqueados, os demais servios devem continuar a operar normalmente.
TestedeImplementao/Validao:
1. Certifiquesequeosacessoslocaisestofuncionando: sshlocalhost elinksdump127.0.0.1 2. Desliqueseufirewall: serviceiptablesstop 3. Peaparaalgumcolegatestaradisponibilidadedosserviosdesshehttpdesuamquina: ssh<seuendereoIP> elinksdump<seuendereoIP> 4. Ativeseufirewall: serviceiptablesstart 5. Peaparaalgumcolegatestaradisponibilidadedosserviosdesshehttpdesuamquina: ssh<seuendereoIP> elinksdump<seuendereoIP> 180
SoluodolaboratrioIPTABLES:
1. Configureasregras: iptablesAINPUTptcpdport22jLOG iptablesAINPUTptcpdport80jLOG iptablesAINPUTptcpdport22jREJECT iptablesAINPUTptcpdport80jREJECT 2. Graveasregrasatuais: serviceiptablessave 3. Adicioneoiptablesparaserinicializadonoboot: chkconfigiptableson
181
LaboratrioIPTABLESSYSLOG,cenriodeconfiguraodepequenoporte:
Antesdeiniciarestelaboratrio: Certifiquesequenohnenhumaregradefiltragemjconfigurada,paraissouse:iptablesL.
TestedeImplementao/Validao:
1. Executeocomandoabaixoparageraralgumtrfego: ping192.168.200.254& 2. Executeocomandoabaixoeobserveotrfegodainterface: tailf/var/log/eth0 3. Verifiquesenoarquivoprincipalde logs/var/log/messagesnohlogsdepacotes: tail/var/log/messages
182
SoluodolaboratrioIPTABLESSYSLOG:
1. Configureasregras: iptablesAINPUTieth0jLOG iptablesAFORWARDieth0jLOG iptablesAFORWARDoeth0jLOG iptablesAOUTPUToeth0jLOG 2. Adicioneasconfiguraesabaixonoarquivo/etc/syslog.conf kern.*/var/log/eth0 *.info;mail.none;authpriv.none;croin.none;kern.none/var/log/messages 3. Reinicieosyslogd KillallHUPsyslogd
183
LABORATRIOS COMPLEMENTARES
Rua Jornalista Manoel Menezes 149, Conj 402 Florianpolis SC CEP 88034-060
Fone/Fax +55 (48) 3024-0276 - linuxclass@linuxclass.com.br
Antes de iniciar este laboratrio, certifique-se de que voc desmontou completamente com sucesso as configuraes do laboratrio anterior. (mdadm --stop /dev/md0). Caso voc deseje criar um outro dispositivo RAID no sistema, dever criar o novo node antes. Se desejar o mdadm pode fazer isso por voc adicionando a opo auto=yes no momento da criao do array. Crie uma configurao de Software RAID de nvel 5, o total de espao disponvel para aplicaes deve ser de aproximadamente 200M. Disponibilize 02 discos em configurao de spare para este array. Um detalhe muito importante que este array deve ter o chunk size configurado para 128K. O Filesystem deve ser tipo ext3 com o tamanho de bloco igual a 4096 Bytes, crie o filesystem acomodando os blocos nos chunks do RAID de forma a criar uma estrutura de dados inteligente e otimizada. Pea verificao na hora da formatao contra bad blocks e tambm no esquea de especificar que no necessrio reservar espao neste filesystem para o super usurio. O dispositivo RAID 5 deve ser montado pelo volume label conteiner1 no momento do boot do sistema. Tamanho do RAID 5: Para calcular o tamanho total do array de um RAID 5 use a formula: (N-1)*S onde N o nmero de dispositivos e S o tamanho do menor dispositivo, extremamente recomendado que todos os dispositivos sejam do mesmo tamanho, se possvel mesmo modelo. Configurao de Spare: Configurao de spare onde dispositivos extras so adicionados para automaticamente substituir componentes ativos do array somente em caso de falha dos mesmos. Para efetuar esta configurao utilize o parmetro -x do mdadm na hora da criao do array. Para maiores detalhes consulte: man mdadm Block Sizes, Chunk Sizes & RAID 5 Tunning: O tamanho dos blocos de um filesystem afetam diretamente a performance desse filesystem. Caso voc tenha um filesystem muito grande ter que configurar o tamanho de bloco maiores, a no ser que esteja utilizando este filesystem para armazenar milhares de arquivos muito pequenos. Em geral 4K um tamanho razovel para um filesystem de alguns Gigabytes. A definio de chunk size o menor dado que pode ser escrito nos dispositivos que fazem parte do array. Por exemplo: Uma escrita de 16K em um RAID 0 com 2 discos com chunk size igual a 4K, resultara na escrita do primeiro e terceiro chunk de 4K no primeiro disco e o segundo e quarto chunk de 4K no segundo disco. Para escritas grandes o tamanho dos chunks deve ser maior, enquanto para arrays pequenos destinados ao armazenamento de arquivos pequenos o chunk size deve ser menor. O chunk size especificado para todos os nveis de RAID porm afeta diretamente a performance de nveis 0 e 5.
possvel ajustar o tamanho dos blocos de um filesystem ext2/ext3 na hora da formatao de acordo com o tamanho dos chunks do array, assim criando uma estrutura de dados de filesystem inteligente e melhor otimizada para dispositivos RAID. Se o chunk size for igual a 32K neste exemplo, isso significa que 32K de massa de dados consecutivas iro ser escritas num nico disco. Usando o tamanho de bloco igual a 4K, concluimos que teremos 8 blocos em apenas 1 chunk, na hora da criao do filesystem poderemos passar esse valor. Veja abaixo o exemplo: mkfs.ext3 -b 4096 -R stride=8 /dev/md15
Teste de Implementao/Validao:
1. Verifique a sada do comando: mdadm - -detail /dev/mdX 2. Verifique com o comando df -Th se o dispositivo /dev/mdX corresponde as necessidades requeridas por este exerccio (laboratrio).
Teste de Implementao/Validao:
1. 2. 3. 4. Com o comando vgdisplay -v vg1 possvel visualizar todos os pvs contidos no vg1. Visualize pv1,pv2,pv3 respectivamente com 100MB cada. Observe a sada do comando df -Th representado lv1 montado com aproximadamente 300MB. Aps a realocao, pv1 no dever mais constar na sada do comando pvscan na mquina.
Teste de Implementao/Validao:
1. Crie um usurio e logue-se no sistema com ele. 2. O sistema deve pedir uma nova senha automaticamente. 3. Teste diversas combinaes de senhas no permitidas afim de garantir que a configurao apenas permita senhas com no mnimo 10 caracteres onde pelo menos 1 caracter esteja em maisculo.