Sei sulla pagina 1di 242

CENTRO DE INFORMTICA - SENAC

LINUX BASIC
INTRODUO AO LINUX TIPOS DE SISTEMA DE ARQUIVOS DO DEBIAN CONCEITOS BSICOS ESTRUTURA DE DIRETRIO DO LINUX INSTALAO DO DEBIAN IDENTIFICAO DE DISCO UTILIZAO DO COMADOS BSICOS MANIPULAO DE PACOTES ACESSANDO DISPOSITIVOS

LINUX SECURITY SISTEM ADMINISTRATION


PROCEDIMENTOS DE BACKUP CONFIGURANDO E INSTALANDO UM BOOT MANAGER ALIAS E VARIVEIS INTRODUO A PROGRAMAO EM SHELL SCRIPT ADMINISTRAO DE USURIOS E GRUPOS CRIANDO QUOTAS PARA USURIOS PERMISSES DE ACESSO A RECURSOS, ARQUIVOS, PASTAS E DISPOSITIVOS DO SISTEMA COMPILAO DE PROGRAMAS SERVIOS BSICOS DE REDE TELNET x SSH

SERVIDORES DE REDES
DNS DHCP NFS NIS SAMBA SAMBA COM CONTROLADOR PRIMRIO DE DOMNIO APACHE SQUID

Este guia no pretende ser definitivo, ele somente utilizado para fins de ensino. Qualquer configurao adicional bom olhar no prprio manual que acompanha o software

LINUX BASIC

O QUE SOFTWARE LIVRE?

Um software considerado como livre quando atende aos quatro tipos de liberdade para os usurios do software definidas pela Free Software Foudation:
A liberdade para executar o programa, para qualquer propsito; A liberdade de estudar como o programa funciona, e adapt-lo para as suas necessidades. Acesso ao cdigo-fonte um pr-requisito para esta liberdade; A liberdade de redistribuir cpias de modo que voc possa ajudar ao seu prximo; A liberdade de aperfeioar o programa, e liberar os seus aperfeioamentos, de modo que toda a comunidade se beneficie. Acesso ao cdigo-fonte um pr-requisito para esta liberdade;

O QUE O LINUX?
O Linux um Minix melhor que o Minix" (a better Minix than Minix)
Linus Torvals

DISTRIBUIES LINUX

SISTEMAS DE ARQUIVOS
por meio de um sistema de arquivos que ocorre a gravao e a recuperao dos dados em um dispositivo de armazenamento em um computador

Sistemas de Arquivos
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. 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
Sua performance muito boa, principalmente para um nmero muito grande de arquivos pequenos; ReiserFS tambm possui suporte a journaling.

JFS
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. 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; 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.

ESTRUTURA DE DIRETRIO

/bin /boot /dev /etc /home /lib /media


Diretrio Principal

Arquivos binrios de comandos essenciais do sistema. Arquivos de boot Dispositivos (devices) de entrada/sada Arquivos de configurao (scripts) e inicializao. Diretrio local (home) de usurios. Bibliotecas e mdulos (drives): compartilhadas com freqncia. Para Montar e desmontar midias Diretrio de montagem de dispositivos, sistemas de arquivos e partio. Para instalao de programas no oficiais da distribuio. Arquivos de sistema essenciais (binrios do superusurio). Arquivos temporrios gerados por alguns utilitrios. Arquivos de usurios nativos da distribuio. Arquivos de log e outros arquivos variveis Diretrio local do superusurio (root). Diretrio virtual (RAM) onde rodam os processos ativos.

/home/aluno /home/linux

/mnt /opt /sbin /tmp /usr /var /root /proc

/usr/local/bin /usr/local /usr/local/games

INSTALAO DO DEBIAN

Neste curso usaremos um aspecto do particionamento do disco rgido de um servidor Linux, tendo em vista aspectos de segurana.

/var

/usr

/tmp

swap

/home

Raiz / - Tipicamente so necessrios 3 GB para a partio /. /var - onde arquivos de dados variveis so gravados, coloque de parte uns 2 GB ou 3 GB de espao para /var que devero ser suficientes. /usr - contm todos os programas dos utilizadores (/usr/bin), bibliotecas (/usr/lib), documentao (/usr/share/doc), etc. Dever fornecer pelo menos 500 MB de espao em disco. Este tamanho deve aumentar dependendo do nmero e tipo de pacotes que planeja instalar. Uma generosa estao de trabalho deve permitir uns 4-6 GB.

/t

st r ri s cri s r r r s ir r l t r st ir t ri . r l t s s fici t s. l s lic s, i cl i i l r s r i s, tilit ri s cri / , s ft r lti i tiliz r /t r r r r i s i s. c l j tiliz r ss s lic s, c j st r c r s is l /t .

/s

t r s r .

c ( r tr c

-s r l : sc

tr c

r c s ri

-s cri r c ). s , l s s s ss is j r st l r s r r it s

/ ir s r s r s s r i

-t s s tiliz r s ir c l c r s s s t ri st ir t ri . tiliz r c rc r c tiliz r, s c ssi s. s r it is s s l s( , fil s) s ir t ri / .

l t i

IDENTIFICAO DE DISCOS E PARTIES EM SISTEMAS 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

/d

/ d

1 - /d

/ d 1

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. /dev/xda - Primeiro disco rgido XT.

UTILIZAO DO COMADOS BSICOS Voc est logado como root, e agora voc deseja logar com um outro usurio, para isso user o comando login: # login usurio Ficar logado com o usurio root pode ser um perigo, para evitar maiores problemas use o comando su para logar com superusuario por um determinado perodo de tempo, em seguida digite a senha do superusuario. $ su O comando abaixo tem como funo desconectar um usurio de uma determina sesso: # logout O comando exit tem o objetivo de encerrar uma sesso de trabalho: # exit

Para desligar temos os comandos: # 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

Exibir a quantidade de tempo desde a ltima reinicializao do sistema: # uptime Pgina de manual e de informaes sobre os comandos: # man nome do comando eu deseja obter informaes Exemplo: man shutdown

Modificar data e hora do sistema: # date MMDDHHMMYY Exemplo: altera a data para o dia 23 de outubro as 03:05 de 2009 # date 1023030509 sendo est a ordem primeiro o ms, depois o dia, em seguida a hora e o minuto e por ltimo o ano Mostra o diretrio corrente: # pwd Comando que muda um subdiretrio corrente a partir do diretrio atual: # cd [diretrio] Exemplo: cd /root - para acessar o diretrio root # cd - (volta ao ltimo diretrio acessado) # cd .. (acessa o diretrio anterior na rvore de diretrios)

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

Criar novo diretrio: # mkdir [diretrio] Exemplo: mkdir SENAC Remover diretrio vazio: # rmdir [diretrio] Exemplo: rmdir SENAC

Para remover um diretrio e todo o seu contedo ou arquivo (cuidado com este comando): # rm rf [diretrio] Exemplo: rm rf /home/aluno/linus # rm rf / ( No faa isso!) Linkando arquivos: criando atalhos # ln -s [arquivo_origem] [link simblico] Exemplo: Acesse o tiretorio /tmp e com o comando touch crie um arquivo com o nome de linux, agora vamos criar um atalho deste arquivo dentro do diretorio /home/aluno # ln -s /tmp/linux /home/aluno/linux Mostrar o contedo detalhado do diretrio: # ls -lah # ls lah [diretrio] Exemplo: ls lah /home/aluno

Mostrar os arquivos no formato longo em ordem inversa de data: # ls ltr Exemplo: ls ltr /home l = longo t = date r = inversa
Mostrar o tamanho do diretrio em Megabytes

Touch - 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. Sintaxe: touch [opes] [arquivos] Exemplo: touch info como este arquivo no existe, este comando ira cria-lo Atualizando hora e data de um arquivo: # touch -t YYYYMMDDhhmm info Exemplo: touch -t 200901301045 info atualizar a data do arquivo info para 30 de janeiro de 2009 e a hora para as 10:45

# du -msh Exemplo: du msh /home du = a abreviao de se referir a disk usage (uso do disco).

Antes de qualquer coisa acesse o diretorio /tmp e dentro crie o diretorio cin Criar um arquivo: # : > [arquivo] Exemplo: : > linux Criar vrios arquivos: # touch gnu linus unix hurd Mover um arquivo: # mv gnu /home/aluno/ Mover um arquivo para o diretrio local: /home/aluno# mv /tmp/linux

Copiar um arquivo: # cp unix /home/aluno/ Copiar um arquivo para o diretrio local: /home/aluno# cp /tmp/hurd

Editar um arquivo: # nano Exemplo: nano gnu Digite o texto abaixo dentro deste arquivo: O que Linux Linux ou GNU/Linux O kernel Linux O sistema operacional Linux (ou GNU/Linux) Como fazer download ou adquirir o Linux Viva a liberdade Linux na veia Mundo jedi

Mostrar o contedo de um arquivo binrio ou texto: # cat gnu Mostrar o arquivo na ordem invertida de leitura: # tac gnu

Exibir as primeiras linhas de um determinado arquivo: # head [arquivo] # head n [arquivo] Exemplo: head -3 gnu - mostra as trs primeiras linhas Exibir as ultimas linhas de um determinado arquivo: # tail [arquivo] # tail n [arquivo] Exemplo: tail -3 gnu Mostra as trs ltimas linhas

Localizar um determinado arquivo especificado: # locate linus Atualizar 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 Exemplo: cat gnu | more # more [arquivo] Exemplo: more gnu O comando less - possibilita exibir o arquivo de maneira paginada, com opo de rolagem para trs e para frente: # cat /proc/cpuinfo | less

Exibir um arquivo em linhas numeradas: # nl gnu Contador de linhas, palavras e bytes: # wc [opes] [arquivo] Exemplos: wc gnu wc -l gnu wc -w gnu wc -c gnu quantidade de linhas quantidade de palavras quantidade em bytes

Visualizar de forma crescente as informaes do arquivo: # sort gnu Visualizar de forma decrescente as informaes do arquivo: # sort -r gnu Mostrar informaes de um arquivo: # file [arquivo] Exemplo: file gnu

Mostrar inode com atributos MAC (Modify, Access, Changes): # stat [arquivo] Exemplo: stat gnu Mostrar uma listagem de entrada e sada de usurios no sistema: # last Exibir o histrico: # history Logins mal sucedidos: # lastb

Tais como: o sistema operacional, verso do kernel, arquitetura da mquina e muitos outros:
# uname [opes] # uname -r (verso de kernel) # uname -m (arquitetura de mquina) # uname -n (mostra o hostname) # uname -p (mostra o tipo de processador) # uname -v (mostra a data da verso do kernel) # uname -o (mostra o nome do Sistema Operacional) # uname -s (mostra o nome do Kernel)

Exibir informaes do sistema

MANIPULAO DE PACOTES
Gerenciadores de pacotes: dselect, dpkg, apt-get e tasksel

O dpkg o programa responsvel pelo gerenciamento de pacotes em sistemas Debian. Intalar pacotes use o comando: # dpkg -i [pacote] Listar todos os pacotes que esto instalados no formato .deb: # dpkg -l | less Para listar os pacotes instalados use o comando: # dpkg l | grep [pacote]

Gerenciando pacotes com o apt Instalar um programa: # apt-get install mozilla 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 sejam executados outros apt ao mesmo tempo. Arquivo onde ficam armazenados todos os mirros (sources) de busca de pacotes: /etc/apt/souces.list Atualizar pacotes no apt Ao inserir uma nova linha no arquivo, pode-se atualizar a busca de pacotes no apt: # apt-get update Para saber se um determinado pacote 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: # 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

ACESSANDO DISPOSITIVOS

Parties montadas automaticamente no processo de boot: # cat /etc/fstab Mostrar os sistemas de arquivos montados: # df # df -h Informaes sobre o hardware de sua mquina: # lspci Informaes de processamento /proc: # cd /proc Exemplo: # cat /proc/bus/pci/devices

Verificar uma placa: # lspci | grep audio Verificar endereos de I/O que esto sendo utilizados: # cat /proc/ioports Verificar 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 Montando a partio: # mkdir /mnt/aula # mount -t ext3 /dev/hda4 /mnt/aula

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

ADMINISTRAO DE USURIOS E GRUPOS


O Linux um sistema operacional multiusurio, portanto necessrio que todos os usurios sejam cadastrados e tenham permisses de acesso diferenciadas. possvel tambm cadastra-los em grupos para facilitar o gerenciamento

VERIFICANDO INFORMAES DO USURIO


Todo usurio possui um nmero chamado user ID com o qual o sistema Unix/Linux identifica-o no sistema; Toda vez que um processo for ativado ser atribudo ao processo um User ID e um Group ID; Sintaxe: id [ opes ] [ nome ] Sem parmetros, pegando as informaes do usurio atual. # id uid=0 (root) gid=0(root) grupo=0 (root)

Pegando somente o user id do usurio atual. # id u 1024 Verificando o ID, GID e grupos: # id [usurio]

USURIOS GRUPOS

Os comando que iremos ver ir alterar os arquivos:


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

Arquivo /etc/passwd
O arquivo /etc/passwd Armazena os dados relativos s contas de todos os usurios do sistema Cada usurio representado por uma linha A remoo de uma linha impede login do usurio root:x:0:0:root:/root:/bin/bash ... linus:x:500:500:Linus Torvalds,Developer,231-2321,:/home/linus:/bin/bash stallman:x:501:500:Richard Stallman,Manager,,:/home/stallman:/bin/bash raymond:x:502:500:Eric Raymond,Manager,,:/home/raymond:/bin/bash ...

Cada linha composta de campos divididos por :

Arquivo /etc/group O arquivo /etc/group


Armazena os dados relativos aos grupos de usurios Cada grupo representado por uma linha no arquivo Em sistemas como o Debian GNU/Linux, existem grupos para atividades especficas
Acessar CD-ROM, recursos de udio e vdeo, etc root:x:0: mysql:x:27: ... developers:x:500: managers:x:501: freesoftware:x:502:linus,stallman,raymond ...

O arquivo /etc/group (continuao)


Cada linha composta de campos divididos por :

Arquivo /etc/shadow
O arquivo /etc/shadow Todos os usurios tm acesso ao arquivo /etc/passwd Acesso ao hash da senha permite ataque do dicionrio Somente o root tem acesso ao arquivo /etc/shadow Seu uso padro em sistemas GNU/Linux Implementado inicialmente no Solaris Suporte instalado por pacote a parte Armazena outras informaes alm do hash da senha Permite configurao de muitos parmetros teis Poucos administradores usam estes recursos!

Criando Grupos
Antes de criar usurios necessrio planejar quais grupos o seu sistema dever possuir Grupos podem ser criados atravs da edio direta do arquivo /etc/group ... alunos:x:503: profs:x:504: Ou... pode ser utilizado um utilitrio como o comando groupadd # groupadd [grupo] #grougadd senac # groupadd -g 503 alunos # groupadd -g 504 profs

USERADD
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 grupo root. # useradd g root [usurio] Cria o usurio com vrias informaes: # useradd d /home/alunos/usuario c ESTUDO LINUX g alunos usurio Utilize o manual para ver outras opes de utilizao do comando useradd: # man useradd 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 ]

Para sua segurana, deve-se configurar o sistema para que:


A senha deve ter no mnimo 6 caracteres; A senha deve ter no mnimo duas letras maisculas e/ou duas letras minsculas e pelo menos um dgito ou caractere especial; 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 antiga em pelo menos trs caracteres.

Cri

ri s

cri i # # Cri ir ir s s # j # j r e r r -

s tr i s l

s r r s r f

/ tc/ irs r r

ss

ri s c

c f r s s l cific , ri (iss /j e-

s r( s r cri J J

) i il i ) l r f r c

- /

e/ r f /j

e ereir

COMANDO ADDUSER
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]

MODIFICANDO O NOME DE UM USURIO


# usermod l [novo_nome usurio] [nome_antigo] Exemplo: temos no nosso sistem o usurio linus vamos alterar este usurio para senac, ento digitamos o comando abaixo: # usermod l senac linus

REMOVENDO UM USURIO
# userdel r [usurio]

CONFIGURANDO UM USURIO COM PODERES DE ROOT


Para isso edite o arquivo /etc/passwd fulano:x:100:100::/home/fulano:/bin/bash linha alterada fulano:x:0:0::/home/fulano:/bin/bash Salve o arquivo Pronto, agora o usurio fulano ter todos os direitos de root.

Trabalhando com grupos


Adicionando um usurio a um grupo: # adduser [usurio] [grupo] ou # gpasswd a [usuario] [grupo] Vamos criar um novo grupo no /etc/group: cin:x:666:user1,user2,user3 Adicionando esta linha no arquivo /etc/group, um novo grupo criado com o nome 'cin', GID '666' e com usurios adicionais pertencentes ele: 'user1,user2,user3'. Removendo um grupo: # groupdel [nome_grupo] Renomeando um grupo: # groupmod n [novo_nome] [nome_antigo]

PERMISSES DE ACESSO A RECURSOS, ARQUIVOS, PASTAS E DISPOSITIVOS DO SISTEMA


A permisso de acesso protege o sistema de arquivos Linux do acesso indevido de pessoas ou programas no autorizado.

Controle de Acesso
Permisses
Todo arquivo e diretrio possui um conjunto prprio de permisses que determina quais tipos de aes so permitidas aos usurios do sistema Permisses padres de sistemas Unix Leitura (r) Gravao ou modificao do contedo (w) Execuo (x) As permisses so atribudas individualmente ao(s)... dono do arquivo/diretrio grupo do arquivo/diretrio outros usurios do sistema que no se encaixam nos conjuntos anteriores Permisses de um arquivo/diretrio so atribudas pelo seu dono ou pelo super-usurio Arquivos/diretrios pertencem ao usurio/grupo que os criou Contudo, usurio/grupo dono de um arquivo pode mudar

CONTROLE DE ACESSO

CONTROLE DE ACESSO

Permisses tem significado distinto para arquivos e diretrios


Sistemas GNU/Linux fazem diferena entre os valores de permisso padro usados para criar arquivos e diretrios A permisso de execuo para diretrio no to crtica quanto para arquivo

Operao Leitura Escrita Execuo

Arquivo Examinar contedo Alterar contedo Executar arquivo

Diret rio Listar arquivos Criar/remover Tornar corrente

CH OD
chmod [opes] mode arquivo: modifica conjunto de permisses de arquivos e diretrios O usurio precisa ser dono do arquivo para modificar suas permisses Esta regra no se aplica ao super-usurio Dono do arquivo pode mudar qualquer valor de permisso para qualquer conjunto de usurios (dono, grupo e outros) O conjunto de permisses pode ser representado de forma numrica ou simblica atravs de letras e sinais Opo -R executa alterao das permisses recursivamente mode (representao simblica) [ quem ] operao permisso, [ quem ] operao permisso, ...quem pode conter os valores u (user), g (group), o (other) ou a (all) Na ausncia de um valor, a utilizado como padro representado a mesma funcionalidade que a combinao ugo operao pode assumir os valores + (adicionar permisso), - (proibir permisso) ou = (igualar permisso) permisso representa qualquer combinao dos tipos de acesso: r (leitura), w (escrita) e x (execuo)

CONTROLE DE ACESSO
Exemplos #chmod g+rw /tmp/programa.c # chmod go-wx /home/joao/trabalho.sxw # chmod u=rx /home/joao/projeto/* # chmod u=rwx,go=rx /tmp/aquivos-joao/* # chmod a=rwx /tmp/arquivos-joao/* Representao na forma simblica mais intuitiva e as expresses representadas referem-se s permisses atuais MODE (REPRESENTAO NUMRICA) Cada conjunto de permisses representado por um nmero octal Valores de 0 a 7 representam todas as combinaes possveis dos valores de leitura, escrita e execuo

Cada dgito a soma dos valores: 4 para leitura 2 para escrita 1 para execuo

CONTROLE DE ACESSO
# chmod 750 /tmp/carta.txt -rwxr-x--- 1 linus aluno 500 sep 10 15:00 carta.txt r=4 rwx = 4+2+1 = 7 w=2 r-x = 4+1 = 5 x=1 --- = 0 resultado 750

Exemplos # chmod 700 /home/linus/linux.sxw # chmod 644 /usr/src/programa # chmod 770 /projeto/fibonacci.c

CONTROLE DE ACESSO
umask - determina a mscara padro que ser utilizada na criao de novos arquivos/diretrios Quando utilizado sem parmetros, exibe o valor atual da mscara
padro 0022 O resultado acima o seguinte: 0 : Este s indica que o valor de uma umask; 0 : D acesso total ao arquivo criado pelo usurio; 2 : D acesso de Leitura e execuo do arquivo, no caso de um diretrio permiti que este seja acessado atravs do comando \"cd <diretrio>\"; 2 : O Mesmo direitos acima, s que para os outros usurios do sistema.

Em geral, sistemas Unix criam diretrios com as permisses 777 para diretrios e 666 para arquivos

OK e como fao para modificar essa mscara?


Vamos relembrar um pouco o modo octal, lembram que para determinar um nvel de acesso para o Dono, Grupo, Outros bastava somar os nmeros relacionados ao tipo de permisso e que o acesso total a um arquivo tem o valor 7 {4(r) + 2(w) + 1(x) =7(full}? No umask vamos utilizar o valor total de acesso do modo octal 777 para determinar o valor da umask, mas agora em vez de somarmos vamos subtrair. $ umask 000 ou $ umask 0000 Resultado: -rw-rw-rw- 1 linus users 178 2009-02-29 13:23 arquivo drwxrwxrwx 2 linus users 178 2009-0229 13:02 diretrio

OBS1: Por motivo de segurana o bit (x) que permitir a execuo de um arquivo binrio ou script desabilitado na umask. Exemplo: Toda vez que eu criar um arquivo ou diretrio OBS2: Lembrando que o primeiro 0 a esquerda s para informar que o valor de uma quero que eles tenham acesso total. 777 -> Acesso Total a um arquivo/diretrio - 777 -> umask, e opcional. Acesso que desejamos ter atravs da umask 000 -> Valor da umask

MUDANDO A PROPRIEDADE DE UM ARQUIVO:


chown [opes] dono[.grupo] arq1 [arq2] ...: permite que o dono/grupo de determinado arquivo/diretrio sejam alterados Na maioria dos sistemas, alterao de dono/grupo s pode ser feita pelo prprio super-usurio Da mesma forma que o comando chmod, a opo -R executa a alterao de maneira recursiva Ex.: Crie o usurio Mario e joo Entre com o usurio joo e crie um arquivo com o nome aprendendo, use o comando ls -l e observe que o dono e o grupo do arquivo o joo. Entre com o usurio Mario e use o comando $ chown mario.mario aprendendo Verifique que o dono e o grupo foi alterado

CONTROLE DE ACESSO
chgrp [opes] grupo arq1 [arq2] ...: permite que o grupo de determinado arquivo/diretrio seja alterado A opo -R executa a alterao de maneira recursiva Exemplos # ls -l /tmp/documentos/Linux.sxw -rw------- 1 linus alunos 0 Sep 14 20:00 Linux.sxw #chgrp progs /tmp/documentos/Linux.sxw # ls -l /tmp/documentos/Linux.sxw #-rw------- 1 linus progs 0 Sep 14 20:00 Linux.sxw

CONT. CONTROLE DE ACESSO


PERMISSES ESPECIAIS

SUIDBIT A propriedade SUI

PERMISSES ESPECIAIS
somente para arquivos executveis e no tem efeito em diretrios.

O bit SUI utilizado em arquivos executveis quando se deseja que o programa seja executado com os privilgios de seu usurio dono. Isso til em situaes onde um programa precise acessar determinado recurso, mas os usurios que o utilizam no o possam fazer diretamente. Embora a utilidade do bit SUI seja questionvel, seu uso deve ser feito com muito cuidado, pois um problema em sua configurao pode ter conseqncias srias de segurana (especialmente se o SUI for para o usurio root). O bit SUI representado textualmente por u+s. Por exemplo:

$ chmod u+s arquivo_executvel. Em octal o nmero 4, mas utilizado antes das permisses de dono/grupo/outros. Exemplo: $ chmod 4755 arquivo_executvel

SGIDBIT
SGID O bit SGI tem a mesma funo do bit SUI , mas aplicado ao grupo, ou seja, o programa executado com os privilgios do grupo a que pertence. A representao textual do bit SGI g+s; em forma octal utilizado o nmero 2, tambm utilizado antes das permisses de dono/grupo/outros. Exemplos: $ chmod g+s arquivo_executvel e $ chmod 2755 arquivo_executvel

O bit SGI tambm pode ser utilizado em diretrios. Nesse caso, todos os arquivos criados dentro deste tero como grupo dono o mesmo grupo a que o diretrio pertence.

Stick Bit
O stick bit utilizado em diretrios compartilhados entre vrios usurios, em combinao com permisses de escrita para estes, onde seja desejvel que usurios no acessem os arquivos por outros criados. Em outras palavras, um diretrio com stick bit ativado permite que qualquer usurio crie arquivos, mas os outros usurios no podero remov-los. Um exemplo do uso do stick bit o diretrio /tmp. A representao textual do stick bit atravs do +t e em formato octal atravs do nmero 1, antes das permisses de dono/grupo/outros. Exemplos genricos:

$ chmod +t diretrio_compartilhado e $ chmod 1777 diretrio_compartilhado

Para demonstrar o uso do SUID vou dar como exemplo o comando shutdown, que utilizado para desligar e reiniciar o sistema, mas que s pode ser executado pelo usurio root. Mesmo se voc der permisso atravs do "chmod 755 /sbin/shutdown", o usurio comum no vai conseguir realizar a execuo deste, somente o root

ENTENDENDO O SUIDBIT

Vamos l! # groupadd shutdown - adiciona um novo grupo ao sistema. # gpasswd -a aluno shutdown - adiciona um novo membro a um grupo # chown root:shutdown /sbin/shutdown - muda o dono e o grupo de um arquivo/diretrio. # chmod 4750 /sbin/shutdown - liga o bit SUID junto com as novas permisses. # ln -s /sbin/shutdown /bin/shutdown - cria um link simblico de um arquivo/diretrio. Agora, logue-se novamente no shell: # su aluno - utilizei para que o sistema atualize-se e reconhea que o usurio aluno' agora faz parte tambm do grupo shutdown Agora teste o comando shutdown. # shutdown -h now

ENTENDENDO O SGIDBIT
Exemplo: Se no diretrio /home/aluno tem o grupo financeiro e tem o SGID habilitado, ento todos os arquivos dentro do diretrio /home/aluno sero criados com o grupo financeiro. Este um importante atributo para uma equipe, assumindo que todos os arquivos compartilhados devem ter o mesmo grupo. Comandos: Aplicando SGID: Aplicando a propriedade SGID em um diretrio executvel utilizando formato simblico (s): # chmod g+s /home/equipe # ls -lah /home/equipe drwxr-sr-x 2 aluno financeiro 48 2009-02-26 23:21 .

Aplicando a propriedade SGID em um diretrio executvel utilizando formato octal (2): # chmod 2750 /home/equipe # ls -lah /home/equipe drwxr-s--- 2 aluno equipe 48 2009-02-26 23:21 Retirando SGID: # chmod g-s /home/equipe # ls -lah /home/equipe drwxr-xr-x 2 aluno equipe 48 2009-02-26 23:21 .

ENTENDENDO O STICKBIT
Exemplo: # chmod 1750 /home/publico No diretrio /tmp, todos os usurios devem # ls -lah /home/publico ter acesso para que seus programas drwxr-x--t 1 root root 2,9M 2009-02possam criar os arquivos temporrios, 26 23:51 publico mas nenhum pode apagar arquivos dos outros. Aplicando a propriedade Sticky em um arquivo executvel utilizando formato Ento interessante aplicar a propriedade simblico (t): Sticky no diretrio /tmp. # chmod o+t /home/publico Comandos: # ls -lah /home/publico Aplicando Sticky: drwxr-x--t 1 root root 2,9M 2009-02Aplicando a propriedade Sticky em um 26 23:51 publico diretrio usando o formato octal (1):

Retirando Sticky: # chmod o-t /home/publico # ls -lah /home/publico drwxr-x--- 1 root root 2,9M 2009-02-26 23:51 publico

PRATICANDO
Testando o conhecimento adquirido: um problema e uma soluo

Eu, administrador de sistema, em um dia calmo e tranqilo recebo a seguinte tarefa: Prezado Aluno, estaremos reativando algumas reas, sendo mais especficos alguns setores, e precisaremos que voc monte esta estrutura para ns, segue abaixo o que precisaremos: Novas reas: Tcnicos 5 usurios

Administrao 5 usurios Compras Estoque 5 usurios 5 usurios

Estes novos setores teriam uma faixa de 5 usurios em cada, conforme havia lhe passado os nomes por e-mail, eu preciso que voc monte uma hierarquia bem definida, onde cada setor s possa interagir dentro daquilo que lhe de interesse, ou seja, cada grupo possa apenas ver seus arquivos, e que cada usurio s tenha direito de excluir aquilo que seu (se quiserem ir alm), peo-lhes que o mesmo seja feito com o home dos novos usurios, mande-me depois como ser esta nova hierarquia."

GERENCIAMENTO DE PROCESSOS
O gerenciamento de processos um trabalho fundamental para o administrador de sistemas

GERENCIAMENTO DE PROCESSOS
Definio O que processo?
Programa em execuo Enquanto programa ocupa espao em disco, processo ocupa espao em memria Programas executveis podem gerar processos

Um programa pode dar origem a vrios processos Exemplo


Um mesmo usurio executa vrias instncias de um navegador (Mozilla) Vrios usurios em um mesmo sistema executam o leitor de email

Processos podem dar origem a outros processos


Processo pai: aquele que cria outro processo Processo filho: aquele que criado

PROCESSOS
Lifetime - o tempo de vida de um processo em execuo. PI - a identidade de um processo representado por um nmero inteiro e nico. UI - um processo associado com um usurio que inicia um processo. Parent Process - O primeiro processo startado no kernel do sistema o init. Este processo tem o PI 1 e o ltimo parente de todos os outros processos no sistema. Seu shell descendente do init e o processo parente para os comandos o shell, onde esses so processos filhos ou subprocessos. Parent Process I - Este o PI do processo parente, ou seja, o PI criou o processo em questo. do processo que

Enviroment - Cada processo tem suporte a uma lista de variveis associados a valores. Current Working Directory - um diretrio default associado com cada processo.

Monitorando processos com ps, pstree e top

ps
O comando ps mostra os processos que esto sendo executados no sistema. Vejamos algumas opes:
a - Mostra todos os processos criados. x - Mostra os processos que no so controlados pelo terminal. u - Mostra o nome do usurio e a hora que o processo foi iniciado. --help - Mostra a ajuda do comando ps (utilize tambm man ps)

#ps aux | more

A sada do comando ps uma tabela onde cada coluna fornece uma informao: USER - Nome do usurio dono do processo.
UID - Nmero de identificao do usurio dono do processo. PID - Nmero de identificao do processo. PPID - Nmero de identificao do processo pai de cada tarefa. PRI - Nmero de prioridade da tarefa. (Nmeros altos so prioridades baixas). NI - Valor preciso da prioridade da tarefa. %CPU - O consumo de processamento do processo. %MEM - O consumo de memria do processo. SIZE - Tamanho do cdigo da tarefa em kilobytes. RSS - Soma total da memria fsica usada pelo processo, em kilobytes. WCHAN - Endereo ou nome da funo do kernel da tarefa que est atualmente suspensa. STAT - Estado do processo: S - Suspenso, R - em Execuo, T - Interrompido, Z Terminado, etc. TTY - Terminal onde so executados os processos. TIME - Tempo total da CPU usado pelo processo desde que foi iniciado. COMMAND - Nome do comando do processo.

ps
Suponhamos que eu no quero listar todos os processos, apenas quero saber informaes de um processo especfico. Veja o exemplo: # ps aux | grep cron root 347 0.0 0.3 1652 680 ? /usr/sbin/cron S 09:00 0:00

Note que listamos apenas as informaes do processo usado pelo cron. Essa concatenao de comandos bem til, pois facilita a gerncia dos processos.

pstree
O comando pstree usado para visualizar a rvore de processos.

top
O comando top usado como um monitor do sistema que mostra a atividade do processador em tempo real. Exibindo as tarefas que esto sendo executadas na CPU e fornecendo uma interface amigvel para o gerenciamento de processos.

top
Veja algumas opes teis do top: -d [tempo] Atualiza a tela aps o tempo especificado.
-s - Executa o top em modo seguro -i - Executa o top ignorando processos zumbis. -c - Mostra a linha de comando ao invs do nome do programa.

Para obter mais ajuda, leia a man page do top (man top).

top
Podemos utilizar opes dentro do programa, em tempo real, enquanto ele est sendo executado:
h - Lista os comandos que podem ser usados no top. espao - Atualiza imediatamente a tela. i - Ignora processos ociosos. k - Mata um processo. N - Classifica os processos por nmero de PID. A - Classifica os processos por perodo. P - Classifica os processos por uso de CPU. M - Classifica os processos por uso de memria. T - Classifica os processos por tempo. u - Mostra os processos de um usurio especfico. n ou # - Lista um nmero de processos. s - Especfica o tempo em segundos para a atualizao da tela. W - Cria um arquivo de configurao do top (~/.toprc). r - Aplica um renice no processo. q - Sai do top.

Terminando processos com kill e killall


Kill
Pelo nome pode-se pensar que o comando kill mata aplicaes. Porm, seu objetivo na verdade enviar sinais para os processos. H vrios sinais diferentes que o kill pode enviar para um processo. Veja a lista de todos os sinais conhecidos: # kill -l

Podemos saber qual a funo de cada sinal consultando a man page signal. # man 7 signal Vamos finalizar o processo correspondente ao agendador de tarefas cron. Primeiro, vamos visualizar o PID do processo: # pgrep cron 347

Agora vamos apenas parar a execuo de um processo: # pgrep inetd 13002 # kill -19 13002 # ps lax | grep inetd 140 T 0 13002 1 9 0 1996 708 signal ? 0:00 /usr/sbin/inetd

Lembre-se que para visualizar o PID de um processo voc pode utilizar o comando ps, Veja que o processo correspondente ao inet foi top e jobs. No exemplo foi usado o comando interrompido. Agora vamos coloc-lo em pgrep, que usado para saber o PID de um execuo: processo baseado no nome ou atributo. Agora que temos o numero PID do processo # kill -18 13002 vamos finaliz-lo: # ps lax | grep inetd # kill -9 347 140 0 13002 1 9 0 1996 708 select S ? 0:00 /usr/sbin/inetd

O killall um comando que finaliza processos atravs do nome. # ps aux | grep vi root 13349 0.1 1.0 3016 1856 tty1 root 13351 0.1 1.0 3016 1856 tty2 S S 13:14 0:00 vi 13:14 0:00 vi

killall

Observe que o vi est ativo na tty1 e tty2 e que existe um nmero de processo para cada um. Vamos encerr-los de uma vez s: # killall -9 vi Para verificar se o vi foi finalizado, podemos receber uma confirmao do sinal usando a opo -v: # killall -v -9 vi Killed vi(13349) with signal 9 Killed vi(13551) with signal 9

Controlando tarefas com bg, fg e jobs


Bg O comando bg permite que um programa rodando em primeiro plano ou parado, rode em segundo plano (background), liberando o shell para outras atividades. Existem 3 maneiras diferentes de colocar um programa em background, veja os exemplos: Inicie o vi e depois pressione as teclas Ctrl+Z, o vi interrompido e colocado em segundo plano. # vi [1]+ Stopped Agora faa o seguinte: # top & [2] 1130 O caracter "&" colocou o top para ser executado em segundo plano, vamos ao ltimo exemplo: vi

Vamos executar a man page do comando du: # man du Agora interrompa a sua execuo pressionando as teclas Ctrl+Z: # man du [3]+ Stopped man du

Agora use o comando bg da seguinte maneira: # bg 3 bg 3 [3]+ man du & Mas por que colocar os processos em segundo plano?
Imagine que voc esteja consultando uma man page de um determinado comando e deseja utilizar uma de suas opes, muitos sairiam da man page ou abririam outro terminal, felizmente no precisamos fazer isso, usando as opes para colocar as tarefas em segundo plano faremos tudo no mesmo terminal. Ou seja, o Linux lhe oferece a oportunidade de executar outros processos sem que voc tenha de parar o que estava fazendo. O processo foi colocado em background, agora vamos visualizar estes processos para colocarmos eles para rodarem em primeiro plano.

jobs
O comando jobs mostra os processos que esto parados ou rodando em segundo plano. Vamos listar os processos que esto em segundo plano: # jobs -l [1] 1129 Parado [2]- 1130 Parado (sada tty) [3]+ 1192 Parado (sada tty) vi top man du

Observe a sada do comando, foram listados os nmeros dos processos, os PIDs e o estados dos processos. Agora com essa informao vamos colocar os processos em segundo plano para rodar em primeiro plano.

fg
O comando fg permite que um programa rodando ou parado em segundo plano rode em primeiro plano. Podemos colocar os programas que esto sendo executados em segundo plano para rodar em primeiro usando o nome do programa que queremos rodar ou o nmero da tarefa que ele representa no comando jobs. Neste exemplo vamos startar o vi, o seu nmero de tarefa 1, veja os exemplos: # fg vi ou # fg 1 Observe que o vi agora est rodando em primeiro plano ou em foreground, podemos fazer isso com todos os outros processos que esto em segundo plano ou background.

Modificando as prioridades de execuo dos processos


s vezes, algumas tarefas requerem mais tempo de execuo do que outras. Por esta razo cada processo possui uma prioridade de execuo. As prioridades dos processos podem ser determinadas examinando a coluna PRI do programa top ou do comando "ps -l".

nice
O comando nice atribui um nmero de prioridade para um processo. Por default os processos de usurios so criados com prioridade 0. Ns podemos definir as prioridades oscilando entre +19 e -19, os nmeros positivos indicam processos de baixa prioridade e os nmeros negativos indicam processos de alta prioridade. nice -n [nmero da prioridade] [comando/programa] Vamos inicializar o vi com um nvel de prioridade baixa, veja o exemplo: # nice -n 19 vi # ps -lax | grep vi 000 0 1072 1014 19 19 8504 3560 do_sel SN pts/1

0:00 vi

Observe que a prioridade de processamento do vi agora baixa

renice
O renice um comando que altera a prioridade de um processo em execuo. renice [nmero da prioridade] [opo] processo Podemos usar as seguintes opes:
-g - faz com que o parmetro seguinte seja interpretado como um Ids de grupos de processos. -u - faz com que o parmetro seguinte seja interpretado como um nome de usurio -p - faz com que o parmetro seguinte seja interpretado como um ID de processo

nmero do processo, para isso podemos usar o comando pgrep, veja o exemplo: # pgrep vi 1072 # renice -19 -p 1072 1072: prioridade antiga = 19; prioridade nova = -19 Agora que mudamos a prioridade de execuo vamos verific-la: # ps -lax | grep vi 000 0 1072 1014 1 -19 8504 3560 do_sel S< pts/1 0:00 vi Observe agora que a prioridade do vi agora alta

nohup
O - i t rr s c ). r c ss f zc s r c ss s i r s r fi liz r , j si l l : (si l c t r

# nohup vi : i t tt ` . t'

# ill ll - vi # p - ux | rep vi
r r r t t t 988 0.6 00 .0 22 20 3 52 ? S 08:27 0:06 k 08:38 0:50 i S 08: 0:00 r i st i w / t/w

.3 3.0 8500 3572 ts/3 72 668 ts/

026 0.0 0.5

Observe que o processo no foi finalizado, ento agora vamos finaliz-lo: # killall -9 vi # ps -aux | grep vi root 988 0.5 11.0 22120 13152 ? kghostview /mnt/w S 08:27 0:06

root 1029 0.0 0.5 1724 668 pts/4 S 08:45 0:00 grep vi Observe que o processo 1001 que representava o vi foi finalizado

CONFIGURAR SERVIDOR DE DNS


DNS significa sistema de nome de domnio (Domain Name System), e basicamente serve para resolver nomes de servidores em endereos IP e vice-versa.

Tomaremos como exemplo: Uma rede local com aproximadamente 30 computadores (192.168.1.0/24), com um servidor web apache rodando em 192.168.1.10, que tambm o gateway da rede (conexo permanente Internet) e (conexo agora assumir tambm a funo de DNS primrio da rede). O DNS em uma intranet til no apenas para dar nome ao servidor web (exemplo: www.senac.com em vez de 192.168.1.10), mas principalmente se desejar implementar um servidor de e mail na sua rede, que sem o DNS no tem como funciona.

Edite o arquivo hosts /etc/hosts

Configure o ip fixo
 

Edite o arquivo: /etc/network/interfaces E configure seu IP. Ex.:

Start o servio de rede: /etc/init.d/networking start

Instalao


Pacote necessrio: Para instalar use o comando

Bind9


# apt-get install bind9

Configurao


Com o Debian muito simples configurarmos um servidor DNS. Primeiramente devemos ir at o diretrio do Bind9, que fica em /etc/bind. L veremos o arquivo de configurao que o named.conf e os arquivos referenciados nas zonas do named.conf. Vamos pr a mo na massa. Devemos editar o named.conf, procure utilizar o editor de sua preferncia, aqui utilizarei o nano. Veja o exemplo: # cd /etc/bind # nano named.conf

Voc deve acrescentar duas zonas referentes ao seu domnio e ao seu IP, como por exemplo:
## minhas zonas ## zone servidor.edu"{ (seu domnio) type master; file "/etc/bind/db. servidor.edu "; (esse arquivo nos criaremos e a referencia desta zona o domnio) }; zone "1.168.192.in-addr.arpa"{ (seu ip reverso ) type master; file "/etc/bind/db.1.168.192"; (esse arquivo nos criaremos e a referencia desta zona o ip reverso) }; ## fim das minhas zonas ## Isso deve ser acrescentado no fim do arquivo de configurao named.conf.

Agora vamos criar os arquivos que so referenciados nas zonas, esses arquivos devem ser salvos junto com o arquivo de configurao, dentro de /etc/bind, faa uma cpia do arquivo db.local #cp /etc/bind/db.local /etc/bind/db.servidor.edu. Vamos ao primeiro arquivo do domnio, o db.servidor.edu. Edite para que fique desta forma:
$TTL @ 604800 (nome da mquina.seu domnio) (root.nome da mquina.seu domnio) IN SOA servidor.senac.com root.servidor.senac.com ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL

; servidor www @ micro

IN IN IN IN

A 192.168.1.2 (nome da mquina depois seu IP) A 192.168.1.2 NS servidor.servidor.edu (nome da mquina.seu domnio) A 192.168.1.2; # adicione os nomes da maquinas na rede e seus respectivos ip s

Comentrios sobre o arquivo:




$TTL 604800 - Tempo em segundos que uma consulta permanece no cache. IN - Que o host usa TCP/IP NS - Name Server - O host o servidor DNS. MX - Mail Exchange - O Host servidor de e-mail. A - O Host tem endereo IP 1 ; serial - Data da atualizao dos dados do servidor (Serve para o DNS secundrio saber se um ou outro o mais atual) A data ao reverso. 604800 ; refresh - Atualizao em segundos de sei l o que... 86400; retry - Tempo em segundos que o servidor secundrio tenta novamente uma consulta no caso de falha da verificao da data de atualizao. 604800 ; default_ttl - Tempo de permanncia de uma consulta no cache.

Depois devemos criar o arquivo referente ao seu IP reverso (db.1.168.192) e deix-lo assim:
604800 (nome da mquina.seu domnio) (root.nome da mquina.seu domnio) IN SOA servidor.servidor.edu. root.servidor.servidor.edu. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL IN IN IN NS PTR PTR servidor.servidor.edu. (nome da mquina.seu domnio) servidor.servidor.edu (nome da mquina.seu Domnio) micro.servidor.edu (adiciona as maquinas da rede e o final dos ip s)

$TTL @

@ 1 2

Prontinho! Agora s precisamos testar use o comando : named-checkconf Agora restart o servio do Bind9 com o seguinte comando: /etc/init.d/bind9 restart

Agora edite o arquivo /etc/resolv.conf, deixando-o assim: search servidor.edu # seu domnio nameserver 192.168.1.1 # seu ip nameserver 200.155.100.1 #dns da internet primario nameserver 200.155.100.2 #dns da internet secundario

Esse arquivo e responsvel pelo acesso ao DNS. Para testar e ver se tudo est funcionando, basta apenas utilizar o comando ping. Ex.: ping servidor.servidor.edu

Na maquina cliente, edite o arquivo /etc/hosts e as configuraes ficaro assim:

127.0.0.1 localhost micro.servidor.edu micro

CONFIGURANDO SERVIDOR DE DHCP

Configurando um servidor DHCP




Instale o pacote dhcp3-server com o comando: apt-get install dhcp3-server dpkg i [nomepacote] Com o pacote instalado, voc pode ativar e desativar o servio usando os comandos: # /etc/init.d/dhcp3-server start # /etc/init.d/dhcp3-server stop

O arquivo de configurao o "dhcpd.conf". #nano /etc/dhcp3/dhcpd.conf

Este um exemplo de arquivo de configurao bsico: # /etc/dhcp3/dhcpd.conf


ddns-update-style none; default-lease-time 600; max-lease-time 7200; authoritative; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.199; option routers IP_Gatewary; option domain-name-servers IP_do_dominio; option domain-name Nome_Dominio; option broadcast-address 192.168.1.255;
 

  

A opo " default-lease-time" controla o tempo de renovao dos endereos IP. o "max-lease-time" determina o tempo mximo que uma estao pode usar um determinado endereo IP A opo "range" determina a faixa de endereos IP que ser usada pelo servidor. Na "option routers" vai o endereo do default gateway da rede A opo "option domain-name-servers" contm os servidores DNS que sero usados pelas estaes

DHCP a possibilidade de relacionar um determinado endereo IP com o endereo MAC de certo micro da rede. Isso faz com que ele sempre obtenha o mesmo endereo a partir do servidor DHCP, como se tivesse sido configurado para usar IP fixo. Para usar este recurso, adicione uma seo como esta para cada host no final do arquivo dhcpd.conf, depois de todas as linhas de configurao, aps fechar a chave (}):
host nome_da_maquina { hardware ethernet 00:0F:B0:55:EA:13; (endereo de MAC) fixed-address 192.168.1.211; (ip da maquina) }

Um exemplo de arquivo completo, incluindo a configurao de IP fixo para duas


mquinas seria: ddns-update-style none; default-lease-time 600; max-lease-time 7200; authoritative; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.199; option routers 192.168.1.1; option domain-name-servers 208.67.222.222,208.67.220.220; option broadcast-address 192.168.1.255; host micro01 { hardware ethernet 00:0F:B0:55:EA:13; fixed-address 192.168.1.211; } host micro02 { hardware ethernet 00:0F:B0:45:BC:17; fixed-address 192.168.1.212; }

Restart o servio

Voc pode substituir o arquivo de configurao padro por este modelo, ou edit-lo conforme a necessidade. Ao fazer qualquer alterao no arquivo, voc deve reiniciar o servidor DHCP usando o comando: # /etc/init.d/dhcp3-server restart Com o servidor DHCP configurado, voc pode testar a configurao em um dos clientes Linux # dhclient eth0

Configurao do SSH


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.

O comando abaixo server para verificar os pacotes instalados: Este outo comando faz a instalao dos pacotes

dpkg -l | grep ssh




apt-get install ssh

Detalhes do arquivo de configurao: # nano /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:


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@192.168.1.5:/home/usuario - Fazendo um download do diretrio remoto do SSH: # scp -r usuario@ip_do_servidor:/diretorio_remoto diretorio_local # scp -r usuario@192.168.1.5 :/tmp /root - Fazendo um upload no diretrio no servidor: # scp -r diretorio_local usuario@ip_do_servidor:/diretorio_remoto

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/

Cont. SSH com chaves


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_key Agora s logar no servidor normalmente e ver se consegue logar sem senha: # ssh usuario@ip

Servidor NFS

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 Crie o diretorio que ser compartilhado #mkdir /home/aluno/public Configurando os diretrios a serem exportados atravs do servidor NFS, editando o arquivo /etc/exports: # nano /etc/exports A linha abaixo, por exemplo, d acesso ao diretrio 'compartilhado' para o IP 192.168.1.2, com direitos de leitura, escrita e execuo: # Path do diretrio IP do cliente
# home/aluno/compartilhado/

Permisses de acesso

192.168.1.0/24 (rw,no_root_squash,sync)

Editar o arquivo /etc/hosts.deny para definir a segurana do compartilhamento. Inserir as seguintes linhas: portmap: ALL lockd: ALL mountd: ALL rquotad: ALL

Editar o arquivo /etc/hosts.allow para definir o IP ou faixa de IPs que podero "concorrer" aos compartilhamentos, ou seja, especifica quem ter acesso a cada servio. Inserir as seguintes linhas para permitir que toda a rede 192.168.0.0/24 tenha direito servios especificados:
portmap: 192.168.1.0/24 lockd: 192.168.1.0/24 rquotad 192.168.1.0/24 mountd: 192.168.1.0/24 statd: 192.168.1.0/24

No exemplo especificado uma faixa de IPs, mas voc pode definir os hosts separadamente dentro do padro abaixo: servio: host1, host2, host3, hostX

Agora basta digitar o comando para exportar o diretrio compartilhado: # exportfs -a Ou: #/etc/init.d/nfs-kernel-server start

Configurando maquinas clientes Instale os pacotes # apt-get install nfs-server

Montando o diretrio remoto no cliente Para configurar o cliente apenas configure o seguinte
Editar o arquivo /etc/hosts.deny para definir a segurana do compartilhamento. Inserir as seguintes linhas: portmap: ALL lockd: ALL mountd: ALL rquotad: ALL Em seguida digite o comando # exportfs -a

Montando o compartilhamento
Crie uma diretrio dentro de /mnt, exempl: #mkdir /mnt/compartilhamento Agora monte o compartilhamento do servidor neste diretrio criado.
#mount IP_Servidor:/[caminho da pasta compartilhada] [/mnt/diretorio onde ser montado]

Exemplo: #mount 10.10.1.1:/home/aluno/public Pronto! Agora s testar /mnt/compartilhamento

Montar o particionamento automaticamente


O arquivo fstab arquivo onde as parties so montadas automaticamente, edite este arquivo #nano /etc/fstab adicione ao final deste arquivo a linha: #192.168.1.1:/home/aluno/public /mnt/compartilhamento nfs rw 0 0

SAMBA

Ser id r 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 samba-commom arquivos de configurao do samba smbclient cliente samba para Linux smbfs montagem de compartilhamentos atravs do Linux


Copie o arquivo de configurao do samba:

# mv /etc/samba/smb.conf /etc/samba/smb.conf.orig Crie um novo arquivo com o nome smb.com # touch /etc/samba/smb.conf Agora vamos fazer nossas configuraes

O arq i
[global]

de c nfig rao, armetros "avanados"

####Seo Global####
# Identificao de maquinas e dominio workgroup = senac.com netbios name = servidor digite o seu dominio ou grupo de trabalho nome da mquina na rede

server string = GNU/LINUX - %v - String que ser mostrada junto com a descrio do servidor(%V verso) # qual porta utilizar smb ports = 139 # quais interfaces de rede utilizar interfaces = eth0 - 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

# niveis de mensagens log level = 3


no dns nvel de log 0 1 9 - Define a localizao e nome do arquivo de log. %m nome d cliente - Tamanho mximo do arquivo de log.

log file = /var/log.%m max log size = 100000 debug level = 1 syslog = 1

- Aumenta o nvel de depurao dos daemons do SAMBA de 0 a 9

#Inicio do PDC #Atuar como um PDC security = yes - Requerido para controle de acesso por domnio preferred master = yes domain master = yes PDC da rede - Deve ser o samba "preferido" entre outros servidores Especifica se est mquina est sendo configurada para ser o

local master = yes - Define o samba como um servidor local master os level = 65 domain, local O Nvel do SO para saber qual que "eleito" como master domain, etc

# tratamento das senhas (continuao do PDC) encrypt passwords = true - Deve-se utilizar palavras-chave encriptadas obey pam restrictions = no - Indica se as restries do usurio nos mdulos PAM (Mdulos ldap passwd sync = yes
de Autenticao Plugveis/Modulares) tero efeito tambm no SAMBA.

username map = /etc/samba/smbpasswd - Especifica um arquivo que faz o mapeamento


entre nomes

admin users = aluno,root #Final do PDC

usurios que tero permisso de administrador

# Adicionando um script no logon dos usurios- simples mapeamento domain logons = yes - Este servidor suportar logon de usurios logon script = netlogon.bat - nome de arquivo de logon que deve ser
criado com os comandos de mapeamentos

# Permissoes de acesso via windows acl compatibility = win2k nt acl support = yes - Quando utiliza o SAMBA com o Windows 2000
SP2

map acl inherit = yes inherit acls = yes inherit permissions = yes - Permite herdar permisses de
arquivos/diretrios do diretrio pai

# permite que usuarios do grupo domain user do LDAP possam ingressar maquinas no dominio enable privileges = yes # adiciona maquinas automaticamente no dominio add machine script = /usr/sbin/useradd r g nome_grupro /bin/false %u c descriao d /dev/null s

# esta setagem deixa o tempo de resposta de rede pelo samba mais rapido socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 # Ativar a internacionalizacao: permitir caracteres acentuados pelo windows display charset = cp850 unix charset = iso8859-1 # Configurao de Data/Hora no servidor samba time server = yes

[homes] # Diretrio do Usurio, O diretrio home disponibilizado somente para seu dono, aps se autenticar no sistema comment = Diretrio dos usurios browseable = no torna o compartilhamento visvel writable = yes o acesso leitura e gravao para todos create mask = 0640 Todos os arquivos criados herdaro est permisso directory mask = 0750 Todos os diretrios criados herdaro est permisso [printers] # Nome da Impressoras comment = All Printers path = /usr/spool/samba caminho do diretrio printable = yes - Especifica se o compartilhamento uma impressora (Yes) ou um compartilhamento de
arquivo/diretrio (no)

[Publico] #Pasta de dados

comment = rea publica path = /home/aluno/publico writable = yes acesso de leitura e gravao para todos public = yes pasta de acesso para todos veto files = /*.mp3/*.wmv/*.wma/*.avi/*.mpg - no permite salvar arquivos com as extenses listadas

[dados] # criando compartilhamento com acesso leitura/gravao somente para alguns usurios comment = Compartilhamento controlado path = /dados writeable = no o acesso leitura e gravao para todos write list = aluno,@cpd exceto os usurios e os grupos listados [aula] # criando compartilhamento com acesso leitura/gravao exceto para alguns usurios comment = Compartilhamento controlado path = /home/aula writeable = yes o acesso leitura e gravao para todos read list = aluno,@cpd exceto os usurios e os grupos listados [teste] # criando compartilhamento invisvel comment = Compartilhamento controlado path = /home/teste read only = yes o acesso de somente leitura browseable = no

[netlogon]

# Compartilhamento especial utilizado para o logon de mquinas na rede

comment = Servico de Logon path = /etc/samba/netlogon guest ok = yes browseable = No

Teste o arquivo smb.conf, para verificar se h erros

# testparm /etc/samba/smb.conf

Restart o servio do samba: /etc/init.d/samba restart

Adicione o usurio na maquina Useradd usuario Criar usurio no samba smbpasswd a usuario Criar o grupo das maquinas de dominio

groupadd nome_grupo

Depois de Configurar o Samba


Vamos criar as pastas que sero usados no compartilhamento do samba. Para homes no necessria a criao da pasta, pois o comando que cria o usurio j se encarrega disso. Pasta dados:
# A pasta dados j existe /dados # chmod R 0755 /dados

Pasta netlogon:
# mkdir /etc/samba/netlogon

Pasta Publico:
# mkdir /home/publico # chmod R 0755 /home/publico

Depois de Configurar o Samba


Pasta aula:
# mkdir /home/aula # chmod -R 0755 /home/aula

Pasta teste:

# mkdir /home/teste # chmod -R 0755 /home/teste

Configurando a estao Windows XP




Clique com o boto direito do mouse no cone "Meu Computador" no desktop e clique em propriedades. V em "Nome do Computador" e selecione "Alterar...". Selecione a opo "DOMNIO" e coloque o nome do seu domnio SAMBA, clique em OK, coloque o usurio que voc definiu para ser administrador no SAMBA, caso no tenha definido, utilize a senha de root. Clique em OK. Reinicie seu Windows XP.

Criando um script netlogon




Acesse o diretrio /etc/samba/netlogon Crie um arquivo com o script de logon e salve com a extenso .bat, pro exemplo netlogon.bat Abaixo um simples mapeamento das pastas com determinadas unidades: net use m: \\nome_servidor\dados /yes # Cria a unidade M: com as pasta dados net use p: \\nome_servidor\publico /yes # Cria a unidade p: com as pasta publico Pronto!!!

Antes de sincronizar o relgio


No Windows necessrio um usurio ter permisso de adminis do domnio para poder instalar, desinstalar programas, sincronizar com o servidor e etc. Para isso teremos que fazer umas alteraes no linux, tudo que temos a fazer criar um grupo que ser mapeado para seus respectivos no samba, usando o comando: #groupadd admins Configurao do samba Agora falta mapear os grupos criados no Linux aos grupos do Samba. Usando o comando: # net groupmap add ntgroup="Domain Admins" unixgroup=admins rid=512 type=d comment="Administradores"

O prximo passo cadastrar os usurios novos e existentes nestes novos grupos.Para novos usurios, ao cadastr-lo no Linux (comando useradd), defina seu grupo primrio (parmetro -g) como sendo um destes 3 grupos. Exemplo: # useradd -g admins gama Para usurios j existentes, voc deve modificar o grupo primrio com o comando usermod, tambm usando o parmetro -g. Em seguida, voc precisa modificar o grupo do usurio no Samba, com o pdbedit, usando o RID do grupo desejado como parmetro. Exemplo: # usermod -g admins aluno # pdbedit -r -G 512 -u aluno Isto far com que o usurio aluno passe a fazer parte do grupo Domain Admins , RID 512. Confira a sada do comando pdbedit, e no final da linha Primary Group SID , veja se o final corresponde ao RID especificado. Pronto!!!

Sincronizando a data/hora no Cliente


Um local interessante para colocao deste comando no diretrio netlogon criado no servidor, crie um .bat e adicione a linha abaixo: Exemplos:
net time /set /yes E, salve com o nome relogio.bat

Incluindo maquinas linux no domnio Tambm possvel logar clientes Linux no domnio, j que o Samba pode ser usado como cliente tanto de um PDC Samba quanto de um PDC Windows. Isso permite que a estao Linux acesse os recursos do domnio normalmente e utilize o PDC como um servidor de autenticao na hora de compartilhar arquivos com a rede, da mesma forma que as mquinas Windows

Primeiro passo
cadastrar o nome da mquina no servidor PDC (no nos preocupamos pois adicionamos um script no samba PDC)

Esta seria a nica configurao que precisaria ser feita no servidor. Os passos seguintes so feitos no prprio cliente. Faa a instalao normal do samba #apt-get install samba smbclient smbfs Remova o arquivo original smb.conf em seguida crie um arquivo vazio #rm /etc/samba/smb.conf #touch /etc/samba/smb.conf

necessrio cadastrar pelo menos uma conta de usurio no Samba (da estao), usando a mesma senha definida no sistema, usando o comando smbpasswd, como em:

# smbpasswd -a aluno Edite o arquivo smb.conf, deixando-o como este modelo:

[global] netbios name = cliente workgroup = Dominio security = domain encrypt passwords = yes password server = servidor username map = /etc/samba/smbusermap [arquivos] path = /home/arquivos writable = yes ser criado este arquivo mais adiante

Depois de salvar o arquivo e restartar o servio, hora de adicionar a mquina ao domnio, o que feito usando o comando abaixo: # net join -U root Em seguida digite a senha do root #Password: *** A seguinte mensagem ir aparecer Joined domain linux.net (linux.net meu dominio) Agora, vamos criar um arquivo com um mapa dos usurios na estao. O arquivo pode ser armazenado em qualquer pasta, mas voc precisa especificar sua localizao corretamente na opo "username map" do smb.conf, como em: username map = /etc/samba/smbusermap

Este arquivo relaciona os logins cadastrados no servidor PDC com a conta cadastrada no no servidor Samba local, explicando a ele como acessar os arquivos no sistema uma vez que o acesso autorizado pelo PDC. Sem isso, o sistema bloqueia o acesso, j que as contas cadastradas no PDC no existem localmente. O arquivo com o username map segue uma estrutura muito simples, onde voc especifica uma conta por linha, sempre seguindo a sintaxe "conta_local = nome_do_dominio\conta_no_dominio", como em:

aluno = linux.net\francisco aluno = linux.net\gama aluno = linux.net\gledson Basta criar um arquivo de texto usando qualquer editor e salva-lo, prestando ateno no uso de barras invertidas. Quando qualquer usurio especificado no arquivo autorizado pelo PDC, o servidor Samba local realiza a leitura no sistema de arquivos utilizando a conta aluno", que a nica cadastrada localmente. Com isso, voc precisa apenas manter o arquivo atualizado, sem se preocupar com com senhas. Ao administrar uma rede com vrias estaes, interessante manter o SSH ativo em todas as mquinas, de forma que voc possa atualizar o arquivo remotamente, quando necessrio. Pronto!!!

Servidor de Impresso
Gerenciador de impresso no sistema linux - CUPS

CUPS


O CUPS serve para compartilhar impressoras pelo linux para toda a rede. A impressora pode estar tanto no servidor Linux (CUPS) quanto na estao. No compartilhamento voc pode liberar as impressoras por usurios, mquinas (IP) ou at mesmo por grupos. As configuraes do CUPS ficam dentro de /etc/cups, sendo que o arquivo de configurao do CUPS em si fica em /etc/cups/cups.conf (permisses) e as configuraes das impressoras ficam em /etc/cups/printers.conf (nome da impressora, compartilhamento, descrio). O CUPS tambm pode ser configurado pela WEB, s acessar a mquina do servidor CUPS pela porta 631. Ex: http://192.168.1.1:631.

Instalao do CUPS # apt-get install cupsys

Caso voc deseje instalar suporte aquelas multifuncionais da HP proceda da seguinte forma: # apt-get install hplip

Verifique se os pacotes necessrio para a utilizao do cups, atraves do comando: #dpkg l | grep cups CUPSYS o servidor de impresso CUPS o cliente de impresso

CUPSYS-CLIENT


H outros dois outros pacotes a ser instalados que do suporte aos drivers de impresso, para ver use o comando dpkg l | grep [ o nome do pacote] HPIJS e FOOMATIC

Edit

/ tc/c

s/c

sd.c

lt r

s li

Onl isten isten isten

list n f r c nnecti ns fr 192.168.1.1:631 (seu I ) l calhost / ar/run/cups/cups.sock

t e l cal

ach

< ocation / Order allow,deny llow localhost llow from 192.168.1. /24 (Sua rede) </ ocation> isso li era seu acesso de ual uer mquina da rede, mas para pginas administrati as c dei a assim

# Restrict access to the admin pages... <Location /admin> Encryption Required Order allow,deny Allow localhost </Location> para aior segurana voc s poder acessar da mquina servidora.


Para acessar o servidor de impresso CUPS, digite no seu browser: http://localhost:631 Para adicionar uma impressora: 1) Clique em: Add Printer 2) Add New Printer: Digite qualquer coisa para Nome, Localizao e Descrio. 3) Device: Escolha o dispositivo, (p.ex: - Lpt #1). 4) Informe o fabricante (Make) e clique em continuar para selecionar um modelo especfico que j exista previamente configurado no cups. Ou...

Caso a impressora no esteja na lista do cups, ento o jeito instalar via arquivos .ppd (um driver por analogia). A opo: Provide a PPD File Serve para que voc informe a localizao do arquivo .PPD. OBS: Caso voc no tenha o arquivo .ppd: No site http://www.linuxprinting.org voc pode localizar uma Print List (Lista de impressoras) e assim, possivelmente voc encontrar a sua impressora (caso seja suportada) e dessa forma, baixar o seu driver (arquivo .ppd) que ser usado no passo 4 do slide anterior Depois de ter baixado o arquivo .ppd, indique-o conforme mostrado no passo 4 e siga a sua instalao tranquilamente. 5) Aps ter instalado o arquivo .ppd, restarte o servidor de impresso, da seguinte forma abaixo: # /etc/init.d/cupsys restart OBS 2: O site da ADOBE um bom local para arquivos .PPD.

Compartilhando impressora atravs do samba




Adicione as linhas, na seo global: Printing = cups o servidor de impresso que usaremos

Load printers = yes

Adicione na seo [HP12c]

compartilhamento de impressora

comment = todas as impressoras adicione um comentario path = /var/spool/samba indica o diretrio que ser compartilhado browseable = yes define se o compartilhamento ser exibido ou no guest ok = yes indica que qualquer um ter acesso a este compartilhamento printable = yes especifica se o compartilhamento ser um impressora read only = yes especificar se o compartilhamento somente para leitura Obs.: verifique se existe o diretrio samba no caminho /var/spool/samba, caso no exista, crie atravs do comando: # mkdir /var/spool/samba # chmod 1777 /var/spool/samba obs o 1 ativa o stick bits

Terminamos a configurao do samba e CUPS, agora resta testar, mas antes restart o servios do samba e CUPS # /etc/init.d/samba restart # /etc/init.d/cupsys restart Agora abra o browser e digite: localhost:631 E instale as suas impressoras

Instalando a impressora compartilhada no windows Abra o seu navegador e digite na barra de endereo: http://localhost:631 Clique em "Manage Printers". Caso solicitado, entre com o usurio root e a senha. Depois clique em "Add Printer Preencha o formulrio: nome, localizao e descrio (pode preencher com qualquer coisa, no faz diferena). Depois "Continue". Agora na caixa "Device", v na ltima opo do caixa combo: "Windows Printer via Samba". Depois "Continue". Na caixa "Device URI", digite:

smb://guest@[Endereo da maquina]/[Nome da impressora]. Exemplo: smb://guest@192.168.254.30/HP840C


Vamos aos significados: "guest" = convidado (voc pode colocar o nome de um usurio da mquina Windows XP , se preferir; [Endereo da mquina]= pode ser o IP ou o nome da mquina. No caso de Ip, certifique-se que a mquina usa IP Fixo. [Nome da Impressora] = certifique-se do nome dado ao "compartilhamento" da impressora no Windows.

Limitar o acesso a impressora




Assim como no caso dos compartilhamentos de arquivos, voc pode limitar o acesso impressora com base nos endereos IP ou nomes das mquinas, com base nos logins de usurio, ou atravs de uma combinao de ambos, atravs das opes "hosts allow", "hosts deny", "valid users" e "invalid users". Estas opes podem ser usados tanto ao ativar o servio [printers] quanto ao compartilhar as impressoras individualmente.

Para permitir que que a impressora seja usada por apenas alguns endereos especficos voc usaria: [E230] print ok = yes guest ok = yes path = /var/spool/samba hosts allow = 192.168.1.3, 192.168.1.4, 192.168.1.65

Voc pode tambm usar os nomes das mquinas dentro da rede windows no lugar dos endereos IP, como em: [E230] print ok = yes guest ok = yes path = /var/spool/samba hosts allow = micro1, micro2, micro3

Para bloquear o acesso

impressora para os usurios "joao" e "maria":

[E230] print ok = yes guest ok = no path = /var/spool/samba invalid users = joao, maria


Para inverter a lgica, permitindo que apenas os dois usem a impressora: [E230] print ok = yes guest ok = no path = /var/spool/samba valid users = joao, maria

Para combinar as duas coisas, permitindo que a impressora seja usada apenas pelos dos usurios e, alm disso apenas a partir de dois endereos especficos: [E230] print ok = yes guest ok = no path = /var/spool/samba valid users = joao, maria hosts allow = 192.168.1.3, 192.168.1.4

Servidor Web
Configurao do Apache2

Apache


O servidor web um programa responsvel por disponibilizar pginas, fotos, ou qualquer outro tipo de objeto ao navegador do cliente. O Apache um servidor Web extremamente configurvel, robusto e de alta performance desenvolvido por uma equipe de voluntrios (conhecida como Apache Group) buscando criar um servidor web com muitas caractersticas e com cdigo fonte disponvel gratuitamente via Internet.

Pacote: apache
Utilitrios:


apache - ServidorWeb Principal apachectl - Shell script que faz interface com o apache de forma mais amigvel apacheconfig - Script em Perl para configurao interativa bsica do Apache htpasswd - Cria/Gerencia senhas criptografadas Crypto/MD5 htdigest - Cria/Gerencia senhas criptografadas Crypto/MD5 dbmmanage - Cria/Gerencia senhas em formato DBM (Perl) logresolve - Faz um DNS reverso dos arquivos de log do Apache para obter o endereo de hosts com base nos endereos IP s. ab - Apache Benchmarcking - Ferramenta de medida de desempenho do servidor Web Apache.

Por padro, os arquivos de configurao do Apache residem no diretrio /etc/apache:




httpd.conf Arquivo de configurao principal do Apache, possui diretivas que controlam a operao do daemon servidor. Um arquivo de configurao alternativo pode ser especificado atravs da opo -f da linha de comando. srm.conf Contm diretivas que controlam a especificao de documentos que o servidor oferece aos clientes. O nome desse arquivo pode ser substitudo atravs da diretiva ResourceConfig no arquivo principal de configurao. access.conf Contm diretivas que controlam o acesso aos documentos. O nome desse arquivo pode ser substitudo atravs da diretiva AccessConfig no arquivo principal de configurao.

OBS.: Note que no obrigatrio usar os arquivos srm.conf e access.conf, pois so especificadas direto no arquivo principal httpd.conf

Instalao do Apache
#apt-get install apache2 apache-doc (o pacote apache-doc contm a documentao de referencia do Apache, recomendvel instala-lo se estiver curioso e deseja entender melhor seu funcionamento ou consultar diretivas).


S com esse comando voc instala e j pode verificar se ele est rodando digitando no navegador 127.0.0.1 ou o nmero do ip da mquina em uma mquina da rede local. Se estiver tudo ok ele deve abrir uma pgina com o seguinte texto: IT WORKS! Edite o arquivo de configurao do apache e vamos configur-los

# nano /etc/apache2/apache2.conf

Vamos definir as linhas:




Defina o valor mnimo de servidores para 3: MinSpareServers 3

Defina o valor mximo de servidores para 6: MaxSpareServers 6 Obs.: com isso ele verifica periodicamente quantos servidores esto aguardando por uma requisio. Se existir menos que MinSpareServers, ele cria um novo processo. Se existir mais que MaxSpareServers, ele fecha alguns processos. Os valores acima esto adequados para muitos sites.

Defina o nmero de servidores que sero iniciados para 2: StartServers 2

Defina o nmero mximo de conexes de clientes para 180, para manter um controle de acesso: MaxClients 180

Um ponto importante verificar o arquivo que define a porta do servidor: /etc/apache2/ports.conf Confirme se est apontando para a porta 80 Reinicialize o Apache2: # /etc/init.d/apache2 restart

Lista de sites disponveis: /etc/apache2/sites-available




Podem ser criados sites aqui, mas enquanto no forem habilitados, no estaro disponveis.

Sites habilitados: /etc/apache2/sites-enable




aqui que ficam os links simblicos para os sites que desejamos habilitar. Mas no preciso criar os links na mo. Como veremos mais adiante, existe uma ferramenta para isso: a2ensite.

Podemos criar um diretrio para uma melhor organizao /var/www




por padro onde o Apache2 vai procurar o contedo do site.

Criando e habilitando um domnio




Antes de mais nada, legal adicionar no seu /etc/hosts uma entrada na frente de 127.0.0.1, tipo assim (no obrigatrio s pra no lugar de digitar localhost, podemos usar www.seu-nome.xxx.br ) 127.0.0.1 www.seu-nome.xxx.br

Crie um arquivo dentro do diretrio sites-availabe # nano /etc/apache2/sites-available/[seu-nome]

NameVirtualHost www.seu-nome.xxx.br <VirtualHost www.seu-nome.xxx.br> DocumentRoot /var/www/seu-nome diretorio onde se encontrar o site ServerName seu-nome.xxx.br ServerAdmin webmaster@seu-nome.xxx.br ErrorLog seu-nome.xxx.br-error.log CustomLog seu-nome.xxx.br-access.log common </VirtualHost>

Habilitando o site: # a2ensite seu-nome




Se digitar apenas "a2ensite", ele mostra os domnios disponveis, da voc escolhe qual quer habilitar. Crie o diretrio do seu site: # mkdir /var/www/seu-nome Crie um arquivo index.html dentro deste diretrio contendo qualquer contedo HTML. Reinicie o Apache2: # /etc/init.d/apache2 restart

Criando seu site




Vamos criar uma pagina simples para teste




Digite

<html> <title>viva a liberdade</title> <body> <center><h3>Aprendendo sobre Apache</h3> </center> </body> </html>


Salve com o nome index.html na pasta /var/www/senac

Compartilhando a Internet

Rode o comando "ifconfig" para verificar qual a Interface ligada internet Abra um terminal e digite os seguintes comandos: # iptables F apaga todas as regras # iptables -F INPUT apaga todas as consultados dos dados que chegam # iptables -F OUTPUT apaga todas as consultados dos dados que saem # iptables -F POSTROUTING -t nat - apaga todas as consultados dos dados que precisam ser modificados aps roteamento # iptables -F PREROUTING -t nat apaga todas as consultados dos dados que so modificados assim que chegam. # echo 1 > /proc/sys/net/ipv4/ip_forward # iptables -P FORWARD ACCEPT definindo uma regra padro de redirecionamento para ser aceito # iptables -A POSTROUTING -t nat -s 192.168.1.0/24 o eth0 -j MASQUERADE acrescentando uma nova regra de mascaramento de placa

Pronto seu compartilhamento est funcionando

Compartilhando a internet usando uma nica placa de rede

O primeiro passo se conectar normalmente Internet no servidor, usando as configuraes de sempre. A partir do momento em que ele estiver acessando crie o alias para a placa de rede "lgica" que o conectar aos micros da rede local, usando o comando: #ifconfig eth0:1 192.168.1.10/24 Compartilhar diretamente atravs do iptables
#modprobe iptable_nat #iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #echo 1 > /proc/sys/net/ipv4/ip_forward

Para que a alterao se torne definitiva, voc deve: a) Editar o arquivo /etc/modules adicionando a linha: iptable_nat No final do arquivo, para que o mdulo seja carregado no incio do boot. b) Editar o arquivo /etc/init.d/bootmisc.sh, adicionando as linhas para criar o alias para a placa de rede e compartilhar a conexo no final do arquivo: ifconfig eth0:1 192.168.1.10/24 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward Restart o bootmisc.sh Pronto agora teste

Instalando e Configurando Squid

Servidores Proxy


O servidor proxy costuma ser instalado em uma mquina que tenha acesso direto Internet, sendo que as demais efetuam as solicitaes atravs desta. Justamente por isto este tipo de servidor chamado de proxy, pois um procurador, ou seja, sistema que faz solicitaes em nome dos outros. muito til armazenar localmente as pginas que foram solicitadas, permitindo que os prximos acessos, efetuados por quaisquer mquinas da rede, possam ser otimizados. Este conceito chamado de caching, ou seja servidor cache proxy.

Proxy Caching
Enviar pgina de internet para a estao de trabalho.

SIM

Pedido de pgina de Internet


Navegador da estao de trabalho Servidor Proxy

Tem um pgina de Internet no cache ?

Carregar pgina de Internet do cache

Traduo de Endereos de Rede




Muitos servidores proxy so distribudos com a funo de NAT (Network Address Translation Traduo de Endereos de Rede).

176.168.11.25

176.168.11.78

200.130.10.205

Ethernet da empresa

INTERNET
Servidor proxy com NAT

176.168.11.35

176.168.11.45

Todos os servidores da empresa so representados na na Internet pelo servidor proxy 200.130.10.205

Diferena Entre um Filtro de Pacotes e um Servidor Proxy




O filtro de pacotes no penetra to fundo no pacote como o servidor proxy. O filtro de pacotes analisa o trfego nas camadas de rede (camada 3) e de transporte (camada 4) do modelo OSI. O servidor proxy analisa pacotes na camada de aplicativo (camada 7). Isto oferece uma flexibilidade muito maior, porque permite que o trfego dentro de um servio, como o trfego da porta 80 (http) possa ser filtrado. Exemplo: bloquear os sites que contenham a palavra sexo

Trfego de HTTP e FTP, outras URLs e pesquisa DNS. Tambm filtros de URLs baseados em contedo.
Workstation

Ethernet da empresa

INTERNET

Cache do servidor de proxy web

Workstation

Workstation

Filtro de pacotes baseado em endereo de IP, faixa de endereo de IP e faixa e nmero de porta TCP/UDP.

O SQUID


O servidor Squid Web Proxy Cache gratuito e funciona em cdigo aberto para Unix e Linux. Ele permite que os administradores implementem um servio de proxy caching para Web, acrescentem controles de acesso (regras), e armazenem at mesmo consultas de DNS.

Requisitos de Sistema Especficos para o Proxy Caching




O Squid utiliza mais recursos de sistema do que outros aplicativos. Os dois principais subsistemas de hardware que o Squid utiliza so:


Tempo de busca aleatria em disco Para um proxy cache, o tempo de busca aleatria deve ser o mais baixo possvel. Quantidade de memria do sistema A memria RAM extremamente importante para a utilizao de um proxy cache. O Squid mantm uma tabela na memria RAM sobre os seus objetos. Se uma parte dessa tabela tiver que sofrer swapping, o desempenho do Squid ser bastante degradado.

Instalao do Squid


O Squid composto de um nico pacote, por isso a instalao simples. Instale o pacote "squid" usando o apt-get:

# apt-get install squid3




Toda a configurao do Squid feita em um nico arquivo, o "/etc/squid3/squid.conf". O arquivo original, instalado junto com o pacote, realmente enorme, contm comentrios e exemplos para quase todas as opes disponveis. Ele pode ser uma leitura interessante se voc j tem uma boa familiaridade com o Squid e quer aprender mais sobre cada opo, mas, de incio, melhor comear com um arquivo de configurao mais simples, apenas com as opes mais usadas.

Aprendendo a configurar o squid




Comece renomeando o arquivo padro, de forma a conserv-lo para fins de pesquisa:

# mv /etc/squid3/squid.conf /etc/squid3/squid.conf.orig


Em seguida, crie um novo arquivo "/etc/squid/squid.conf", contendo apenas as quatro linhas abaixo: http_port 3128 - A porta onde o servidor Squid vai ficar disponvel. A
porta 3128 o default, mas muitos administradores preferem utilizar a porta 8080, que soa mais familiar a muitos usurios visible_hostname Servidor- O nome do servidor, o mesmo que foi definido na configurao da rede.

acl all src 0.0.0.0/0.0.0.0 http_access allow all - Estas duas ultimas linhas linhas criam uma acl

(uma poltica de acesso) chamada "all" (todos), incluindo todos os endereos IP possveis. Ela permite que qualquer um dentro desta lista use o proxy, ou seja, permite que qualquer um use o proxy, sem limitaes.

Para testar a configurao, reinicie o servidor Squid com o comando:

# /etc/init.d/squid restart


Para testar o proxy, configure um navegador (no prprio servidor) para usar o proxy, atravs do endereo 127.0.0.1 (o localhost), porta 3128. Se no houver nenhum firewall pelo caminho, voc conseguir acessar o proxy tambm atravs dos outros micros da rede local, basta configurar os navegadores para usarem o proxy, fornecendo o endereo do servidor na rede local.

Criando uma configurao bsica




Vamos gerar, um arquivo mais completo, permitindo que apenas os micros da rede local possam usar o proxy e definindo mais algumas polticas de segurana. Neste segundo exemplo j aproveitei algumas linhas do arquivo original, criando regras que permitem o acesso a apenas algumas portas especficas e no mais a qualquer coisa, como na configurao anterior:

http_port 3128 visible_hostname Servidor

acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl SSL_ports port 443 563 acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535 acl purge method PURGE A acl "localhost" contm o endereo acl CONNECT method CONNECT 127.0.0.1, que voc utiliza ao usar o proxy http_access http_access http_access http_access http_access http_access allow manager localhost deny manager allow purge localhost deny purge deny !Safe_ports deny CONNECT !SSL_ports
localmente (ao navegar usando o prprio servidor), e a acl "rede local", que inclui os demais micros da rede local. Substitua o "192.168.1.0/24" pela faixa de endereos IP e a mscara de sub-rede usada na sua rede local (o 24 equivale mascara 255.255.255.0).

As acl's "SSL_ports" e a "Safe_ports" so as responsveis por limitar as portas que podem ser usadas atravs do proxy

acl redelocal src 192.168.1.0/24 http_access allow localhost Essas duas linhas no final do arquivo, que especificam que http_access allow redelocal os micros que se enquadrarem nelas podero usar o http_access deny all
proxy os clientes que no se enquadrarem nas duas regras acima no podero usar o proxy:

A ordem importante, pois o Squid interpreta as regras na ordem em que so colocadas no arquivo. Se voc permite que o micro X acesse o proxy, ele acessa, mesmo que uma regra mais abaixo diga que no. Se voc adicionasse algo como: acl redelocal src 192.168.1.0/24 http_access allow redelocal http_access deny redelocal

... os micros da rede local continuariam acessando, pois a regra que permite vem antes da que probe.

Existem alguns casos de sites que no funcionam bem quando acessados atravs de proxies, um exemplo comum o "Conectividade Social", da Caixa. Normalmente nesses casos o problema est em algum recurso fora do padro usado pelo sistema do site e no no servidor proxy propriamente dito, mas, de qualquer forma, voc pode solucionar o problema de forma muito simples orientando o servidor proxy a repassar as requisies destinadas ao site diretamente.

Para isso, adicionamos uma ACL na configurao, especificando a URL do site e usando a opo "always_direct": acl site dstdomain siteproblematico.com always_direct allow site

Esta regra deve vir antes da regra que libera os acessos provenientes da rede local, como em: acl site dstdomain siteproblematico.com always_direct allow site acl redelocal src 192.168.1.0/24 http_access allow localhost http_access allow redelocal http_access deny all

Depois de configurar o arquivo, no se esquea de reiniciar o servio para que a configurao entre em vigor: Nesse ponto o seu proxy j est completamente funcional. Voc pode comear a configurar os navegadores nos PCs da rede local para utiliz-lo e acompanhar o desempenho da rede. Agora que j vimos o arroz com feijo, vamos aos detalhes mais avanados da configurao:

# /etc/init.d/squid restart


Configurando o cache de pginas e arquivos




Configuraes mais importantes com relao ao desempenho do Proxy so:




otimizao do trfego da rede a configurao dos caches, onde o Squid guarda as pginas e arquivos j acessados de forma a fornec-los rapidamente quando solicitados novamente. O Squid trabalha com dois tipos de cache:


Cache rpido, feito usando parte da memria RAM do servidor a ideal para armazenar arquivos pequenos, como paginas html e imagens, que sero entregue instantaneamento para os clientes Cache um pouco mais lento porm maior, feito no HD - usado para armazenar arquivos maiores, como downloads, arquivos do Windows Update e pacotes baixados via apt-get.

A configurao do cache feita adicionando mais algumas linhas no arquivo de configurao:

1- A configurao da quantidade de memria RAM dedicada ao cache feita adicionando a opo "cache_mem", que contm a quantidade de memria que ser dedicada ao cache. Para reservar 64 MB, por exemplo, a linha ficaria: cache_mem 64 MB Exemplo: Em um servidor com 1 GB de RAM, voc poderia reservar at 350 MB para o cache na memria. 2- Logo depois vai a opo "maximum_object_size_in_memory", que determina o tamanho mximo dos arquivos que sero guardados no cache feito na memria RAM. Para que o cache na memria armazene arquivos de at 64 KB, por exemplo, adicione a linha: maximum_object_size_in_memory 64 KB Ento as linhas ficam: cache_mem 64 MB maximum_object_size_in_memory 64 KB

3- Em seguida vem a configurao do cache em disco, que armazenar o grosso dos arquivos. Por default, o mximo so downloads de at 16 MB e o mnimo zero, o que faz com que mesmo imagens e arquivos pequenos sejam armazenados no cache. Quase sempre mais rpido ler a partir do cache do que baixar de novo da web, mesmo que o arquivo seja pequeno.


Se voc faz download de arquivos grandes com freqncia e deseja que eles fiquem armazenados no cache, aumente o valor da opo "maximum_object_size". Isso especialmente til para quem precisa baixar muitos arquivos atravs do apt-get ou Windows Update em muitos micros da rede. Se voc quiser que o cache armazene arquivos de at 512 MB, por exemplo, as linhas ficariam: maximum_object_size 512 MB minimum_object_size 0 KB

Voc pode definir ainda a percentagem de uso do cache que far o Squid comear a descartar os arquivos mais antigos. Por padro, sempre que o cache atingir 95% de uso, sero descartados arquivos antigos at que a percentagem volte para um nmero abaixo de 90%: cache_swap_low 90 cache_swap_high 95

4- Depois vem a opo "cache_dir", que composta por quatro valores. O primeiro, (/var/spool/squid3) indica a pasta onde o Squid armazena os arquivos do cache, enquanto o segundo (2048) indica a quantidade de espao no HD (em MB) que ser usada para o cache. Aumente o valor se voc tem muito espao no HD do servidor e quer que o Squid guarde os downloads por muito tempo.


Continuando, os nmeros 16 e 256 indicam a quantidade de subpastas que sero criadas dentro do diretrio. Por padro, temos 16 pastas com 256 subpastas cada uma. O nmero "ideal" de pastas e subpastas para um melhor desempenho varia de acordo com o sistema de arquivos usado, mas esta configurao padro adequada para a maioria das situaes. Combinando as quatro opes, a linha ficaria: cache_dir ufs /var/spool/squid3 2048 16 256

Assim como na maioria das opes do Squid, se a linha "cache_dir" for omitida, usada a configurao default para a opo, que usar o diretrio "/var/spool/squid3" e fazer um cache em disco de 100 MB.

5 - Voc pode definir ainda o arquivo onde so guardados os logs de acesso do Squid. cache_access_log /var/log/squid3/access.log 6 - Mais uma configurao que voc pode querer alterar o padro de atualizao do cache. Os nmeros indicam o intervalo (em minutos) que o Squid ir aguardar antes de verificar se um item do cache (uma pgina, por exemplo) foi atualizado, para cada um dos trs protocolos. O primeiro nmero (o 15) indica que o Squid verificar (a cada acesso) se as pginas e arquivos com mais de 15 minutos foram atualizados. Ele faz uma verificao rpida, checando o tamanho do arquivo e, se o arquivo no mudou, ele continua fornecendo aos clientes o arquivo que est no cache, economizando banda da conexo


O terceiro nmero (o 2280, equivalente a dois dias) indica o tempo mximo, depois do qual o objeto sempre verificado. Adicione as linhas: refresh_pattern ^ftp: 15 20% 2280 refresh_pattern ^gopher: 15 0% 2280 refresh_pattern . 15 20% 2280

Depois de adicionar todas estas configuraes, o nosso arquivo de configurao j ficar bem maior:

http_port 3128 visible_hostname SERVIDOR cache_mem 64 MB maximum_object_size_in_memory 64 KB maximum_object_size 512 MB minimum_object_size 0 KB cache_swap_low 90 cache_swap_high 95 cache_dir ufs /var/spool/squid3 2048 16 256 cache_access_log /var/log/squid3/access.log refresh_pattern ^ftp: 15 20% 2280 refresh_pattern ^gopher: 15 0% 2280 refresh_pattern . 15 20% 2280 acl acl acl acl acl acl acl all src 0.0.0.0/0.0.0.0 manager proto cache_object localhost src 127.0.0.1/255.255.255.255 SSL_ports port 443 563 Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535 purge method PURGE CONNECT method CONNECT

Cont.

http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports acl redelocal src 192.168.1.0/24 http_access allow localhost http_access allow redelocal http_access deny all

Adicionando restries de acesso


Bloqueando por domnios ou palavras


O Squid permite bloquear sites indesejados de forma bastante simples usando o parmetro "dstdomain". Ele permite que voc crie acl's contendo endereos de sites que devem ser bloqueados (ou permitidos). Isso feito em duas etapas. Primeiro voc cria a acl, especificando os endereos e, em seguida, usa o parmetro "http_access" para bloquear ou liberar o acesso a eles. Veja um exemplo: acl bloqueados dstdomain orkut.com playboy.abril.com.br http_access deny bloqueados

Aqui eu criei uma acl chamada "bloqueados", que contm os endereos "orkut.com" e "playboy.abril.com.br" e em seguida usei o parmetro "http_access deny" para bloquear o acesso a eles. Voc pode incluir diversas acls diferentes dentro da configurao do Squid, desde que use um nome diferente para cada uma. De certa forma, elas so similares s variveis, que usamos ao programar em qualquer linguagem.

Ao aplicar a regra, o Squid faz a resoluo do domnio e passa a bloquear todas sub-pginas que estiverem hospedadas dentro dele. Existe uma ressalva: muitos sites podem ser acessados tanto com o "www" quanto sem. Se os dois estiverem hospedados em servidores diferentes, o Squid considerar que tratam-se de dois sites diferentes, de forma que ao bloquear apenas o "www.orkut.com" os usurios ainda conseguiro acessar o site atravs do "orkut.com" e vice-versa. Nesses casos, para bloquear ambos, preciso incluir as duas possibilidades dentro da regra, como em: acl bloqueados dstdomain orkut.com www.orkut.com playboy.abril.com.br http_access deny bloqueados

Voc pode incluir quantos domnios quiser dentro da acl, basta separlos por espao e deixar tudo na mesma linha. Se a regra comear a ficar muito grande, voc tem a opo de transferir as entradas para um arquivo. Nesse caso, crie um arquivo de texto simples, com todos os domnios desejados (um por linha), como em: orkut.com www.orkut.com playboy.abril.com.br www.myspace.com

... e use a regra abaixo na configurao do Squid para que ele seja processado e os domnios sejam includos na acl. No exemplo, estou usando o arquivo "/etc/squid3/bloqueados":
acl bloqueados url_regex -i "/etc/squid3/bloqueados" http_access deny bloqueados

No brinque de gato e rato, ento bloqueie todos os sites e libere o mais acessados
Como?? Simples veja a seguir

Criamos um arquivo com sites permitidos, adicionamos a regra que permite o acesso a eles e em seguida bloqueamos o acesso a todos os demais, como neste exemplo: acl permitidos url_regex -i "/etc/squid3/permitidos" http_access allow permitidos http_access deny all

Depois de adicionar as novas regras, nosso arquivo de configurao ficaria assim: http_port 3128 visible_hostname gdh error_directory /usr/share/squid/errors/Portuguese/ cache_mem 64 MB maximum_object_size_in_memory 64 KB maximum_object_size 512 MB minimum_object_size 0 KB cache_swap_low 90 cache_swap_high 95 cache_dir ufs /var/spool/squid 2048 16 256 cache_access_log /var/log/squid/access.log refresh_pattern ^ftp: 15 20% 2280 refresh_pattern ^gopher: 15 0% 2280 refresh_pattern . 15 20% 2280

acl acl acl acl acl acl

acl all src 0.0.0.0/0.0.0.0 manager proto cache_object localhost src 127.0.0.1/255.255.255.255 SSL_ports port 443 563 Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535 purge method PURGE CONNECT method CONNECT

http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports acl bloqueados url_regex -i "/etc/squid/bloqueados" http_access deny bloqueados acl redelocal src 192.168.1.0/24 http_access allow localhost http_access allow redelocal http_access deny all

Bloqueando por palavras




Uma segunda possibilidade usar o parmetro "dstdom_regex", que permite bloquear sites de uma forma mais geral, com base em palavras includas na URL de acesso. Voc pode bloquear todas as pginas cujo endereo inclua a palavra "sexo" ou "orkut", por exemplo. Note que, ao usar esta regra, o Squid verifica a existncia das palavras apenas na URL do site e no no contedo da pgina. Para criar filtros baseados no contedo, voc pode utilizar o DansGuardian,

Crie mais um arquivo de texto, contendo as palavras que devem ser bloqueadas, uma por linha, como em: orkut xxx sexo teens warez

... e adicione a regra abaixo, contendo a localizao do arquivo: acl palavrasproibidas dstdom_regex "/etc/squid3/palavrasproibidas" http_access deny palavrasproibidas

Bloqueando por horrio




Para que o proxy bloqueie acessos feitos entre meia-noite e 6:00 da manh e no horrio de almoo, por exemplo, voc usaria as regras: acl madrugada time 00:00-06:00 http_access deny madrugada acl almoco time 12:00-14:00 http_access deny almoco

Estas regras iriam, novamente, antes da regra "http_access allow redelocal" no arquivo de configurao.

Agora, imagine que voc quer fazer diferente. Ao invs de bloquear o acesso na hora de almoo, voc quer deixar o proxy aberto, para que aqueles que queiram acessar o Orkut ou acessar os e-mails possam fazer isso fora do horrio de trabalho. Neste caso, voc usaria uma regra como: acl almoco time 12:00-14:00 http_access allow almoco

Esta regra entraria no arquivo de configurao antes das regras "http_access deny bloqueados" e outras restries. Assim, os acessos que forem aceitos pela regra do almoo no passaro pelas regras que fazem o bloqueio

Voc pode tambm combinar o bloqueio de palavras ou domnio com as regras de bloqueio por horrio, permitindo que os usurios acessem um determinado site apenas no horrio de almoo, por exemplo. Neste caso, a regra seria: acl almoco time 12:00-14:00 acl orkut dstdomain orkut.com www.orkut.com http_access allow orkut almoco http_access deny orkut Fazendo isso, o Squid entende que os endereos includos dentro da acl "orkut" devem ser permitidos, mas apenas dentro do horrio especificado na acl "almoco". Em seguida includa mais uma regra, que bloqueia o acesso ao site em outros horrios.

LIBERAR ACESSO TOTAL


Basta que a acl com o IP liberado seja colocada antes das acls com as restries de acesso, como em: acl chefe src 192.168.1.2 http_access allow chefe acl bloqueados url_regex -i "/etc/squid/bloqueados" http_access deny bloqueados acl palavrasproibidas dstdom_regex "/etc/squid/palavrasproibidas" http_access deny palavrasproibidas acl redelocal src 192.168.1.0/24 http_access allow localhost http_access allow redelocal http_access deny all

Bloquear o download de arquivos .exe ou .sh e etc... Neste caso, voc pode usar a regra a seguir: acl extban url_regex -i \.avi \.exe \.mp3 \.torrent http_access deny extban Esta regra aceita tambm o uso de um arquivo externo, de forma que se a lista comear a ficar muito grande, voc pode migr-la para dentro de um arquivo de texto e especificar sua localizao dentro da acl, como em: acl extban url_regex -i "/etc/squid/extban" http_access deny extban Dentro do arquivo, voc inclui as extenses desejadas (sem esquecer da barra invertida antes do ponto), uma por linha, como em: \.avi \.exe \.mp3 \.torrent

Gerenciando o uso da banda


Podemos usar um recurso chamado "delay pools Um link de 1 megabit (1024 kbits) corresponde a 131.072 bytes por segundo. Nas regras do Squid, sempre usamos bytes, por isso lembre-se de fazer a converso, dividindo o valor em kbits por 8 e multiplicando por 1024 para ter o valor em bytes. Podemos, por exemplo, limitar a banda total usada pelo Squid a 114.688 bytes por segundo, deixando 128 kbits do link livres para outros protocolos e limitar cada usurio a no mximo 16.384 bytes por segundo, que correspondem a 128 kbits. Nem todos os usurios vo ficar baixando arquivos a todo momento, por isso o valor ideal reservado a cada usurio vai variar muito de acordo com a rede. Voc pode acompanhar o uso do link e ir ajustando o valor conforme a utilizao.

Neste caso, a parte final do arquivo de configurao ficaria: acl redelocal src 192.168.1.0/24 delay_pools 1 delay_class 1 2 delay_parameters 1 114688/114688 16384/16348 os valores com a banda total disponvel para o Squid e a banda disponvel para cada usurio. delay_access 1 allow redelocal http_access allow localhost http_access allow redelocal http_access deny all

Com o recurso de limite de banda no Squid voc pode priorizar a banda para certo grupo de usurios. Dessa forma no corremos o risco de um diretor da empresa estar necessitando baixar um email importantssimo pelo link, enquanto um estagirio puxa o ltimo episdio de sua mini-srie favorita.

# Crie uma acl com as extenses que sero aplicadas o filtro acl download url_regex -i ftp .mov .mpeg .wav .tar .mp3 .exe .zip .rar # Crie outra acl com os IPs que sero aplicados acl chefes src 192.168.1.12 acl estagiario src 192.168.1.13 # Significa que teremos dois controles de banda delay_pools 2 # Primeiro controle delay_class 1 2 # -1/-1 significa que no teremos limites para a delay pool 1 delay_parameters 1 -1/-1 -1/-1 delay_access 1 allow chefes # Segundo controle delay_class 2 2 # Limita a sua banda para +- 64Kbits delay_parameters 2 8194/8194 8194/8194 delay_access 2 allow estagiario regra

Se voc no quer que a pessoa faa download da net s trocar: delay_parameters 2 8194/8194 8194/8194 Por: delay_parameters 2 0/0 0/0

Proxy Transparente
Para ativar o proxy transparente, rode o comando abaixo. Ele direciona as requisies recebidas na porta 80 para o Squid: # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 O "eth0" no comando indica a placa da rede local, onde o proxy recebe as requisies dos outros micros da rede e o "3128" indica a porta usada pelo Squid. Adicione o comando junto com os comandos que compartilham a conexo no final do arquivo "/etc/init.d/bootmisc.sh para que eles sejam executados durante o boot.Finalmente, voc precisa ativar o suporte ao modo transparente dentro do arquivo "/etc/squid/squid.conf" e reiniciar o servio. Basta substituir a linha "http_port 3128" no incio do arquivo por: http_port 3128 transparent Ou seja, na verdade voc precisa apenas adicionar o "transparent", para que o Squid passe a entender as requisies redirecionadas pela regra do firewall.

Recuperar Senha do Root


Selecione a linha do Kernel e tecle e para editar a opo. Agora voc est em modo de edio da configurao do grub. Obs: Estas alteraes no sero salvas no arquivo de configurao do grub, serviro apenas para este boot. Apague tudo que estiver depois da partio do root. Insira rw init=/bin/bash ; Exemplo: antes: kernel /boot/vmlinuz-2.6.18.3 root=/dev/hdb1 ro vga=791 depois: kernel /boot/vmlinuz-2.6.18.3 root=/dev/hdb1 rw init=/bin/bash Tecle Enter; Tecle b para bootar com as novas configuraes.

Aqui finalizamos o curso Servidores Linux!!

AT A PROXIMA!!!

Referncias Bibliogrfica
http://www.guiadohardware http://www.gdhpress.com.br/servidores/leia/index.php?p=cap2 http://www.softwarelivre.org http://pt.wikipedia.org/wiki/Software_livre http://focalinux.cipsga.org.br http://www.insecure.org http://www.xfree86.org http://www.gdhpress.com.br/servidores/leia http://www.dicas-unicamp.br/dicas http://www.isc.org/sw/dhcp/

Potrebbero piacerti anche