9 Administracao e Seguranca Em Sistemas Linux

Embed Size (px)

Citation preview

Administrao e Segurana em Sistemas GNU/Linux - Instalao e Atualizao de Sistemas GNU/Linux -> Debian Debian a distribuio com a maior comunidade de mantenedores/desenvolvedores voltada exclusivamente para software livre. Aspectos gerais da plataforma GNU/Linux Conceitos fundamentais sobre o Linux Tipos e caractersticas de shells Tipos de sistema de arquivos do Linux Instalao do Debian GNU/Linux Customizando, compilando e instalando um novo kernel em seu servidor Configurando e instalando um Boot Manager - Uso do Shell Rene os principais e mais usados comandos de qualquer Sistema Operacional Linux Comandos para buscar e visualizar documentao no Linux Informaes sobre o Sistema Comandos administrativos Trabalhando com o ambiente de trabalho do usurio no shell (alias e variveis) Introduo a programao em Shell Script Trabalhando com modos de inicializao processo init e runlevels - Configurando e gerenciando hardware Identificao de discos e parties em sistemas GNU/Linux Recomendaes para configurao e armazenamento de dados Gerenciando hardware (disquete, cd-rom, pendrive e parties) Configurao de parties Conhecendo os mdulos de componentes da CPU Configurao de dispositivo Wireless LAN Configurando uma rede Wireless no Linux - Criando e manipulando texto com o Editor VI um editor de textos muito poderoso, ele pode: abrir vrios arquivos ao mesmo tempo, possui sistema de auto-correo, auto-identificao, seleo visual, macros, seleo vertical de texto, uso de expresses regulares, sintaxe colorida, e muito mais... Modo de insero e de comandos Copiando e colando textos no vi (utilizando o mouse) Usando o modo visual do vi Subcomandos para localizao de texto Opes para substituio de textos - Criando e gerenciando contas de usurio e grupos Conhecimentos para um bom gerenciamento de contas de usurio. Administrao de usurios Administrao de grupos Trabalhando com a senha em grupos Criando quotas para usurios e grupos - Permisses de acesso a recursos, arquivos, pastas e dispositivos do Sistema Nesta etapa o participante ir compreender e manipular as permisses de acesso a recursos,arquivos, pastas e dispositivos do Sistema. Tipos de permisses Definindo permisses para dono, grupo, outros usurios e todos os usurios www.clubedohacker.com.br 1

Administrao e Segurana em Sistemas GNU/Linux SUIDBIT SGIDBIT STICKYBIT - Manipulao de pacotes Instalao de pacotes (programas) Remoo de pacotes (programas) Correo de pacotes Procedimentos de backup Empacotamento e Compresso de arquivos Descompactao e Desempacotamento de pacotes Compilao de programas a partir do cdigo fonte - Servidor X Configurando o Ambiente Grfico Instalao do X Window Configurando o X Informaes sobre os mdulos que devem ser carregados Servidor remoto: Xnest Gerenciadores de login Instalao de Ambientes Grficos Instalando e Configurando o Ambiente Grfico KDE Instalando e Configurando o Ambiente Grfico GNOME - Servios bsicos de rede Configurando a rede Procedimento de check-list dos servios de rede Telnet x SSH Aplicando regra de acesso a servidores no sistema: TCPWrappers Agendando tarefas Trabalhando com servidor de sincronizao de horrio NTP Gerenciando impresso no sistema - Clientes / Estaes de trabalho GNU/Linux Fornece habilidades e o conhecimento necessrio para fazer a integrao entre Windows e Linux.. Compartilhamento de arquivos em rede Linux Compartilhamento de arquivos em rede mista (Windows x Linux) Configurao do Servidor NFS Redes Windows x Redes Linux Instalao do Samba Configurando o Samba Compartilhando uma estao GNU/Linux com uma estao Windows Configurando um PDC com Samba Informaes importantes O curso tem foco na distribuio Debian, considerada a mais estvel e muito tradicional, possibilitando um ambiente que permite ao aluno capacitar-se no somente para o Linux mais tambm para outros sistemas Like Unix; Na sala de aula o curso ministrado em Debian, distribuio com a maior comunidade de mantenedores/desenvolvedores voltada exclusivamente para software livre. www.clubedohacker.com.br 2

Administrao e Segurana em Sistemas GNU/Linux

Instalao e atualizao do Sistema Operacional

Debian GNU/Linux

www.clubedohacker.com.br

3

Administrao e Segurana em Sistemas GNU/Linux Aspectos gerais da plataforma GNU/Linux Projeto Debian O Projeto Debian um grupo mundial de voluntrios que se esforam para produzir um sistema operacional livre que composto inteiramente por software livre. O produto principal do projeto a distribuio Debian GNU/Linux, que inclui o kernel do sistema operacional Linux e centenas de aplicaes pr-empacotadas. Vrios tipos de processadores so suportados, incluindo o Intel i386 e superior, Alpha, ARM, Motorola 68k, MIPS, PowerPC, Sparc, e UltraSparc, HP PA-RISC, IBM S/390 e Hitachi SuperH. O Projeto Debian foi oficialmente fundado por Ian Murdock em 16 de Agosto de 1993, com a pretenso de que o Debian fosse uma distribuio criada abertamente, no mesmo esprito do Linux e do GNU. Naquele tempo, o conceito de uma "distribuio" de Linux era novo. A criao do Debian teve o apoio do projeto GNU da FSF (Free Software Foundation ou Fundao para o Software Livre) durante um ano (Novembro de 1994 a Novembro de 1995). A distribuio Debian pretendia ser cuidadosamente e conscientemente criada em conjunto e ser mantida e suportada com similar cuidado. Isso comeou com um pequeno e forte grupo de hackers do Software Livre e gradualmente cresceu se tornando uma grande e bem organizada comunidade de desenvolvedores e usurios. A pronncia oficial de Debian 'dbian'. O nome vem do nome do criador do Debian, Ian Murdock, e sua esposa, Debra. Debra + Ian = Debian Ian Murdock

Detalhes da distribuio Debian: a nica distribuio que aberta para que todo desenvolvedor e usurio possam contribuir com seu trabalho; o nico distribuidor significativo de Linux que no uma entidade comercial; o nico grande projeto com uma constituio, um contrato social e documentos com polticas para organizar o projeto; A Debian tambm a nica distribuio que micro-empacotada, usando informaes detalhadas de dependncia de pacotes para garantir a consistncia do sistema em atualizaes. Para alcanar e manter um alto padro de qualidade, o Debian adotou um rico conjunto de polticas e procedimentos para empacotamento e distribuio de software. www.clubedohacker.com.br 4

Administrao e Segurana em Sistemas GNU/Linux Backups so automatizados atravs de ferramentas e a documentao detalha todos os elementos chaves do Debian de uma forma aberta e visvel. O Projeto de Documentao do Debian pode ser encontrado neste endereo:http://www.debian.org/doc/index.pt.html .

Projeto GNU O Projeto GNU foi iniciado em 1984 para desenvolver um sistema operacional completo, compatvel com o Unix, que fosse software livre: o sistema GNU. (GNU um acrnimo recursivo para GNU No Unix e pronunciado como guh-noo.) Variantes do sistema operacional GNU, que incluem o kernel Linux, so hoje amplamente utilizadas; embora estes sistemas sejam frequentemente chamados de Linux, eles seriam mais corretamente chamados de sistemas GNU/Linux. Se necessrio obter mais informaes, este o endereo:http://www.gnu.org/home.pt.html

Quem quem no GNU?

Este endereo est reservado para o nome de quem escreve e escreveu software livre para o Projeto GNU:http://www.gnu.org/people/people.pt.html

Richard M. Stallman, criador e lder do projeto GNU.

O Linux O que o Linux? Linux um sistema operacional Unix-like, isso quer dizer que o Linux foi desenvolvido de acordo com a filosofia Unix. Esse trabalho de desenvolvimento foi www.clubedohacker.com.br 5

Administrao e Segurana em Sistemas GNU/Linux feito por Linus Torvalds, do Departamento de Cincia da Computao da Universidade de Helsinki, Finlndia, junto com um grupo de hackers pela Internet. O Linux segue o padro POSIX, que usado em estaes UNIX. Linus Torvalds iniciou cortando (hacking) o kernel como um projeto particular, inspirado em seu interesse no Minix, um pequeno sistema UNIX desenvolvido por Andrew Tannenbaum. Ele se limitou a criar, em suas prprias palavras, "um Minix melhor que o Minix". E depois de algum tempo de trabalho em seu projeto, sozinho, ele enviou a seguinte mensagem para comp.os.minix:Voc suspira por melhores dias do Minix-1.1, quando homens sero homens e escrevero seus prprios "device drivers" ? Voc est sem um bom projeto e esta morrendo por colocar as mos em um S.O. no qual voc possa modificar de acordo com suas necessidades ? Voc est achando frustrante quando tudo trabalha em Minix ? Chega de atravessar noites para obter programas que trabalhem correto ? Ento esta mensagem pode ser exatamente para voc. Como eu mencionei a um ms atrs, estou trabalhando em uma verso independente de um S.O. similar ao Minix para computadores AT-386. Ele est, finalmente, prximo do estgio em que poder ser utilizado (embora possa no ser o que voc esteja esperando), e eu estou disposto a colocar os fontes para ampla distribuio. Ele est na verso 0.02... contudo eu tive sucesso rodando bash, gcc, gnu-make, gnu-sed, compresso, etc. nele.

Linus Benedictus Torvalds

No dia 5 de outubro de 1991 Linus Torvalds anunciou a primeira verso "oficial" do Linux, verso 0.02. Desde ento muitos programadores tm respondido ao seu chamado, e tm ajudado a fazer do Linux o Sistema Operacional que hoje, uma grande maravilha. Ele inclui proteo entre processos, carregamento por demanda, redes TCP/IP, alem de nomes de arquivos com at 255 caracteres, multitarefa real, suporte a UNICODE, bibliotecas compartilhadas, memria virtual, etc.

Conceitos fundamentais sobre o Linux O Linux como qualquer sistema baseado em Unix apresenta uma lgica de utilizao que preserva a segurana do sistema. Esse um dos aspectos fundamentais que o tem tornado o sistema operativo com maior crescimento no mundo.

www.clubedohacker.com.br

6

Administrao e Segurana em Sistemas GNU/Linux Assim, na lgica nativa do Linux existe uma diviso entre o administrador da mquina (ou superusurio) e o usurio sem privilgios. No Linux um usurio pode ser identificado de trs formas diferentes: Login do usurio - o nome que o usurio tem no sistema e que lhe serve para a ele ter acesso quando introduzido corretamente com uma password. Nome do usurio - o nome de batismo que o usurio tem. Por exemplo, Linus Torvalds. Este nome raramente utilizado, serve somente para acompanhar a leitura do nome completo do usurio. ID do usurio - (User ID) um nmero atribudo ao utilizador no momento da criao da sua conta de sistema. utilizado geralmente pelas aplicaes para se referirem a um usurio. Por norma, o root tem o ID 0 (zero) e um usurio pode ter, por exemplo, o nmero 1001 como ID. O superusurio ou root o administrador do sistema. Apenas ele poder executar alguns comandos e tarefas a que o usurio normal no tem acesso. Assim foi definido com o objetivo de um usurio no poder comprometer a estabilidade do sistema realizando operaes que o coloque em perigo. O superusurio tem uma rea de trabalho definida a partir da raiz do sistema: /root. O usurio tipicamente uma pessoa que trabalhar regularmente no sistema, tendo uma rea prpria que se encontra no diretrio /home/[nome do usurio]. Um usurio normal no consegue alterar, apagar, sobrescrever,... arquivos de sistema. Nenhum programa executado pelo mesmo consegue. Assim sendo, ningum se preocupa em fazer vrus para o Linux, pois o vrus no poder propagar-se devido s permisses sobre os arquivos lhe ser negado. Todos os arquivos criados pelo usurio sero guardados na sua prpria rea e outros usurios no tm acesso, a no ser que o superusurio o defina. A estrutura de diretrios no Linux A raiz do Linux fica no diretrio / e dentro deste diretrio existem vrios outros, cada um tem uma descrio. A estrutura de diretrios no Linux basicamente dividida assim: Diretrio /bin Descrio Arquivos executveis que so usados pelo sistema freqentemente. Aqui encontramos por exemplo os interpretadores de comandos (bash, ash, www.clubedohacker.com.br 7

Administrao e Segurana em Sistemas GNU/Linux Diretrio Descrio etc), o df, chmod, date, kill, dmesg, pwd, ls e muito mais. So os comandos essenciais :) /boot /dev Neste diretrio ficam os arquivos de boot, como os mapas de boot e as imagens do kernel. Este um diretrio que carrega consigo todos os arquivos-dispositivos. Arquivos de configurao do Linux. Este o diretrio que carrega todas as configuraes dos principais (seno todos) os programas do Linux. Ele contm por exemplo os arquivos de usurios e senhas, arquivos de inicializao, configuraes de rede e mais uma bolada de configurao pra deixar qualquer um doido. Diretrio dos usurios. Cada usurio tem um diretrio dentro deste diretrio :) Algumas bibliotecas essenciais para o funcionamento do Linux e tambm os mdulos do kernel. Este um diretrio especial, ele contm informaes que o kernel gera e algumas configuraes tambm. um diretrio HOME. S que aqui o do usurio administrador (root). Executveis que tm funes administrativas, geralmente usados pelo root. Aqui se encontram programas para verificar e criar sistemas de arquivos, optimizar o uso do HD, configurar dispositivos, gerenciar mdulos do kernel, etc. Diretrio temporrio. Neste diretrio, vrios utlitrios criam arquivos que s sero usados por um tempinho e depois descartados. No h nenhuma informao importante aqui, pois pode ser acessado por qualquer usurio. Um dos maiores diretrios, este contm as bibliotecas e arquivos gerais dos vrios programas instalados no sistema. Sua estrutura bem parecida com a raiz em s. Ele tambm tem um lib, bin, sbin e por a vai. Informaes variveis que esto sempre em constante mudana, como arquivos de logs, de travas, informaes, e-mails do sistema, etc.

/etc

/home

/lib

/proc /root

/sbin

/tmp

/usr

/var

www.clubedohacker.com.br

8

Administrao e Segurana em Sistemas GNU/Linux Tipos e caractersticas de shells O shell o programa que permite a interao do usurio com o sistema, em modo texto. Em UNIX/Linux existem vrios tipos de shell, com funcionalidades diversas. Os principais so:

Bourne shell (sh) - o mais antigo, est presente em todos os sistemas, pois necessrio para diversas operaes administrativas. C shell (csh) - de sintaxe mais simples, mais fcil de usar e por isso preferido pelos usurios iniciantes. Korn shell (ksh) - mistura caractersticas de ambos os anteriores. BASH Shell (bash) - Bourne-Again Shell, uma extenso do sh e utilizado como padro nas mquinas linux. Algumas caractersticas do shell no Linux: No prompt do Linux, quando existe com o smbolo $, isto quer dizer que o login foi feito com um usurio normal. Se estiver logado com o root, ao invs do smbolo $, no final do prompt existir o smbolo #. Nos nomes dos arquivos, os caracteres MAISCULOS e minsculos fazem a diferena. Isso quer dizer que os arquivos: PROGRAMA.tar.gz e programa.tar.gz, so dois arquivos completamente diferentes. Assim como: ls o comando na escrita certa e LS um comando que no existe. No Linux, no existem extenses .EXE, .COM especial para programas executveis. Ao invs disso, os arquivos tm permisso de executvel ou no. Alm de arquivos comuns, no Linux existem os chamados links simblicos, que so nada mais nada menos que uma espcie de atalhos. O Linux um sistema multitarefa, podendo ser acessado por vrios consoles ao mesmo tempo, assim como pode ser rodado vrios programas ao mesmo tempo. Para mudar o console do 1 a 6, utilize Alt-N, onde o N corresponde ao nmero do console. Exemplo: Alt-F1, Alt-F2, Alt-F3, Alt-F4, Alt-F5 e Alt-F6. Depois de logado, se quiser sair, utilize o comando exit, ou o comando logout ou ainda a combinao de teclas Ctrl-D. Se algum programa estiver rodando no seu console, aperte as teclas Ctrl-Z para suspender esse programa e voltar para o prompt. Para voltar ao programa, utilize www.clubedohacker.com.br 9

Administrao e Segurana em Sistemas GNU/Linux o comando fg. Para listar os programas suspendidos na sesso atual, utilize o comando jobs. Um recurso muito interessante nas shells do Linux, o tab completion. Com ele voc pode completar comandos ou nomes de arquivos mais rapidamente sem precisar digitar tudo. Para utilizar esse recurso, basta apenas digitar as primeiras letras do comando ou arquivo e apertar a tecla Tab. O Linux ir completar o comando ou arquivo. Caso haja mais de um arquivo comeando com as letras digitadas, apertando Tab mais uma vez iro ser exibidas todas as opes. Referncia:The Linux Manual

Tipos de sistema de arquivos do Linux Um sistema de arquivos um conjunto de estruturas lgicas e de rotinas, que permitem ao sistema operacional controlar o acesso ao disco rgido. Diferentes sistemas operacionais usam diferentes sistemas de arquivos. Os sistemas de arquivos do GNU/Linux evoluem de forma constante, juntamente com o kernel e outros subsistemas. Muitas melhorias so introduzidas em todos os formatos de sistemas suportados pelo GNU/Linux, tornando os mesmos: mais seguros, rpidos e estveis. O sistema de arquivos independente do hardware e da BIOS. por meio de um sistema de arquivos que ocorre a gravao e a recuperao dos dados em um dispositivo de armazenamento em um computador. O sistema de arquivos que define o modo como os arquivos so estruturados, nomeados, acessados, utilizados, protegidos e manipulados pelo sistema operacional. Os arquivos so armazenados, no sistema de arquivos, em diretrios que so uma subdiviso lgica e que funcionam como repositrios de arquivos ou de outros diretrios. O conjunto de diretrios e arquivos forma um sistema de arquivos raiz, ou "rvore" de diretrios, a mesma deve seguir um padro estabelecido. O sistema de arquivos hierrquico e admite que diversos dispositivos sejam mapeados e utilizados a partir do diretrio raiz. Para o usurio toda essa estrutura vista de forma nica. A caracterstica de recuperao implementada em sistemas de arquivos chamada de "journaling" (registro de aes). Sistemas que no possuem "journal" so mais suscetveis s falhas e perdas de dados. Alm disso, em caso de parada do sistema ou falta de energia, o tempo necessrio para retomar as operaes elevado, j que uma www.clubedohacker.com.br 10

Administrao e Segurana em Sistemas GNU/Linux verificao de integridade realizada em cada arquivo do sistema. Nas parties que possuem milhares de arquivos essa verificao pode levar horas. Os sistemas de arquivos com suporte a "journal" so recomendados por aumentarem a disponibilidade (High Availability - HA) em servidores GNU/Linux. A alta disponibilidade medida pelo tempo em que o servidor se encontra fora de servio por falhas no sistema operacional ou no hardware. Quanto menor o tempo em que o sistema estiver indisponvel, maior o ndice de disponibilidade, medido em uma escala de casas decimais que tende a se aproximar de 100%. Caractersticas de alguns sistemas de arquivos: EXT3 O sistema de arquivos EXT3 uma verso do EXT2; O ext3 tem as mesmas caractersticas do EXT2, mas com suporte journaling; A evoluo tornou o EXT3 um sistema de arquivos muito estvel e robusto; Podemos converter um sistema de arquivos EXT2 para EXT3, adicionado suporte a journaling, e tambm podemos converter um sistema de arquivos EXT3 para EXT2, removendo o suporte a journaling.

ReiserFS O sistema de arquivos ReiserFS foi criado recentemente; Atualmente quase todas as distribuies Linux o suportam; Sua performance muito boa, principalmente para um nmero muito grande de arquivos pequenos; ReiserFS tambm possui suporte a journaling.

JFS O JFS (Journaling FileSystem) um sistema de arquivos desenvolvido pela IBM, disponvel em licena open-source, com o intuito de rodar nos "UNIXes" que a IBM vendia; No incio o JFS sofreu uma perda de credibilidade devido a constantes instabilidades e bugs, caso este que atualmente encontra-se resolvido e assim muito estvel. www.clubedohacker.com.br 11

Administrao e Segurana em Sistemas GNU/Linux Extremamente rpido e permite trabalhar com uma quantia de dados muito superior aos demais sistemas de arquivos; O sistema de arquivos JFS tambm usa a estrutura inode para armazenar a localizao dos blocos de cada arquivo nas estruturas fsicas do disco, a verso JFS2 armazena esses inodes em uma rvore binria para acelerar o acesso a essas informaes, esses blocos podem variar de 512 a 4096 bytes, a alocao dos inodes feita conforme vai sendo necessrio. Alm de possuir journal ele permite que as parties do sistema sejam redimensionadas sem que seja necessrio desligar o computador;

XFS XFS um sistema de arquivos muito rpido na gravao; Desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado o cdigo fonte; Considerado um dos melhores sistemas de arquivos para banco de dados; Possui journaling de metadados que vem com um robusto conjunto de funes e otimizado para escalabilidade; recomendado usar este sistema de arquivos em sistemas rodando Linux com equipamento SCSI de ponta e/ou armazenamento em canais de fibra e fonte de energia sem interrupo; Pelo fato de o XFS criar muitos caches de dados em uso na memria RAM, programas mal desenhados podem perder uma grande quantidade de dados se o sistema for desligado sem aviso.

LVM LVM um acrnimo para a expresso inglesa Logical Volume Management para especificar um padro de gerenciamento de parties em disco IDE/SCSI/FC; Foi desenvolvido inicialmente pela IBM, e outras empresa e instituies, como: HP e a Open Group; A implementao LVM cria um grande disco virtual, que pode inclusive ter mais de um dispositivo de armazenamento , e divide em parties virtuais; www.clubedohacker.com.br 12

Administrao e Segurana em Sistemas GNU/Linux A vantagem permitir o redimensionamento das reas de modo dinmico, ou seja, com o sistema operacional sendo utilizado; A desvantagem que por ser um nico disco virtual, a recuperao de dados em uma eventual pane no sistema de armazenamento bastante prejudicada. Inode Um inode um identificador nico que um arquivo recebe, nele contm uma lista com 12 blocos diretos de dados que o arquivo deve ter, se ele possui mais de 12 blocos, ele segue uma regra para gravar esses blocos no disco e poder achar mais tarde. Os dados do arquivo so armazenados em unidades chamadas 'blocos'. Estes blocos podem ser numerados seqencialmente. Um arquivo tambm tem um inode. Como os blocos, os inodes so numerados seqencialmente, embora tenham uma seqncia diferente. Uma entrada de diretrio consiste do nome do arquivo e um nmero de inode. O inode tambm armazena o local dos blocos de dados. * Os nmeros dos blocos dos primeiros 12 blocos de dados esto armazenados diretamente no inode. Estes s vezes so chamados de blocos diretos. * O inode contm o nmero do bloco de um bloco indireto. Um bloco indireto contm os nmeros de blocos de 256 blocos de dados adicionais. * O inode contm o nmero do bloco de um bloco duplamente indireto. Um bloco duplamente indireto contm os nmeros de blocos de 256 blocos indiretos adicionais. * O inode contm o nmero do bloco de um bloco trs vezes indireto. Um bloco trs vezes indireto contm os nmeros de blocos de 256 blocos duplamente indiretos adicionais. Referncias: Guia Foca GNU/Linux Discos e Partieshttp://focalinux.cipsga.org.br/guia/inic_interm/ch-disc.htm

Wikipdiahttp://pt.wikipedia.org/wiki/Sistema_de_arquivos

www.clubedohacker.com.br

13

Administrao e Segurana em Sistemas GNU/Linux Instalao do Debian Sarge Antes de iniciar o processo de instalao necessrio configurar a BIOS para que a inicializao do computador ocorra pelo drive de CD-ROM; Leia sempre e atentamente todas as telas do processo de instalao. Elas trazem informaes importantes para a compreenso do processo; Insira o CD;

Logo na primeira tela do processo dever ser feita a opo do tipo de instalao a ser realizada. Como estamos em um curso bsico, voc deve digitar: linux26, o mesmo o modo de instalao automtica. Obs: tambm possvel entrar com a palavra: expert26, que o processo manual mas a orientao deste tipo de instalao no ser repassada neste momento.

www.clubedohacker.com.br

14

Administrao e Segurana em Sistemas GNU/Linux

Aps digitar linux26, pressione a tecla ENTER: Obs: A tecla ENTER dever ser pressionada sempre que desejar prosseguir.

O prximo passo selecionar o idioma a ser usado, em seguida, pressione ENTER:

www.clubedohacker.com.br

15

Administrao e Segurana em Sistemas GNU/Linux

Selecione o layout do teclado:

Pressione ENTER:

www.clubedohacker.com.br

16

Administrao e Segurana em Sistemas GNU/Linux

Continuao da tela:

Continuao da tela:

www.clubedohacker.com.br

17

Administrao e Segurana em Sistemas GNU/Linux

Configurao automtica da rede:

Quando no houver um servidor DHCP, ser exibida a tela abaixo:

www.clubedohacker.com.br

18

Administrao e Segurana em Sistemas GNU/Linux

Selecione a opo continuar, pressione ENTER.

Confirme a opo: Configurar a rede manualmente. Pode ocorrer de voc no precisar ajustar esta mquina a uma rede de computadores, neste caso voc seleciona No configurara rede agora e logo em seguida ser dado incio ao particionamento.

www.clubedohacker.com.br

19

Administrao e Segurana em Sistemas GNU/Linux

Digite o IP e prossiga a instalao:

Voc digita a mscara da rede e prossiga a instalao:

www.clubedohacker.com.br

20

Administrao e Segurana em Sistemas GNU/Linux

Digite o gateway e prossiga a instalao:

Digite o nome de mquina e prossiga a instalao:

www.clubedohacker.com.br

21

Administrao e Segurana em Sistemas GNU/Linux

Para terminar de configurar a rede, digite o nome de domnio e prossiga a instalao. Ser exibida a tela para inicial do particionador:

Tela para particionamento:

www.clubedohacker.com.br

22

Administrao e Segurana em Sistemas GNU/Linux

Selecione a opo: Apagar todo o disco.

Marque ESPAO LIVRE e prossiga:

www.clubedohacker.com.br

23

Administrao e Segurana em Sistemas GNU/Linux

Selecione Criar uma nova partio:

Digite o tamanho da partio 250MB:

www.clubedohacker.com.br

24

Administrao e Segurana em Sistemas GNU/Linux

Selecione como tipo de partio Primria:

Esta partio ser criada no Incio do espao disponvel:

www.clubedohacker.com.br

25

Administrao e Segurana em Sistemas GNU/Linux

Selecione ponto de montagem, pressione ENTER e em seguida selecione /boot.

Obs: Tendo como referncia a imagem abaixo, no kernel anterior era necessrio criar uma partio chamada /boot. Hoje em dia, com o kernel 2.6 no mais necessrio, o sistema j o cria automaticamente. O mesmo passar a existir dentro do diretrio /. Para esta aula, por favor selecione no ponto de montagem a opo /boot:

www.clubedohacker.com.br

26

Administrao e Segurana em Sistemas GNU/Linux

A seguir confirme a opo Finalizar a configurao da partio:

Temos uma partio criada, a partio: /boot. Neste momento realize os mesmos passos e crie uma partio chamada / (Raiz). A mesma ter o tamanho de 400 MB. Teremos uma imagem semelhante imagem abaixo:

www.clubedohacker.com.br

27

Administrao e Segurana em Sistemas GNU/Linux

No Espao Livre, teremos de criar algumas parties lgicas, sempre ao incio do espao disponvel. As parties lgicas a serem criadas so: /usr 3.0 GB /home 3.1 GB Aps o trmino do particionamento, selecione Finalizar o particionamento e gravar as mudanas no disco:

Selecione a opo Sim, assim voc estar permitindo que as mudanas na lista sejam gravadas nos discos. www.clubedohacker.com.br 28

Administrao e Segurana em Sistemas GNU/Linux

Aps a confirmao, ser dado o incio da Instalao do Sistema bsico Debian.

O prximo passo confirmar a instalao do carregador de inicializao GRUB.

www.clubedohacker.com.br

29

Administrao e Segurana em Sistemas GNU/Linux

Continuao da instalao do GRUB:

Continuao da instalao do GRUB:

www.clubedohacker.com.br

30

Administrao e Segurana em Sistemas GNU/Linux

Instalao finalizada remova a mdia de instalao e confirme a opo Continuar.

Abaixo, a tela de reinicializao da mquina, aps isso o sistema passar a ser iniciado a partir do disco rgido.

www.clubedohacker.com.br

31

Administrao e Segurana em Sistemas GNU/Linux

Aps a reinicializao do sistema, ser exibida a seguinte tela:

Confirme a opo OK. Em seguida, selecione a opo Sim para iniciar a configurao do fuso horrio:

www.clubedohacker.com.br

32

Administrao e Segurana em Sistemas GNU/Linux

Selecione seu fuso horrio:

Selecione a rea de seu fuso horrio:

www.clubedohacker.com.br

33

Administrao e Segurana em Sistemas GNU/Linux

Selecione a cidade ou fuso horrio:

A seguir, digite uma senha, a mesma ser a senha de root (administrador):

www.clubedohacker.com.br

34

Administrao e Segurana em Sistemas GNU/Linux

Digite um nome para a conta de usurio a ser usada para atividades no administrativas:

Informe uma senha para o usurio que est sendo criado:

www.clubedohacker.com.br

35

Administrao e Segurana em Sistemas GNU/Linux

Aps digitar a senha, ser necessrio inserir o CD 2 e confirmar OK.

Logo a seguir, o sistema ir ler as informaes do CD2, como mostra a imagem abaixo:

www.clubedohacker.com.br

36

Administrao e Segurana em Sistemas GNU/Linux

Aps o trmino da leitura do CD2, ser o momento de retira-lo e inserir o CD3. Aps inserir o CD3, confirme a opo SIM.

Tambm ser feita a leitura das informaes do CD3, logo a seguir teremos a seguinte tela:

www.clubedohacker.com.br

37

Administrao e Segurana em Sistemas GNU/Linux

Neste momento, o sistema j possui as informaes at o CD3. Os trs cds so necessrios para a instalao do sistema. Na tela acima, que ser exibida, voc confirma a opo NO. Se houver a necessidade de adicionar a leitura de outro(s) cd(s), selecione a opo SIM. Ao trmino da leitura da mdia, selecione NO. Ser exibida a tela de login. Voc ter de entrar com o usurio e a senha:

---------------------------------------------------------------------------------------------------------Customizando, compilando e instalando um kernel Linux em seu servidor

O Kernel representa a camada mais baixa de interface com o Hardware, sendo responsvel por gerenciar os recursos do sistema computacional como um todo. no kernel que esto definidas funes para operao com perifricos (mouse, discos, impressoras, interface serial/interface paralela), gerenciamento de memria, entre outros. O kernel um conjunto de programas que fornece para os programas de usurio uma interface para utilizar os recursos do sistema.

www.clubedohacker.com.br

38

Administrao e Segurana em Sistemas GNU/Linux Antes de tudo: Quais so os requerimentos mnimos de hardware? Varia de acordo com a arquitetura e a verso do kernel. Mas tenha em mente o seguinte para ter um sistema mnimo funcional: 16 MB de RAM (memria fsica), 100 MHz de clock de processamento e 100 MB de espao em disco (memria virtual). Qual o processador? Qual o clock? Qual a arquitetura?# cat /proc/cpuinfo# arch

Qual a quantidade de memria?# cat /proc/meminfo

Baixando o pacote Baixe o pacote que contm o cdigo fonte mais atualizado do kernel Linux da srie 2.6 em http://www.kernel.org. Fazendo o download com o comando wget:# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.x.tar.bz2

Como superusurio (faa o login no sistema com o usurio root), descompacte e desempacote o arquivo assim:# tar xvjf linux-2.6.x.tar.bz2 -C /usr/src

Crie o link simblico /usr/src/linux apontando para /usr/src/linux-2.6.x assim:# ln -sf /usr/src/linux-2.6.x /usr/src/linux

Acesse /usr/src/linux assim:# cd /usr/src/linux

Este ser o diretrio raiz de compilao, ou seja, o diretrio base para os passos seguintes. Caso j exista uma compilao anterior, execute o comando 'make mrproper' para retornar ao padro os arquivos de configurao do kernel.# make mrproper

www.clubedohacker.com.br

39

Administrao e Segurana em Sistemas GNU/Linux Edite o arquivo Makefile para personalizar a verso de sua compilao. Altere a varivel EXTRAVERSION na quarta linha para um valor que deseje como por exemplo -i386-mwsf-1. Salve este arquivo. VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = x EXTRAVERSION = -i386-mwsf-1 Quais so os Softwares que preciso para iniciar a compilao? O arquivo /usr/src/linux/Documentation/Changes contm uma lista do software mnimo que deve estar corretamente instalado na mquina antes de iniciar a compilao. No inicie a compilao do kernel sem antes obtiver a certeza de que o mnimo de software est instalado. Existe um script que pode auxiliar nisto. O script /usr/src/linux/scripts/ver_linux imprime na tela uma lista do software mnimo e suas respectivas verses que esto instalados na mquina. Compare esta lista com a lista oferecida pelo documento /usr/src/linux/Documentation/Changes. Para executar este script, faa assim: # sh scripts/ver_linux Ser obrigatrio ter os itens da lista instalados, apenas aqueles que o kernel que voc est configurando suportar. O arquivo /usr/src/linux/.config armazena a configurao do kernel.

Basicamente, este arquivo descreve o que dever ser incorporado ao kernel (y) e o que dever ser criado como mdulo (m). Incorpore ao kernel apenas o necessrio. O restante necessrio, configure como mdulo. O que no for necessrio, retire. Por exemplo, se voc no tem um determinado dispositivo em sua mquina, retire da configurao o suporte. Isto possibilita uma maior performance por parte do sistema. O kernel Linux pode ser modular, ou seja, o suporte bsico fica incorporado ao kernel constantemente e o suporte a outros dispositivos, como por exemplo, uma placa de som, pode ser configurado como mdulo. Assim sendo, este mdulo da placa de som carregado na memria e plugado ao kernel apenas quando for necessrio, ou seja,

www.clubedohacker.com.br

40

Administrao e Segurana em Sistemas GNU/Linux apenas quando o usurio estiver utilizando som no sistema. Isto otimiza o sistema, utilizando seus recursos sabiamente. Existe uma configurao padro para cada tipo de arquitetura de hardware no diretrio /usr/src/linux/arch. O nome do arquivo defconfig. Supondo que sua arquitetura de hardware seja i386, faa uma cpia do arquivo defconfig para o diretrio raiz de compilao com o nome .config:# cp -f /usr/src/linux/arch/i386/defconfig /usr/src/linux/.config

Em alguns casos de arquitetura, pode existir um diretrio configs contendo configuraes especficas e testadas para cada modelo de mquina. Sendo isso ocorrer, ao iniciar a ferramenta de configurao, j existir alguns itens marcados. No ser necessrio iniciar do zero uma configurao. Execute a ferramenta de configurao assim:# make menuconfig ou # make xconfig (modo grfico)

Observe a existncia de uma configurao j pr-definida, se deve ao fato de voc ter copiado o arquivo defconfig para o diretrio raiz de compilao com o nome de .config. Algumas dicas: Marque com * itens que sero incorporados ao arquivo do kernel como por exemplo, sistemas de arquivos que voc utiliza ou vai utilizar em suas parties. Marque com m itens que sero criados como mdulo, ou seja, sero plugados ao kernel apenas quando houver necessidade de uso. Esta uma etapa demorada e deve ser feito com ateno. Acompanhe o help de cada item para saber o que est incluindo ou no. Aps a configurao do kernel, vamos compil-lo realmente. Para isto, execute o comando:# make

Este passo pode levar minutos ou de um dia para o outro. Depende do poder da mquina aonde voc vai compilar. www.clubedohacker.com.br 41

Administrao e Segurana em Sistemas GNU/Linux Aps a compilao do kernel, vamos instalar os mdulos com o seguinte comando:# make modules_install

Vamos copiar o kernel (bzImage) para o diretrio /boot. O arquivo est no diretrio de acordo com a arquitetura que voc estiver utilizando. Se voc compilou o kernel em um PC, o que mais comum, ento execute o comando para copiar:# cp /usr/src/linux/arch/i386/boot/bzImage 2.6.x-i386-mwsf-1 /boot/vmlinuz-

Nomeie os arquivos de acordo com a verso do kernel que est compilando e de acordo com a arquitetura de hardware. Agora vamos copiar o arquivo System.map para /boot:# cp /usr/src/linux/System.map /boot/System.map-2.6.x-i386mwsf-1

Criando um link simblico para System.map:# ln -sf /boot/System.map-2.6.x-i386-mwsf-1 /boot/System.map

Agora vamos copiar o .config para /boot:# cp /usr/src/linux/.config /boot/config-2.6.x-i386-mwsf-1

Vamos criar um arquivo initrd assim:# mkinitrd -o /boot/initrd-2.6.x-i386-mwsf-1.img 2.6.x

A opo (-o arquivo) diz onde salvar o arquivo initrd gerado. A prxima opo de parmetro a verso do kernel que voc compilou. O initrd utilizado mais para kernel's genricos que acompanham as distribuies Linux. As distribuies so lanadas com kernel's genricos para suportar o maior nmero de hardware possvel. Como o kernel novo foi instalado como um pacote Debian, uma boa hora pra usar mais uma facilidade da Debian: update-grub (se voc ainda usa lilo, uma boa hora pra mudar :). Instale o grub com:# grub-install /dev/hda

www.clubedohacker.com.br

42

Administrao e Segurana em Sistemas GNU/Linux Se for instal-lo na MBR, isso cria um diretrio /boot/grub. Depois disso, s rodar "update-grub" que ele gera um /boot/grub/menu.lst pra voc. Se voc j possui um menu.lst, faa o backup e remova-o, a no ser que voc tenha muitas modificaes nele. Edite o menu.lst, altere configuraes como: # kopt=root=/dev/hda3 ro # groot=(hd0,0) De acordo com seu sistema est configurado. Note que as linhas devem permanecer comentadas ("#" no comeo da linha), essas so meta-configuraes. Depois de acertar isso, rode update-grub de novo e... Ele gera as entradas no menu do grub automaticamente, a partir das imagens de kernel instaladas e das metaconfiguraes que voc fez. Reinicie o Sistema Configurando e instalando um Boot Manager um programa que gerencia as parties que sero inicializadas em um sistema computacional. As verses atuais deste programa so instaladas no Setor de Boot Mestre (MBR - Master Boot Record) do disco rgido, fazendo com que um menu interativo seja apresentado toda a vez em que voc inicializa o micro, perguntando ao usurio que partio ele deseja para boot. Se existir sistemas operacionais diferentes instalados em parties separadas, conseqentemente ter de escolher qual sistema operacional o micro carregar em memria. Iremos, portanto, configurar o nosso boot loader (responsvel por carregar o sistema) para que o kernel seja chamado na inicializao, juntamente com o atual. LILO (Linux Loader) um aplicativo responsvel pela carga (boot) do sistema operacional na mquina, sendo que voc pode trabalhar com ele tanto para discos IDE ou SCSI. Ele considerado o gerenciador de boot padro dos sistemas Linux. Instalando o LILO:# apt-get install lilo

www.clubedohacker.com.br

43

Administrao e Segurana em Sistemas GNU/Linux Editando seu arquivo de configurao:# nano /etc/lilo.conf

Aps terminar de instalar, execute o liloconfig. Editando o seu arquivo de configurao:# nano /etc/lilo.conf

Adicione as seguintes linhas ao final do arquivo: -------------------------------------------------------------------------------------------------------image=/boot/[caminho da imagem gerada] label=Novo Kernel initrd=/boot/initrd-2.6.x-i386-mwsf-1.img read-only -------------------------------------------------------------------------------------------------------Para que as alteraes sejam lidas pelo sistema, precisamos dar o comando lilo:# lilo

GRUB GRUB (GRant Unified Bootloader) um outro gerenciador de boot, desenvolvido pelo projeto GNU, tambm muito utilizado pelos sistemas Linux. Assim como o Lilo, o Grub possui um arquivo centralizado para configurar o menu utilizado por ele. Vamos editar este no arquivo:# nano /boot/grub/menu.lst

Adicione as seguintes linhas ao final do arquivo: -------------------------------------------------------------------------------------------------------Title Novo Kernel www.clubedohacker.com.br 44

Administrao e Segurana em Sistemas GNU/Linux root (hd0,0) kernel /boot/vmlinuz-2.6.x-i386-mwsf-1 initrd /boot//initrd-2.6.x-i386-mwsf-1.img

root=/dev/hdx1 ro savedefault boot -------------------------------------------------------------------------------------------------------Depois de alterar o arquivo, precisamos atualizar o GRUB na MBR:# grub-install /dev/hdx

Aps a atualizao, reinicie o sistema.

www.clubedohacker.com.br

45

Administrao e Segurana em Sistemas GNU/Linux

Uso do ShellSHELL Sistema Operacional GNU/Linux

www.clubedohacker.com.br

46

Administrao e Segurana em Sistemas GNU/Linux Usando o Shell Qual seu shell?# echo $SHELL

Abrindo uma nova sesso para um usurio. Esta nova sesso assume o perfil do usurio, com todas as caractersticas associadas a ele:# login

Tem como funo desconectar um usurio de uma determina sesso:# logout

O objetivo encerrar uma sesso de trabalho:# exit

Desligar:# halt # shutdown -h now # shutdown 18:00 # shutdown -h 10 # init 0 # shutdown

Reiniciar:# reboot # shutdown -r now # shutdown -r 15 now # init 6

Exibe a quantidade de tempo desde a ltima reinicializao do sistema:# uptime

Pgina de manual e de informaes sobre os comandos:# man shutdown

ou# info shutdown

Processos em tempo real:# top

Processos em execuo no sistema:# ps aux

www.clubedohacker.com.br

47

Administrao e Segurana em Sistemas GNU/Linux Matando um processo:# kill -15 pid

Modificar data e hora do sistema:# date MMDDHHMMYY

Atualizar a hora da bios de acordo com a hora do S.O:# hwclock -w

Arquitetura de mquina:# arch

Mostra o diretrio corrente:# pwd

Comando que muda um subdiretrio corrente a partir do diretrio atual:# cd [diretrio] # cd /root # cd (volta ao ltimo diretrio acessado)

# cd .. (acessa o diretrio anterior na rvore de diretrios)

Este comando acima mudar o diretrio atual de onde o usurio est. H tambm algumas abreviaes de diretrios no Linux para facilitar a identificao, estes so: Abreviao . (ponto) .. (dois pontos) ~ (til) / (barra) - (hfen) Significado Diretrio atual Diretrio anterior Diretrio HOME do usurio Diretrio Raiz ltimo diretrio

Listar diretrio:/# ls /# ls --color

Parmetro Significado -l Lista os arquivos em formato detalhado. -a Lista os arquivos ocultos (que comeam com um .) -h Exibe o tamanho num formato legvel (combine com -l) -R Lista tambm os subdiretrios encontrados Mostra o contedo detalhado do diretrio:# ls -lah

www.clubedohacker.com.br

48

Administrao e Segurana em Sistemas GNU/Linux# ls lah [diretrio]

Mostra os arquivos no formato longo em ordem inversa de data:#ls ltr #ls ltr [diretrio] l = longo t = date r = inversa

Criar novo diretrio:# mkdir [diretrio] # mkdir free

Remover diretrio vazio:# rmdir [diretrio]

Remover um diretrio e todo o seu contedo (cuidado com este comando):# rm rf [diretrio] # rm rf / ( No faa isso! )

Mostra o tamanho do diretrio em Megabytes# du -msh # du msh [diretrio]

du = a abreviao de se referir a disk usage (uso do disco). Indica o espao usado em disco pelos arquivos ou diretrios dados. Sintaxe: du [diretrio]. Indica onde esto os binrios, fontes e pginas de manual de um comando dado:# whereis ls

Indica o caminho completo para o comando dado:# which ls

geralmente utilizado para atualizar a hora e a data de um determinado arquivo. Caso este arquivo no exista, ele ser criado pelo touch, porm sem contedo algum. A sua sintaxe do comando touch :Sintaxe: touch [opes] [arquivos] # touch arquivo

Atualizando hora e data de um arquivo:# touch -t YYYYMMDDhhmm arquivo

Listagem colorida: www.clubedohacker.com.br 49

Administrao e Segurana em Sistemas GNU/Linux# ls - -color

# ls color [diretrio]

Criando um arquivo:# : > [arquivo] # : > linux

Criando vrios arquivos:# touch gnu linus unix hurd

Linkando arquivos: ln -s [arquivo_origem] [link simblico] Este comando usado para gerar links simblicos, ou seja, que se comportam como um arquivo ou diretrio, mas so apenas redirecionadores que mandam seu comando para outro arquivo ou diretrio, por exemplo:$ ln -s /etc /home/user/atalho

Este comando criar o link /home/user/atalho, se voc digitar o comando ls -l voc ver que o diretrio /home/user/atalho est apontando para /etc. Se voc for para o /home/user/atalho, voc na verdade estar no /etc, mas como um link, no h diferena. Movendo um arquivo:# mv /root/debra /home/user/

Movendo um arquivo para o diretrio local:/home/user# mv /root/debra .

Copiando um arquivo:# cp gnu /home/user/ /home/user

# cp /root/gnu

Copiando um arquivo para o diretrio local:/home/user# cp /root/gnu .

Listando em detalhes todos os arquivos de um diretrio:# ls -lah

Listando em detalhes todos os arquivos de um diretrio e exibe em cores www.clubedohacker.com.br 50

Administrao e Segurana em Sistemas GNU/Linux: # ls -lah --color

Simulao de resultado do comando:-rw-r--r-- 2 user user 100k 2007-02-24 11:00 gnu

Exibe um calendrio:# cal

Mostra o contedo de um arquivo binrio ou texto:# cat gnu

Mostra o arquivo na ordem invertida de leitura:# tac ian

Exibe as primeiras linhas de um determinado arquivo:# head [arquivo] # head n [arquivo] # head -3 gnu

Exibe as ultimas linhas de um determinado arquivo:# tail [arquivo] # tail n [arquivo] # tail -3 gnu

Localiza um determinado arquivo especificado:# locate linus

Atualiza a base de dados do locate:# updatedb

O comando cat possibilita exibir o texto de um arquivo. Com o more existir uma pausa a cada tela cheia, possibilitando a leitura do arquivo. Exemplo:# cat [arquivo] | more # more [arquivo]

Possibilita exibir o arquivo de maneira paginada, com opo de rolagem para trs e para frente:# cat /proc/cpuinfo | less

Para redirecionar a sada de um comando para o less use o pipe. Exibindo um arquivo em linhas numeradas: www.clubedohacker.com.br 51

Administrao e Segurana em Sistemas GNU/Linux# nl gnu

Contador de linhas, palavras e bytes:# wc [opes] [arquivo] # wc gnu # wc -l gnu # wc -w gnu # wc -c gnu

Visualiza de forma crescente as informaes do arquivo:# sort gnu

Visualiza de forma decrescente as informaes do arquivo:# sort -r gnu

Mostra informaes de um arquivo:# file [arquivo] # file gnu

Indica o tipo de arquivo:# type [arquivo] # type gnu

Mostra inode com atributos MAC (Modify, Access, Changes):# stat [arquivo] # stat gnu

Exibe a rvore de diretrios:/# tree

Para exibir informaes do sistema, tais como: o sistema operacional, verso do kernel, arquitetura da mquina e muitos outros:# uname [opes]

Verso de kernel:# uname -r

Arquitetura de mquina:# uname -m

Mostra o hostname:# uname -n

Mostra o tipo de processador:# uname -p

www.clubedohacker.com.br

52

Administrao e Segurana em Sistemas GNU/Linux Mostra a data da verso do kernel:# uname -v

Mostra o nome do Sistema Operacional:# uname -o

Mostra o nome do Kernel:# uname -s

Mostra uma listagem de entrada e sada de usurios no sistema:# last

Exibe o histrico:# history

Logins mal sucedidos:# lastb

Alias e Variveis Alias O que alias? Alias significa atalho, nome falso ou pseudnimo e pode ajudar em muito sua vida no Linux. Um alias para todos os usurios voc edita em:# vi /etc/bash.bashrc

Um alias para root voc edita em:# vi /root/.bashrc

Atualize o arquivo toda vez que voc adicionar contedo ao arquivo:source /etc/bash.bashrc

ousource /root/.bashrc

Exemplos:alias opencd=eject; sleep 5s; eject -t alias ls=ls --color -lah

OBS: sempre editar ao final do arquivo. Variveis O shell executado no sistema controlado por variveis de ambiente (espaos de memria que armazenam valores), as mesmas podem ser: www.clubedohacker.com.br 53

Administrao e Segurana em Sistemas GNU/Linux Variveis locais - so as variveis disponveis somente pelo shell corrente e que no est sendo acessado por subprocessos do sistema. Variveis globais - esto disponveis tanto para o shell corrente como para os subprocessos que fazem uso delas. Descrio de algumas variveis de ambiente, que so importantes para facilitar o entendimento: HOME - Esta varivel identifica o diretrio do usurio domstico, use o comando echo $HOME para saber qual o seu diretrio HOME. PATH - Esta a varivel de ambiente que define quais diretrios pesquisar e a ordem na qual eles so pesquisados para encontrar um determinado comando, para saber como o sistema faz esta pesquisa e quais diretrios ele procura um comando use o comando echo $PATH. OSTYPE - Essa varivel define o tipo de sistema operacional em uso. Para saber qual o sistema operacional em uso use o comando echo $OSTYPE. SHELL - Esta varivel identifica qual shell est sendo usado, use o comando echo $SHELL para saber qual o shell que o seu sistema est usando. TERM - Esta varivel define o tipo de terminal que est sendo usado, use o comando echo $TERM para saber qual o tipo de terminal est sendo usado pelo sistema. USER - Pr-define o nome de conta como varivel de ambiente, ou seja, ao se logar ao sistema a ID do usurio combinada com um nome de conta, para saber qual o usurio corrente use o comando echo USER. MAIL - Esta a varivel de correio eletrnico. Para saber como seu mail est definido use o comando echo $MAIL. LOGNAME - Esta varivel um sinnimo para USER. Para saber qual o seu logname use o comando echo $LOGNAME.

Existem vrios tipos de shell, entre os quais podemos visualiz-los no arquivo /etc/shells com os seguintes comandos: # cat /etc/shells

www.clubedohacker.com.br

54

Administrao e Segurana em Sistemas GNU/Linux

Para visualizar as variveis de ambiente no sistema podemos utilizar os comandos a seguir: Variveis locais: $ set Variveis globais: $ env ou $ printenv Para atribuir um valor a uma varivel local. Exemplo: $ LINUX=free $ echo $LINUX free O comando echo exibe o valor de uma varivel de ambiente. Vamos verificar se a varivel aparece na relao de variveis locais. Exemplo:$ set | grep LINUX LINUX=free

Agora vamos transformar esta varivel local uma varivel global. Para isso devemos usar o comando export:# export LINUX # env | grep LINUX LINUX=free

Para deletar uma varivel de ambiente, usamos o comando unset e para verificarmos se a varivel foi excluda usaremos o comando echo. Exemplo: www.clubedohacker.com.br 55

Administrao e Segurana em Sistemas GNU/Linux # unset LINUX # echo $LINUX Agora vamos editar o nosso prompt de comando que representado pela varivel PS1. Podemos utilizar os seguintes argumentos para esta tarefa: Argumento Descrio \h Host da mquina. \W Diretrio corrente. \w Caminho completo do diretrio corrente. \u Nome do usurio. \t Hora do sistema. \d Data. \\$ $ para usurio comum e # para root. # export PS1="[\h@\w]\\$" [trabalho@~]# Observe que o prompt mudar, ele deve mostrar o host (trabalho), o caminho completo do diretrio corrente (~) e o tipo de caractere que faz referncia ao prompt. Podemos criar variveis globais editando-as no arquivo /etc/profile: # vi /etc/profile

Podemos criar variveis que so executadas somente no ambiente do usurio editando o arquivo ~/.bash_profile, sendo executadas automaticamente no login: # vi /home/user/.bash_profile

www.clubedohacker.com.br

56

Administrao e Segurana em Sistemas GNU/Linux

Introduo a programao em Shell Script Passos para criar um Shell Script Escolha um nome para o script Use apenas letras minsculas e evite acentos, smbolos e espao em branco.nome: sistema

Escolha o diretrio onde colocar o script Para que o script possa ser executado de qualquer parte do sistema, movao para um diretrio que esteja no seu PATH. Para ver quais so estes diretrios, use o comando: echo $PATH Se no tiver permisso de mover para um diretrio do PATH, deixeo dentro de seu HOME. Crie o arquivo e coloque nele os comandos Use o editor de textos de sua preferncia para colocar todos os comandos dentro do arquivo. Coloque a chamada do Shell na primeira linha A primeira linha do script deve conter: # !/bin/bash para que ao ser executado, o sistema saiba que o Shell quem ir interpretar estes comandos. Torne o script um arquivo executvel www.clubedohacker.com.br 57

Administrao e Segurana em Sistemas GNU/Linux Use o seguinte comando para que seu script seja reconhecido pelo sistema como um comando executvel: chmod +x sistema Problemas na execuo do Script

"Comando no encontrado" Descrio: O Shell no encontrou o seu script. Verifique se o comando que voc est chamando tem exatamente o mesmo nome do seu script. Lembrese que no Linux as letras maisculas e minsculas so diferentes, ento o comando "SISTEMA" diferente do comando "sistema". Caso o nome esteja correto, verifique se ele est no PATH do sistema. O comando echo $PATH mostra quais so os diretrios conhecidos, mova seu script para dentro de um deles, ou chameo passando o caminho completo. Se o script estiver no diretrio corrente, chameo com um ./ na frente. Exemplo: $ ./sistema Caso contrrio especifique o caminho completo desde o diretrio raiz: $ /tmp/scripts/sistema "Permisso Negada" Descrio: O Shell encontrou seu script, mas ele no executvel. Use o comando chmod +x nome_escript para tornlo um arquivo executvel.

"Erro de Sintaxe" Descrio: O Shell encontrou e executou seu script, porm ele tem erros. Um script s executado quando sua sintaxe est 100% correta. Verifique os seus comandos, o erro pode ser algum IF ou aspas que foram abertos e no foram fechados. A prpria mensagem informa o nmero da linha onde o erro foi encontrado. Criando um Shell Script Aps ler e executar os passos para a criao de um Shell Script, voc j sabe o bsico para fazer um script em Shell do zero e executlo. O Shell Script que vamos criar serve para melhorar a sada de algumas aes. www.clubedohacker.com.br 58

Administrao e Segurana em Sistemas GNU/Linux Executar vrios comandos seguidos resulta num bolo de texto na tela, misturando as informaes e dificultando o entendimento. Vamos trabalhar um pouco, fazendo a sada do script de uma forma legvel. O comando echo serve para mostrar mensagens na tela. Vamos criar uma mensagem de cada comando antes de execut-lo: Crie um diretrio: mkdir /tmp/shells Acesse o diretrio:cd /tmp/shells

Escreva o arquivo:nano msg.sh

Para usar o echo, basta colocar o texto entre "aspas". Se nenhum texto for colocado, uma linha em branco ser exibida. Para o script ficar melhor, vamos colocar uma interao com o usurio, solicitando uma confirmao antes de executar os comandos:

O comando "read" leu o que o usurio digitou e guardou na varivel RESPOSTA. Logo em seguida, o comando "test" checou se o contedo dessa varivel era "n". Se afirmativo, o comando "exit" foi chamado e o script foi finalizado. Nessa linha h vrios detalhes importantes: O contedo da varivel acessado colocandose um cifro "$" na frente; www.clubedohacker.com.br 59

Administrao e Segurana em Sistemas GNU/Linux O comando test muito til para fazer vrios tipos de checagens em textos e arquivos; O operador lgico "&&", s executa o segundo comando caso o primeiro tenha sido OK. O operador inverso o "||". Com o tempo, os scripts crescem e quanto maior, mais difcil encontrar o ponto certo onde fazer a alterao ou corrigir algum erro. Para poupar horas de estresse e facilitar as manutenes futuras, necessrio deixar o cdigo visualmente mais agradvel e espaado, devemos colocar comentrios esclarecedores. Basta iniciar a linha com um "#" e escrever o texto do comentrio em seguida. Estas linhas so ignoradas pelo Shell durante a execuo. O cabealho com informaes sobre o script e seu autor tambm importante para se ter uma viso geral do que o script faz, sem precisar decifrar seu cdigo. Exemplo:

Alguns dos conceitos vistos no script anterior Variveis As variveis so a base de qualquer script. dentro delas que os dados obtidos durante a execuo do script sero armazenados. Para definir uma varivel, basta usar o sinal de igual "=" e para ver seu valor, usase o "echo":

www.clubedohacker.com.br

60

Administrao e Segurana em Sistemas GNU/Linux No podem haver espaos ao redor do igual "=" Ainda possvel armazenar a sada de um comando dentro de uma varivel. Ao invs de aspas, o comando deve ser colocado entre "$(...)", veja:

O comando "unset" apaga uma varivel. Para ver quais as variveis que o Shell j define por padro, use o comando: env Trabalhando com modos de inicializao Processo init O init o primeiro processo iniciado no Linux, logo aps a carga do kernel do sistema. Quando disparado, o init continua a carga do sistema, geralmente executando vrios scripts que iro verificar e montar sistemas de arquivos, configurar teclado e iniciar servidores, entre outras tarefas. O init utilizado no Linux permite que existam diversos nveis de execuo no sistema. Um nvel de execuo uma configurao de software do sistema que define quais processos devem ser inicializados e quais no devem, e tambm de que modo so inicializados. O administrador do sistema quem define qual ser o nvel de execuo em que o sistema e os processos sero executados. Runlevels Toda a inicializao do sistema baseada em runlevels, ou seja, nveis de execuo. Os sistemas Linux possuem 6 runlevels: Nveis de Execuo Ao 0 desligar o sistema 1 modo monousurio, tambm chamado de modo single 2 modo multiusurio, texto 3 modo multiusurio, texto, com servios 4 no utilizado 5 modo grfico (X11) 6 reinicializar o sistema

www.clubedohacker.com.br

61

Administrao e Segurana em Sistemas GNU/Linux A descrio do sistema de runlevels normalmente pode ser encontrada no arquivo /etc/inittab, onde voc tambm poder alterar o runlevel padro do sistema. Alguns runlevels que merecem destaque so o 1, 3 e 5. O runlevel 1 nunca deve ser utilizado, a no ser para manuteno do sistema, devido a falta total de segurana. O runlevel 3 o mais comum. O runlevel 5 o mais indicado para usurios novatos, que dependem completamente do sistema grfico para trabalhar. Com o uso do runlevel 5, gasta recursos de mquina, se a sua placa de vdeo estiver configurada incorretamente, o servidor X tentar forar a inicializao grfica e sua tela ocasionalmente ficar piscando, tornando impossvel qualquer comunicao com o sistema, o que tambm dificultar a reconfigurao da placa de vdeo. Editando o arquivo:nano /etc/inittab

www.clubedohacker.com.br

62

Administrao e Segurana em Sistemas GNU/Linux

Configurando e gerenciando Hardware

www.clubedohacker.com.br

63

Administrao e Segurana em Sistemas GNU/Linux Identificao de discos e parties em sistemas GNU/Linux

No GNU/Linux, os dispositivos existentes em seu computador (como discos rgidos, disquetes, tela, portas de impressora, modem, etc) so identificados por um arquivo referente a este dispositivo no diretrio /dev. A identificao de discos rgidos no GNU/Linux feita da seguinte forma: /dev/hda1 | | || | | | |_Nmero que identifica o nmero da partio no disco rgido. | | | | | |_Letra que identifica o disco rgido (a=primeiro, b=segundo, etc...). | | | |_Sigla que identifica o tipo do disco rgido (hd=ide, sd=SCSI, xt=XT). | |_Diretrio onde so armazenados os dispositivos existentes no sistema. Abaixo algumas identificaes de discos e parties em sistemas Linux:

/dev/fd0 - Primeira unidade de disquetes. /dev/fd1 - Segunda unidade de disquetes. /dev/hda - Primeiro disco rgido na primeira controladora IDE do micro (primary master). /dev/hda1 - Primeira partio do primeiro disco rgido IDE. /dev/hdb - Segundo disco rgido na primeira controladora IDE do micro (primary slave). /dev/hdb1 - Primeira partio do segundo disco rgido IDE. /dev/sda - Primeiro disco rgido na primeira controladora SCSI. /dev/sda1 - Primeira partio do primeiro disco rgido SCSI. /dev/sdb - Segundo disco rgido na primeira controladora SCSI. /dev/sdb1 - Primeira partio do segundo disco rgido SCSI. /dev/sr0 - Primeiro CD-ROM SCSI. www.clubedohacker.com.br 64

Administrao e Segurana em Sistemas GNU/Linux

/dev/sr1 - Segundo CD-ROM SCSI. /dev/xda - Primeiro disco rgido XT. /dev/xdb - Segundo disco rgido XT. As letras de identificao de discos rgidos podem ir alm de hdb, em meu

micro, por exemplo, a unidade de CD-ROM est localizada em /dev/hdg (Primeiro disco - quarta controladora IDE). importante entender como os discos e parties so identificados no sistema, pois ser necessrio usar os parmetros corretos para monta-los. Referncia sobre algumas identificaes de discos e parties em Sistemas Linux:http://focalinux.cipsga.org.br/guia/intermediario/ch-disc.htm

Recomendaes para configurao e armazenamento de dados

H vrias vantagens, e algumas poucas desvantagens, em se usar um esquema de particionamento. Neste curso usaremos um aspecto do particionamento do disco rgido de um servidor Linux, tendo em vista aspectos de segurana. Observe o esquema de particionamento, as recomendaes direcionam a um esquema para particionar:

/

/var

/usr

/tmp

swap

/home

Partio / /var /usr /tmp /swap /home

Tamanho 250 MB 2 ou 3 GB 4 a 6 GB 100 MB 2 x RAM 100 MB por usurio www.clubedohacker.com.br 65

Administrao e Segurana em Sistemas GNU/Linux Gerenciando Hardware Parties montadas automaticamente no processo de boot:# cat /etc/fstab

Mostra os sistemas de arquivos montados:# df # df -h

Gerenciador de parties no HD:# cfdisk # fdisk

Criando uma partio com o cfdisk: Selecione o ESPAO LIVRE New Primary Write Quit REBOOT # mkfs.ext3 /dev/hda4 # mkdir /partition # vi /etc/fstab /dev/hda4 /partition ext3 defaults 0 2

Informaes sobre o hardware de sua mquina:# lspci # scanpci

Informaes de processamento /proc:# cd /proc

Exemplo:# cat /proc/bus/pci/devices

Verificando uma placa:# lspci | grep audio

Verificando as irqs que esto sendo utilizadas:# cat /proc/interrupts

Verificando endereos de I/O que esto sendo utilizados: www.clubedohacker.com.br 66

Administrao e Segurana em Sistemas GNU/Linux# cat /proc/ioports

Verificando informaes de processamento:# cat /proc/cpuinfo

Sabendo qual a sua partio swap:# cat /proc/swaps

Verificando detalhes de memria:# cat /proc/meminfo

Configurando o teclado:# loadkeys -d br-abnt2 # loadkeys -d us

Configurando o mouse serial:# apt-get install gpm # gpm -m /dev/ttySO -t ms3 /dev/ttySO => corresponde a porta serial 1 ms3 => o mouse que tem a barra de rolamento no meio Mouse PS/2: gpm -m /dev/psaux -t ms3

Montando um CDROM:# mount /dev/cdrom /media/cdrom

Montando um pendrive:# mkdir /media/pen # mount /dev/sda /media/pen

Formatando uma partio que voc criou:# mkfs -t ext3 /dev/hda4

# mkfs.ext3 /dev/hda4

Montando a partio:# mkdir /mnt/aula /dev/hda4 /mnt/aula

# mount -t ext3

Desmontando uma partio:# umount # umount /dev/cdrom /mnt/aula

www.clubedohacker.com.br

67

Administrao e Segurana em Sistemas GNU/Linux Conhecendo os mdulos de componentes da CPU Lista os mdulos em memria:# lsmod # cat /etc/modules

Identifica um hardware:# lspci | grep -i ethernet

Informaes do mdulo:# modinfo sis900

Verifica se tem suporte ao mdulo:# modprobe -l | grep -i sis900

Subindo o mdulo:# modprobe sis900

Verifica todo o relatrio se a placa subiu:# dmesg | grep sis900

Consulta se o mdulo est carregado:# lsmod | grep sis900

Adiconando o mdulo ao boot:# echo nomedomdulo >> /etc/modules

mdulos

Modprobe -r snd_intel8x0 Remove considerando dependncias

rmmod snd_intel8x0 Remove sem considerar dependncias

S.O

modprobe snd_intel8x0 Levanta considerando dependncias

insmod snd_intel8x0 Levanta sem considerar dependncias

www.clubedohacker.com.br

68

Administrao e Segurana em Sistemas GNU/Linux Configurao de dispositivo Wireless LAN Referncia: www.guiadohardware.net Depois dos modems, as placas wireless so provavelmente a categoria de perifricos que mais causam dores de cabea no Linux. Quase todas as placas funcionam no Linux de uma forma ou de outra, mas muitas usam drivers ou firmwares binrios, que, assim como no caso dos softmodems, precisam ser instalados manualmente. Com relao aos drivers, as placas wireless podem ser divididas em dois grupos: O primeiro o das placas com drivers nativos, como as com chipset Prism, Lucent Wavelan (usado, por exemplo, nas placas Oricono), Atmel, Atheros, Intel IPW2100 e IPW2200, ACX100 e 111 e, recentemente, tambm as Ralink e Realtek 8180. O segundo grupo o das placas que no possuem drivers nativos, mas podem ser usadas atravs do Ndiswrapper, que permite ativar a placa usando o driver do Windows. Muitos dos drivers so parcialmente proprietrios, outros so completamente abertos, mas precisam do arquivo de firmware da placa, que por sua vez proprietrio. Muitas distribuies incluem um conjunto bastante reduzido de drivers por padro, outras incluem os drivers, mas no incluem os firmwares, que so igualmente necessrios. OBS: para usar qualquer placa wireless no Linux, voc deve ter instalado o pacote "wireless-tools", que contm os comandos necessrios para configurar a placa, como o iwconfig. Hoje em dia, quase todas as distribuies o instalam por padro, mas no custa verificar.

Ndiswrapper O Ndiswrapper uma espcie de Wine para drivers de placas de rede wireless. Ele funciona como uma camada de abstrao entre driver e o sistema operacional, permitindo que placas originalmente no suportadas no Linux funcionem usando os drivers do Windows. www.clubedohacker.com.br 69

Administrao e Segurana em Sistemas GNU/Linux Voc pode encontrar vrias dicas sobre placas testadas por outros usurios do Ndiswrapper no: http://ndiswrapper.sourceforge.net/wiki/index.php/List . Cada placa diferente; por isso, os drivers de uma no funcionam na outra. Mas, todos os drivers conversam com o sistema operacional usando uma linguagem especfica de comandos. Ou seja, do ponto de vista do sistema operacional todos os drivers so parecidos. O Ndiswrapper consegue executar o driver e "conversar" com ele usando esta linguagem. Ele trabalha como um intrprete, convertendo os comandos enviados pelo Kernel do Linux em comandos que o driver entende e vice-versa. O Ndiswrapper no funciona com todas as placas e, em outras, alguns recursos como o WPA no funcionam. Apesar disso, na maior parte dos casos ele faz um bom trabalho. A verso mais recente pode ser baixada no: SourceForge.net: ndiswrapper Para compilar o pacote voc precisa ter instalados os pacotes kernel-headers e/ou kernel-source e os compiladores. Descompacte o arquivo e acesse a pasta que ser criada. Para compilar e instalar, basta rodar o comando:# make install

O Ndiswrapper composto de basicamente dois componentes: Um mdulo, o ndiswrapper.ko (ou ndiswrapper.o se voc estiver usando uma distribuio com o Kernel 2.4), que vai na pasta "/lib/modules/2.x.x/misc/". Um executvel, tambm chamado "ndiswrapper", que usado para configurar o driver, apontar a localizao do driver Windows que ser usado, etc. Se voc estiver usando uma distribuio que j venha com uma verso antiga do Ndiswrapper instalada, voc deve primeiro remover o pacote antes de instalar uma verso mais atual. Caso a localizao do mdulo ou do executvel no pacote da distribuio seja diferente, pode acontecer de continuar sendo usado o driver antigo, mesmo depois que o novo estiver instalado. Depois de instalar o Ndiswrapper, o prximo passo rodar o comando:# depmod -a

www.clubedohacker.com.br

70

Administrao e Segurana em Sistemas GNU/Linux O comando serve para que a lista de mdulos do Kernel seja atualizada e o novo mdulo seja realmente instalado. Isto normalmente feito automaticamente pelo script de instalao, apenas uma precauo. Antes de ativar o Ndiswrapper voc deve apontar a localizao do arquivo ".inf" dentro da pasta com os drivers para Windows para a sua placa. Em geral os drivers para Windows XP so os que funcionam melhor, seguidos pelos drivers para Windows 2000. Voc pode usar os prprios drivers includos no CD de instalao da placa. Se eles no funcionarem, experimente baixar o driver mais atual no site do fabricante, ou pesquisar uma verso de driver testada no ndiswapper no: http://ndiswrapper.sourceforge.net/wiki/index.php/List Para carregar o arquivo do driver rode o comando, seguido do caminho completo para o arquivo:# ndiswrapper -i /mnt/hda6/Driver/WinXP/GPLUS.inf

Verificando se o drive foi mesmo ativado:# ndiswrapper l

Se o driver estiver carregado, carregue o mdulo: Antes de carregar o mdulo da placa. Voc deve carregar o mdulo genrico wlan.# modprobe ndiswrapper

O led da placa ir acender se tudo estiver OK, indicando que ela est ativa. Se a placa no for ativada, voc ainda pode tentar uma verso diferente do driver. Voc precisa primeiro descarregar o primeiro driver. Rode o ndiswrapper -l para ver o nome do driver e em seguida descarregue-o com o comando:# ndiswrapper e [nome_driver]

Para que a configurao seja salva e o Ndiswrapper seja carregado durante o boot, voc deve rodar o comando:# ndiswrapper m

Em seguida, adicione a linha ndiswrapper no final do arquivo "/etc/modules", para que o mdulo seja carregado no boot. Voc pode fazer a configurao utilizando o ndisgtk, um utilitrio grfico, disponvel nos repositrios do Debian, no Ubuntu e em outras distribuies. --------------------------------------------------------------------------------------------------------Configurando uma rede wireless no Linux www.clubedohacker.com.br 71

Administrao e Segurana em Sistemas GNU/Linux Numa rede wireless, o dispositivo central o access point (ponto de acesso). Ele ligado no hub da rede, ou diretamente no modem ADSL ou cable, e se encarrega de distribuir o sinal para os clientes. Ao contrrio de um hub, que um dispositivo "burro", que trabalha apenas no nvel fsico e dispensa de configurao, o access point possui sempre uma interface de configurao, que pode ser acessada via navegador, a partir de qualquer um dos micros da rede. Basta acessar o endereo IP do access point, veja no manual qual o endereo padro do seu. Se o endereo for 192.168.1.254 por exemplo, configure seu micro para usar um endereo dentro da mesma faixa (192.168.1.50 por exemplo), de forma que ele faa parte da mesma rede que ele. Depois de acessar da primeira vez, aproveite para definir uma senha de acesso e alterar o endereo padro por um dentro da faixa de endereos IP usada na sua rede.

Para detectar os pontos de acesso disponveis (a partir do cliente), use o comando:# iwlist wlan0 scan

Lembre-se que, dependendo do driver usado, o dispositivo de rede usado ser diferente. Ao utilizar o driver para placas ADM8211 por exemplo, a placa wireless ser vista pelo www.clubedohacker.com.br 72

Administrao e Segurana em Sistemas GNU/Linux sistema como "eth0", e no como "wlan0", que seria o mais comum. Para que o comando funcione, preciso que a placa esteja ativada. se necessrio, antes de execut-lo use o comando:# ifconfig wlan0 up

Se voc estiver dentro do alcance de algum ponto de acesso, o iwlist lhe retorna um relatrio.# iwlist wlan0 scan

Se houver algum ponto de acesso dentro da rea de alcance. Faltar apenas configurar a placa para se conectar a ele. Veja um exemplo, de ponto de acesso com a encriptao via Wep ativa (Encryption key:on) e no est divulgando seu ESSID (ESSID:""). Este um exemplo de configurao de um ponto de acesso no pblico, onde necessrio saber ambas as informaes para se conectar rede. Um exemplo de resultado ao escanear uma rede pblica, onde o objetivo permitir que os clientes conectem-se da forma mais simples possvel.

Neste caso esto disponveis dois pontos de acesso, ambos usam o ESSID "vex" e ambos esto com a encriptao de dados desativada (Encryption key:off). Por usarem o mesmo ESSID, eles fazem parte da mesma rede, por isso voc no precisa especificar em qual deles quer se conectar. Basta configurar a rede wireless e, em seguida, obter a configurao da rede via DHCP. www.clubedohacker.com.br

73

Administrao e Segurana em Sistemas GNU/Linux Em outra situao, pode haver mais de uma operadora oferecendo acesso no mesmo local, ou mesmo outros pontos de acesso de particulares, que intencionalmente ou no estejam com a encriptao desativada, oferecendo acesso pblico. Neste caso, voc escolhe em qual rede quer se conectar especificando o ESSID correto na configurao da rede. comum tambm que os pontos de acesso sejam configurados para usar um canal especfico, neste caso, ao rodar o "iwlist wlan0 scan" voc ver tambm uma linha "channell=x", onde o x indica o nmero do canal, que tambm precisa ser especificado na configurao da rede. Tome cuidado ao se conectar a pontos de acesso pblico. Com a encriptao desativada, todos os dados transmitidos atravs da rede podem ser capturados com muita facilidade por qualquer um dentro da rea de alcance. Lembre-se de que o alcance de uma rede wireless cresce de acordo com a potncia da antena usada no cliente. Com uma antena de alto alcance, possvel se conectar a um ponto de acesso a 500 metros de distncia, ou at mais, caso no exista nenhum tipo de obstculo pelo caminho. Sempre que precisar transferir arquivos, use um protocolo que transmita os dados de forma encriptada (como o SSH). Jamais d upload de arquivos para o servidor do seu site via FTP. Acesse e-mails apenas em servidores que oferecem suporte a pop3 com SSL. No acesse pginas de bancos, pois a encriptao usada nos navegadores pode ser quebrada com uma relativa facilidade, e obter senhas bancrias o tipo de situao onde o trabalho necessrio vale a pena. Existem sniffers bastante poderosos, como o kismet, que podem descobrir muitas informaes sobre a rede, incluindo o ESSID e a chave de encriptao em pouco tempo, principalmente ao usar chaves de encriptao Wep de 64 bits. Voc pode baixlo no: http://www.kismetwireless.net/ Ele oferece um conjunto bastante completo de testes de segurana, que podem tanto ser usados para verificar a segurana da sua prpria rede, quanto invadir redes mal configuradas. O principal obstculo para usar o Kismet que ele compatvel com um nmero relativamente pequeno de placas, basicamente apenas modelos baseados nos chips Orinoco, Prism, Intel IPW 2100, Atheros e Aironet. Ele no funciona, por exemplo, em conjunto com as placas suportadas atravs do ndiswrapper.

ESSID

www.clubedohacker.com.br

74

Administrao e Segurana em Sistemas GNU/Linux A primeira configurao necessria para se conectar rede o ESSID, o cdigo de identificao da rede (definido na configurao do ponto de acesso), que deve ser fornecido pelo cliente ao se conectar no ponto de acesso. Se o ESSID da sua rede fosse "aula", por exemplo, o comando seria:# iwconfig wlan0 essid aula

Lembre-se sempre de verificar qual o dispositivo usado pela sua placa de rede wireless, ele varia de acordo com o driver usado (a placa pode ser vista pelo sistema como wlan0, ath0 ou mesmo eth0). Voc pode verificar isso rapidamente rodando o comando ifconfig.

Canal Caso voc tenha configurado o ponto de acesso para utilizar um canal especfico, configure a placa para utiliz-lo com o comando:# iwconfig wlan0 channel 10

A lista dos canais disponveis varia de acordo com a configurao de pas no ponto de acesso. Em teoria, podem ser usados 17 canais, de 0 a 16. Porm, apenas 14 deles, de 1 a 14 so licenciados pelo FCC e a lista diminui mais um pouco de acordo com o pas escolhido. Nos EUA permitido o uso dos canais de 1 a 11, na Europa de 1 a 13 e no Japo de 1 a 14. At na data 07/03/2007, no existia legislao sobre isso no Brasil, mas provvel que seja seguido o padro dos EUA. Usar canais diferentes uma forma de minimizar interferncias caso voc esteja colocando vrios pontos de acesso dentro da mesma rea, ou perceba que existem pontos de acesso de vizinhos, muito prximos do seu. Existe uma diferena de freqncia de apenas 5 MHz entre cada canal, porm o sinal das placas 802.11b ocupa uma faixa de 30 MHz. Por isso, para que realmente no exista possibilidade de interferncia entre dois pontos de acesso prximos, preciso usar canais distantes, como por exemplo 1, 6 e 11 ou 1, 7 e 14. De qualquer forma, a moral da histria que, independentemente do canal usado, preciso usar o mesmo tanto na configurao do ponto de acesso quanto na configurao dos clientes para que a rede funcione.

Encriptao WEP www.clubedohacker.com.br 75

Administrao e Segurana em Sistemas GNU/Linux

Caso voc tenha ativado a encriptao via Wep no ponto de acesso, configure a chave usada. Na configurao do ponto de acesso voc tem a opo de criar uma chave usando caracteres hexadecimais (onde temos 16 dgitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F e cada dgito equivale a 4 bits) ou usar caracteres ASCII, onde possvel misturar letras, nmeros caracteres especiais. Ao usar caracteres hexadecimais, a chave ter 10 dgitos (123456789A no exemplo) e o comando ser:# iwconfig wlan0 key restricted 123456789A

Se a chave for em ASCII, onde cada caracter equivale a 8 bits, a chave ter apenas 5 dgitos (qwert no exemplo) e o comando ser:# iwconfig wlan0 key restricted s:qwert

Ao usar uma chave em ASCII voc precisa adicionar o "s:" antes da chave. Se voc tiver configurado o ponto de acesso para usar uma chave de 128 bits (a segurana contra acessos no autorizados muito maior), ento a chave ter 26 dgitos em hexa ou 13 em ACSII. 10 caracteres hexadecimais formam uma chave de apenas 40 bits (4 por caracter). Este justamente o problema fundamental das chaves de 64 bits: na verdade, so duas chaves separadas, uma de 40 bits e outra de 24 bits (chamada de vetor de inicializao), muito fcil de quebrar depois que a primeira descoberta. Uma chave de 64 bits sem problemas bvios poderia oferecer uma segurana aceitvel, mas uma chave de 40 bits fraca em todos os aspectos. No caso das chaves de 128 bits, a chave de encriptao tem 104 bits, com mais os mesmos 24 bits do vetor.

Ativando a rede Depois de terminar a configurao inicial, voc pode ativar a interface com o comando:# ifconfig wlan0 up

O ltimo passo configurar os endereos da rede, da mesma forma que seria feito em uma placa convencional.

www.clubedohacker.com.br

76

Administrao e Segurana em Sistemas GNU/Linux Configurando tambm a rede manualmente, use os comandos:

# ifconfig wlan0 192.168.0.2 netmask 255.255.255.0 # route del default # route add default wlan0 # route add default gw 192.168.0.1 (remove qualquer configurao anterior, colocando a placa wireless como rota padro do sistema e configurando o gateway da rede).

Se preferir configurar a rede via DHCP, rode o comando:# dhcpcd wlan0

No se esquea de configurar tambm os endereos dos servidores DNS no arquivo "/etc/resolv.conf". Um exemplo de configurao do arquivo :# cat /etc/resolv.conf

nameserver 200.199.252.68 nameserver 200.248.155.11 nameserver 200.199.201.23 Com a rede funcionando, voc pode monitorar a qualidade do link, taxa de transmisso de dados, tipo de encriptao, informaes sobre o ponto de acesso, entre outros detalhes da conexo usando o "wavemon", um pequeno utilitrio includo na maioria das distribuies. Ativando durante a inicializao O prximo passo ao configurar manualmente fazer com que a configurao seja carregada durante o boot. Muitos utilitrios de configurao (como o Kwifimanager que veremos adiante) fazem isso para voc. Mas, se voc preferir do jeito mais ortodoxo, crie o arquivo "/etc/sysconfig/network-scripts/ifcfg-wlan0". Todos os arquivos dentro da pasta /etc/sysconfig/network-scripts/ so lidos durante o boot. Voc ver um arquivo separado para cada placa de rede instalada no sistema. O arquivo ifcfg-eth0 configura a placa eth0 e assim por diante. Crie o arquivo de acordo com o nome com que sua placa reconhecida pelo sistema. Se a sua placa reconhecida como "ath0", por exemplo, o arquivo ser o "ifcfg-ath0". www.clubedohacker.com.br 77

Administrao e Segurana em Sistemas GNU/Linux Dentro do arquivo vo os parmetros da rede, como em: DEVICE=wlan0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Wireless MODE=Managed ESSID="casa" CHANNEL=10 IPADDR= DOMAIN= NETMASK=255.255.255.0 GATEWAY=192.168.0.1 USERCTL=no PEERDNS=no IPV6INIT=no RATE=Auto Ou: DEVICE=wlan0 ONBOOT=yes TYPE=Wireless MODE=Managed ESSID="casa" CHANNEL=10 IPADDR=192.168.0.2 NETMASK=255.255.255.0 NETWORK=192.168.1.0 BROADCAST=192.168.0.255 GATEWAY=192.168.0.1 USERCTL=no PEERDNS=no IPV6INIT=no RATE=Auto

www.clubedohacker.com.br

78

Administrao e Segurana em Sistemas GNU/Linux Voc pode tambm criar um script com os comandos para fazer a configurao manual e execut-lo manualmente quando quiser usar a rede wireless, como por exemplo o caso de quem tem um notebook que fica a maior parte do tempo plugado na rede de 100 megabits da empresa, mas que em casa usa uma rede wireless. Neste caso, crie um arquivo de texto, como por exemplo /home/usuario/wireless. Dentro dele vo os comandos, um por linha, como em: #!/bin/sh iwconfig wlan0 essid casa iwconfig wlan0 channel 10 iwconfig wlan0 key restricted 1234567890 ifconfig wlan0 up ifconfig wlan0 192.168.0.2 netmask 255.255.255.0 route del default route add default wlan0 route add default gw 192.168.0.1 Transforme o arquivo num executvel com o comando "chmod +x /home/usuario/wireless" e execute-o (como root) sempre que quiser ativar a rede wireless. Voc pode ter vrios arquivos diferentes caso precise se conectar a vrias redes com configuraes diferentes. Se voc usar ao mesmo tempo uma placa de rede cabeada e uma placa wireless e o acesso pela placa wireless fique intermitente, com a configurao caindo poucos minutos depois de configurada a rede, experimente comear a desativar a placa cabeada ao configurar a rede wireless. Este um problema freqente, principalmente ao utilizar o ndiswrapper, mas felizmente fcil de resolver. Antes de configurar a placa wireless, desative a placa cabeada. Se a placa cabeada a eth0 por exemplo, rode o comando:# ifconfig eth0 down

Voc pode adicionar o comando no seu script de configurao da rede, para que ele seja executado sempre antes dos comandos que configuram a placa wireless.

www.clubedohacker.com.br

79

Administrao e Segurana em Sistemas GNU/Linux

Criando e manipulando texto com o Editor

Viwww.clubedohacker.com.br 80

Administrao e Segurana em Sistemas GNU/Linux "vi" a sigla para "Visual Interface". A origem desse nome se deve ao seguinte fato: quando o vi foi criado (comeo da dcada de 80), no era comum existirem editores de textos como nos dias de hoje. Naquela poca, voc digitava um texto mas no podia v-lo. Em 1992, foi criado o vim (Vi IMitator), um clone fiel ao vi, porm com muitas outras funcionalidades, que s foram sendo adicionadas. Algum tempo depois, o vim passou a ser chamado de `Vi IMproved' (vi melhorado). O vim um dos editores de textos mais utilizados no mundo Unix. Em alguns sistemas, existe um link simblico (/bin/vi) apontando para o /usr/vim. Em outros, o /bin/vi o executvel, s que executa diretamente o vim. Muita gente acha que usa vi, mas na verdade utiliza o vim, e eles tm algumas diferenas. O que voc ver abaixo fala sobre o vim. O vim um editor de textos muito poderoso, ele pode: abrir vrios arquivos ao mesmo tempo, possui sistema de autocorreo, autoidentao, seleo visual, macros, seleo vertical de texto, uso de expresses regulares, sintaxe colorida, e muito mais. Ele no exclusivo do Unix, ou seja, pode ser executado em outras plataformas, como: MacOS, Sun, Windows entre outras. Existe tambm o gvim, que o vim em modo grfico, com todas as funcionalidades do vim em pleno funcionamento, o que muda apenas o modo grfico mesmo. O vim possui vrios modos, ou seja, estados em que ele se encontra. So eles: modo de insero, comandos, linha de comando, visual, busca e reposio. Abordaremos alguns dos principais comandos: Modo de insero e de comandos Para identificar o modo (estado) do vim, basta visualizar o rodap da tela. Vamos prtica. Para executar o vim, utilize: $ vi $ vi arquivo $ vi arquivo + => Abre o vim vazio, sem nenhum arquivo e exibe a tela de apresentao. => Abre o arquivo de nome "arquivo".

=> Abre o arquivo de nome "arquivo", com o cursor no final do mesmo. $ vi arquivo +10 => Abre o arquivo de nome "arquivo", com o cursor na linha 10. $ vi arquivo +/Clube_do_Hacker => Abre o arquivo de nome "arquivo", na primeira ocorrncia da palavra Clube_do_Hacker". Ao executar o vim, ele inicia diretamente em modo de comando. Para comprovar, s olhar na ltima linha (rodap) e no vai haver nada l. Isso quer dizer que voc no conseguir escrever nada, pode digitar a vontade que s vai ouvir beeps. www.clubedohacker.com.br 81

Administrao e Segurana em Sistemas GNU/Linux Para comear a escrever, pressione "i" em seu teclado. O vim entra em modo de insero, que voc comprova (como falado anteriormente) pelo rodap da tela, onde fica a seguinte marcao:

Suponha que voc j digitou o bastante, e quer salvar, por segurana. Pressione a tecla ESC para voltar em modo de comandos. E veja os comandos para salvar/sair: :w :wq :x ZZ :w!. :q!. :wq! => Salva o arquivo que est sendo editado no momento. => Salva e sai. => Idem. => Idem. => Salva forado => Sai forado => Salva e sai forado.

Lembre que utilizando o "i" para insero, a mesma se inicia inserindo texto antes do cursor. Veja agora outros subcomandos de insero de texto:

A o O Ctrl + h

=> Insere o texto no fim da linha onde se encontra o cursor => Adiciona uma linha vazia abaixo da linha corrente => Adiciona uma linha vazia acima da linha corrente => Apaga ltimo caracter esquerda

Subcomandos para movimentao pelo texto: Ctrl + f Ctrl + b H M L h j k l w W b B 0 (zero) ^ => Passa para a tela seguinte. => Passa para a tela anterior. => Move o cursor para a primeira linha da tela. => Move o cursor para o meio da tela. => Move o cursor para a ltima linha da tela. => Move o cursor para caracter a esquerda. => Move o cursor para linha abaixo. => Move o cursor para linha acima. => Move o cursor para caracter a direita. => Move o cursor para o incio da prxima palavra (no ignorando a pontuao). => Move o cursor para o incio da prxima palavra (ignorando a pontuao). => Move o cursor para o incio da palavra anterior (no ignorando a pontuao). => Move o cursor para o incio da palavra anterior (ignorando a pontuao). => Move o cursor para o incio da linha corrente. => Move o cursor para o primeiro caracter no branco da www.clubedohacker.com.br 82

Administrao e Segurana em Sistemas GNU/Linux $ nG G linha. => Move o cursor para o fim da linha corrente. => Move o cursor para a linha de nmero "n" (susbstitua n pelo nmero da linha).. => Move o cursor para a ltima linha do arquivo.

Copiando e colando textos no vim (utilizando o mouse) yy Copia o texto da linha corrente p Cola o texto na linha que est posicionado o marcador. Usando o modo visual do vim: Entre no modo visual: v Agora, utilize as teclas direcionais (setas) do teclado, para selecionar o texto desejado. Pressione e cole, utilizando a tecla "p" (paste). Veja agora como apagar um determinado texto: Utilizando normalmente as teclas Backspace/Delete, ou entrando em modo visual (v) e pressionando a tecla Delete. Voc pode remover at o final de uma palavra, utilizando: dw Pode tambm remover at o final de uma frase: d$ Desfazendo uma ao claro que voc pode desfazer uma ao que voc considera errado, ou que errou ao digitar o texto. s utilizar: u Se voc precisar voltar o texto na tela, utilize as teclas Ctrl + r. Subcomandos para localizao de texto: /palavra ?palavra n N => Procura pela palavra ou caracter acima ou abaixo do texto. => Move para a ocorrncia anterior da palavra (para repetir a busca use "n"). => Repete o ltimo comando utilizando / ou ?. => Repete o ltimo comando / ou ? ao contrrio (baixo para www.clubedohacker.com.br 83

Administrao e Segurana em Sistemas GNU/Linux cima). Ctrl+g => Mostra o nome do arquivo, o nmero da linha corrente e o total de linhas. Mais opes para remoo de caracteres x dd D J 7dd => Apaga o caracter onde o cursor estiver. => Apaga a linha inteira onde o cursor estiver => Apaga a linha a partir da posio do cursor at o fim. => Une a linha corrente prxima. => Removeas prximas 7 linhas a partir da posio do atual do cursor (qualquer nmero). Opes para substituio de textos: rCARACTER RTEXTO cw cc C J :s/velho/novo :% s/velho/novo :% s/velho/novo/g :% s/velho/novo/gc => Substitui o caracter onde o cursor se encontra pelo caracter especificado em CARACTER. => Substitui o texto corrente pelo texto digitado (sobrepe). => Remove a palavra corrente para substituio. => Remove a linha corrente para substituio. => Substitui o restante da linha corrente, esperando o texto logo aps o comando. => Une a linha corrente prxima. => Substitui a primeira ocorrncia de "velho" por "novo" na linha corrente. => Substitui em todo o arquivo (%) a primeira ocorrncia de "velho" por "novo" em cada linha. => Substitui em todo o arquivo (%), todas (g) as ocorrncias de "velho" por "novo". => Igual ao anterior, mas pedindo confirmao para cada s