Unisul Tecnologia de Redes Prof. Luiz Otvio 1 O que administrar uma rede de computadores......................................................................................... 3 2 Explorando o sistema de arquivos .............................................................................................................. 3 3 Instalao de servidores (ferramenta Linux) .............................................................................................. 6 3.1 Principais distribuies Linux ............................................................................................................ 6 3.2 Preparao para a instalao do seu servidor...................................................................................... 6 3.3 Estratgias de particionamento........................................................................................................... 7 3.4 Parties por tipos de servidores ........................................................................................................ 8 3.5 A partio de swap ............................................................................................................................. 8 3.6 Correes de falhas na instalao....................................................................................................... 9 3.6.1 Determine se est vulnervel ...................................................................................................... 9 3.6.2 Proteja-se .................................................................................................................................... 9 3.7 Drives do Linux................................................................................................................................ 12 4 Comandos Bsicos.................................................................................................................................... 12 a - Inicializa e termina uma sesso................................................................................................................... 12 b - Reinicializa ou desliga o computador ......................................................................................................... 12 e - Metacaracteres............................................................................................................................................. 13 5 Conceitos de permisses de arquivos ....................................................................................................... 14 5.1 Interpretando permisses de arquivos .............................................................................................. 15 5.2 Modificando permisses................................................................................................................... 16 6 O Kernel ................................................................................................................................................... 17 6.1 O que significa uma nova verso (ex: verso 2.6) ............................................................................ 17 6.1.1 Quem faz o kernel..................................................................................................................... 18 7 Instalao de programas ........................................................................................................................... 18 7.1 Gerenciador de pacotes..................................................................................................................... 18 7.2 Programas fonte - .tgz ou .tar.gz....................................................................................................... 18 7.3 Patches.............................................................................................................................................. 19 7.4 APT ( Advanced Package Tool) ....................................................................................................... 19 8 Mdulos.................................................................................................................................................... 19 8.1 Comandos para o gerenciamento de mdulos .................................................................................. 20 8.2 Arquivos de configurao................................................................................................................. 21 8.3 Exemplo de utilizao de mdulos................................................................................................... 22 8.3.1 Instalao de ZIP-Drive de porta paralela ................................................................................ 22 8.3.2 Instalao de mdulos CD-RW IDE......................................................................................... 23 9 Editores de texto....................................................................................................................................... 24 9.1 Editor vi............................................................................................................................................ 24 9.2 Editor mcedit .................................................................................................................................... 24 10 SHELL.................................................................................................................................................. 25 10.1 Comandos de manipulao das variveis de ambiente..................................................................... 25 10.2 As variveis do ambiente bash ......................................................................................................... 25 10.3 Aliases (sinnimos ou apelidos) ....................................................................................................... 26 10.4 Redirecionamento e pipes................................................................................................................. 26 10.5 Arquivos de configurao do comando bash.................................................................................... 27 10.6 Programao Shell............................................................................................................................ 27 10.6.1 Shell scripts .............................................................................................................................. 27 10.6.2 Quoting..................................................................................................................................... 27 10.6.3 Formas de comando.................................................................................................................. 27 10.6.4 Operadores................................................................................................................................ 28 10.6.5 Teste de Condies................................................................................................................... 28 10.6.6 Substituio do Til.................................................................................................................... 28 10.6.7 Expanses................................................................................................................................. 29 10.6.8 Entrada interativa...................................................................................................................... 29 10.6.9 Expresses aritmticas.............................................................................................................. 29 10.6.10 Estruturas condicionais......................................................................................................... 29 10.6.11 Estruturas de lao.................................................................................................................. 30 10.7 Funes............................................................................................................................................. 31 10.8 Exerccios: ........................................................................................................................................ 31 1 Unisul Tecnologia de Redes Prof. Luiz Otvio 11 Processo INIT....................................................................................................................................... 32 11.1 SysV init ........................................................................................................................................... 32 11.2 Comandos service e ntsysv............................................................................................................... 33 11.3 Desligando o sistema........................................................................................................................ 33 11.4 Perda da senha de root ...................................................................................................................... 33 12 Gerenciamento de sistemas de arquivos ............................................................................................... 34 13 Configurao do TCP/IP no Linux....................................................................................................... 35 Instalando uma mquina em uma rede existente. Se voc quiser instalar uma mquina GNU/Linux em uma rede TCP/IP existente ento voc deve contatar qualquer um dos administradores da sua rede e perguntar o seguinte: ................................................................................................................................ 35 13.1............................................................................................................................................................... 36 13.2 Configurao da interface Ethernet .................................................................................................. 36 13.3 A interface loopback......................................................................................................................... 36 13.4 Configurando uma interface durante o boot ..................................................................................... 36 13.5 Definindo diversos endereos IP para a mesma interface................................................................. 37 13.6 Configurando uma rota no Linux ..................................................................................................... 38 13.7 Automatizando processos na rede .................................................................................................... 38 13.8 Hostname.......................................................................................................................................... 39 Arquivos de configurao......................................................................................................................... 39 13.9 O arquivo /etc/hosts.......................................................................................................................... 39 13.10 O arquivo /etc/networks................................................................................................................ 39 13.11 O arquivo /etc/resolv.conf ............................................................................................................ 40 Outros arquivos de configurao relacionados com a rede ...................................................................... 40 13.12 O arquivo /etc/services ................................................................................................................. 40 2 Unisul Tecnologia de Redes Prof. Luiz Otvio ADM SO I ADMINISTRAO DE SISTEMAS OPERACIONAIS (Ferramenta utilizada LINUX)
1 O que administrar uma rede de computadores
Administar uma rede compreende na verificao do desempenho de processos, implantao e manuteno de hardware e software bsico utilizados no desenvolvimento de aplicaes e servios de rede. Gerenciar redes de comunicao pode ser definido como a coordenao (controle de atividades e monitorao do uso) de recursos fsicos (impressoras, roteadores,etc) e/ou lgicos (protocolos) da rede (telecomunicaes ou dados), distribudos fisicamente, dando uma maior confiabilidade, segurana das informaes e maximizando a sua eficincia e produtividade.
2 Explorando o sistema de arquivos
Um sistema de arquivos a coleo de arquivos e a hierarquia de diretrios em um sistema. O diagrama abaixo mostra um exemplo de rvore de diretrios que pode dar uma idia de como esta pode estar organizada em um sistema.
/ bin dev etc home lib proc tmp usr var otavio flamengo otavio bin emacs etc network include lib local man src spool log linux bin emacs etc lib
Mude para o diretrio root ( "cd /" ), e entre "ls -F" para mostrar uma lista do seu contedo. Provavelmente sero visualizados os seguintes diretrios: bin, dev, etc, home, install, lib, mnt, proc, root, tmp, user, usr, e var.
/bin
/bin uma abreviatura para "binrios", ou executveis. onde residem a maioria dos programas bsicos do sistema. Use o comando "ls -F /bin" para listar os arquivos. Alguns arquivos como cp, ls e mv, so arquivos que contm os programas para esses comandos. Quando se executa cp, est sendo executado o programa /bin/cp. Usando "ls -F" ser visto que a maioria (se no todos) dos arquivos em /bin tm um asterisco ("*") acrescentado ao final de seus nomes. Isso indica que so arquivos executveis.
3 Unisul Tecnologia de Redes Prof. Luiz Otvio /dev
Os arquivos em /dev so conhecidos como controladores de dispositivo (device drivers) so usados para acessar os dispositivos ou recursos do sistema, como discos rgidos, modems, memria, etc. Por exemplo, da mesma forma que se pode ler dados de um arquivo, pode-se tambm ler a entrada do mouse /dev/mouse. Os arquivos que comeam com fd so os controladores de disquete: fd0 o primeiro drive, e fd1 o segundo. Por exemplo, fd1H1440 acessa discos de 3.5'' de alta densidade no drive 1. Segue-se uma lista de alguns dos controladores de dispositivos mais usados. /dev/console faz referncia ao console do sistema, quer dizer, ao monitor conectado em seu sistema. Os dispositivos /dev/ttyS e /dev/cua so usados para acessar as portas seriais. Por exemplo, /dev/ttyS0 faz referncia a "COM1", sob o MS-DOS. Os dispositivos /dev/cua so "callout" e so usados em conjunto com um modem. Os nomes dos dispositivos que comeam por hd acessam a discos rgidos. /dev/hda se refere a todo o primeiro disco, enquanto que /dev/hda1 se refere a primeira partio em /dev/hda. Os nomes de dispositivo que comeam com sd so dispositivos SCSI. Se voc tem um disco rgido SCSI, no lugar de acess-lo com /dev/hda, vai acess-lo com /dev/sda. As fitas SCSI so acessadas via dispositivos st e os CD-ROM SCSI via sr. Os nomes que comeam por lp acessam as portas paralelas. /dev/lp0 se refere a "LPT1" no mundo MS-DOS. /dev/null usado como "buraco negro", qualquer dado enviado a este dispositivo desaparece. Para que pode ser til isto?. Bem, se deseja suprimir a sada para a tela de um comando, pode enviar a sada para /dev/null. Os nomes que comeam por /dev/tty se referem a "consoles virtuais" de seu sistema (acessveis mediante as teclas Alt-F1, Alt-F2, etc). /dev/tty1 se refere a primeira VC, /dev/tty2 a segunda, etc. Os nomes de dispositivo que comeam com /dev/pty so "pseudoterminais". So usados para proporcionar um "terminal" a sesses remotas. Por exemplo, se sua mquina est em uma rede, o telnet de entrada usar um dos dispositivos /dev/pty.
/etc /etc contm uma srie de arquivos de configurao do sistema. Isto inclui o /etc/passwd (a base de dados de usurios), o /etc/rc (instrues de inicializao do sistema), etc.
/sbin /sbin usado para armazenar programas essenciais do sistema, usados pelo administrador do sistema.
/home /home contm os diretrios "home" dos usurios. Por exemplo, /home/otavio o diretrio do usurio "otavio". Em um sistema recm instalado, esse diretrio estar vazio.
/lib /lib contm as imagens das bibliotecas compartilhadas. Esses arquivos contm cdigo que muitos programas compartilham. Ao invs de cada programa ter uma cpia prpria das funes compartilhadas, elas so guardadas em um lugar comum, o /lib. Isso faz com que os programas executveis sejam menores e reduzam o espao usado em disco.
/proc /proc um "sistema de arquivos virtual". Os arquivos que esto no /proc residem verdadeiramente na memria, e no no disco. Esses arquivos se referem a vrios processos que rodam no sistema e permitem obter informao sobre programas e processos que esto rodando num dado momento.
/tmp
4 Unisul Tecnologia de Redes Prof. Luiz Otvio Muitos programas tm necessidade de gerar alguma informao temporria e de guardar essa informao em um arquivo temporrio. O lugar para esses arquivos o /tmp.
/usr /usr um diretrio muito importante. Contm uma srie de subdiretrios que por sua vez contm alguns dos mais importantes e teis programas e arquivos de configurao usados no sistema. Os vrios diretrios descritos acima so essenciais para o sistema operar, mas a maioria dos itens no /usr so opcionais. Entretanto, so esses itens opcionais que tornam o sistema til e interessante. Sem o /usr, voc teria um sistema tedioso que suportaria somente programas como cp e ls. O /usr contm a maioria dos pacotes grandes de software e os arquivos de configurao que os acompanham.
/usr/X11R6 /usr/X11R6 contm o sistema X Window, se voc o instalou. O sistema X Window um ambiente grfico poderoso que proporciona um grande nmero de ferramentas e programas grficos, mostrados em janelas na sua tela. Se voc est familiarizado com os ambientes MS Windows ou Macintosh, o X Window lhe ser muito familiar. O diretrio /usr/X11R6 contm todos os executveis do X Window, arquivos de configurao e suporte.
/usr/bin /usr/bin contm a maioria dos programas executveis no encontrados em outras partes, como no /bin.
/usr/etc Como o /etc, contm diferentes arquivos de configurao e programas do sistema, /usr/etc. Em geral, os arquivos que se encontra em /usr/etc no so essenciais para o sistema, diferentemente dos que se encontram no /etc.
/usr/include /usr/include contm os arquivos include para o compilador C. Esse arquivos (a maioria dos quais termina com .h, de "header") declaram estruturas de dados, subrotinas e constantes usadas no desenvolvimento de programas em C. Os arquivos que se encontram em /usr/include/sys geralmente so usados quando programando no nvel do sistema UNIX. Se voc est familiarizado com programao C, encontrar arquivos como stdio.h, o qual declara funes como printf().
/usr/lib /usr/lib contm as bibliotecas "stub" e "static" equivalentes aos arquivos encontrados em /lib. Ao compilar um programa, ele "linkado" com as bibliotecas que se encontram em /usr/lib, as quais direcionam o programa para o /lib, quando precisa buscar o cdigo real da biblioteca. Alm disso, vrios programas armazenam arquivos de configurao no /usr/lib.
/usr/local /usr/local muito parecido ao /usr. Ele contm programas e arquivos no essenciais ao sistema, mas que tornam o sistema mais completo. Em geral, os programas que se encontram em /usr/local so especficos do seu sistema, isto , o diretrio /ussr/local difere bastante entre os sistemas UNIX. Aqui encontrar grandes programas, como o TeX (sistema de formatao de documentos) e Emacs (editor grande e poderoso), se os instalar.
/usr/man Esse diretrio contm as pginas de manual. H dois subdiretrios para cada seo de pgina de manual (use o comando "man " para detalhes). Por exemplo, /usr/man/man1 contm os fontes (isto , o original no formatado) para as pginas de manual na seo 1, e /usr/man/cat1 contm as pginas de manual formatadas para a seo 1.
/usr/src /usr/src contm o cdigo fonte (programas a compilar) de vrios programas do sistema. O subdiretrio mais importante o /usr/src/linux, que contm o cdigo fonte do kernel do Linux. 5 Unisul Tecnologia de Redes Prof. Luiz Otvio
/var /var contm diretrios que freqentemente mudam de tamanho ou tendem a crescer. Muitos desses diretrios residiam antes em /usr, mas desde que estamos tratando de deixar o /usr inalterado, os diretrios que mudam de tamanho foram levados para o /var. Alguns deles so:
/var/log /var/log contm vrios arquivos de interesse para o administrador do sistema, especificamente histricos do sistema, que armazenam erros ou problemas com o sistema. Outros arquivos guardam logins do sistema, assim como tentativas frustradas.
/var/spool /var/spool contm arquivos que vo ser passados a outros programas. Por exemplo, se sua mquina est conectada a uma rede, o correio de entrada ser armazenado em /var/spool/mail at que voc o leia ou apague. Artigos novos dos News, tanto os que entram quanto os que saem, se encontram em /var/spool/news, etc.
3 Instalao de servidores (ferramenta Linux) 3.1 Principais distribuies Linux
Seguem algumas distribuies Linux tais como: Mandrake, Debian, Red Hat, Caldera, Slackware e S.u.S.E, o kernel Linux. O sofware parte da distribuio, no do Linux. A maior parte do software est disponvel livremente e pode ser portada para vrios outros UNIX. A principal diferena est no suporte de vrias bibliotecas (software chamado por cada aplicao).
3.2 Preparao para a instalao do seu servidor
A instalao de um servidor deve ser planejada anteriormente, conforme s necessidades do ambiente e a disponibilidade de recursos. Para que a instalao possa ser executada com sucesso, alguns passos devem ser seguidos: Verifique quais recursos esto disponveis; Quais as necessidades de projeto determine quanto servidores sero necessrios (primrios e secundrios) para atender ao projeto lgico; Especifique quais hosts iro assumir as funes de servidores, e se estes iro assumir mais de uma funcionalidade; Estabelea uma poltica de particionamento dos discos conforme as especificaes do item anterior, determinando quais as parties sero criadas fim atender cada servio a ser instalado nos servidores; Especifique quais mdulos de servios sero instalados; Realize a instalao conforme as especificaes acima; Realize os procedimentos de atualizao do sistema operacional (execute todos os patchs necessrios); Audite o seu servidor com a finalidade de verificar quais vulnerabilidades ele possui; Aps a realizao da auditoria, feche todas as possveis portas de entrada no sistema que no sero utilizadas. 6 Unisul Tecnologia de Redes Prof. Luiz Otvio
3.3 Estratgias de particionamento
Todos os discos rgidos necessitam ser particionados antes de serem utilizados. Quando um disco rgido particionado, uma rea especfica do mesmo est sendo designada para ser utilizada. As parties permitem que um disco rgido seja dividido para que nem todas as informaes sejam armazenadas na mesma rea. Existem dois tipos de parties no Linux: primria e estendida. As parties primrias no podem ser divididas e um disco rgido pode conter at 4 parties primrias ou trs estendidas; j as parties estendidas podem ser divididas em vrias unidades lgicas.
partio primria 1 partio primria 2 partio primria 3
Poucos usurios experientes do Linux vo aconselh-lo a criar uma partio Linux nativa e uma partio de swap e iniciar a instalao. H muitos motivos para isso, entre eles a recuperao de parties danificadas, o u atualizaes necessrias. Assim, criam-se vrias parties nativas Linux. Durante a instalao, voc deve escolher qual partio ser sua partio root (principal ou raiz). A partio root definida com "/". Quando nos referenciamos a "/dev" estamos falando de dois diretrios, "/" e "dev". O kernel do Linux estar localizado na partio /boot, podendo ser num subdiretrio, desde que este subdiretrio esteja na partio /. A seguinte estrutura (no mnimo) ser criada na sua partio root durante a instalao:
Para todos os servidores, as parties / e /boot devem ser criadas. Este item tratar as parties /var, /usr, /home.
DNS /var consiste na maior partio, pois necessria para registrar todos os acessos, manuteno de filas. /home pequeno tamanho. Poucos usurios sero criados. /usr o suficiente para armazenar os programas do sistema.
Dados /var o suficiente para armazenar os log necessrios. /home consiste na maior parte do sistema. Ir armazenar os dados dos usurios criados pelo sistema. /usr o suficiente para armazenar os programas do sistema.
Emails /var possui uma partio grande capaz de armazenar os logs e as filas (/var/mail/spool para armazenamento de emails). /home uma partio grande para armazenar os dados dos usurios de emails. /usr - o suficiente para armazenar os programas do sistema.
Web /var - possui uma partio grande capaz de armazenar os logs e as filas /home possui a maior partio; /usr - o suficiente para armazenar os programas do sistema.
3.5 A partio de swap
Diferentemente do Windows, o Linux usa uma partio dedicada de swap. Embora seja possvel criar um arquivo de swap, isto no recomendado. O Linux pode usar at 128MB de swap. Eu recomendaria um mnimo de 80MB, mas quanto mais voc puder reservar, melhor. Uma ltima considerao antes de voc decidir como melhor dividir o seu disco. Lembre-se que foi dito que a BIOS no pode ver alm do setor 1023 no disco (mais ou menos uns 512MB). Assim, o kernel do Linux (um arquivo com o provvel nome vmlinuz no seu disco de boot), ou qualquer outro kernel de um sistema operacional, devem residir integralmente em um dos primeiros dois discos (/dev/hda ou /dev/hdb) e dentro dos primeiros 1024 setores, ou a BIOS no poder carreg-los. Para assegurar-se de que isso seja possvel, planeje para fazer com que sua partio root (assim como qualquer partio de boot) caia inteiramente nesta limitao no primeiro ou segundo disco rgido. 8 Unisul Tecnologia de Redes Prof. Luiz Otvio
3.6 Correes de falhas na instalao
Os sistemas operacionais possuem scripts ou programas que tm por objetivo instalar os sistemas to rapidamente quanto possvel, com a mxima funcionalidade e com o mnimo de esforo por parte do administrador. Para atingir este objetivo, os programas normalmente instalam mais componentes do que a maioria dos usurios necessita. A filosofia do fabricante que melhor habilitar funes que no so necessrias, do que o usurio ter que instalar funes adicionais na medida que for preciso. Esta viso, embora seja conveniente para o usurio, origina a existncia de muitas das mais crticas vulnerabilidades de segurana, pois os usurios no mantm, nem corrigem componentes de software no usados. Alm disso, muitos usurios desconhecem o que realmente instalado, deixando programas perigosos no sistema, simplesmente porque eles no sabem que esto l. Estes servios vulnerveis fornecem meios para os atacantes invadirem seus sistemas. Nos sistemas operacionais, as instalaes default comumente incluem servios adicionais, abrindo conseqentemente as portas associadas a eles. justamente por estas portas que os atacantes costumam invadir. Quanto menos portas abertas, menor a probabilidade do sistema ser invadido.
3.6.1 Determine se est vulnervel
Caso tenha-se utilizado um programa para instalar um sistema ou servio, e no foram removidos os servios desnecessrios, como tambm no foram instalados todos os patches de atualizao do sistema, ento este passvel de ataques. Mesmo que se tenha seguido os procedimentos adicionais de configurao, ainda estar vulnervel. preciso que seja executada uma ferramenta de scan de portas e de vulnerabilidades contra qualquer sistema que ir ser conectado na Internet. Ao analisar os resultados, tenha-se em mente o princpio que os sistemas devem funcionar com o menor nmero de servios e de pacotes de software necessrios para executar as tarefas requeridas pelo sistema computacional. Qualquer servio adicional constitui-se em uma ferramenta para o atacante, especialmente porque a maioria dos administradores de rede no corrigem os servios que efetivamente no esto sendo usados.
3.6.2 Proteja-se
Inicialmente, desabilite servios desnecessrios e feche portas no usadas. Devido ao fato que esta pode ser uma tarefa longa e rdua, muitas das grandes organizaes desenvolveram, para cada sistema operacional e conjunto de aplicativos usados, diretrizes de instalao padronizadas. Estas diretrizes incluem a instalao das funcionalidades mnimas necessrias para que o sistema funcione de maneira eficaz (o CIS - Center for Internet Security desenvolveu um benchmark para avaliar a configurao mnima de segurana em sistemas Solaris e Windows 2000). O uso de ferramentas para testar o nvel de segurana e comparar a segurana de sistemas entre as vrias divises de uma empresa melhoram o nvel de segurana dos servios oferecidos pela Empresa.
Cuidado com senhas
9 Unisul Tecnologia de Redes Prof. Luiz Otvio A maioria dos sistemas configurada para usar senhas como a primeira, e nica, linha de defesa. A identidade do usurio (User ID) razoavelmente fcil de obter, e a maioria das companhias oferece acesso dial-up que comumente dribla o firewall. Consequentemente, se um atacante puder determinar um nome e uma senha de cliente, poder tambm ter acesso rede. Senhas fceis de adivinhar e senhas default constituem um problema grave, pior ainda so as contas sem senha. Na prtica, todas essas contas (com senhas fracas, senhas default, ou pior, sem senhas) devem ser removidas do seu sistema. Adicionalmente, muitos sistemas tm contas de usurio que fazem parte da instalao padro, as quais geralmente mantm a mesma senha em todas as instalaes do software. Os atacantes procuram geralmente por este tipo de contas, amplamente conhecidas pela comunidade 'blackhat'. Consequentemente, preciso que estas contas sejam identificadas e removidas do sistema. Mantenha procedimentos rgidos para remoo de contas de empregados ou contratados quando saem, ou quando as contas no so mais necessrias. A Poltica de Segurana da Empresa, com base na BS7799, deve prever: Uma Poltica de Senhas que estabelea procedimentos para a criao, alterao e manuteno das senhas dos seus usurios; Uma poltica de acesso, onde sero determinadas quais usurios tero acesso a que, quando e como. Porm, para eliminar os problemas de senha acima citados, duas etapas precisam ser executadas: Na primeira, todas as contas sem senhas recebem uma ou so definitivamente removidas e as senhas fracas so fortalecidas. Infelizmente, quando solicitado aos usurios fortalecerem as suas senhas, freqentemente eles escolhem outra igualmente fcil de se adivinhar. A segunda etapa consiste que as novas senhas, quando alteradas, tambm precisam ser verificadas. Existem programas especficos que no permitem alteraes de senha que no esto de acordo com a sua poltica de segurana, os mais populares so: Para Unix: Cracklib e mdulos associados do PAM (Linux) Para Windows NT: Passfilt Estes programas garantem que as senhas sejam de comprimento e composio tal que sejam difceis de serem quebradas ou descobertas. Vale a pena ressaltar que muitas organizaes, de acordo com a sua poltica de senhas, adicionam programas de controle de senha, mecanismos que garantem que as senhas sejam mudadas regularmente, e que senhas antigas no sejam reutilizadas, e ensinam aos seus usurios como criarem as suas senhas (ex: escolher uma frase ou parte de uma cano que inclua um nmero, e construir a senha da primeira ou segunda letra de cada palavra que compe a frase, alm de dgitos de quaisquer nmeros). Se a expirao de senhas for implementada, certifique-se que os usurios sejam alertados a trocar a sua senha antes dela expirar. Diante de uma mensagem do tipo: "sua senha expirou, ela deve ser mudada", a maioria dos usurios tende a escolher uma senha fraca.
Backups
Quando um incidente ocorrer (e ocorrer em quase todas organizaes), a recuperao do incidente requer backups atualizados e mtodos de recuperao dos dados previamente testados. Algumas organizaes fazem backups dirios, mas nunca verificam se eles esto realmente funcionando. Outras criam polticas e procedimentos de backup, 10 Unisul Tecnologia de Redes Prof. Luiz Otvio mas no de restaurao. Freqentemente, tais erros so descobertos somente depois que um hacker invade os sistemas e os dados so destrudos, ou arruinados de alguma outra maneira. Toda a Empresa, conforme a sua Poltica de Segurana, calcada na BS7799, deve possuir uma poltica de backup que seja compatvel com o negcio da mesma. Para isso, um inventrio deve ser feito identificando todos os servios crticos e, para cada um deles, deve ser executado uma anlise identificando o risco e a ameaa correspondente. As polticas e os procedimentos de backup devem claramente remeter a estes sistemas. Uma vez identificados os servios crticos, deve ser validado o seguinte: 1. Existem procedimentos de backup para tais servios? 2. O intervalo dos backups adequado? 3. Os backups esto sendo realizados de acordo com os procedimentos? 4. verificada a mdia usada nos backup para certificar-se que os dados esto sendo armazenados corretamente? 5. A mdia de backup est corretamente protegida, seja ela mantida dentro ou fora da empresa? 6. Existem cpias do sistema operacional e de aplicativos de restaurao que sejam armazenadas fora da empresa? 7. Os procedimentos de restaurao foram validados e testados?
Grande nmero de portas abertas Ambos, tanto os usurios legtimos quanto os atacantes, se conectam aos sistemas atravs de portas abertas. Quanto maior o nmero de portas abertas, maior a possibilidade de algum se conectar ao seu sistema. Consequentemente, importante manter o menor nmero de portas abertas necessrias para o correto funcionamento do sistema, o restante deve ser fechado. Para se proteger, os seguintes procedimentos devem ser executados: Executar o comando netstat localmente a fim de identificar quais portas esto abertas, no entanto a forma mais confivel de fazer isto utilizando uma ferramenta de scan de portas (nmap) contra os seus servios. Qualquer ferramenta scan port que for usada, ela deve ser configurada para varrer todas as portas UDP e TCP no range 1-65535 O resultado uma lista de todas as portas que esto realmente ativas. Caso os resultados obtidos atravs do netstat difiram dos obtidos usando a ferramenta de scan, preciso que se investigue o por qu. Uma vez que ambas listas coincidam, procure saber por qu cada uma das portas indicadas est aberta, e o que est sendo executado em cada uma delas. Toda porta que no puder ser justificada deve ser fechada. A lista de portas final deve ser gravada e usada para fazer auditorias regularmente, garantindo assim que no aparea nela nenhuma porta adicional. Em sistemas Unix, muitos dos servios so controlados pelo super daemon inetd e seu correspondente arquivo de configurao, inetd.conf. O arquivo inetd.conf lista os servios associados a uma determinada porta, e freqentemente usado para fechar portas. Ao remover um determinado servio do arquivo inetd.conf, reinicializando-o em seguida, se faz com que a porta associada a tal servio seja fechada. Outros servios so inicializados atravs de scripts, os quais so executados durante o processo de inicializao do sistema (tais como: /etc/rc, /etc/rc.local, ou 11 Unisul Tecnologia de Redes Prof. Luiz Otvio scripts encontrados nos diretrios /etc/rc*). Consulte a documentao do sistema para saber como desabilitar estes scripts, uma vez que o procedimento varia para cada verso Unix.
3.7 Drives do Linux
Os drives e parties do Linux recebem os seus nomes conforme uma nomenclatura mostrada a seguir. Os arquivos de dispositivos encontrados no diretrio /dev so utilizados para a comunicao com os dispositivos em seu sistema. Por exemplo, se for acessar um mouse no seu sistema, ele realizado por meio do arquivo /dev/mouse:
Dispositivo Nome do drive no Linux Primeiro disquete /dev/fd0 Segundo disquete /dev/fd1 Primeiro dispositivo IDE /dev/hda Primeiro dispositivo IDE, partio primria 1 /dev/hda1 Primeiro dispositivo IDE, partio primria 2 /dev/hda2 Primeiro dispositivo IDE, partio primria 3 /dev/hda3 Primeiro dispositivo IDE, partio primria 4 /dev/hda4 Primeiro dispositivo IDE, partio lgica 1 /dev/hda5 Primeiro dispositivo IDE, partio lgica 2 /dev/hda6 Segundo dispositivo IDE /dev/hdb Segundo dispositivo IDE, partio primria 1 /dev/hdb1 Primeiro dispositivo SCSI /dev/sda Primeiro dispositivo SCSI, partio primria 1 /dev/sda1
4 Comandos Bsicos
a - Inicializa e termina uma sesso
login cancela a sesso atual e inicia uma nova sesso logout termina sesso do usurio exit encerra a shell de comandos corrente
b - Reinicializa ou desliga o computador
reboot - reinicializa o computador halt desliga o computador
c Ajuda
man - consultas manuais -h exibe uma mensagem de ajuda -a exibe todas as pginas do manual ex: man a ls info exibe as informaes de um comnado do sistema para sair do info pressione <Q> whatis consulta manuais on line a partir de um banco de dados ex: whatis find para sair do whatis tecle <Q>
d Navegao
12 Unisul Tecnologia de Redes Prof. Luiz Otvio cd muda de diretrio pwd exibe o diretrio corrente ls ou dir exibe o contedo dos diretrios -a exeibe os arquivos ocultos -l listagem com o formato longo ex: ls a
e - Metacaracteres
? - - corresponde a todos os caracteres ex: ls se* [ ] corresponde a qq um dos caracteres entre colchetes [a-z] corresponde a uma faixa de caracteres ex: ls sessao[1-9] lista arquivos terminados pelos caracteres 1 at 9
f - Localizao de arquivos
find [caminho] [opes] <nome_arquivo> -name localiza arquivos ocultos ex: find / -name data.c grep procura em um ou mais arquivo por linhas que contm um padro de busca -i no diferencia maisculas de minsculas na procura whereis localiza o arquivo binrio, cdigo-fonte e a pgina do manual para um comando ex: whereis rpm rpm: /bin/rpm /usr/include/rpm /usr/man/man8/rpm.8 locate localiza arquivos a partir de um banco de dados ex: locate *.doc localiza todos os arquivos que terminam com a extenso .doc
g - Manipulao de arquivos e diretrios
rm [opes] <arquivos> remove arquivos -i confirmao antes de deletar -r apaga recursivamente o contedo de um diretrio mkdir [opes] <nome-diretrio> cria diretrios rmdir [opes] <diretrio> -p remove os diretrios intermedirios caso estejam vazios mv move ou renomeia arquivos e diretrios cp copia arquivos cp <or><dest> ln cria links para arquivos e/ou diretrios Cria tanto links simblicos (soft links) como diretos (hard links). Padro = links diretos -d cria link direto
h - Manipulao de terminal
echo [opes]<mensagem> envia uma mensagem para o terminal ex: echo alo clear limpa a tela do terminal virtual corrente
i - Paginao
cat concatena e exibe arquivos cat > teste01 teste pressione <Enter> pressione <Ctrl>+<D> 13 Unisul Tecnologia de Redes Prof. Luiz Otvio Criou um arquivo com o nome teste01 com o contedo teste more [opes]<arquivo> exibe arquivos texto wc faz contagem de palavras, linhas ou caracteres -l conta as linhas -c conta os caracteres do arquivo especificado -w conta as palavras do arquivo especificado $ wc cidades.txt estados.txt sort classifica as linhas dos arquivos especificados -b ignora espaos e tabulaes -d classifica em ordem de dicionrio ex: $ sort bd cidades.txt
j - Filtragem
tail [opes]<arquivo> - exibe na sada padro uma quantidade de linhas de texto a partir do final do arquivo head [opes]<arquivo> - - exibe na sada padro uma quantidade de linhas de texto a partir do incio do arquivo diff [opes]<arquivo1><arquivo2> - exibe na tela as diferenas entre dois arquivos texto -u utiliza o formato de sada unificado
k - Fracionamento, arquivamento, compactao e descompactao
tar [opes]<arquivo> - armazena ou extrai arquivos e diretrios dentro de um nico arquivo ou dispositivo gzip [opes]<arquivo>- compacta um ou mais arquivos compress [opes]<arquivo> - compacta um ou mais arquivos uncompress [opes]<arquivo> - descompacta um ou mais arquivos que foram compactados com compress gunzip [opes]<arquivo> - descompacta arquivos compactados pelos comandos gzip e compress bzip2 [opes]<arquivo> compacta um ou mais arquivos bunzip [opes]<arquivo> descompacta arquivos compactados pelos comandos gzip e compress zcat, zmore, zless, bz2cat vizualiza o contedo de arquivo texto compactado sem precisar descompactar o arquivo
5 Conceitos de permisses de arquivos
Como h tipicamente mais de um usurio num sistema Linux, este fornece um mecanismo conhecido com permisso de arquivos. Este mecanismo protege os arquivos de usurios de serem mal utilizados por outros usurios. Esse mecanismo permite que arquivos e diretrios "pertenam" ao um usurio particular. Por exemplo, como Otavio criou os arquivos em seu diretrio home, o Otavio dono desses arquivos e tem acesso a eles. O Linux tambm permite que arquivos sejam compartilhados entre usurios e grupos de usurios. Se o Otavio desejasse, ele poderia tirar o acesso a seus arquivos de forma a que nenhum outro usurio poderia acess-los. Entretanto, na maioria dos sistemas, o padro permitir que outros usurios leiam seus arquivos, mas no possam modific-los ou exclu-los de alguma forma. Cada arquivo pertence a um usurio em particular, mas os arquivos tambm pertencem a um grupo, definido de usurios do sistema. Cada usurio colocado em pelo menos um grupo quando sua conta criada. No entanto, o administrador do sistema pode conceder ao usurio o acesso a mais de um grupo. 14 Unisul Tecnologia de Redes Prof. Luiz Otvio Permisses esto divididas em trs tipos: leitura, escrita e execuo. Essas permisses podem ser concedidas a trs tipos de usurios: o dono do arquivo, o grupo ao qual o arquivo pertence, e a todos os usurios, independentemente de grupo. A permisso de leitura permite que um usurio leia o contedo do arquivo e, no caso de diretrios, liste o contedo do diretrio (usando ls). A permisso de escrita permite que o usurio escreva e/ou modifique o arquivo. Para diretrios, a permisso de escrita permite que o usurio crie novos arquivos ou exclua arquivos naquele diretrio. A permisso de execuo permite que um usurio execute um arquivo como um programa ou script de shell (o arquivo precisa ser um programa ou script de shell). Os diretrios que possuem permisso de execuo, possibilita que o usurio acesse o diretrio em questo (com o comando cd).
5.1 Interpretando permisses de arquivos
Observe o exemplo que demonstra permisses de arquivos. Usando o comando ls com a opo "-l" mostra uma listagem mais completa do arquivo, incluindo permisses de arquivos.
[/home/otavio/foo]# ls -l stuff -rw-r--r-- 1 otavio users 505 Mar 13 19:05 stuff [/home/otavio/foo]#
O primeiro campo na lista representa as permisses do arquivo. O terceiro campo o dono do arquivo (otavio) e o quarto campo o grupo ao qual o arquivo pertence (users). Obviamente, o ltimo campo o nome do arquivo (stuff). Vamos falar sobre os outros campos mais tarde. Esse arquivo pertence ao otavio, e pertence ao grupo users. A string -rw-r--r-- mostra, em ordem, as permisses concedidas ao dono do arquivo, ao grupo do arquivo, e a todo o resto. O primeiro caracter da string de permisses ("-") representa o tipo do arquivo. Um hfen ("-") significa que um arquivo comum (e no um diretrio ou driver de dispositivo). O prximos trs caracteres ("rw-") representam as permisses concedidas ao dono do arquivo, otavio. O "r" vem de "read" (leitura) e o "w" de "write" (escrita). Assim, Otavio tem permisso de leitura e escrita no arquivo stuff. Alm de permisses de escrita e leitura, h tambm a permisso de "execuo" - representada por um "x". Se um "-" listado no exemplo no lugar do "x", indicando que o Otavio no tem permisso de execuo para este arquivo. Isto est ok, visto que o arquivo stuff no um programa. Como o Otavio o dono do programa, ele mesmo pode conceder permisso de execuo para o arquivo se assim desejar. Os prximos trs caracteres ("r--"), representam as permisses de grupo no arquivo. O grupo que dono deste arquivo users. Como somente um "r" aparece aqui, um usurio que pertena ao grupo users pode ler este arquivo. 15 Unisul Tecnologia de Redes Prof. Luiz Otvio Os ltimos trs caracteres (tambm "r--") representam as permisses concedidas para qualquer usurio do sistema (alm do dono do arquivo e daqueles que pertenam ao grupo users). Novamente, como somente um "r" aparece, outros usurios podem ler o arquivo, mas no escrever ou executar.
Outros exemplos de permisses:
-rwxr-xr-x
O dono do arquivo pode ler, escrever e executar o arquivo. Usurios no grupo do arquivo, e todos os outros, podem ler e executar o arquivo
-rw-------
O dono do arquivo pode ler e escrever no arquivo. Nenhum outro usurio pode acessar o arquivo.
-rwxrwxrwx
Todos os usurios podem ler, escrever e executar o arquivo.
5.2 Modificando permisses
O comando "chmod" usado para modificar permisses de um arquivo. Somente o dono do arquivo pode mudar as permisses para o arquivo. A sintaxe do chmod "chmod {a,u,g,o}{+,-}{r,w,x} arquivos" So fornecidas uma ou mais letras indicando para quem est concedendo ou retirando permisses: todos (a, do ingls, all); usurio (u), grupo (g), ou outros (o). Depois voc especifica se est adicionando (+) ou removendo ( - ) direitos. E finalmente especifica-se o tipo de permisso: leitura (read), escrita (write), ou execuo. Alguns exemplos de comandos possveis so:
chmod a+r stuff D permisso de leitura para todos os usurios.
chmod +r stuff A mesma coisa - se nenhuma a, u, g ou o especificado, a assumido.
chmod og-x stuff Remove permisso de execuo de usurios que no o prprio dono.
chmod u+rwx stuff Permite que o dono leia, escreva e execute o arquivo.
chmod o-rwx stuff 16 Unisul Tecnologia de Redes Prof. Luiz Otvio Remove as permisses de leitura, escrita e execuo para outros usurios que no sejam o dono ou usurios do grupo.
6 O Kernel
Quando se adquire e instala uma distribuio de Linux (Conectiva, Slackware, Red Hat, Debian etc), na verdade est lidando com um pacote que contm uma srie de programas diferentes. Existe o instalador e configurador do sistema, os utilitrios padro GNU (como a shell bash e o compilador gcc), o suporte a modo grfico provido pelo projeto XFree, ambientes grficos como o KDE e o GNOME, servidores como o Apache e o Sendmail, aplicativos, bibliotecas entre muitos outros. Nenhum dos componentes acima pode ser chamado propriamente de Linux. De fato, a maior parte deles no especfico do Linux, podendo estar disponvel em diversas outras arquiteturas (ex: o servidor Apache est disponvel at mesmo para Windows). Ento, o que o Linux? Simplesmente falando, o Linux o kernel do sistema operacional includo em todas as distribuies. O que um kernel? O kernel o ncleo do sistema operacional, responsvel por traduzir as requisies de alto nvel geradas pelos aplicativos em comandos adequados aos equipamentos que esto sendo utilizados. Ele o responsvel em gerenciar o uso da memria, controlar a atribuio do tempo da CPU a todos os processos em execuo simultnea (multitarefa), gerenciar os direitos de acesso a todos os recursos de forma a garantir a segurana, fornece os servios bsicos de rede e muito mais. O kernel do Linux um software cujo desenvolvimento foi iniciado em 1991 por Linus Torvalds, e que hoje permite a execuo de todos os softwares citados anteriormente e includos na maior parte das distribuies.
6.1 O que significa uma nova verso (ex: verso 2.6)
As distribuies comerciais tentam sincronizar o lanamento de novas verses, aguardando para disponibilizar uma verso que inclua no somente a ltima verso da srie de produo anterior (ex: 2.4.x), como a mais recente da nova srie (ou uma das ltimas da srie de desenvolvimento corrente, como comum acontecer). Diversos interessados adaptam recursos da nova srie estvel para as sries anteriores, num fenmeno conhecido como backporting. H uma tempestade de pequenos bugs localizados e prontamente corrigidos nas primeiras verses da nova srie de produo, o que natural, pois o pblico usurio desta srie imensamente maior do que os que chegam a realmente testar a srie de desenvolvimento. A imprensa e os websites especializados publicam reportagens especiais sobre o lanamento do novo kernel. Em seguida procuram refazer todos os testes e benchmarks, para identificar e quantificar as melhorias. Muitos usurios iro ler a documentao existente e faro um upgrade manual bem-sucedido. Vrios deles, experientes, escolhero fazer isto em uma distribuio recente e que j inclua opcionalmente um kernel da srie 2.5, o que quase uma garantia de compatibilidade com a verso 2.6. Muitos usurios acreditaro ser capazes de fazer o upgrade manualmente sem ler nenhum manual (" s mais um kernel, ManOw"), e geraro trfego em todas as listas e fruns de Linux para perguntar por que seus sistemas esto se comportando de maneira estranha. A resposta costuma ser simples: mesmo que voc compile seu kernel corretamente, alguns aplicativos e utilitrios (exemplo: insmod, quotas e os fileutils) precisam de upgrades para manter a compatibilidade. Essa informao consta na documentao, e precisa ser vista com ateno antes de, acidentalmente, deixar o sistema em um estado instvel. Outros usurios aguardaro ansiosamente por pacotes pr-compilados para suas distribuies especficas. Outros ainda nem notaro nada, e instalaro o novo kernel sem perceber na hora do prximo upgrade programado. Essa agitao comum a todas as mudanas de verso do kernel, e algo que os veteranos j esto acostumados a apreciar. O primeiro boot com um novo kernel traz novas experincias e uma sensao de servio bem feito, difcil de descrever.
17 Unisul Tecnologia de Redes Prof. Luiz Otvio 6.1.1 Quem faz o kernel
O kernel mantido por um grande nmero de programadores espalhados pelo mundo todo que se comunicam basicamente atravs de listas de discusso via e-mail, sendo que a principal a linux-kernel. Qualquer pessoa pode ler e participar da lista, e pode-se tambm contar com resumos via web (kt.zork.net) e com uma FAQ (www.tux.org/lkml). Embora a princpio qualquer pessoa possa sugerir ou contribuir com alteraes na lista, existe uma hierarquia a ser seguida no que tange a aceitar as alteraes. Cada trecho do kernel possui um mantenedor. Este ir avaliar, aceitar ou rejeitar cada proposta referente sua rea de atuao. Posteriormente, os responsveis pela verso do kernel corrente (por exemplo, Linus Torvalds para a srie 2.5 e o brasileiro Marcelo Tosatti para a srie 2.4) tambm podero ter algo a dizer sobre aceitar ou rejeitar as alteraes. E todos os demais membros da lista podem discutir o que submetido, em um processo de desenvolvimento aberto que lembra os princpios da pesquisa acadmica ou cientfica, com discusso entre toda a comunidade. Quando h discrdia, geralmente a opinio dos lderes (principalmente Linus Torvalds) acaba prevalecendo. Mas o Linus no est sozinho neste barco. Muitos dos desenvolvedores "centrais" do kernel so nomes conhecidos na comunidade do software livre, enquanto outros so relativamente annimos. Eles chegam a se reunir pessoalmente, em eventos informais como o Kernel Summit (http://lwn.net/2001/features/KernelSummit/), para trocar experincias, combinar suas agendas e tramar para a conquista do mundo. Claro que alm dos "chefes" como Alan Cox, Andrea Arcangeli, Marcelo Tosatti e seus companheiros existem os colaboradores quase annimos que contribuem com pequenas coisas aqui e ali: adaptam um driver para suportar um novo modelo de dispositivo; corrigem um pequeno bug; melhoram o desempenho de uma rotina ou outra, e assim por diante. Na verdade voc pode contribuir para o desenvolvimento do kernel do Linux mesmo sem saber programar. Projetos como o Kernel Janitors (http://kernel-janitor.sourceforge.net/) ou o http://br.kernelnewbies.org/ concentram voluntrios para tarefas que vo desde a programao para correo de problemas especficos at a atualizao de documentao.
7 Instalao de programas
7.1 Gerenciador de pacotes
A distribuio Red Hat possui gerenciador de pacotes. O RPM (Red Hat Packet Manager) utiliza pacotes .rpm e o gerenciador de pacotes mais utilizado nas distribuies Linux. Suponha-se a seguinte situao: Os pacotes encontram-se no CD-ROM. Para instal-los, a seguinte seqncia deve ser executada: 1 mount t iso9660 /dev/cdrom /mnt/cdrom 2 find /mnt/cdrom name *rpm 3 rpm ivh <nome_pacote.rpm> -i instalao simples -v exibe detalhes da instalao -h mostra o caracter # enquanto est instalando -e desinstala pacotes -qa exibe os pacotes que esto instalados -force fora a instalao mesmo que o sistema o julgue inadequado dpkg [opes]<nome do pacote> - gerenciador de pacotes do Debian
7.2 Programas fonte - .tgz ou .tar.gz
A primeira atividade descompactar os arquivos tar xvzf <nome do arquivo> -x retira os arquivos agrupados no arquivo .tar -v exibe o nome de cada arquivo processado 18 Unisul Tecnologia de Redes Prof. Luiz Otvio -z compacta ou descompacta arquivos utilizando o comando gzip -f indica que o destino um arquivo em disco Em seguida procure um arquivo executvel chamado configure. Ele o script de configurao ./configure Depois para compilar digite make E finalmente para instalar digite make install O programa j estar instalado e pronto para funcionar
7.3 Patches
Utilizado para aplicar correes (patches) a arquivos. Suponha um arquivo com um determinado texto e distribudo a todos os usurios. Posteriormente este arquivo alterado pelo seu criador e necessita ser distribudo. diff u original.txt revisado txt > patch-1.1 Este comando cria o arquivo patch-1.1 que ser distribudo aos usurios que utilizam o original.txt. Quando os usurios receberem o arquivo de patch, colocaro o mesmo no diretrio do original.txt e executaro o comando patch < patch-1.1
7.4 APT ( Advanced Package Tool)
O APT um conjunto de ferramentas utilizadas para gerenciar os pacotes de uma distribuio Linux de maneira automatizada, de modo que, quando um programa instalado, o sistema tambm instala todos os pacotes necessrios para o funcionamento deste programa (no nativo do Red Hat).
apt-get [opes]<comando>[pacote] opes -d faz download de pacotes, mas no os instala -f repara um sistema com dependncias quebradas comando update atualiza o banco de dados local do apt-get com os arquivos install<pacote> - instala um novo pacote source<pacote> - faz o download do pacote rpm fonte para o diretrio corrente
8 Mdulos
Os sistemas operacionais evoluem e crescem a todo instante. Se todas as funcionalidades suportadas pelo sistema operacional estejam includas em seu kernel, este ser grande e de difcil manejo. Este problema pode ser resolvido modularizando as funcionalidades, que podem ser includas posteriormente conforme as necessidades do sistema. Por exemplo, o hardware varia de computador para computador, alguns possuem zip drive, outros uma determinada placa de som, etc. Existem duas opes para configurar o Linux de acordo com o seu hardware: 1 - recompilar o kernel (make xconfig em /usr/src/linux) ou 2 - adicionar mdulos ao kernel sem recompil-lo - manualmente: atravs dos comandos insmod (insere um mdulo) e rmmod (remove um mdulo). Recompilar o kernel consiste em incluir os drives de dispositivos de hardware e susistemas de software no kernel do Linux. O kernel ir crescer conforme a incluso de novos componentes. Os mdulos so programas que o kernel pode carregar na memria aps entrar em execuo. A utilizao comum de mdulos acrescentar suporte para um dispositivo, sem recompilar o kernel para cada 19 Unisul Tecnologia de Redes Prof. Luiz Otvio novo dispositivo de hardware acrescentado ao sistema. Os mdulos no precisam ser drives de dispositivos; podem ser utilizados para acrescentar novas funcionalidades ao kernel. Os mdulos do kernel esto localizados em /lib/modules/<verso_kernel>.
8.1 Comandos para o gerenciamento de mdulos
insmod carrega os mdulos requisitados aps uma pesquisa nos subdiretrios de /lib/modules/<verso_kernel>.
insmod [opes] <mdulo>
Opo Descrio
-f Fora a carga do mdulo com a verso errada do kernel. -v Exibe as operaes executadas pelo insmod.
Exemplo
# insmod ppa
rmmod descarrega o mdulo indicado. Este comando deve ser utilizado quando o mdulo no for mais necessrio.
rmmod [opes] <mdulo>
Opo Descrio
-a Remove todos os mdulos desnecessrios.
Exemplo
# rmmod ppa
modprobe carrega e descarrega um mdulo definido considerando todas as suas dependncias. Este comando extremamente poderoso e pode ser utilizado em uma srie de tarefas (como, por exemplo, testar todos os mdulos de um determinado tipo at que um seja carregado com xito). Ao contrrio do insmod, modprobe verifica o contedo do arquivo /etc/modules.conf e deve ser utilizado na carga de mdulos.
modprobe [opes] <mdulo>
Opo Descrio
-a Carrega todos os mdulos. -r Remove mdulos do kernel. -l Exibe mdulos disponveis. -c Exibe a configurao dos mdulos e sai. -v Exibe as operaes feitas pelo modprobe.
Exemplo
# modeprobe lp
20 Unisul Tecnologia de Redes Prof. Luiz Otvio lsmod exibe quais mdulos esto carregados e quem os est utilizando. Mdulos iniciados pelo servidor do kernel so identificados pela expresso autoclean, o que demonstra que eles sero removidos autmaticamente quando chegarem ao limite de tempo sem uso.
lsmod
Exemplo
# lsmod
modinfo exibe informao sobre um mdulo do kernel.
modinfo [opes] <mdulo>
Opo Descrio
-a Exibe o autor do mdulo. -d Exibe a descrio do mdulo. -p Exibe os parmetros que um mdulo pode aceitar. -h Exibe uma mensagem de ajuda. -V Exibe a verso do comando.
Exemplo
# modinfo p ne
depmod cria o arquivo /lib/modules/<verso_kernel>/modules.dep onde as dependncias de todos os mdulos so definidas. Esse arquivo necessrio para que todos os mdulos sejam carregados com as suas dependncias.
depmod [opes] <mdulo>
Opo Descrio
-a Visita todos os mdulos. -v Exibe as operaes executadas pelo depmod.
Exemplo
# depmod -a
8.2 Arquivos de configurao
/etc/modules.conf este arquivo influencia diretamente a carga de mdulos. Nesse arquivo podem ser adicionados parmetros para os mdulos que acessam o hardware diretamente.
# /etc/modules.conf alias parport_lowlevel parport_pc pre-install pcmcia_core /etc/rc.d/init.d/pcmcia start alias sound sb options opl3 io=0x388 alias midi awe_wave post-install awe_wave /bin/sfxload /etc/midi/GU11-ROM.SF2 21 Unisul Tecnologia de Redes Prof. Luiz Otvio options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
/lib/modules/<verso_kernel>/modules.dep este arquivo contm as dependncias dos mdulos.
/etc/rc.d/rc.local este script o ltimo a ser utilizado. Pode ser editado pelo usurio para permitir carga de mdulos.
#!/bin/sh # /etc/rc.d/local # This script will be executed after all the other init acripts. #You can put your own initialization stuff in here if you dont #want to do the full Sys V style init stuff. ./etc/profile.d/lang.sh if [ -f /etc/verso-conectiva ]; then R=$(cat /etc/verso-conectiva) #This is overwrite /etc/issue at every boot. So, make any changes you #want to make to /etc/issue here or you will lose them when you reboot. echo $R > /etc/issue.net if [ -x /usr/bin/linux_logo ]; then clear > /etc/issue linux_logo classic >> /etc/isssue echo >> $R >> /etc/issue echo >> /etc/issue else cat /etc/issue.net > /etc/issue fi fi
8.3 Exemplo de utilizao de mdulos
8.3.1 Instalao de ZIP-Drive de porta paralela
O zip-drive de porta paralela e a impressora de porta paralela no podem ser utilizados ao mesmo tempo, porque so usados mdulos diferentes para o controle deles. Os mdulos so:
Mdulo Descrio
lp Mdulo da impressora. ppa ou imm (modelos mais recentes) Mdulo do zip-drive.
Isto significa que quando queremos utilizar a impressora de porta paralela, devemos carregar o mdulo lp e remover o mdulo ppa; e quando queremos usar o zip-drivede porta paralela, devemos carregar o mdulo ppa e removerf o mdulo lp. Para instalar o zip-drive, os seguintes passos devem ser seguidos:
a) Edite o arquivo /etc/modules.conf e inclua no final a linha: alias scsihostadapter ppa
b) Crie um diretrio para o zip-drive com o comando: # mkdir /mnt/zip 22 Unisul Tecnologia de Redes Prof. Luiz Otvio
c) Caso esteja utilizando uma impressora de rede e deseja-se utilizar sempre o zip-drive de porta paralela, pode-se inserir a seguinte linha no final do arquivo /etc/rc.d/rc.local: /sbin/modprobe ppa
d) Para adicionar o zip-drive, utiliza-se os seguintes comandos: # rmmod lp # modprobe ppa # mount -t ext2 /dev/sda4 /mnt/zip ou # mount -t msdos /dev/sda4 /mnt/zip
O zip-drive de porta paralela considerado um dispositivo SCSI.
Se o disco do zip-drive no estiver formatado, pode-se usar os comandos: # mkfs -t ext2 /dev/sda4 ou # mkfs -t msdos /dev/sda4
Para adicionar a impressora, utiliza-se os seguintes comandos: # umount /mnt/zip # rmmod ppa #modprobe lp
O usurio comum s poder montar o dispositivo se o mdulo ppa tiver sido carregado previamente pelo superusurio root.
8.3.2 Instalao de mdulos CD-RW IDE
O CD-RW IDE considerado um dispositivo SCSI, sendo necessrio a pr-carga dos mdulos SCSI na inicializao do Linux para o seu funcionamento.
Arquivos de configurao
Edite o arquivo /etc/rc.d/rc.local e insira no final as seguintes linhas: /sbin/rmmod ide-cd /sbin/modprobe sg /sbin/modprobe ide-scsi
Edite o arquivo /etc/fstab e insira no final a seguinte linha: /dev/cdrw /mnt/cdrw isso 9660 defauts,user,noauto 0 0
Instalao e teste
Execute os seguintes comandos: # rmmod ide-de Remove o mdulo cdrom IDE. # modprobe sg 23 Unisul Tecnologia de Redes Prof. Luiz Otvio Carrega mdulo de emulao SCSI. #modprobe ide-scsi Carrega mdulo cdrom SCSI. #mkdir /mnt/cdrw Cria ponto de montagem para o CD-RW. #rm /dev/cdrom Remove o link simblico para o dispositivo cdrom IDE. #ln -s /dev/sr1 /dev/cdrw Cria o link simblico para o dispositivo cdrw SCSI emulado.
Para testar, execute o comando: # cdrecord -scanbus
Se tudo correr bem, ir aparecer algo como: Cdrecord 1.9 (i686-pc-linux-gnu) Copyright (C) 1995-2000 Jrg Schilling Linux sg driver version: 2.1.39 Using libscg version schily-0.1 Scsibus0: 0,0,0 0) IDE CD-ROM TW 160D 1.00 Removable CD-ROM 0,1,0 1)LG CD-RW CED-8080B 1.06 Removable CD-ROM 0,2,0 2)* 0,3,0 3)* 0,4,0 4)* 0,5,0 5)* 0,6,0 6)* 0,7,0 7)*
9 Editores de texto
9.1 Editor vi
$ vi ou $ vi <arquivo> Modo de linha : + q sai do vi sem salvar : + q + ! sai do vi forado sem salvar : + w salva o arquivo corrente : + w + <nome do arquivo> salva o arquivo com o nome do arquivo X apaga o caracter corrente D + D apaga a linha corrente Pesquisa /padro pesquisa padro para frente /repete a pesquisa para frente
9.2 Editor mcedit
$ mcedit ou $ mcedit <arquivo> F1 exibe ajuda F2 salva arquivo corrente F3 marca incio e fim do bloco F7 procura texto F9 abre menu F10 sai do mcedit 24 Unisul Tecnologia de Redes Prof. Luiz Otvio
10 SHELL
Shell o nome genrico de uma classe de programas que funcionam como interpretador de comandos e linguagem de programao script (interpretada) no Unix. Os shells mais populares so bash, csh, tcsh, ksh e zsh. O shell a interface entre o usurio e o kernel do sistema operacional. O usurio escolhe quais dos shells disponveis vai utilizar. O padro do linux o bash. O shell executado em um ambiente controlado pelas variveis de ambiente, que so definies e valores que o shell e outros programas utilizam para a configurao no momento que realizado o login e que esto localizados em arquivos de configurao que variam de shell para shell. Dois tipos de variveis de ambiente que podem ser definidas: Variveis de ambientes locais disponveis somente para o shell corrente, no sendo disponveis pelos subprocessos. Variveis de ambiente globais - disponveis tanto para o shell corrente, quanto para os subprocessos que venham fazer uso delas.
10.1 Comandos de manipulao das variveis de ambiente
echo <$var de ambiente> - exibe o valor da var de ambiente export <var ambiente>[=valor] torna a var de ambiente global ex: $ Editor=/usr/bin/pico Define a var de ambiente local EPOC $ export EPOC torna global a var de ambiente EPOC $ export Editor=/usr/bin/pico define a var de ambiente EPOC e a torna global unset <var de ambiente> - exclui o valor de uma var de ambiente
10.2 As variveis do ambiente bash
Quando se atribui um valor a uma varivel, utilizando-se o operador = (igual), pode-se acessar essa varivel antecedendo o nome com $. $ Mengo = 20 $ echo Mengo $ 20
printenv exibe a lista das var de ambiente (tradicionalmente em letra maiscula)
Algumas variveis de ambiente
Varivel Descrio EDITOR Editor padro do sistema HOME Diretrio home do usurio atual LOGNAME Nome de login do usurio atual MAIL Diretrio que contm as msg de correio eletrnico recebidas PATH O caminho ou caminhos para procurar comandos SHELL Nome da shell atualmente em uso TERM Tipo do terminal em uso USER Nome do login do usurio final
PATH indica os lugares onde o bash ir procurar programas executveis 25 Unisul Tecnologia de Redes Prof. Luiz Otvio Ex: $echo $PATH $cat > teste clear echo alo Tecle <enter> Tecle <Crtl> + <D> Chmod u+x torna o arquivo executvel teste no ir executar e ir gerar msg de erro ./teste alo $PATH=$PATH:/home/user teste alo
chsh [opes][usurio]- alterar o shell default que iniciado no login -l lista os shells disponveis -s<shell> - especifica o nome do shell executvel a ser utilizado. $chsh l $chsh s /bin/csh $chsh s /bin/csh otavio
10.3 Aliases (sinnimos ou apelidos)
alias [sinnimo=comando] cria um alias para um determinado comando Ex:$ alias zera=clear unalias <sinnimo> - desfaz o alias
10.4 Redirecionamento e pipes Entrada padro de dados (stdin) dispositivo ao qual os programas obtm dados de entrada para executar em suas tarefas. Sada padro de dados (stdout) - dispositivo ao qual os programas normalmente enviam os seus resultados de execuo. Sada padro de erros (stderr) dispositivo para o qual mensagens e dados decorrentes de erros ocorridos na execuo de programas so executados.
Comando > arquivo redireciona a sada padro Comando < arquivo redireciona a entrada padro Comando >> arquivo concatena a sada padro Comando << arquivo concatena a entrada padro Comando 2> arquivo redireciona a sada padro de erro Comando 2>> arquivo concatena a sada padro de erro Comando | Comando pipe permite conectar a sada de um comando na entrada de outro Ex: $cat > arq teste Enter CTRL D $cat arq > arq1 $cat <arq $cat <arq1 $cat arq >> arq1 $ls | more
26 Unisul Tecnologia de Redes Prof. Luiz Otvio 10.5 Arquivos de configurao do comando bash
/etc/shells contm os shells e programas que podem ser escolhidos pelo comando chsh. /etc/profile define as variveis de ambiente para todos os usurios. executado automaticamente no login. /home/<user>/.bash_profile define as variveis de ambiente para o usurio user. executado automaticamente no login. /etc/bashrc define todos os aliases para todos os usurios. executado automaticamente no momento de inicializao do shell. /home/<user>/.bashrc define os aliases para o usurio user. . executado automaticamente no momento de inicializao do shell. /home/<user>/.bash_logout - Executa os comandos presentes no arquivo de bash_logout
10.6 Programao Shell
O shell mais do que uma interface para a execuo de comandos pelos usurios. Trata-se de uma linguagem de programao interpretada com estruturas de controle de alto nvel capaz de resolver vrios problemas sem recorrer a linguagens de programao compilada como o C.
10.6.1 Shell scripts
Pode-se escrever programas de shell criando arquivos script contendo sries de comandos de shell. 1 a linha #!<comando shell> indica ao kernel que o arquivo script executvel. Para a shell bash a 1 a linha : #!/bin/bash Deve-se tambm especificar que os arquivo script executvel mudando as permisses: # chmod u+x <shell_scripts>
10.6.2 Quoting
Serve para evitar a substituio de variveis ou remover o significado dos caracteres especiais e palavras reservadas do shell, permitindo que estes sejam utilizados literalmente. Os caracteres (aspas simples), (aspas duplas) e \ (barra invertida). Ex: $ echo voc tem ls | wc l arquivos em pwd voc tem 50 arquivos em /home/otavio $ echo o valor de \$x eh $x o valor de $x eh 210
10.6.3 Formas de comando
;\ #comando1;\ comando2;\ comando3;\ comando4 Comando & Executa o comando em segundo palno $netscape & Comando1;comando2 Executa mltiplos comandos em seqncia e na mesma linha separados por ; $cd;ls (comando1;comando2) Subshell; trata comando1 e comando2 como um grupo de comandos $(date;who) > arquivo1 27 Unisul Tecnologia de Redes Prof. Luiz Otvio Comando1|comando2 Pipe; utiliza a sada do comando1 como entrada para o comando2 $ls la | more Comando1comando2 Substituio de comandos; utiliza a sada do comando2 como argumento para o comando1 $vi grep l ifdef *.c Comando1$(comando2) Substituio de comandos Comando1&&comando2 Executa o comando2 se o comando1 for bem sucedido Comando1||comando2 Executa o comando2 se o comando1 falhar (comando1;comando2) Executa os comandos no shell corrente
10.6.4 Operadores
!, ~ Negao lgica, complemento de 1 (utilizado em operaes com bits) *, /, % Multiplicao, diviso e mdulo +, - Adio e subtrao <<, >> Deslocamento de bit a esquerda e deslocamento de bit a direita x le y ou <=; x ge y ou >= Menor que ou igual a e Maior que ou igual a x lt y ou <, x gt y ou > Maior que e menor que x eq y ou ==, x ne y ou != Igualdade e desigualdade & AND (utilizado em operaes com bits) ^ Exclusive OR (utilizado em operaes com bits) | OR (utilizado em operaes com bits) && AND lgico || OR lgico = Atribuio de valor
Variveis especiais so pr-definidas pelo shell bash quando ele incializado. Elas permitem referenciar parmetros na linha de comando.
$# Nmero de parmetros passados $n Argumento na linha de comando onde n varia de 1 at 9 $* Todos os parmetros separados por espaos em branco
10.6.5 Teste de Condies
-nt Arquivo1 mais novo que arquivo2 -ot Arquivo1 mais velho que arquivo2 -z string String de tamanho zero -n string String de tamanho maior que zero string1 = string2 As strings so iguais string1 != string2 As strings so diferentes !expresso Expresso falsa expresso1 a expresso2 Expresso1 AND expresso2 expresso1 o expresso2 Expresso1 OR expresso2
10.6.6 Substituio do Til
O til substitudo pelo contedo da varivel HOME (o diretrio inicial do usurio) somente quando est no incio de uma palavra. $ echo ~ 28 Unisul Tecnologia de Redes Prof. Luiz Otvio /home/otavio
10.6.7 Expanses
So combinaes de elementos distintos para gerar strings maiores ou resultados de operaes aritmticas. a) expanso de chaves a combinao de todos os elementos entre as chaves, separados por vrgulas. $ echo pa{r, ranoi}a para paranoia $echo {a,o} {,s} a as o os b) expanso aritmtica $ echo $((4*7)) 28
10.6.8 Entrada interativa
read <linha> l uma linha da entrada-padro echo n no imprime mudana de linha aps a mensagem. #!/bin/bash echo n Digite o seu nome: read NOME SOBRENOME echo Prazer em conhec-lo $NOME!
10.6.9 Expresses aritmticas
let <expresso> #!/bin/bash echo n Entre com dois nmeros: read A B let C=0 let C=A+B echo $((C))
10.6.10 Estruturas condicionais
if <expresso1> then lista de comandos elif <expresso2> then lista de comandos else comandos alternativos fi
#!/bin/bash SDATA=$(date +%H) if [ $SDATA ge 6] && [ $SDATA le 11]; then echo Bom dia! 29 Unisul Tecnologia de Redes Prof. Luiz Otvio elif [ $SDATA ge 12] && [ $SDATA le 18]; then echo Boa tarde! elif [ $SDATA ge 19] && [ $SDATA le 23]; then echo Boa noite! fi
case <valor> in padro1) lista de comandos1;; padro2) lista de comandos2;; *) lista de comandos;; esac
#!/bin/bash echo n Entre com um nmero de 1 a 9: read NUMERO case $NUMERO in 1 | 3 | 5 | 7 | 9) echo Seu nmero ($NUMERO) mpar.;; 2 | 4 | 6 | 8) echo Seu nmero ($NUMERO) par.;; *) echo Foi solicitado um nmero de 1 a 9;; esac
10.6.11 Estruturas de lao
for <varivel> in <lista de valores> do lista de comandos done
#!/bin/bash for x in $* do echo n \$x\, done echo e \b
while <expresso> do lista de comandos done
#!/bin/bash A=10 while [$A gt 0] do echo $A A=$[$A 1] done
until executa os comandos do lao at que a <expresso> seja verdadeira 30 Unisul Tecnologia de Redes Prof. Luiz Otvio until <expresso> do lista de comandos done
trap executa uma ao ao receber um sinal trap <comando1>;<comando2>
exit sai de um script com o cdigo de sada n, n pode ser 0 (sucesso) ou diferente de 0 (fracassado). Se n no for especificado, o cdigo de sada ser o mesmo do ltimo comando executado.
10.7 Funes
function <nome da funo> () {lista de comandos} ou <nome da funo> () {lista de comandos} #!/bin/bash #esta funo calcula o fatorial de um nmero fatorial ( ) { let A=1 while [ $N gt 0 ] do let A=A* N let N=N-1 done echo $A } echo n Entre com o nmero: read N echo fatorial $N exit
10.8 Exerccios:
1. Atribua um valor a uma varivel qualquer e depois execute uma outra shell (simplesmente digitando bash). O valor desta varivel est disponvel neste outro ambiente? Por que? 2. Faa um script que o sistema informe as horas.
#!/bin/bash echo Agora so date + %H horas e date + %M minutos
3. Faa um script que o sistema informe o nome da sua conta, as horas, o diretrio corrente e o seu contedo:
#!/bin/bash echo O nome da sua conta whoami echo Agora so date + %H horas e date + %M minutos echo O diretrio que voc est pwd echo Os arquivos neste diretrio so: ; ls -aF
4. Implemente um script que receba um valor numrico de entrada. Este nmero deve ser maior ou igual a 0 e menor ou igual a 15; compare este valor de entrada com 7, informando se ele maior, menor ou igual a 7. 31 Unisul Tecnologia de Redes Prof. Luiz Otvio 5. Implemente um script para listar o contedo de um diretrio e apresentar o nmero total de arquivos. 6. Implemente um pequeno script de boas vindas ao usurio quando acessar o sistema. Estas boas vindas devem ser dependentes do horrio; deve ainda informar o nome da conta do usurio e a hora.
11 Processo INIT
O processo init o primeiro programa executado pelo kernel de qualquer sistema operacional UNIX na sua inicializao. No momento em que o computador ligado ou reinicializado, o BIOS procura no primeiro setor do disco (master boot record). Selecionado para a carga do sistema operacional um programa para executar, que ser o carregador do sistema operacional (boot loader). O LILO e o GRUB so programas de carga do sistema operacional mais comuns no Linux. Eles permitem selecionar qual partio ser utilizada para a carga do sistema operacional, possibilitando assim a escolha de mltiplos sistemas operacionais ou mesmo verses diferentes do kernel do Linux. Depois de carregado na memria principal, o kernel do linux, normalmente compactado, descompactado antes de iniciar a sua execuo. Logo em seguida exibida uma srie de mensagens enviadas pelo kernel, durante a deteco e configurao do hardware existente no computador. Depois de concluir a deteco e configurao do hardware, o kernel monta o root filesystem (o diretrio /) a partir de um parmetro fornecido ao LILO pelo seu arquivo de configurao, /etc/lilo.conf ou ao GRUB pelo seu arquivo de inicializao /boot/grub/menu.lst, e executa o processo init, que o pai de todos os processos, carregando o programa /sbin/init. Todos os outros processos so denominados como sendo filhos deste e so monitorados pelo init. Este o ltimo processo que no pode ser abortado.
11.1 SysV init
Na inicializao SysV init, o processo init troca o estado do kernel para multitarefa e l o arquivo /etc/inittab, definindo o nvel de execuo o Linux inicializar a seqncia de shells scripts. Os nveis de execuo definem como o sistema operacional inicializar. 0 halt 1 monousurio 2 multiusurio, sem NFS 3 multiusrio com NFS 4 reservado 5 X11 6 - Reboot Os shells scripts de inicializao esto localizados no diretrio /etc/rc.d. Neste diretrio so encontrados os scripts de inicializao rc.sysinit, rc, rc.serial, rc.local e os diretrios init.d, rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d e rc6.d. Abrir o arquivo /etc/inittab: [id]:[nveis_de_execuo]:[ao]:[processo] no arquivo /etc/inittab 10:0:wait:/etc/rc.d/rc0.d O init.d possui vrios scripts de inicializao. Cada um dos scripts aceita argumentos como start, stop, restart e status. Ex: ./httpd start Os diretrios rc0.d a rc6.d contm links simblicos para os scripts de inicializao exeistentes no diretrio init.d. Seqncia de inicializao SysV init Processo init l o arquivo /etc/inittab e define o nvel de execuo do sistema Processo init executa o script /etc/rc.d/rc.sysinit O script /etc/rc.d/rc.sysinit executa o script /etc/rc.d/rc.serial (caso exista). O processo init executa o script /etc/rc.d/rc que recebe o nvel de execuo do init como parmetro. O script /etc/rc.d/rc executar os scripts de um dos diretrios: /etc/rc.d/rc0.d a /etc/rc.d/rc6.d 32 Unisul Tecnologia de Redes Prof. Luiz Otvio O processo init executa o script /etc/rc.d/rc.local. O processo init executa processos mingetty para configurar os terminais. 1:2345:respawn:/sbin/mingetty tty1 (linha encontra-se no /etc/inittab) 11.2 Comandos service e ntsysv
service inicializa, interrompe e reinicializa um servio. service <servio> <ao> ex: service http start
ntsysv gerenciador de servios de inicializao em forma de menu.
11.3 Desligando o sistema
Parada imediata #shutdown h now ou #init 0 ou #halt
Reboot imediata #shutdown r now ou #init 6 ou #reboot
Reboot daqui a 5 minutos #shutdown r +5
Somente para um alerta aos usurios #shutdown k now
Com uma mensagem personalizada para os usurios #shutdown h +5 O sistema sair do ar em 5 minutos.
11.4 Perda da senha de root
No LILO Ao ligar a mquina, quando aparecer o prompt LILO boot, digite: linux single Pressione <enter>, o sistema iniciar no modo monousurio e o superusurio root ser logado automaticamente sem pedir a senha, e ento basta executar o comando: #passwd Para definir uma senha nova ao superusurio.
No GRUB Ao ligar a mquina, quando aparecer a tela do GRUB, selecione o Linux e pressione <e>. Ento aparecer a linha de comando de inicializao onde dever ser includo o nmero 1 ao final da linha. Para isso pressione <e> novamente para editar a linha de comando e adicione um espao e o nmero 1 no final da linha. 33 Unisul Tecnologia de Redes Prof. Luiz Otvio Agora basta pressionar <enter> e depois <b> que o computador ir iniciar no modo monousurio e o superusurio root ser logado automaticamente sem pedir a senha, e ento basta executar o comando: #passwd Para definir uma senha nova ao superusurio.
12 Gerenciamento de sistemas de arquivos
Sistema de arquivos pode ser definido como uma estrutura criada no disco rgido (formatao lgica) que, aps o particionamento permite que arquivos sejam criados, removidos, copiados, etc. Enquanto a partio possibilita o sistema operacional gravar as informaes nesta rea do disco rgido, um sistema de arquivos criado no disco rgido quando formatado. O linux suporta vrios sistemas de arquivos, sendo os principais ext2, ext3, reiserfs e swap. Existem dois tipos de formatao: baixo nvel tambm chamada de fsica, so criadas as trilhas e os setores do disco; e alto nvel tambm chamada de lgica, criado o sistema de arquivos.
Particionar um disco fdisk [opes] [dispositivo] cria as parties no disco rgido -l exibe as parties e sai -s exibe o tamanho da partio, a menos que seja uma partio MS-DOS
Configura parties de swap mkswap [-c] <dispositivo> [tamanho em blocos] -c verifica se o dispositivo contm blocos ruins antes de criar o sistema de arquivos
swapon [opes] [dispositivos] e swapoff [opes] [dispositivos] habilita e desabilita a partio de swap.
Criando um sistema de arquivos Mkfs [opes] <dispositivo> cria um sistema de arquivos em um dispositivo de armazenamento -v exibe as operaes que o comando mkfs executa -c verifica a existncia de blocos ruins -t <tipo sist> sistema de arquivos ex: # mkfs t ext2 /dev/hdb1
Formatao baixo nvel fdformat [opes] <dispositivo> <tipo drive> - efetua a formatao de baixo nvel de um disco flexvel, sem criar um sistema de arquivos
Montando e desmontando discos mount [opes] <dispositivos> <ponto de montagem> -h exibe uma mensagem de ajuda
#mount t ext2 /dev/fd0 /mnt/floppy
umount <dispositivos> ou <ponto de montagem>
Verificando espao livre df [opes] [dispositivos] verifica o espao no disco
Verificando o tamanho de arquivos e diretrios du [opes] [arquivo ou diretrios] informa o espao ocupado pelos arquivos ou diretrios
Verificao e reparo de um sistema de arquivos fsck [opes] <dispositivo> - verifica e repara um sistema de arquivos em um dispositivo de armazenamento
#fsck t ext2 /dev/hdb1
34 Unisul Tecnologia de Redes Prof. Luiz Otvio Montando automaticamente sistemas de arquivos: /etc/fstab
O arquivo fstab possui entradas de dispositivos e/ou parties que contm os sistemas de arquivos. possvel adicionar mais dispositivos e/ou parties editando o arquivo. 1 a coluna dispositivo. o arquivo a ser montado. 2 a coluna ponto de montgem 3 a coluna sistema de arquivos 4 a coluna especifica as opes de montagem default motagem padro do dispositivo exec permite que os programas sejam executados a partir do dispositivo noexec no permite que os programas sejam executados a partir do dispositivo auto monta o dispositivo automaticamente na inicializao no auto o dispositivo deve ser especificado para a montagem users permite que usurios comuns montem o dispositivo no users no permite que usurios comuns montem o dispositivo rw monta o dispositivo para leitura e gravao ro monta o dispositivo somente para leitura 5 a coluna dump do dispositivo 0 no faz dump do dispositivo 1 faz dump do dispositivo 6 a coluna verificao e reparo do dispositivo 0 no faz verificao e reparo do dispositivo 1 faz verificao e reparo do dispositivo (ex: fsck)
Permitindo que usurios comuns montem e desmontem sistemas de arquivos Drive de 3
Mude a linha /dev/fd0 /mnt/floppy ext2 defaults, noauto 0 0
Para /dev/fd0 /mnt/floppy ext2 defaults, noauto, user 0 0
Criando disquetes de inicializao (boot)
mkbootdisk [opes] <verso kernel> - cria um disquete de inicializao com o LILO --device <dispositivo> especifica o dispositivo onde ser criado o disquete de boot --verbose exibe as mensagens do programa durante a criao do disquete de incializao
# mkbootdisk verbose device /dev/fd0 2.4.18-3
13 Configurao do TCP/IP no Linux
Instalando uma mquina em uma rede existente. Se voc quiser instalar uma mquina GNU/Linux em uma rede TCP/IP existente ento voc deve contatar qualquer um dos administradores da sua rede e perguntar o seguinte:
Endereo IP de sua mquina Nome da Mquina Endereo IP da rede Endereo IP de broadcast Mscara da Rede IP Endereo do Roteador Endereo do Servidor de Nomes (DNS)
35 Unisul Tecnologia de Redes Prof. Luiz Otvio Voc deve ento configurar seu dispositivo de rede GNU/Linux com estes detalhes. Voc no pode simplesmente escolh-los e esperar que sua configurao funcione. 13.1 13.2 Configurao da interface Ethernet
As interfaces de rede no GNU/Linux esto localizadas no diretrio /dev e a maioria criada dinamicamente pelos softwares quando so requisitadas. Este o caso das interfaces ppp e plip que so criadas dinamicamente pelos softwares. Abaixo a identificao de algumas interfaces de rede no GNU/Linux (o ? significa um nmero que identifica as interfaces seqencialmente, iniciando em 0):
eth? - Placa de rede Ethernet e WaveLan. ppp? - Interface de rede PPP (protocolo ponto a ponto). slip? - Interface de rede serial plip? - Interface de porta paralela fddi? - Interfaces de rede FDDI. dlci??, sdla? - Interfaces Frame Relay, respectivamente para para dispositivos de encapsulamento DLCI e FRAD. tr? Interface Token Ring eql - Balanceador de trfego para mltiplas linhas
13.3 A interface loopback
A interface loopback um tipo especial de interface que permite fazer conexes com voc mesmo. Todos os computadores que usam o protocolo TCP/IP utilizam esta interface e existem vrias razes porque precisa fazer isto, por exemplo, voc pode testar vrios programas de rede sem interferir com ningum em sua rede. Por conveno, o endereo IP 127.0.0.1 foi escolhido especificamente para a loopback, assim se abrir uma conexo telnet para 127.0.0.1, abrir uma conexo para o prprio computador local. A configurao da interface loopback simples e voc deve ter certeza que fez isto (mas note que esta tarefa normalmente feita pelos scripts de inicializao existentes em sua distribuio).
[root@zion:~]# ifconfig lo 127.0.0.1
Caso a interface loopback no esteja configurada, voc poder ter problemas quando tentar qualquer tipo de conexo com as interfaces locais, tendo problemas at mesmo com o comando ping. Depois de configurada fisicamente, a interface precisa receber um endereo IP para ser identificada na rede e se comunicar com outros computadores, alm de outros parmetros como o endereo de broadcast e a mscara de rede. O comando usado para fazer isso o ifconfig (interface configure). Para configurar a interface de rede Ethernet (eth0) com o endereo 192.168.1.1, mscara de rede 255.255.255.0, podemos usar o comando:
[root@zion:~]# ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
O comando acima ativa a interface de rede. A palavra up pode ser omitida, pois a ativao da interface de rede o padro. Para desativar a mesma interface de rede, basta usar o comando:
[root@zion:~]# ifconfig eth0 down
Digitando ifconfig so mostradas todas as interfaces ativas no momento, pacotes enviados, recebidos e colises de datagramas. Para mostrar a configurao somente da interface eth0, use o comando: ifconfig eth0
13.4 Configurando uma interface durante o boot
36 Unisul Tecnologia de Redes Prof. Luiz Otvio As interfaces de rede podem ser configuradas automaticamente durante o boot. Para isso existem os arquivos /etc/sysconfig/network-scripts/ifcfg-*. Veja por exemplo o ifcfg-eth0:
13.5 Definindo diversos endereos IP para a mesma interface
Este interessante e til recurso do GNU/Linux conhecido como IP Aliasing e permite fazer nossa interface de rede local responder por diversos endereos IP diferentes, mesmo sendo de classes de rede diferentes. Para usurios externos, a impresso que a rede tem "muitas" mquinas, quando na realidade apenas uma responde por todos estes endereos virtuais. Este recurso a base para a construo de Mquinas virtuais baseadas em endereo IP (usado por daemons como Apache, proftpd e outros). A configurao deste recurso simples, supondo que temos a interface eth0 com o endereo atual 192.168.1.1: Digite ifconfig eth0:0 192.168.1.10 netmask 255.255.255.0 - Isto cria um apelido para a placa de rede, chamado eth0:0, que responder as requisies para o endereo 192.168.1.10. Execute o comando ifconfig (sem parmetros) para verificar se a nova interface foi ativada. Voc dever ver algo como:
eth0:0 Encapsulamento do Link: Ethernet Endereo de HW 00:80:AE:B3:AA:AA inet end.: 192.168.1.10 Bcast:192.168.1.255 Masc:255.255.255.0 UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1 IRQ:10 Endereo de E/S:0x300
Note que o endereo de Hardware o mesmo para ambos os dispositivos (porque a mesma placa de rede est respondendo endereos diferentes). Se necessrio ajuste as rotas ou gateway com o comando route. 37 Unisul Tecnologia de Redes Prof. Luiz Otvio Podem ser especificados quantos apelidos voc quiser e para qualquer faixa de endereos que desejar:
Para desativar uma interface virtual, utilize o comando:
[root@zion:~]# ifconfig eth0:1 down.
ATENO: Quando voc desativa uma interface fsica (eth0), todas as interfaces virtuais tambm so desativadas.
13.6 Configurando uma rota no Linux
A configurao da rota feita atravs da ferramenta route. Para adicionar uma rota para a rede 192.168.1.0 acessvel atravs da interface eth0 basta digitar o comando:
[root@zion:~]# route add -net 192.168.1.0 eth0
Para apagar a rota acima da tabela de roteamento, basta substituir a palavra add por del. A palavra net quer dizer que 192.168.1.0 um endereo de rede para especificar uma mquina de destino, basta usar a palavra -host. Endereos de mquina de destino so muito usadas em conexes de rede apenas entre dois pontos (como ppp, plip, slip). Por padro, a interface especificada como ltimo argumento. Caso a interface precise especificada em outro lugar, ela dever ser precedida da opo -dev. Para adicionar uma rota padro para um endereo que no se encontre na tabela de roteamento, utiliza-se o gateway padro da rede. Atravs do gateway padro possvel especificar um computador (normalmente outro gateway) que os pacotes de rede sero enviados caso o endereo no confira com os da tabela de roteamento. Para especificar o computador 192.168.1.1 como gateway padro usamos:
O gateway padro pode ser visualizado atravs do comando route -n e verificando o campo gateway. A opo gw acima, especifica que o prximo argumento um endereo IP (de uma rede j acessvel atravs das tabelas de roteamento). O computador gateway est conectado a duas ou mais redes ao mesmo tempo. Quando seus dados precisam ser enviados para computadores fora da rede, eles so enviados atravs do computador gateway e o gateway os encaminham ao endereo de destino. Desta forma, a resposta do servidor tambm enviada atravs do gateway para seu computador ( o caso de uma tpica conexo com a Internet). A configurao ficaria assim:
Todo o processo de automatizao da rede encontra-se em: /etc/init.d/network ou /etc/rc5.d/S10network. Ex: automatizar o processo de um alias para uma interface e tornar a mquina capaz de rotear pacotes ipv4. Cria-se um script: #!/bin/bash ifconfig eth0:1 192.12.23.1 netmask 255.255.255.0 echo 1 > /proc/sys/net/ipv4/ip_forward 38 Unisul Tecnologia de Redes Prof. Luiz Otvio
Torne este arquivo executvel, e insira no arquivo /etc/init.d/network, na penltima linha, antes do comando exit. Para verificar se surtiu efeito a alterao, digite no diretrio /etc/init.d o comando ./network. Este arquivo ser executado. Verifique se surtiu efeito a alterao digitando simplesmente ifconfig. Outra forma de configurar a rede, endereos IP, gateways, etc, utilizar o aplicativo netconfig.
13.8 Hostname
Todas as mquinas que integram uma rede TCP/IP devem ter um nome pelo qual so conhecidas pelas outras mquinas da rede. Esse nome chamado de hostname. O comando utilizado para se configurar o hostname o hostname. [root@zion:~]# hostname zion.admredes
Para verificar o nome da mquina, usa-se o comando hostname sem parmetros:
[root@zion:~]# hostname zion.admredes
O hostname tambm pode ser configurado automaticamente durante o boot, atravs do arquivo /etc/sysconfig/network. Vejamos um exemplo:
Com esse arquivo, o nome da estao vai ser inicializado automaticamente durante o boot.
Arquivos de configurao
13.9 O arquivo /etc/hosts
Este arquivo contm uma relao entre o endereo IP e o nome de computadores. A incluso de um computador neste arquivo dispensa a consulta de um servidor de nomes para obter um endereo IP, sendo muito til para mquinas que so acessadas freqentemente. A desvantagem de fazer isto que voc mesmo precisar manter este arquivo atualizado e se o endereo IP de algum computador for modificado, esta alterao dever ser feita em cada um dos arquivos hosts das mquinas da rede. Em um sistema bem gerenciado, os nicos endereos de computadores que aparecero neste arquivo sero da interface loopback e os nomes de computadores.
Voc pode especificar mais que um nome de computador por linha como demonstrada pela primeira linha, a que identifica a interface loopback.
13.10 O arquivo /etc/networks
39 Unisul Tecnologia de Redes Prof. Luiz Otvio O arquivo /etc/networks tem uma funo similar ao arquivo /etc/hosts. Da mesma forma que cada mquina da rede pode ter um nome, as prprias redes tambm podem ter nomes. Esse arquivo serve para fazer a relao entre nomes de redes e nmero IP. Ele contm um banco de dados simples de nomes de redes contra endereos de redes. Seu formato consiste em dois campos por linha e seus campos so identificados como:
Quando usar comandos como route, se um destino uma rede e esta rede se encontra no arquivo /etc/networks, ento o comando route mostrar o nome da rede ao invs de seu endereo.
13.11 O arquivo /etc/resolv.conf
Esse arquivo informa como vai ser a consulta ao servidor DNS. O /etc/resolv.conf o arquivo de configurao principal do cdigo do resolvedor de nomes. Seu formato um arquivo texto simples com um parmetro por linha, e os endereos de servidores DNS externos so especificados nele. Existem trs palavras chaves normalmente usadas que so:
Domain: Especifica o nome do domnio padro, para que no seja necessrio digitar todo o domnio para se acessar as mquinas da rede local.
Search: Especifica uma lista de nomes de domnio alternativos ao procurar por um computador, separados por espaos. A linha search pode conter no mximo 6 domnios ou 256 caracteres.
Nameserver: Especifica o endereo IP de um servidor DNS para resoluo de nomes. Podem ser especificados at trs servidores.
Como exemplo, o /etc/resolv.conf se parece com isto:
Este exemplo especifica que o nome de domnio a adicionar ao nome no qualificado (Ex. hostnames sem o domnio) maths.wu.edu.au e que se o computador no for encontrado naquele domnio ento a procura segue para o domnio wu.edu.au diretamente. Duas linhas de nomes de servidores foram especificadas, cada uma pode ser chamada pelo cdigo resolvedor de nomes para resolver o nome.
Outros arquivos de configurao relacionados com a rede
13.12 O arquivo /etc/services
O arquivo /etc/services um banco de dados simples que associa um nome amigvel a humanos a uma porta de servio amigvel a mquinas. um arquivo texto de formato muito simples, cada linha representa um item no banco de dados. Cada item dividido em trs campos separados por qualquer nmero de espaos em branco (tab ou espaos). Os campos so: 40 Unisul Tecnologia de Redes Prof. Luiz Otvio
nome porta/protocolo apelidos # comentrio
nome: Uma palavra simples que representa o nome do servio sendo descrito.
porta/protocolo Este campo dividido em dois sub-campos. porta: Um nmero que especifica o nmero da porta em que o servio estar disponvel. Muitos dos servios comuns tm designados um nmero de servio. Estes esto descritos no RFC-1340.
protocolo: Este sub-campo pode ser ajustado para tcp ou udp. importante notar que o item 18/tcp muito diferente do item 18/udp e que no existe razo tcnica porque o mesmo servio precisa existir em ambos. Normalmente o senso comum prevalece e que somente se um servio esta disponvel em ambos os protocolos tcp e udp, voc precisar especificar ambos.
apelidos: Outros nomes podem ser usados para se referir a entrada deste servio.
comentrio: Qualquer texto aparecendo em uma linha aps um caractere "#" ignorado e tratado como comentrio.