Sei sulla pagina 1di 149

Administrao e Segurana em Sistemas GNU/Linux - Instalao e Atualizao de Sistemas GNU/Linux -> Debian Debian a distribuio com a maior comunidade

e 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

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

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

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 Parties
http://focalinux.cipsga.org.br/guia/inic_interm/ch-disc.htm

Wikipdia
http://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 Shell
SHELL 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 <opes> <hora> <mensagem>

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

ou
source /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

Vi
www.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 substituio. Alternando entre as janelas: www.clubedohacker.com.br 84

Administrao e Segurana em Sistemas GNU/Linux :wn :wN :args :qa :all => Grava o atual e vai ao prximo. => Grava o atual e vai ao anterior. => Mostra todos os arquivos atuais. => Sai de todas as janelas de uma vez. => Abre todos os arquivos em janelas individuais.

Existe centenas de comandos no vim. A nica maneira de conhec-lo melhor, praticando bastante.

www.clubedohacker.com.br

85

Administrao e Segurana em Sistemas GNU/Linux

Criando e gerenciando contas de usurios e grupos

www.clubedohacker.com.br

86

Administrao e Segurana em Sistemas GNU/Linux Trabalhando com usurios Todo usurio possui um nmero chamado user ID com o qual o sistema Unix/Linux identifica-o no sistema. Alm do user ID, os usurios possuem o group ID. Toda vez que um processo for ativado ser atribudo ao processo um User ID e um Group ID. Estes ID's so chamados de identificao efetiva do processo.
id [ opes ] [ nome ]

Exemplos de utilizao: Sem parmetros, pegando as informaes do usurio atual.


# id

uid=1094(root) gid=500(root) grupos=500(root) Pegando somente o user id do usurio atual.


# id u 1094

Verificando o ID, GID e grupos:


# id [usurio]

Modificando informaes pessoais do usurio


# chfn [usurio]

Tornando-se outro usurio Permite o usurio mudar sua identidade para outro usurio sem fazer o logout. til para executar um programa ou comando como superusurio sem ter que abandonar a seo atual.
# su [usurio]

Usurio o nome do usurio que deseja usar para acessar o sistema. Se no digitado, assumido o usurio root. Ser pedida a senha do superusurio para autenticao. Digite exit quando desejar retornar a identificao de usurio anterior. Comando useradd Permite que se criem usurios conforme especificado em opes. Somente o superusurio poder utilizar este comando:
useradd [ opes ] usurio

Este comando ir alterar os arquivos:

www.clubedohacker.com.br

87

Administrao e Segurana em Sistemas GNU/Linux


/etc/passwd informaes senhas criptografadas; /etc/shadow informaes senhas criptografadas; de de contas contas de de usurios usurios e e

/etc/group informaes de grupos.

Exemplos de utilizao Cria o usurio:


# useradd [usurio]

Cria o usurio e designa o diretrio /home/ como o diretrio pessoal deste:


# useradd d /home/usurio [usurio]

Cria o usurio com o shell sh:


# useradd s /bin/sh [usurio]

Cria o usurio com o grupo root.


# useradd g root [usurio]

Cria o usurio com vrias informaes:


# useradd d /home/usurio g users c ESTUDO LINUX usurio

Utilize o manual para ver outras opes de utilizao do comando useradd:


# man useradd

Comando adduser Dependendo da distribuio, o comando "adduser" vai ser apenas um comando igual ao "useradd", ou ento um script interativo que ir lhe fazendo perguntas, as quais voc ir respondendo e ento o script criar um usurio no sistema para voc. Criar um usurio padro:
# adduser [usurio]

Habilitar uma senha ou modificar senha:


# passwd [usurio]

Voc pode especificar outros parmetros para o usurio, como no comando a seguir:
# adduser [usurio] -d /var/usuarios/usuario -s /dev/null

Com estes parmetros, foi especificado que o usurio ter como diretrio home o "/var/usuarios/usuario" e como shell o diretrio "/dev/null" (ou seja, no ter shell). Sem estes parmetros, por padro, o diretrio home seria "/home/usuario" e o shell seria "/bin/bash". www.clubedohacker.com.br 88

Administrao e Segurana em Sistemas GNU/Linux Cada um desses programas/comandos escreve o usurio no arquivo de configurao do Linux referente aos usurios do sistema. Este arquivo o "/etc/passwd". Cada linha deste arquivo um usurio cadastrado no sistema. Voc pode muito bem criar uma conta sem usar estes programas/scripts citados acima. O "passwd" formado por linhas onde cada uma um usurio. Ento vamos aprender a montar tais linhas:
usurio:x:1001:100:Clube_do_Hacker:/home/usuario:/bin/bash

Acrescentando atravs da Shell:


# echo usurio:x:1001:100:Clube_do_Hacker:/home/usuario:/bin/bash >> /etc/passwd

Vamos dividir esta linha em "campos", onde cada um separado por: (dois pontos): Campo Usurio Significado Login do Usurio, aqui voc pode colocar o nome que quiser com at 8 caracteres. Aqui diz que o password est no arquivo /etc/shadow. Se X estivesse com *, a conta estaria desabilitada e se estivesse sem nada (::), a conta no teria password. UID (User IDentification), o nmero de identificao do 1001 usurio. GID (Group IDentification), o nmero de identificao do 100 Clube_do_Hacker grupo do usurio. Comentrios do usurio, como nome, telefone, etc. O diretrio HOME do usurio, ou seja, o diretrio /home/usurio pertencente a ele. Geralmente estes diretrios esto sempre em /home. Shell do usurio, ou seja, o programa que ir enterpretar os /bin/bash comandos que o usurio executar.

Obs: O /etc/shadow um arquivo que contm a senha do usurio criptografada, se algum tiver posse dela, esta pessoa pode comparar as senhas com uma lista de palavras e descobrir as senhas dos usurios. Felizmente, este arquivo est muito bem protegido pelo sistema. Modificando o nome de um usurio
# usermod l novo_nome usurio

Removendo um usurio: www.clubedohacker.com.br 89

Administrao e Segurana em Sistemas GNU/Linux Voc pode apagar a linha referente a ele no /etc/passwd e os seus arquivos, ou simplesmente digitar:
# userdel r usurio

Combine com a opo -r para deletar junto o diretrio HOME do usurio. Configurando um usurio com poderes de root O root possui o UID e o GID igual a 0 (zero) e um usurio comum no. Se fizermos a mudana do UID e GID de um usurio para 0, ele ficar como o root. Vamos testar, modificando no arquivo /etc/passwd: usurio:x:1001:100:Clube_do_Hacker:/home/usuario:/bin/bash usurio:x:0:0:Clube_do_Hacker:/home/usuario:/bin/bash Pronto, o usurio vai ser tambm o root do sistema, o administrador do sistema, o deus do sistema, etc. Dica: No recomendvel ficar usando o usurio root, pois este aplicvel somente administrao do sistema. Sendo assim, recomendo a voc a usar sempre um usurio normal. Se for precisar usar o root, registre a entrada como root ou utilize o comando para se tornar o prprio root.
# su -

Trabalhando com grupos Criando um grupo (este comando escreve uma linha no arquivo /etc/group):
# groupadd [grupo]

Adicionando uma senha para o grupo:


# gpasswd [grupo]

Mudando a propriedade de um arquivo:


# chown novo-dono.novo-grupo arquivo

O comando acima altera o proprietrio e o grupo do arquivo. Pode-se usar a opo -R para alterar recursivamente propriedades dentro de um diretrio. Um arquivo que tambm tem muito haver com os usurios no Linux o /etc/group, que contm as definies de cada grupo, como por exemplo seus nomes, GIDs, e usurios adicionais que pertencem ele. Se voc adicionar uma linha neste arquivo estar criando um novo grupo. Vamos criar um novo grupo no /etc/group: Clube_do_Hacker:x:666:user1,user2,user3

www.clubedohacker.com.br

90

Administrao e Segurana em Sistemas GNU/Linux Adicionando esta linha no arquivo /etc/group, um novo grupo criado com o nome 'Clube_do_Hacker', GID '666' e com usurios adicionais pertencentes ele: 'user1,user2,user3'. Removendo um grupo:
# groupdel [nome_grupo]

Renomeando um grupo:
# groupmod [novo_nome] [nome_antigo]

Adicionando um usurio a um grupo:


# adduser [usurio] [grupo] # gpasswd a [usurio] [grupo]

Combinando este conhecimento com algo sobre permisses dos arquivos, contedo a ser visto no prximo mdulo, voc pode controlar muito bem quem usa o seu sistema ou servidor, sabendo quem pertence aos grupo, quais seus diretrios, que arquivos podem acessar, entre outros. Comando passwd O comando passwd permite que se troque a senha de determinado usurio. O superusurio pode trocar a senha de qualquer outro. O usurio comum, porm, pode trocar somente a sua senha. As senhas so armazenadas no arquivo /etc/passwd ou /etc/shadow. No arquivo /etc/passwd tambm armazenado as informaes relativas aos usurios. Aps a criao do usurio ser necessrio criar uma senha para este, caso contrrio, no ser permitido que este usurio faa login no sistema.
passwd [ usurio ]

Exemplos de utilizao: Alterando a senha de outro usurio ( preciso ser o superusurio):


# passwd [usurio]

Alterando a prpria senha (usurio comum pode utilizar este comando):


# passwd

Para sua segurana, deve-se configurar o sistema para que: A senha deva ter no mnimo 6 caracteres; A senha deva ter no mnimo duas letras maisculas e/ou duas letras minsculas e pelo menos um dgito ou caractere especial; www.clubedohacker.com.br 91

Administrao e Segurana em Sistemas GNU/Linux So aceitos somente os caracteres ASCII padro de cdigos 0 a 127; A senha deve diferenciar do nome da conta (obrigatrio); A nova senha deve diferenciar da senha velha em pelo menos trs caracteres. As regras acima no se aplicam ao superusurio. Os utilitrios para manuteno de senhas criptografadas so: pwconv: utiliza os valores definidos em /etc/login.defs para adicionar entradas no arquivo /etc/shadow e remove qualquer entrada do /etc/shadow que no tenha correspondente no arquivo /etc/passwd. pwunconv: compara os arquivos /etc/passwd e /etc/shadow, colocando as entradas do campo de senhas do arquivo /etc/shadow nas linhas correspondentes do arquivo /etc/passwd. O arquivo /etc/shadow removido. Este utilitrio usado para se migrar usurios de outro sistema: aps executar o pwunconv copiam-se as linhas dos novos usurios no /etc/passwd, e a seguir gera-se o /etc/shadow novamente com o pwconv. grpconv: faz a mesma funo do pwconv, porm com os grupos do /etc/group. Arquivo sobra de senhas de grupos o /etc/gshadow. grpunconv: faz a mesma funo do pwunconv, porm com os grupos. Criando quota para usurios O sistema de quotas um servio que deve ser habilitado e configurado em mquinas que esto em rede e possuem vrios usurios, pois, por meio deste recurso que iremos controlar a utilizao dos sistemas de arquivos entre todos os usurios, impedindo que um nico usurio com o poder de escrita em seu diretrio pessoal, exceda os limites fsicos de espao em um sistema de arquivos e comprometa a utilizao deste pelos outros usurios. Verificar como est montado o /home:
# mount

Instalar o pacote quota:


# apt-get install quota

www.clubedohacker.com.br

92

Administrao e Segurana em Sistemas GNU/Linux As quotas so especificadas em parties e no em diretrios. Deve-se editar o arquivo /etc/fstab e configurar a partio que deve ter suporte,da seguinte maneira:

Devemos entrar no ponto de montagem da partio especificada (/home) e criar dois arquivos: Gerencia quotas para os usurios:
/home# : > quota.user

Gerencia quotas para os grupos:


/home# : > quota.group

OBS: No Debian o padro QUOTA 1 (quota.user e quota.group), em outras distribuies pode ser do tipo QUOTA 2 (aquota.user e aquota.group). necessrio mudar as permisses dos arquivos que foram criados, de maneira que s o root tenha permisso de leitura e gravao sobre eles, entramos ento com os seguintes comandos:
/home# chmod 600 quota.user /home# chmod 600 quota.group

Deve-se remontar o sistema de arquivos para que as configuraes de quota para a partio entrem em vigor, como na maioria das vezes o sistema de arquivos estar ocupado, recomenda-se que salve suas aplicaes e reinicie o sistema. Entre com o comando:
# shutdown -r now

www.clubedohacker.com.br

93

Administrao e Segurana em Sistemas GNU/Linux OBS: possvel ativar o sistema de quota apenas desmontando e montando novamente a partio. Porm, esta tarefa envolve a identificao e o cancelamento de todos os processos associados para a partio que estava em uso. Para ativar o sistema de quotas de disco, ento entramos com o seguinte comando:
# quotaon -v /home

Para verificar se o sistema de quotas est ativo, consulte o status de quota para a partio que est sendo trabalhada:
# mount -a # repquota -v -a

Criando o usurio para o qual ser definida a quota:


# adduser user1

Definindo quanto do sistema de arquivos cada usurio poder utilizar. O comando para configurar quotas o:
# edquota -u [usuario]

Especificando espao em disco para o usurio user1.

500 MB de espao em disco (soft limit) O espao em disco pode ser ultrapassado e chegar a no mximo 600 MB (hard limit)

366 arquivos j foram gravados (inodes). Possuir um limite de 400 arquivos (soft limit)

Poder gravar no mximo 405 arquivos (hard limit). O valor nunca ultrapassado.
# edquota user1

www.clubedohacker.com.br

94

Administrao e Segurana em Sistemas GNU/Linux

Identificando as caractersticas do arquivo: blocks Nmero de blocos utilizados pelo usurio

Soft limit Limite em blocos que o usurio poder utilizar Hard limit Prevendo que o usurio precise ultrapassar seu limite de blocos, especificado o valor mximo de blocos. Valor que nunca ultrapassado. Inodes Nmero de inodes (arquivos utilizados pelo usurio) Soft limit Nmero de inodes (arquivos) que o usurio poder criar Hard limit Prevendo que o usurio precise ultrapassar seu nmero de inodes, especificado o nmero mximo de inodes que o usurio poder criar OBS: 1 MB equivale a mais ou menos 1000 blocos. Definindo quotas para grupos:
# edquota -g [grupo]

Para consultar informaes sobre quotas na partio, use: quota -u [usuario] quota -g [grupo]
# quota -u user1

Exibindo um sumrio de quotas ativas na partio:


# repquota -v /home

Para saber mais detalhes avanados sobre o uso de quotas nas parties:
# quotastats

www.clubedohacker.com.br

95

Administrao e Segurana em Sistemas GNU/Linux

Permisses de acesso a recursos, arquivos, pastas e dispositivos do Sistema

www.clubedohacker.com.br

96

Administrao e Segurana em Sistemas GNU/Linux A permisso de acesso protege o sistema de arquivos Linux do acesso indevido de pessoas ou programas no autorizado. Donos, grupos e outros usurios: => a pessoa que criou o arquivo ou o diretrio. O nome do dono do arquivo/diretrio o mesmo do usurio usado para entrar no sistema GNU/Linux. Somente o dono pode modificar as permisses de acesso do arquivo. => a categoria de usurios que no so donos ou no pertencem ao grupo do arquivo. => Para permitir que vrios usurios diferentes tivessem acesso a um mesmo arquivo (j que somente o dono poderia ter acesso ao arquivo), este recurso foi criado. Cada usurio pode fazer parte de um ou mais grupos e ento acessar arquivos que pertenam ao mesmo grupo que o seu (mesmo que estes arquivos tenham outro dono).

Dono Outros Usurios

Grupo

Controle de acesso bsico: r => Permisso de leitura para arquivos. Caso for um diretrio, permite listar seu contedo => Permisso de gravao para arquivos. Caso for um diretrio, permite a gravao de arquivos ou outros diretrios dentro dele. Para que um arquivo/diretrio possa ser apagado, necessrio o acesso a gravao. => Permite executar um arquivo (caso seja um programa executvel). Caso seja um diretrio, permite que seja acessado atravs do comando cd.

Os trs modos de permisses:


Comum read Write Octal 4 2 Especial SUIDBIT SGIDBIT STICKYBIT 1 Execution

s=Sx

s=Sx

t=T x

Obs: X - Se voc usar X ao invs de x, a permisso de execuo somente afetada se o arquivo j tiver permisses de execuo. Em diretrios ela tem o mesmo efeito que a permisso de execuo x.

www.clubedohacker.com.br

97

Administrao e Segurana em Sistemas GNU/Linux Crie o arquivo hoje e liste suas propriedades: -rw-r--r-- 1 root root 0 2006-12-05 10:09 hoje

Modificando as permisses do arquivo:


chmod u-rwx,g+w,o+x hoje

----rw-r-x 1 root root -rw-r--r-- 1 root root


chmod a-rwx hoje

0 2006-12-05 10:09 hoje 0 2006-12-05 10:09 hoje 0 2006-12-05 10:09 hoje

chmod g-w,o-x,u+r hoje

---------- 1 root root Modo Octal:


chmod 421 hoje

-r---w---x 1 root root


chmod 000 hoje

0 2006-12-05 10:09 hoje 0 2006-12-05 10:09 hoje 0 2006-12-05 10:09 hoje

---------- 1 root root


chmod 777 hoje

-rwxrwxrwx 1 root root

Crie o diretrio aula e liste suas propriedades: drwxr-xr-x 2 root root 1024 2006-12-05 10:22 aula Modificando as permisses do arquivo:
chmod u-rwx,g-rwx,o-rwx aula

d--------d---------

2 root root 1024 2016-07-04 10:22 aula 2 root root 1024 2016-07-04 10:22 aula 2 root root 1024 2016-07-04 10:22 aula

chmod a-rwx aula

chmod a+rwx aula

drwxrwxrwx

Modo Octal:
chmod 754 hoje

drwxr-xr-- 2 root root 1024 2016-07-04 10:22 aula


chmod 000 hoje

d---------

2 root root 1024 2016-07-04 10:22 aula 2 root root 1024 2016-07-04 10:22 aula www.clubedohacker.com.br 98

chmod 777 hoje

drwxrwxrwx

Administrao e Segurana em Sistemas GNU/Linux


OBS: Mas somente as trs permisses bsicas (rwx) no do toda flexibilidade para controlar acesso aos arquivos e diretrios.

Permisses de acesso Especiais Em adio as trs permisses bsicas (rwx), existem permisses de acesso especiais que afetam arquivos executveis e diretrios: rwsrwsrwt SUIDBIT (set user id) = setuid SGIDBIT (set group id) = setgid STICKBIT (Stick bit) O controle de acesso em arquivos e diretrios a segurana fundamental para qualquer sistema multiusurios. Os sistemas de arquivos nativos do Linux programam controle de acesso utilizando algumas propriedades dos arquivos/diretrios. SUIDBIT (set user id) = setuid => A propriedade SUID somente para arquivos executveis e no tem efeito em diretrios. => Nas permisses bsicas, o usurio que executou o programa dono do processo. Mas em arquivo executvel com a propriedade SUID aplicada, o programa rodar com o ID do dono do arquivo, no com o ID do usurio que executou o programa. => Normalmente o usurio dono do programa executvel tambm dono do processo sendo executado. Quando um arquivo/programa executvel tem o controle de acesso SUID, ele executado como se ele estivesse iniciado pelo dono do arquivo/programa. => A permisso de acesso especial SUID pode aparecer somente no campo Dono. Trabalhando com o SUID: Exemplo: ifconfig

www.clubedohacker.com.br

99

Administrao e Segurana em Sistemas GNU/Linux


# ls -lah /sbin/ifconfig

-rwxr-xr-x 1 root root 57K 2004-04-22 18:27 /sbin/ifconfig No terminal root


#ifconfig #ifconfig eth0 up

obs: ls -lah tamanhos da cpia no formato readable humano (por exemplo, 1K 234M 2G) Como usurio:
lammer@debian:/sbin$ ./ifconfig

bash: ifconfig: command not found


lammer@debian:/sbin$ ./ifconfig eth0 up

SIOCSIFFLAGS: Permisso negada


lammer@debian:/sbin$ ./ifconfig eth0 down

SIOCSIFFLAGS: Permisso negada Como root:


chmod 4755 /sbin/ifconfig

Aplicando a propriedade SUID em um arquivo executvel utilizando formato simblico (s):

# chmod u+s arquivo.x # ls -lah arquivo.x

-rwsr-xr-x 1 root sala 0 2006-12-05 22:57 arquivo.x Aplicando a propriedade SUID em um arquivo executvel utilizando formato octal (4):
# chmod 4750 arquivo.x # ls -lah arquivo.x

-rwsr-x--- 1 root sala 0 2006-12-05 22:57 arquivo.x www.clubedohacker.com.br 100

Administrao e Segurana em Sistemas GNU/Linux

Retirando SUID:
# chmod u-s arquivo.x # ls -lah arquivo.x

-rwxr-x--- 1 root sala 0 2006-12-05 22:57 arquivo.x SGIDBIT (set group id) = setgid => A propriedade SGID tem a mesma funo que o SUID para arquivos executveis. Mas a propriedade SGID tem um efeito especial para os diretrios. => SGID aplicado em um diretrio, os novos arquivos que so criados dentro do diretrio assumem o mesmo ID de Grupo do diretrio com a propriedade SGID aplicado. => A permisso de acesso especial SGID pode aparecer somente no campo Grupo. Exemplo: Se no diretrio /home/user1 tem o grupo sala e tem o SGID habilitado, ento todos os arquivos dentro do diretrio /home/user1 sero criados com o grupo sala.
drwxr-xr-x 2 user1 sala 4096 2006-12-05 08:52 user1

Este um importante atributo para uma equipe, assumindo que todos os arquivos compartilhados devem ter o mesmo grupo. Aplicando a propriedade SGID em um diretrio executvel utilizando formato simblico (s):

# chmod g+s /home/user1 # ls --color -lah /home/user1 | more

drwxr-sr-x 2 root sala

4096 2006-12-05 17:54 .

Aplicando a propriedade SGID em um diretrio executvel utilizando formato octal (2):


# chmod 2750 /home/user1 # ls -lah /home/user1

drwxr-s--- 2 root sala 4096 2006-12-05 17:54 .

www.clubedohacker.com.br

101

Administrao e Segurana em Sistemas GNU/Linux Retirando SGID:


# chmod g-s /home/user1 # ls -lah /home/equipe

drwxr-xr-x 2 root sala 4096 2006-12-05 17:54 .

Um outro exemplo:
# chmod g+s /home # ls -ld /home

drwxrwsr-x 6 root staff 4096 2016-07-04 08:56 /home


# touch /home/arquivo # ls -l /home/arquivo

-rw-r--r-- 1 root staff 0 2016-07-04 14:18 /home/arquivo

STICKBIT (Stick bit) Aplicando STICK => Em arquivos executveis, a propriedade STICK faz com que o sistema mantenha uma imagem do programa em memria depois que o programa finalizar. De fato, essa capacidade aumenta o desempenho, pois ser feito um cache do programa para a memria e da prxima vez que ele for executado, ser carregado mais rpido. => Em diretrios, a propriedade STICK impede que outros usurios deletem ou renomeam arquivos dos quais no so donos. => Com o STICK, o diretrio estar em modo append-only (somente incremente). => Sendo assim, somente o usurio que Dono do arquivo, poder deletar ou renomear os arquivos dentro de um diretrio com a propriedade STICK aplicada. => A permisso especial Stick pode ser especificada somente no campo outros usurios das permisses de acesso. Exemplo bem prtico:
# ls -l

www.clubedohacker.com.br

102

Administrao e Segurana em Sistemas GNU/Linux


# chmod 0777 /tmp # ls -ld /tmp

drwxrwxrwx 14 root root 1024 2016-07-04 14:40 /tmp


# touch /tmp/arq_novo

No teminal como usurio tente remover o arquivo:


$ rm /tmp/arq_novo -f ou rm -rf /tmp/arq_novo

Voltando o STICK:
chmod 1777 /tmp

drwxrwxrwt 14 root root 1024 2016-07-04 14:40 /tmp Crie novamente o arquivo e tente remover:
# touch /tmp/arq_novo $ rm /tmp/arq_novo -f ou rm -rf /tmp/arq_novo

Exemplo: No diretrio /tmp, todos os usurios devem ter acesso para que seus programas possam criar os arquivos temporrios, mas nenhum pode apagar arquivos dos outros. Ento. necessrio que a propriedade STICK seja feita no diretrio /tmp. drwxrwxrwt 14 root root 1,0K 2016-07-04 13:15 tmp Aplicando a propriedade Stick em um arquivo executvel utilizando formato octal (1):
# chmod 1750 programa.x # ls -lah programa.x

-rwxr-x--T 1 root root 2,9M 2006-09-26 23:51 programa.x Aplicando a propriedade Stick em um arquivo executvel utilizando formato simblico (t):
# chmod o+t programa.x # ls -lah programa.x

-rwxr-x--T 1 root root 2,9M 2006-09-26 23:51 programa.x

www.clubedohacker.com.br

103

Administrao e Segurana em Sistemas GNU/Linux Aplicando a propriedade Stick em um diretrio utilizando formato simblico (t):
# chmod o+t /tmp # ls -lah /tmp

drwxrwxrwt 8 root root 264 2006-09-26 23:22 . Apicando a propriedade Stick em um diretrio utilizando formato octal (1):
# chmod 1777 /tmp # ls -lah /tmp

drwxrwxrwt 8 root root 264 2006-09-26 23:22 . Retirando Stick:


# chmod o-t /tmp # ls -lah /tmp

drwxrwxrwx 8 root root 264 2006-09-26 23:22 .

www.clubedohacker.com.br

104

Administrao e Segurana em Sistemas GNU/Linux

Manipulao de pacotes

www.clubedohacker.com.br

105

Administrao e Segurana em Sistemas GNU/Linux Manipulao de pacotes (programas) Gerenciadores de pacotes:

dselect dpkg apt-get tasksel aptitude


Gerenciando pacotes com o dpkg: Fazer uma instalao a partir do CD-ROM:
# cd /cdrom/pool/main ; ls --color # dpkg -i nome_do_pacote ou caminho_do_pacote

dpkg

Listar todos os pacotes que esto instalados no formato .deb:


# dpkg -l | more

Onde sero instalados todos os arquivos de um determinado programa:


# dpkg -c | more /cdrom/pool/main/m/mozilla/nome_do_pacote.deb

Para obter a listagem de arquivos de pacotes j instalados no sistema, use o comando:


# dpkg -L arquivo

Remover um programa e todos os arquivos:


# dpkg - -purge nome_do_programa

O dpkg (Debian Package) o programa responsvel pelo gerenciamento de pacotes nos sistemas Debian. Sua operao feita em modo texto e funciona atravs de comandos, assim caso deseje uma ferramenta mais amigvel para a seleo e instalao de pacotes, prefira o dselect (que um front-end para o dpkg) ou o apt. Pacotes esto desconfigurados quando, por algum motivo, a instalao do mesmo no foi concluda com sucesso. Pode ter faltado alguma dependncia, acontecido algum erro de leitura do arquivo de pacote, etc. Quando um erro deste tipo www.clubedohacker.com.br 106

Administrao e Segurana em Sistemas GNU/Linux acontece, os arquivos necessrios pelo pacote podem ter sido instalados, mas os scripts de configurao ps-instalao no so executados.
# dpkg --configure [NomedoPacote]

Mostrando a lista de pacotes do sistema:


# dpkg --get-selections

Gerenciando pacotes com o apt: Instalar um programa:


# apt-get install mozilla

apt

Enquanto o apt faz um download de um pacote, ou seja, uma instalao, ele gera um arquivo chamado lock. O mesmo serve para que no seja executado outros apt ao mesmo tempo. Arquivo onde ficam armazenados todos os mirros (sources) de busca de pacotes: /etc/apt/souces.list Para usar outro tipo de source, voc pode inserir o caminho de pesquisa no arquivo. O mesmo pode ter uma ou mais sources:
# apt-setup

Ao inserir uma nova linha no arquivo, pode-se atualizar a busca de pacotes no apt:
# apt-update

Para saber se um determinado que voc quer instalar est disponvel no cache do apt:
# apt-cache search gaim

OBS: Todo pacote instalado via apt-get install, armazena um cache no seguinte caminho: /var/cache/apt/archives. Vamos limpar esse cache:
# apt-get clean

Fazer uma atualizao de pacotes usando um nico comando:


# apt-get upgrade

Removendo um programa com:


# apt-get remove - -purge gimp

O comando que adiciona automaticamente uma linha para cada CD no arquivo /etc/apt/sources.list e atualizar a lista de pacotes em /var/state/apt/lists: www.clubedohacker.com.br 107

Administrao e Segurana em Sistemas GNU/Linux


# apt-cdrom add

Verificando pacotes corrompidos A correo feita automaticamente. A lista de pacotes tambm atualizada quando utiliza este comando.
# apt-get check

Corrigindo problemas de dependncias e outros problemas:


# apt-get install -f pacote # apt-get -f install pacote # dpkg -i - -force-all *.deb

Tasksel
# tasksel

Este comando ir carregar o tasksel, que nada mais que uma simples interface para a instalao dos componentes principais do Debian. Neste programa voc habilitar a instalao somente do X Window System. Com isso ser instalado o suporte para o ambiente grfico KDE e caso queira outro ambiente grfico. Voc pode fazer o mesmo com o comando: Baixa o pacote, mas no instala:
# apt-get install -d pacote

Para fazer pesquisa de pacotes disponveis para a distribuio, utilize: www.apt-get.org Aptitude Ele um novo gerenciador de pacotes amigvel para o apt.
# aptitude

Procedimentos de backup Alguns comandos vo ajudar voc a ler melhor o arquivo: # stat arquivo

# file arquivo

# type arquivo

www.clubedohacker.com.br

108

Administrao e Segurana em Sistemas GNU/Linux


# ls -lh arquivo ------------------------------------------------------------------------------------------------------------------1 parte -------------------------------------------------------------------------------------------------------------------

Pacotes GZIP Empacotando, compactando e descompactando. Criando um diretrio e acessando este diretrio:
# mkdir /tmp/backup # cd /tmp/backup

Empacotando o contedo do diretrio /home/user:


/tmp/backup# tar cvf backup1.tar /home/user /tmp/backup# file backup1.tar Compactar usando o GZIP: /tmp/backup# time gzip backup1.tar /tmp/backup# ls -lh sada: backup1.tar.gz Descompactando o arquivo: /tmp/backup# time gunzip backup1.tar.gz /tmp/backup# ls -lh sada: backup1.tar TAR Ele um aplicativo capaz de armazenar vrios arquivos em um s. Porm, no capaz de compactar os arquivos armazenados. Como possvel notar, o TAR serve de complemento para o GZIP e vice-versa. Por isso, foi criado um parmetro no TAR para que ambos os programas possam trabalhar juntos. Assim, o TAR "junta" os arquivos em um s. Este arquivo, por sua vez, ento compactado pela GZIP. Quando ocorre o trabalho conjunto entre TAR e GZIP, o arquivo formado tem a extenso tar.gz. A maioria das verses do tar no suportam backups atravs da rede. A verso GNU do tar, que a verso utilizada pelo FreeBSD, suporta dispositivos remotos utilizando a mesma sintaxe do rdump.

Pacotes BZIP2 Empacotando, compactando e descompactando.


Criando um diretrio: # mkdir /tmp/backup # cd /tmp/backup Empacotando o contedo do diretrio /home/user:

www.clubedohacker.com.br

109

Administrao e Segurana em Sistemas GNU/Linux


/tmp/backup# tar cvf backup1.tar /home/user /tmp/backup# file backup1.tar Compactar usando o BZIP2: /tmp/backup# time bzip2 backup1.tar /tmp/backup# ls -lh sada: backup1.tar.bz2 Descompactando o arquivo: /tmp/backup# time bunzip2 /tmp/backup# ls -lh sada: backup1.tar ------------------------------------------------------------------------------------------------------------------2 parte ------------------------------------------------------------------------------------------------------------------backup1.tar.bz2

Pacotes GZIP Empacotando / Compactando Descompactando / Desempacotando Criando um diretrio:


# mkdir /tmp/backup # cd /tmp/backup

EMPACOTANDO e COMPACTANDO o contedo do diretrio /etc:


/tmp/backup# tar cvzf backup2.tar.gz /etc /tmp/backup# file backup2.tar.gz

Crie um diretrio com o nome gzip:


/tmp/backup# mkdir gzip

DESCOMPACTANDO E DESEMPACOTANDO o contedo:


/tmp/backup/gzip# tar xvzf /tmp/backup/backup2.tar.gz

DESCOMPACTANDO E DESEMPACOTANDO o contedo, direcionando a um diretrio:


# tar xvzf /tmp/backup/backup2.tar.gz -C /tmp/backup/gzip

Verificando o arquivo:
/tmp/backup/gzip# ls -lh

Verificando o tamanho:
/tmp/backup/gzip# du -hs caminho

Verificando o tamanho do diretrio original:


/tmp/backup/gzip# du -hs /etc

Pacotes BZIP2 Empacotando / Compactando Descompactando / Desempacotando www.clubedohacker.com.br 110

Administrao e Segurana em Sistemas GNU/Linux Criando um diretrio:


# mkdir /tmp/backup # cd /tmp/backup

EMPACOTANDO e COMPACTANDO o contedo do diretrio /etc:


/tmp/backup# tar cvjf backup3.tar.bz2 /tmp/backup# file backup3.tar.bz2 /tmp/backup# ls -lh /etc

Crie um diretrio com o nome bzip2:


/tmp/backup# mkdir bzip2

DESCOMPACTANDO E DESEMPACOTANDO o contedo:


/tmp/backup/bzip2# tar xvjf /tmp/backup/backup3.tar.bz2

DESCOMPACTANDO E DESEMPACOTANDO o contedo, direcionando a um diretrio:


# tar xvjf /tmp/backup/backup3.tar.bz2 C /tmp/backup/bzip2

Verificando o arquivo:
/tmp/backup/bzip2# ls -lh

Verificando o tamanho:
/tmp/backup/bzip2# du -hs caminho Verificando o tamanho do diretrio original: /tmp/backup/bzip2# du -hs /etc

------------------------------------------------------------------------------------------------------------------Compactador compatvel com o Windows: # gzip backup1.tar Descompactador de pacotes .zip: # unzip backup.zip Criando uma compactao zip: # find /etc -name *.conf -print | xargs zip backup4 -@ find /etc -name *.conf -print => Procura no diretrio /etc e sub-diretrios um arquivo/diretrio, no caso arquivos chamado .conf e otimiza a procura. xargs zip backup4 -@ => o xargs resolve se ocorrer algum problema, e o zip o compactador. Outra maneira:

www.clubedohacker.com.br

111

Administrao e Segurana em Sistemas GNU/Linux


# find /etc | cpio -pdv backup Outra maneira: # find | xargs zip backup Trabalhando com o dump Fazendo um backup de /tmp, com o comando dump: # dump -0 -f backupdump /etc Restaurando este backup: # restore rf backupdump Trabalhando com o comando cpio Fazer um backup de todas as bibliotecas em /lib que terminam com 0, para dentro de /tmp/backup/bacana (o diretrio gerado na execuo do comando), usando o cpio: # find /lib -name *.0 | cpio -pdv /tmp/backup/bacana Cpio

o programa original do UNIX para a troca de arquivos entre mquinas por meio de mdias magnticas. O cpio tem opes (entre muitas outras) de realizar byteswapping, gravando um bom nmero de sistemas de arquivos de diferentes formatos, e permitindo o redirecionamento dos dados para outros programas. Esta ltima funcionalidade faz do cpio uma excelente escolha para criar mdias de instalaes. O cpio no sabe como andar nos diretrios da rvore de diretrios e uma lista dos arquivos deve ser passada atravs da stdin. O cpio no suporta a realizao de backups atravs da rede. Voc pode utilizar um redirecionamento e o rsh para enviar os dados para uma controladora de fita remota.
# for f in directory_list; do find $f >> backup.list done

# cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device"

Onde o directory_list a lista de diretrios que voc quer adicionar ao seu backup, user@host a combinao usurio/computador que ir realizar o backup, e backup_device onde os backups devem ser escritos (e.g., /dev/nsa0). Dump e Restore

www.clubedohacker.com.br

112

Administrao e Segurana em Sistemas GNU/Linux Os programas tradicionais de backup do UNIX so o dump e o restore.Eles operam a controladora como se esta fosse uma coleo de blocos de discos, abaixo da abstrao de arquivos, links e diretrios que so criadas pelos sistemas de arquivos. O dump realiza o backup de todo um sistema de arquivos em um dispositivo. Ele no tem habilidade de realizar backup somente de uma parte de um sistema de arquivos ou uma rvore de diretrios que envolva mais de um sistema de arquivos. O dump no grava os arquivos em diretrios numa fita, ele grava tudo de maneira direta (raw) em blocos de dados que compe os arquivos e diretrios. O dump tem uma artimanha que vem desde primeiros dias na Verso 6 do AT&T UNIX (aproximadamente 1975). Os parmetros padres so adequados para fitas de 9 trilhas (6250 bpi), no para as mdias de alta-densidade disponveis hoje em dia (up to 62,182 ftpi). Estes padres devem ser sobrescritos na linha de comando para que seja utilizada a capacidade das atuais controladoras de fita. Tambm possvel realizar backup dos dados atravs da rede para um dispositivo de backup conectado em um outro computador com o rdump e o rrestore. Ambos os programas tem sua confiana baseadas no rcmd e no ruserok para o acesso controladora de fita remota. Portanto, o usurio que ir realizar o backup dever estar listado no arquivo .rhosts no computador remoto. Outros utilitrios de backup PAX O pax a resposta do IEEE/POSIX para o tar e o cpio. Sobre os anos de vrias verses do tar e do cpio esto algumas incompatibilidades. Ento para sair da briga pela padronizao completa deles, o POSIX criou um novo utilitrio de arquivao. O pax tenta ler e gravar nos mais mais variados formatos tanto do cpio quanto do tar, adicionado novos formatos por si, inclusive. Sua maneira de comandar mais semelhante ao cpio que ao tar. AMANDA O Amanda (Advanced Maryland Network Disk Archiver) um sistema de backup cliente/servidor, melhor que um nico programa. Um servidor Amanda ir realizar numa nica controladora de fita o backup de qualquer nmero de computadores que tenham o cliente do Amanda e uma conexo de com o servidorAmanda. Um problema comum em locais com um grande nmero de discos que a quantidade de www.clubedohacker.com.br 113

Administrao e Segurana em Sistemas GNU/Linux tempo requerida para o backup dos dados diretamente na fita excede a quantidade de tempo para a tarefa. O Amanda resolve este problema. O arquivo de configuraes prov um controle total da realizao dos backups e do trfico de rede que o Amanda gera. O Amanda utilizar qualquer um dos programas de backup citados para gravar os dados nas fitas. O Amanda est disponvel tambm como um port ou como pacote, porm ele no instalado por padro. No fazer nada No fazer nada no um programa de computador mas sim a mais utilizada estratgia de backup. No h custos iniciais. No h um agendamento de backup a ser cumprido. Apenas diga no. Se alguma coisa acontecer aos seus dados d um sorriso malicioso e d cria neles! e seu tempo e seus dados so um pouquinho mais que nada, ento ``No fazer nada'' o mais adequado programa de backup para o seus computados. Mas cuidado, o UNIX uma ferramenta til, voc deve encontrar num intervalo de seis meses uma coleo de arquivos que tenham valor para voc. No fazer nada' o mtodo de backup correto para /usr/obj e outras rvores de diretrios que podem ser criadas exatamente como eram no seu computador. Um exemplo so os arquivos HTML ou PostScript das verses deste Handbook. Estes documentos foram criados de arquivos no formato SGML. Criar backups deles no necessrio. Os arquivos SGML tem backups realizados regularmente. Qual o melhor programa de backup? A vez do dump. A escolha limpa para preservar todos os seus dados e suas peculiaridades do sistema de arquivos UNIX o dump. Observaes de realizadores de backup: As peculiaridades includas: arquivos com buracos, arquivos buracos e blocos nulos, arquivos com caracteres engraados e estranhos em seus nomes, arquivos que no podem ser lidos ou gravados, arquivos de dispositivos, arquivos que mudam de tamanho durante o backup, arquivos que so criados e apagados durante o backup entre outros. Compilao de programas O procedimento de compilao de um programa parte do princpio que, atravs do cdigo fonte do programa disponvel para uso, qualquer um possa ter acesso ao cdigo e gerar o binrio final a partir dele. O procedimento de compilao sempre www.clubedohacker.com.br 114

Administrao e Segurana em Sistemas GNU/Linux bem parecido para todas as aplicaes, porm sempre que for compilar algum programa devemos consultar o arquivo INSTALL que sempre est presente junto com o cdigo fonte. Durante este trabalho vamos precisar dos seguintes programas pr-instalados: gcc g++ make libc6-dev glibc-devels (algumas outras distribuies usam) Direcionamento de como trabalhar com compilao de programas:

Incio

Tem configure sim ./configure No documentao

Tem makefil Make install

make

FIM

Se tiver o ./configure, rode o configure. Todos os recursos de compilao esto no makefile. Vamos baixar o nmap (utilitrio de rede para verificao e anlise de portas. Baixe o cdigo fonte, que est disponvel em www.insecure.org. Descompactando o pacote:
# tar xvjf nmap-verso.tar.bz2 C /usr/local

Acessando o diretrio dos fontes:


# cd /usr/local/nmap-verso

Comeando a compilao: www.clubedohacker.com.br

115

Administrao e Segurana em Sistemas GNU/Linux Executar o script configure, este passa parmetros de como deve ser compilado o programa. Gera o arquivo Makefile, que serve como referncia para o comando make. Digite:
# ./configure

Comando para compilar o pacote:


# make

Comando opcional para testar a integridade dos binrios compilados:


# make check

Instalar o programa, os arquivos de dados e a documentao:


# make install

Remover arquivos binrios e de objeto do diretrio fonte que no sero mais necessrios:
# make clean

O programa foi compilado. Agora s testar:


# nmap localhost

www.clubedohacker.com.br

116

Administrao e Segurana em Sistemas GNU/Linux

Servidor

X Window
----------------------------------------------------------------------------------------

Configurando o Ambiente Grfico

www.clubedohacker.com.br

117

Administrao e Segurana em Sistemas GNU/Linux

O que X Window? um sistema grfico de janelas que roda em uma grande faixa de computadores, mquinas grficas e diferentes tipos de mquinas e plataformas. Pode tanto ser executado em mquinas locais como remotas atravs de conexo em rede. O servidor X controla o teclado, mouse e a exibio dos grficos em sua tela. Quem o gerenciador de Janelas? o programa que controla a aparncia da aplicao. Os gerenciadores de janelas (window managers) so programas que atuam entre o servidor X e a aplicao. Voc pode alternar de um gerenciador para outro sem fechar seus aplicativos. Existem vrios tipos de gerenciadores de janelas disponveis no mercado entre os mais conhecidos esto o Window Maker, Gnome, KDE, twm (este vem por padro quando o servidor X instalado), Enlightenment, IceWm, etc.

Quem a aplicao cliente? o programa sendo executado.

Instalando o X Window X Window System a interface grfica mais utilizada em ambientes UNIX. O pacote necessrio para uso desta interface grfica pode ser encontrado diretamente no site oficial http://www.xfree86.org. Instalando o Xfree86 via apt-get:
# apt-get install x-window-system-core

Comando de instalao do X.org (projeto de continuao do Xfree):


# apt-get install xserver-xorg xlibs xlibs-data

Fazendo a configurao do Xfree86:


# xf86config

Ou
# XFree86 -configure

Fazendo a configurao no X.org: www.clubedohacker.com.br

118

Administrao e Segurana em Sistemas GNU/Linux


# Xorg -configure

O comando XFree86 configure gera em /root, um arquivo com o nome XF86Config.new. Vamos adicionar algumas configuraes neste arquivo: Configurando o arquivo /root/XF86Config.new: OBS: As alteraes esto em negrito. ---------------------------------------------------------------------------------------------------------# Configurao geral do servidor, tela e dispositivos de entrada e sada: Section "ServerLayout" Identifier "XFree86 Configured" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" EndSection # Localizao dos mdulos e das fontes que sero utilizadas pelo servidor grfico: Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" ModulePath "/usr/X11R6/lib/modules" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" FontPath "/usr/X11R6/lib/X11/fonts/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/CID/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" EndSection # Informaes dos mdulos que sero carregados pelo servidor: Section "Module" Load "dbe" Load "dri" Load "extmod" Load "glx" Load "record" Load "xtrap" Load "speedo" Load "type1" EndSection # Configuraes do teclado: Section "InputDevice" Identifier "Keyboard0" Driver "keyboard" --------------------------------------- padro ABNT2----------------------------------------------Option xkbmodel abnt2 Option xkblayout PS/2 www.clubedohacker.com.br 119

Administrao e Segurana em Sistemas GNU/Linux -----------------------------------padro internacional (Americano)-----------------------------Option xkbmodel pc102 Option xkblayout us_intl EndSection # Configurao do mouse: Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/mouse" --------------------------------------- mouse PS/2 --------------------------------------------------Option Protocol PS/2 Option Device /dev/psaux ------- se for com rodinha, modifique a ltima linha: Option Device /dev/input/nice EndSection # Especificaes do monitor, como taxa de atualizao vertical e freqncia horizontal de sincronizao: Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" Horizsync 31.5 48.5 Vertrefresh 50 - 90 EndSection # Informao do driver atualizado da placa de vdeo: Section "Device" ### Available Driver options are:### Values: <i>: integer, <f>: float, <bool>: "True"/"False", ### <string>: "String", <freq>: "<f> Hz/kHz/MHz" ### [arg]: arg optional #Option "HWcursor" # [<bool>] #Option "NoAccel" # [<bool>] Identifier "Card0" Driver "vmware" VendorName "VMWare Inc" BoardName "Unknown Board" BusID "PCI:0:15:0" EndSection # Seo de configurao da resoluo e nmero de cores a ser utilizado: Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" www.clubedohacker.com.br 120

Administrao e Segurana em Sistemas GNU/Linux DefaulDepth 24 SubSection "Display" Depth 1 EndSubSection SubSection "Display" Depth 4 EndSubSection SubSection "Display" Depth 8 EndSubSection SubSection "Display" Depth 15 EndSubSection SubSection "Display" Depth 16 EndSubSection SubSection "Display" Depth 24 Modes 1024x768 800x600 EndSubSection EndSection ---------------------------------------------------------------------------------------------------------OBS: No X.org o arquivo de configurao est localizado em /etc/X11/xorg.conf Para verificar se o servidor grfico foi configurado corretamente, digite:
# X

Para configurarmos o servidor X precisamos editar o arquivo que controla quem ir acessar o servidor X:
# vi /etc/X11/xdm/Xacess

Inclua a seguinte linha no arquivo:


100.100.100.0

Isto permite que todas as mquinas desta rede podem acessar o servidor. Reiniciando o servio do xdm:
# /etc/init.d/xdm restart

Fazendo os clientes se conectarem ao servidor X:


# X query [ip do servidor X] : 1

Xnest uma ferramenta que permite rodar aplicaes grficas em um servidor remoto. Ele j vem incorporado no pacote do servidor X. Iniciando o nosso cliente grfico:
# startx

www.clubedohacker.com.br

121

Administrao e Segurana em Sistemas GNU/Linux Em um shell dentro do ambiente grfico vamos executar o Xnest, desabilitando qualquer controle de acesso:
# Xnest : 1 -ac &

No servidor remoto necessrio fazer um login com o ssh e executar o seguinte comando:
# export DISPLAY=[ ip da mquina ] : 1

Coloque o ip da mquina a qual deseja exportar o display, redirecionando a aplicao a ser executada na mquina local, atravs do Xnest. A partir da execuo do procedimento anterior, j possvel testar uma aplicao grfica, onde ir rodar dentro da tela do Xnest. Ex:
# xcalc

Obs: O acesso da aplicao feito remotamente e os processos da aplicao executada estaro consumindo recursos do servidor e no da mquina local. Instalando o gdm ou kdm:
# apt-get install gdm

# apt-get install kdm

www.clubedohacker.com.br

122

Administrao e Segurana em Sistemas GNU/Linux

U S U R I O S

Instalando o wmaker, gnome e kde:


# apt-get install wmaker

# apt-get install gnome

# apt-get install kde

OBS: Para alternar a configurao da tela do ambiente grfico, use as teclas:


CTRL ALT + ou CTRL ALT -

Para traduzir o kde ou outro programa. Faa a pesquisa pelos pacotes disponveis do programa:
# apt-cache search kde

Traduo para portugus:


# apt-get install kde-i18n-ptbr

Caso voc queira deletar os gerenciadores de login: xdm, kdm e gdm. Digite o comando:
# apt-get remove purge [pacote]

www.clubedohacker.com.br

123

Administrao e Segurana em Sistemas GNU/Linux Com este comando, voc estar removendo os pacotes referentes aos gerenciadores de login. Neste caso, o login ser feito no modo texto. Atravs do modo texto, possvel escolher o ambiente grfico que ser usado. Para tal ao, digite o comando:
# echo exec startgnomesession > ~/.xinitrc

Ou
# echo exec startkde > ~/.xinitrc

Ou
# echo exec startwmaker > ~/.xinitrc

Para executar a interface grfic adotada. Digite:


# startx

www.clubedohacker.com.br

124

Administrao e Segurana em Sistemas GNU/Linux

Servios bsicos de Rede

www.clubedohacker.com.br

125

Administrao e Segurana em Sistemas GNU/Linux Configurando uma rede Descobrindo o modelo da placa de rede:
# lspci

Verificando se h o mdulo para esta interface:


# ls /lib/modules/`uname r`/kernel/drivers/net

Caso precise levantar o mdulo, digite o comando:


# modprobe [mdulo]

Para verificar se o mdulo est carregado, digite:


# lsmod | grep [mdulo]

www.clubedohacker.com.br

126

Administrao e Segurana em Sistemas GNU/Linux Informaes de endereamento IP:


# ifconfig

eth0 Encapsulamento do Link: Ethernet Endereo de HW 00:08:54:30:A9:9D inet end.: 100.100.100.50 Bcast:100.100.100.255 Masc:255.255.255.0 endereo inet6: fe80::208:54ff:fe30:a99d/64 Escopo:Link UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1 RX packets:403 errors:0 dropped:0 overruns:0 frame:0 TX packets:51 errors:0 dropped:0 overruns:0 carrier:0 colises:0 txqueuelen:1000 RX bytes:36828 (35.9 KiB) TX bytes:7256 (7.0 KiB) IRQ:5 Endereo de E/S:0xa000 lo Encapsulamento do Link: Loopback Local inet end.: 127.0.0.1 Masc:255.0.0.0 endereo inet6: ::1/128 Escopo:Mquina UP LOOPBACKRUNNING MTU:16436 Mtrica:1 RX packets:88 errors:0 dropped:0 overruns:0 frame:0 TX packets:88 errors:0 dropped:0 overruns:0 carrier:0 colises:0 txqueuelen:0 RX bytes:5496 (5.3 KiB) TX bytes:5496 (5.3 KiB)
Eliminando as configuraes de rede: # ifconfig eth0 down

Exibindo a configurao:
# ifconfig

Subindo o service de rede:


# ifconfig eth0 up

Configurando o IP, Mscara e Broadcast:


# ifconfig eth0 100.100.100.x netmask 255.0.0.0 broadcast 100.100.100.255

Verificando se h conectividade:
# ping 100.100.100.x PING 100.100.100.50 (100.100.100.50) 56(84) bytes of data. 64 bytes from 100.100.100.50: icmp_seq=1 ttl=64 time=0.042 ms 64 bytes from 100.100.100.50: icmp_seq=2 ttl=64 time=0.027 ms 64 bytes from 100.100.100.50: icmp_seq=3 ttl=64 time=0.027 ms 64 bytes from 100.100.100.50: icmp_seq=4 ttl=64 time=0.026 ms --- 100.100.100.50 ping statistics --4 packets transmitted, 4 received, 0% packet loss, time 2999ms rtt min/avg/max/mdev = 0.026/0.030/0.042/0.008 ms

O ifconfig dinmico, para que as configuraes de endereamento IP sejam carregadas durante o boot. O arquivo de configurao : # vi /etc/network/interfaces www.clubedohacker.com.br 127

Administrao e Segurana em Sistemas GNU/Linux # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 100.100.100.50 netmask 255.255.255.0 broadcast 100.100.100.255 Network 100.100.100.0 Gateway 100.100.100.1 Verificar daemon networking, para garantir boot do servio: # ls /etc/rcS.d Configurando o nome da mquina: # vi /etc/hostname Configurando o nome da mquina e o nome de domnio: # vi /etc/hosts -------------------------------------------------------------------------------------------127.0.0.1 localhost.localdomain localhost instrutor # 127.0.0.1 localhost # 100.100.100.50 clubedohacker.com.br # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts -------------------------------------------------------------------------------------------Verificar domnio que est sendo utilizado:
# hostname -f

Roteamento: # route Tabela de Roteamento IP do Kernel Destino Roteador MscaraGen.

Opes Mtrica Ref Uso Iface 128

www.clubedohacker.com.br

Administrao e Segurana em Sistemas GNU/Linux 100.100.100.0 * 255.255.255.0 U 0 0 0 eth0

Configurando o roteamento: # route add default gw 100.100.100.1 Tabela de Roteamento IP do Kernel Destino Roteador MscaraGen. Opes Mtrica Ref Uso Iface 100.100.100.0 * 255.255.255.0 U 0 0 0 eth0 default 100.100.100.1 0.0.0.0 UG 0 0 0 eth0 Configurando Localidade Mostrar como est configurado atualmente:
# locale

Para configurar sua localidade corretamente:


# dpkg-reconfigure locale

Primeira tela: pt_BR ISO-8859-1 Segunda tela: pt_BR Testando: ifconfig


# LANG=us (modificando a linguagem) # ifconfig

Configuraes relacionadas localidade:


# cat /etc/environment

Configuraes relacionadas ao fuso horrio:


# cat /etc/timezone

Configurar data:
# date MMDDhhmmYY

Atualizar a hora da bios de acordo com a hora do S.O:


# hwclock -w

Procedimento de check-list dos servios de rede Algumas perguntas necessrias para poder configurar um servidor de rede: Tenho o programa instalado?
# dpkg l | grep [nome_do_servio]

A porta est definida?


# cat /etc/services | grep [nome_do_servio]

www.clubedohacker.com.br

129

Administrao e Segurana em Sistemas GNU/Linux Est configurado e inicializado?


# nano /etc/inetd.conf # /etc/init.d/inetd start arquivo de configurao Inicializando o servio de rede

Algumas vezes necessrio ler a documentao para saber se o servio um destes: padro inet (/etc/inetd.conf), stand alone ou RPC Portmapper. RPC Chamada de Procedimento remota. So as rotinas de RPC que permitem os programas em C fazer chamadas a procedimento em outras mquinas pela network. Quando as pessoas falam sobre o RPC elas querem dizer freqentemente sobre a variao do SUN da RPC. RPC Potmapper um servidor que converte programas de RPC em nmeros de TCP/IP (ou UDP/IP) nmeros de protocolos para porta. A porta est ativa?
# netstat nlt | grep :[n_porta]

Que processo roda na porta?


# fuser v porta/tcp ; lsof i ; netstat -nltd

A porta est disponvel para conexes remotas?


# nmap sT n A [ip_da_mquina]

Ateno: No se esquea de verificar os servios de login. Digite: # last usurio. O arquivo onde localizada as informaes de usurios on-line, o /var/log/utmp.
TELNET x SSH TELNET

No Telnet as informaes trafegam sem criptografia (clear text). Se rodar um sniffer no mesmo seguimento de rede, ser possvel olhar todos os dados. Verificando se o servio est instalado:
# dpkg -l | grep telnet

Instalando o servio:
# apt-get install telnet-server

Verificando se o servio est instalado:


# dpkg -l | grep telnet ii telnet 0.17-29 The telnet client

www.clubedohacker.com.br

130

Administrao e Segurana em Sistemas GNU/Linux


ii telnetd 0.17-29 The telnet server

Habilitando o telnet, o mesmo controlado pelo super daemon de rede inetd.


# vi /etc/inetd.conf #:OTHER: Other services #<off># netbios-ssn stream tcp nowait root telnet stream tcp nowait telnetd.telnetd /usr/sbin/tcpd /usr/sbin/smbd /usr/sbin/tcpd/usr/sbin/in.telnetd

Analisando o que ser inserido no arquivo /etc/inetd.conf: telnet stream nome do servidor, como est registrado no arquivo /etc/services. tipo de socket de rede usado pelo protocolo, possveis valores so stream, tipo de protocolo utilizado, deve ser um protocolo que conste no arquivo significativo para tipos de soquete de

dgram, raw, rdm e seqpacket. tcp /etc/protocols. nowait/wait (no aguardar/aguardar) datagrama (dgram), outros tipos de soquete usam o valor nowait. telnetd.telnetd /usr/sbin/tcpd usurio e grupo que iro executar o processo de servidor. tcpd o arquivo de programa para o programa TCP Wrappers. A

maioria das distribuies Linux que usa inetd, tambm usa TCP Wrappers, e assim, lana a maioria dos servidores mediados por inetd atravs de tcpd. /usr/sbin/in.telnetd argumentos do programa servidor, no caso de servidores lanados pelo TCP Wrappers, o argumento o nome final do servidor de tcpd. Subindo o servio:
# cd /etc/init.d/

Stop no servio:
/etc/init.d# ./inetd stop

Start no servio:
/etc/init.d# ./inetd start

Agora s fazer um teste no servidor telnet do colega.


# adduser telnetx

senha: XXXXXX Por padro o telnet no permite conexes como root. Vamos acessar o computador do colega:
# telnet ip_do_colega Se for usar o telnet no Sistema. Garanta que o servio est na inicializao:

www.clubedohacker.com.br

131

Administrao e Segurana em Sistemas GNU/Linux


# ls /etc/rc2.d

SSH
um outro tipo de servidor remoto de LOGIN. responsvel pela autenticao segura e criptografia de dados, alm de logins e execuo de arquivos remotamente. # dpkg -l | grep ssh # apt-get install ssh Detalhes do arquivo de configurao: # vi /etc/ssh/sshd_config Port 22 Protocol 2 KeyRegenerationInterval 3600 LoginGraceTime 600 PermitRootLogin yes RSAAuthentication yes PubkeyAuthentication yes PermitEmptyPasswords no Passwordauthentication yes Start no servio: # /etc/init.d/ssh start Conectando no servidor SSH: # ssh <hostname> # ssh usuario@hostname # ssh -l usuario ip_do_servidor Tambm se pode executar comandos remotamente: # ssh -l usuario 100.100.100.x du -hs /etc Fazendo cpia de dados: Fazendo um download de arquivos do servidor:
# scp usuario@ip_do_servidor:/diretrio_remoto/arquivo dir_local

Fazendo um upload do servidor: # scp arquivo usuario@ip_do_servidor:/diretorio_remoto # scp /tmp/teste usuario@100.100.100.35:/home/usuario Fazendo um download do diretrio remoto do SSH:
# scp -r usuario@ip_do_servidor:/diretorio_remoto diretorio_local

# scp -r usuario@100.100.100.35 :/tmp

/root

Fazendo um upload no diretrio no servidor:


# scp -r diretorio_local usuario@ip_do_servidor:/diretorio_remoto

www.clubedohacker.com.br

132

Administrao e Segurana em Sistemas GNU/Linux


SSH com chaves Gera chaves de autenticao RSA com o protocolo SSH:
# ssh-keygen -t rsa

Podemos deixar uma palavra para permitir acesso no servidor remoto. Sero gerados dois arquivos no home do usurio, no subdiretrio .ssh, so eles: id_rsa e id_rsa.pub. O primeiro chave privada. O segundo deve ser enviado via canal para o servidor de acesso, pois o arquivo de chave pblica:
# scp ~/.ssh/id_rsa.pub usuario@ip:.ssh/

O usurio deve ser o mesmo no servidor do cliente. Acesse o servidor SSH com o usurio, e coloque sua chave pblica no arquivo, onde o servidor mantm o controle das chaves autorizadas: # ssh usuario@ip

# cd .ssh/

# cat id_rsa.pub >> authorized_keys Agora s logar no servidor normalmente e ver se consegue logar sem senha: # ssh usuario@ip

TCPWrappers Os TCP Wrappers so utilizados para aplicar regra de acesso aos servidores utilizados em seu sistema, podendo permitir ou negar as conexes eles. Eles so controlados por dois arquivos: /etc/hosts.allow (configurao de acessos permitidos para determinados IPs) e /etc/hosts.deny (configurao de acessos negados para determinados IPs). ---------------------------------------------------------------------------------------------------------Para liberar o acesso de um determinado servio para todos da rede, necessrio adicionar a seguinte linha no arquivo /etc/hosts.allow: in..telnetd:ALL ---------------------------------------------------------------------------------------------------------Bloqueando o acesso a um servio, para todos da rede 192.168.100.0 menos para o ip 192.168.100.100: Adicione a seguinte linha no arquivo /etc/hosts.deny: sshd: 192.168.100. EXCEPT 192.168.100.100 ---------------------------------------------------------------------------------------------------------www.clubedohacker.com.br 133

Administrao e Segurana em Sistemas GNU/Linux O arquivo /etc/hosts.allow tem preferncia de leitura em relao ao /etc/hosts.deny. Insira nos dois arquivos, a seguinte linha:
in.sshd:ALL

O que vai acontecer? Agendamento de tarefas (cron) O cron um daemon que permite o agendamento da execuo de um comando/programa para um determinado dia/ms/ano/hora. muito usado em tarefas de arquivamento de logs, checagem da integridade do sistema e execuo de programas/comandos em horrios determinados, mas isso no impede que ele possa ser usado para tarefas simples. Utilize o comando at para agendar a seguinte tarefa: listar todos os arquivos do diretrio /root e direcionar a sada para o arquivo /tmp/arquivo.txt, utilize o comando date para saber a hora e data do sistema e coloque esta tarefa para que seja executada daqui a 1 minuto.
#date

# at

21:30 03/05/2007

at> ls l /root> /tmp/arquivo.txt

O atalho CTRL D salva o agendamento. Visualizando as tarefas agendadas:


# atq

Para remover uma tarefa agendada:


# atrm

Colocando o cron em uma rotina para fazer backup do diretrio /etc/ de um em um minuto:
chama um arquivo temporrio para edio do agendamento: # crontab e * * * * * tar cvzf backup.tar.gz /etc

Trabalhando com servidor de sincronizao de horrio NTP Tem por funo, estabelecer uma sincronia do relgio do sistema com a referncia mundial de tempo, o padro UTC (Horrio Universal Coordenado), atravs do protocolo NTP.

www.clubedohacker.com.br

134

Administrao e Segurana em Sistemas GNU/Linux Ele trabalha com uma associao de hierarquia de servidores, que so

denominadas stratum. O stratum 0 a origem da hierarquia dos servidores de tempo, onde esto os equipamentos de fonte de horrios reais mais precisos (receptores GPS e relgios atmicos). Logo abaixo, no stratum1 esto os servidores pblicos diretamente sincronizados com os equipamentos de preciso. No stratum 2, esto os servidores pblicos utilizados por padro pelos demais servidores e clientes ntp do mundo, para evitar sobrecarga no stratum1. Qualquer servidor NTP que tenha como referncia de tempo um servidor stratum 1 passa a ser um stratum 2, qualquer servidor NTP que tenha como referncia de tempo um servidor stratum 2 passa a ser um stratum 3, e assim por diante. Feito o download da ltima verso do NTP a partir de: http://www.ntp.org Descompactando o pacote:
tar -xvzf nome_do_pacote.tar.gz C /usr/local/

ou
tar -xvjf nome_do_pacote.tar.bz2 C /usr/local/

A compilao e instalao do servidor NTP trivial, normalmente basta seguir os passos indicados no arquivo INSTALL contido na distribuio. OBS: Em nosso caso ser adicionado o parmetro --prefix=/usr/local/ntps/ para que o servidor de NTP seja instalado em /usr/local/ntps. Estes se resumem basicamente execuo dos seguintes comandos:
./configure --prefix=/usr/local/ntps

make

make check

su

make install

Os binrios foram instalados no diretrio /usr/local/ntps/bin: www.clubedohacker.com.br 135

Administrao e Segurana em Sistemas GNU/Linux ntpd: Processo daemon. ntpdate: Utilitrio que permite configurar o horrio e data locais usando como referncia um servidor NTP remoto. Similar ao conhecido comando ntpdate. ntpq e ntpdc: Programas de monitoramento e controle. Permitem realizar consultas a servidores NTP sobre o estado do mesmo e, eventualmente, requerer mudanas de tal estado. ntptrace: Determina de onde um determinado servidor NTP obtm a referncia de tempo e raa o caminho seguido at o servidor master (comumente, servidor NTP stratum 1). Todos eles so criados com permisso 755 (isto , rwxr-x-r-x), tendo como dono o usurio root. A configurao do servidor NTP incluiu os seguintes passos: Criao do arquivo de configurao. Este arquivo o usr/local/ntps/etc/ntp.conf. OBS: O contedo do arquivo de configurao /usr/local/ntps/etc/ntp.conf encontra-se no final deste documento, no anexo. Criao do arquivo "drift" com contedo vazio. A diretiva drift no arquivo de configurao indicar a localizao e nome deste arquivo. Este arquivo o /usr/local/ntps/etc/ntp.drift. Inicializao do daemon ntpd. O daemon pode ser inicializado usando o seguinte comando:
# /usr/local/ntps/bin/ntpd -c /usr/local/ntps/etc/ntp.conf

Ou atravs do script de inicializao ntpd contido em /etc/init.d/. Existindo entre os respectivos relgios dos servidores local e remoto um offset (diferena) maior do que 1000 seg (aprox. 20 minutos), o daemon no configurar o relgio local, ser gerada automaticamente uma mensagem de log e automaticamente ser desativar. Para verificar se o daemon ntpd foi corretamente inicializado podem ser usados os utilitrios ntpq e ntpdc, executando qualquer um dos seguintes comandos. Implementando o servio NTP na sua rede local:
ntpq -p [ip_servidor_NTP_local] ntpdc [ip_servidor_NTP_local]

Uma inicializao sem sucesso ser reportou no arquivo de logs por uma mensagem do tipo:
ntpq: read: Connection refused

www.clubedohacker.com.br

136

Administrao e Segurana em Sistemas GNU/Linux Neste caso preciso ajustar previamente o relgio local com algum servidor NTP remoto, usando para tal o mecanismo de ajuste ntpdate:
ntpdate [ip_servidor_NTP_remoto]

Uma inicializao com sucesso indicada por uma sada do tipo:


ntpq -p xxx.xxx.xxx.xxx

Quando o daemon do servidor local inicializa, leva em torno de 5 minutos para sincronizar adequadamente com o servidor remoto. Em alguns casos necessrio esperar horas para tal sincronizao. Uma diferena de tempo menor que 128 ms requerida para sincronizao. Configurao dos clientes Linux Configurando os clientes Linux para serem atualizados a cada 30 minutos. Para isso usamos o ntpdate e o cron. O cron pode ser interpretado como um servio do Linux que carregado durante o processo de boot do sistema. Trata-se de uma ferramenta que permite programar a execuo de comandos e processos de maneira repetitiva ou apenas uma nica vez. necessrio um software cliente de NTP. No nosso caso usamos o ntpdate. A instalao do ntpdate ir variar conforme a distribuio Linux usada. Aps instalados os softwares necessrios, temos de fazer as configuraes dos mesmos. No arquivo /etc/crontab foram adicionadas as seguintes linhas:

#[minutos] [horas] [usurio] [comando]

[dias

do

ms]

[ms]

[dias

da

semana]

0,30 * * * * root /usr/sbin/ntpdate xxx.xxx.xxx.xxx

Onde xxx.xxx.xxx.xxx o endereo IP do nosso servidor de NTP. Ento reiniciamos o cron. Identificao dos servidores fonte de horrios:
# ntptrace 192.168.100.100

Para as mquinas de rede que forem os clientes NTP, possvel fazer a sincronizao do horrio com o servidor atravs do comando ntpdate:
# ntpdate 192.168.100.100

www.clubedohacker.com.br

137

Administrao e Segurana em Sistemas GNU/Linux Gerenciando impresso no sistema O CUPS (Commom Unix Printing System) uma das formas atualmente mais utilizadas para trabalharmos com impresso no mundo Linux. Ele utiliza o protocolo IPP (Internet Priting Protocol) para gerenciar as filas e trabalhos de impresso. O CUPS fornece uma interface Web para gerenciamento, quotas para impresso e suporte para a maioria das impressoras existentes. Antes de instalar o CUPS necessrio instalar o gs, que um interpretador de arquivos Postscripts, pois o sistema de impresso se utiliza de arquivos no formato PPD, que so responsveis pela comunicao com o driver da impressora atravs do padro Postscript.
# apt-get install gs

Instalando os pacotes do CUPS:


# apt-get install cupsys cupsys-client

cupsys servidor de impresso CUPS cupsys-client cliente de impresso do CUPS Verificando se o sistema possui suporte ao driver da nossa impressora:
# gs -h

Para suporte a drivers da HP, instale o pacote hpijs:


# apt-get install hpijs

Para suporte impressora:


# apt-get install foomatic-* -y

OBS: Caso sua impressora no possua suporte, voc pode procurar pelo driver correspondente para ela em: www.linuxprinting.org. Acessando o arquivo de configurao do servidor de impresso, para visualizarmos algumas opes importantes de configurao:
# cat /etc/cups/cupsd.conf | less

Levantando o CUPS:
# /etc/init.d/cupsys start

Testando para verificar se o servio est ok:


# lpstat -t

www.clubedohacker.com.br

138

Administrao e Segurana em Sistemas GNU/Linux A gerencia das configuraes relacionadas fila de impresso, impressoras instaladas, e outros, ocorre atravs da interface grfica de gerenciamento do CUPS via browser. No browser digite:
localhost:631/admin

Definindo polticas de uso da impressora: Quantidade de pginas que podem ser impressas por usurio:
# lpadmin p Imp01 o job-page-limit=10

Tamanho limite de arquivos impressos pelos usurios (em KB):


# lpadmin p Imp01 o job-k-limit=1000

Tempo de validade da quota por usurio:


# lpadmin p Imp01 o job-quota-period=86400

Todas as informaes foram geradas no arquivo de configurao da impressora no cups, onde todos esses parmetros esto no arquivo /etc/cups/printers.conf. Verificando referncia de impressoras conectadas:
# lpinfo -v

Arquivo no qual o sistema busca definies das impressoras existentes:


# nano /etc/printcap

Usando o modo mais bsico para impresso de arquivos em Linux:


# echo teste > /dev/lp0 # cat arquivo.txt > /dev/lp0

Fazendo um teste de impresso com o comando lp:


# lp dImp01 arquivo.txt

Na opo d necessrio especificar o nome da impressora. Verificando a fila de impresso:


# lpq Pimp01 ou # lpstat -t

Removendo um trabalho da fila de impresso:


# lprm Pimp01 5

O 5 o nmero do job na fila de impresso. www.clubedohacker.com.br 139

Administrao e Segurana em Sistemas GNU/Linux

Compartilhamento de arquivos em Redes

www.clubedohacker.com.br

140

Administrao e Segurana em Sistemas GNU/Linux Servidor NFS O Servidor NFS o servidor de compartilhamento de arquivos padro em sistemas Linux e/ou Unix. Ele se utiliza do protocolo NFS (Network File System). Suas principais utilidades em uma rede so a centralizao de informaes pblicas e de intenso acesso, e o armazenamento de grandes arquivos em um nico local (facilitando o backup da rede). Instalando o servidor NFS:
# apt-get install nfs-kernel-server

Configurando os diretrios a serem exportados atravs do servidor NFS, editando o arquivo /etc/exports:
# nano /etc/exports

Indique o diretrio a ser exportado: /tmp *(ro) exportando o diretrio /tmp do servidor, com a permisso somente exportando o /home/share com permisso de leitura para todos. /home/share 100.100.100.0/24(rw) leitura e gravao somente para a minha rede. No mesmo arquivo voc pode acrescentar mais informaes. Compartilhe o diretrio home de um usurio, aplique a permisso de escrita para uma mquina e somente leitura para o resto da rede, mas ningum acessa o diretrio /home/tux/privado: /home/usurio 100.100.100.100(rw,root_squash) /home/usuario 100.100.100.0/24(ro,secure,no_root_squash) A opo secure faz com que o servidor aceite somente conexes feitas por portas abaixo de 1024; A opo no_root_squash faz com que o root seja considerado um usurio comum, A opo root_squash permite uid=0 nas conexes A opo hide especifica que todos tm o acesso negado ao diretrio (por isso essa linha deixada no final) O NFS no trabalha com uma porta padro convencional, usa um utilitrio chamado portmapper, que utiliza a porta fixa (111), monitora a porta que o NFS usa e direciona os clientes para portas certas (normalmente a porta 2049/UDP). www.clubedohacker.com.br 141

Administrao e Segurana em Sistemas GNU/Linux Inicializando o portmapper e o NFS:


# /etc/init.d/portmap start # /etc/init.d/nfs-kernel-server start

Visualizando os arquivos que esto no servidor:


# showmount e 100.100.100.100

Montando o compartilhamento ativo do servidor:


# mount t nfs 100.100.100.100:/tmp /mnt/nfs

Removendo o compartilhamento do diretrio /tmp do servidor sem reiniciar o servio:


# exportfs u *:/tmp # showmount e 100.100.100.100 removido visualizando compartilhamento do /tmp

Para reativa-lo sem reiniciar o servio:


# exports a -r

Servidor Samba O Samba um servidor de compartilhamento de arquivos e/ou impressoras, utilizando para isso o protocolo SMB (Server Message Block), que tambm o protocolo padro utilizado para compartilhamento em redes Microsoft. Por este motivo, ele muito utilizado para inteoperabilidade entre redes Linux e Microsoft. Instalando o Samba:
# apt-get install samba smbclient smbfs

samba

servidor samba arquivos de configurao do samba cliente samba para Linux montagem de compartilhamentos atravs do Linux Acessando o arquivo de configurao do samba:

samba-commom smbclient smbfs

# nano /etc/samba/smb.conf

O arquivo de configurao, parmetros "avanados" Verifiquemos os seguintes parmetros: www.clubedohacker.com.br 142

Administrao e Segurana em Sistemas GNU/Linux Seo [global] netbios name: Pode especificar o nome netbios do seu servidor samba. Pode ver o nome netbios na vizinhana da rede a partir das suas mquinas windows. Se no atribuir nenhum, o servidor linux obter o seu nome de netbios a partir do seu nome de rede. invalid users: Lista de utilizadores sem acesso ao samba. Por exemplo, o "root" no devia ser permitido. interfaces: Se o seu servidor linux tiver mais do que uma placa de rede e quer restringir a sua atividade a uma s placa de rede. security: Seleo do modo de segurana a ser utilizada. Usando security=user requer que cada utilizador tenha uma conta no servidor GNU/Linux. Se no quiser que o samba administre os utilizadores e compartilhe o mesmo recurso para todos, pode selecionar security=share. workgroup: Nome do grupo de trabalho do qual o seu servidor Linux deve fazer parte. server string: Uma descrio para a sua mquina Linux (uma string qualquer). socket options: Uma lista de opes para "personalizar" o samba e torn-lo mais rpido. encrypt passwords: Deve-se utilizar palavras-chave encriptadas. importante saber que praticamente todos os sistemas Windows utilizam um esquema diferente. wins support: Permite o seu servidor Linux a trabalhar como um servidor WINS. os level: O Nvel do SO para saber qual que "eleito" como master domain, local domain, etc. domain master: Define o samba como domain master local master: Define o samba como um servidor local master preferred master: Deve ser o samba "preferido" entre outros servidores, se existirem domain logons: Deve o Samba controlar as ligaes para todo o domnio logon script: Qual a script a correr quando um utilizador abre uma sesso logon path: Onde esto as scripts de arranque logon home: Onde se devem armazenar os perfis de usurio name resolve order: Qual a ordem de recursos a seguir para encontrar o nome de uma mquina na rede dns proxy: Deve o servidor samba ser utilizado como um proxy de DNS www.clubedohacker.com.br 143

Administrao e Segurana em Sistemas GNU/Linux preserve case: Para manter o nome de arquivos em letra MAISCULAS. short preserve case: Para manter o nome de arquivos em letras MAISCULAS. unix password sync: As palavras-chave do Unix e Windows devem estar sincronizadas passwd program: Qual o programa a utilizar na mudana de palavras-chave. passwd chat: Qual o protocolo a utilizar para alterar a palavra-chave max log size: Tamanho mximo do arquivo de log. Seo [netlogon] Especificar onde se encontra o netlogon. Seo [profiles] Bloco dos perfis de usurios. Seo [homes] Diretrio de trabalho dos usurios. Variveis Samba Varivel %a %I %m %M %g %H %u %P %S %h %L %v %T Definio Arquitectura do Cliente Exemplo: Win95, WfWg, WinNT, Samba ... Endereo IP do cliente Nome de NetBios do cliente Nome de DNS do cliente Grupo primrio do utilizador %u Directrio de trabalho do utilizador %u Nome Unix actual do utilizador Raiz da partilha actual Nome da partilha actual nome DNS do servidor Samba nome NetBios do servidor Samba Verso do Samba Data e tempo corrente www.clubedohacker.com.br 144 Variveis do Cliente

Variveis de usurio

Variveis de partilha

Variveis do servidor

Variveis variadas

Administrao e Segurana em Sistemas GNU/Linux Se necessrio criar um compartilhamento, adicione as linhas ao final do arquivo. Exemplo de compartilhamentos: [linux] comment=testando o samba path=/tmp/samba valid users=user1 user2 writable=yes creat mask=0600 directory mask=0700 [arquivos] comment=mais uma vez testando o samba path=/tmp/arquivos writable=yes write list= @aula valid users= @aula creat mask=0660 directory mask=0700 Verificando se o arquivo possui erros:
# testparm /etc/samba/smb.conf

Subindo o servio do Samba:


# netstat nlp | more

/etc/init.d/samba start

# netstat nlp | more

Consultando localmente o servio:


# smbclient L 127.0.0.1

Consultando se os compartilhamentos do servidor esto ativos:


# smbclient L 100.100.100.100 -N

Adicionando usurios na base de dados SAMBA:


# smbpasswd a [usurio]

Montando o compartilhamento linux com o usurio user1, e quando ele pedir a senha, coloque a que voc definiu: www.clubedohacker.com.br 145

Administrao e Segurana em Sistemas GNU/Linux


# smbmount //100.100.100.100/linux /mnt/samba -o username=user1

OBS: Se voc tentar montar com qualquer usurio que no esteja definido com permisso de acesso ao compartilhamento, ser retornado um erro. Samba com PDC (Primary Domain Controler)
O pdc o responsvel pela autenticao de usurios, caso ele se torne indisponvel ( e isso acontece muito ) pode-se promover um bdc a pdc e assim os usurios continuam a ser autenticados. ################ P D C ################## Clube do Hacker ############ [global] workgroup = windows netbios name = eu server string = servidor pdc domain master = yes preferred master = yes local master = yes domain logons = yes logon script = netlogon.bat security = user encrypt passwords = yes os level = 100 logon home = \\%L\%U\.profiles logon path = \\%L\Profiles\%U= [netlogon] comment = Servio de logon path = /var/samba/netlogon guest ok = yes browseable = no Executar um testparm: # testparm /etc/samba/smb.conf Subindo o servio Samba: # netstat -nlp | more

# /etc/init.d/samba start

# netstat -nlp | more Cadastrar o root: # smbpasswd -a root Criando um diretrio para configurar as permisses: # mkdir -p /var/samba/netlogon # chmod 775 /var/samba/netlogon

www.clubedohacker.com.br

146

Administrao e Segurana em Sistemas GNU/Linux


Cadastrando os logins dos usurios, com as senhas que eles utilizaro para fazer logon a partir das mquinas Windows. # adduser tux # smbpasswd -a tux importante criar tambm o diretrio profile.pds dentro do diretrio home do usurio, onde o cliente Windows armazena as informaes da sesso cada vez que o usurio faz logon no dimnio: # mkdir /home/tux/profile.pds Alm das contas para cada usurio, necessrio cadastrar tambm uma conta (sem senha) para cada mquina. Se a mquina se chama linux por exemplo, preciso criar um login de mquina com o mesmo nome: # adduser linux1

# adduser linux2

# adduser linux3

# passwd -l linux1$

# passwd -l linux2$

# passwd -l linux3$

# smbpasswd -a -m linux1 ; smbpasswd -a -m linux1 ; smbpasswd -a -m linux1

# groupadd trust

=> trust account => nome de mquina

# useradd -g trust -s /dev/null -d /dev/null linux1$

# useradd -g trust -s /dev/null -d /dev/null linux2$

# useradd -g trust -s /dev/null -d /dev/null linux3$

www.clubedohacker.com.br

147

Administrao e Segurana em Sistemas GNU/Linux


Por ltimo necessrio criar o arquivo /var/samba/netlogon/netlogon.bat um script que lido e executado pelo usurios ao fazer logon. Para ativar o suporte no Samba, adicione no final da sesso [global] do smb.conf (abaixo da linha logonscript = netlogon.bat) logon home = \\%L\%U\.profiles logon path = \\%L\profiles\%U A varivel %L neste caso indica o nome do servidor e o %U o nome do usurio que est fazendo logon. Quando tux faz logon montado o compartilhamento \\gdh\profiles\tux Vamos adicionar tambm um novo compartilhamento, adicionando as linhas abaixo do final do arquivo: [profiles] path = /var/profiles writable = yes browsable = No crate mask = 0600 directory mask = 0700 necessrio criar um diretrio /var/profiles, com permisso de escrita para todos os usurios: # mkdir /var/profiles # chmod 1777 /var/profiles Cada usurio passa a ter uma pasta dentro da pasta (/varprofiles/tux) onde as configuraes so salvas. Vamos reinicializar o servidor SAMBA: # /etc/init.d/samba restart Fazendo um teste para saber se o meu master browser e o meu PDC esto respondendo na minha rede: # nmblookup -A -M 100.100.100.0 Agora preciso configurar a mquina no Windows. necessrio trabalhar com o nome da mquina e com o nome do domnio: Depois reinicie o Windows e ingresse no domnio. usurio: tux (criado anteriormente) senha: a mesma do smbpasswd (agora /etc/samba/smbpasswd ser base de dados dos usurios do domnio) domnio: windows

www.clubedohacker.com.br

148

Administrao e Segurana em Sistemas GNU/Linux

--------------------Clube do Hacker ------------------------

www.clubedohacker.com.br

149