Escolar Documentos
Profissional Documentos
Cultura Documentos
Treinamento Avançado em Linux
Treinamento Avançado em Linux
AVANADO EM
LINUX
Autor:
Bruno Mortgua Ribeiro
Contedo do Curso:
-ChangeLog v1.5
-Introduo
-Objetivos
-Listas de Discusses de Bauru
-Recapitulando o mdulo Bsico
oHistria do Linux (no ser revisado)
oInstalao do Conectiva, do Slackware, via Rede (no ser revisado)
oComandos Bsicos do Sistema
Man
Projeto LDP, help, info (no ser revisado)
Logout
Shutdown -r now
Su
Ls (-la)
Cd (deslocamento relativo x absoluto)
Cp
Mv
Alias
Clear
Mkdir (-p)
Rmdir (-p)
Rm (-rf)
Who (w, who is god, whoami)
Df
Free
Cat /proc/cpuinfo
Setterm
Tput
Uptime
Arquivos da Inicializao
Variveis
Varivel PS1
Arquivo /etc/motd
Arquivo /etc/issue e /etc/issue.net
Ps (aux)
Kill
Killall
Sinais (1, 9, 15)
Touch
Find
Locate
Top
oForar salvao
oInserir linha abaixo do cursor
oInserir linha acima do cursor
oCopiar e colar linhas
oO gcc
oO comando ./configure
oMdulos do perl
oO comando make
oO comando make install
oQuando ocorrem os problemas...
-Configurando o Apache
oSobre
oPorque utiliza-lo
oExemplo de configurao
-Configurando o PostFix
oEntendendo o servidor de Emails
oPorque utilizar postfix
oDiretivas de configurao
-Segurana
oQuesitos para um sistema seguro
oOnde se atualizar
oMontando um firewall linux
Entendendo o iptables
Regras de entrada, sada e passagem de pacotes
Tabelas do iptables
Proibindo protocolos
Proibindo portas e tipos de mensagens
Proibindo flags TCP
Proibindo estados de pacotes
Limitando as conexes
ChangeLog v1.5
As mudanas da verso 1.0 para a verso 1.5 so:
-Corrigido erro pequeno na parte de While
-Includo o comando tput
-Includo o comando setterm
-Includo o desafio logRotate.sh
-Includa a parte de NFS
-Includa a parte sobre SAMBA - 17/06/2002
-Adicionada a seo de SEGURANA - 17/06/2002
-Mudado um pouco o comando TOP - 17/06/2002
-Corrigido pequeno erro na parte de samba referente a valid users, que
antes estava como @usuario o que na verdade poderia ser @grupo ou
simplesmente usuario - 19/06/2002
-Corrigido pequena falha na parte sobre man, j que ficava um nmero 9 autocolocado pelo OpenOffice como continuao da ordenao
-Corrigidos erros de acentuao - 19/06/2002
-Faltou a opo count=8139 no comando DD - 19/06/2002
-Sria incongruncia na OBS do comando MOUNT foi corrigida, j que / um
ponto de montagem de uma partio de nosso HD e no nosso HD como foi dito
- 19/06/2002
-Corrigidos erros de escrita - 19/06/2002
-Corrigido problema srio no comando MKFS onde se dizia que o mkfs DEVERIA
suportar o sistema de arquivos a ser montado, mas quem realmente deve
suportar este sistema o kernel - 19/06/2002
-Adicionada a seo: Arquivo /etc/group - 19/06/2002
-Adicionada a seo: Porque saber editar manualmente usurios e grupos? 19/06/2002
-Disponibilizada verses em .SDW e .TXT do documento - 19/06/2002
-Reescrita e melhorada um pouco a parte sobre SAMBA (corrigido pequeno detalhe
no mapeamento de diretrios via script de logon, porque utilizava-se z:, mas este
diretrio utilizado pelo windows como um temporrio do netlogon e isto
causava problemas) - 21/06/2002
-Reescrita a parte sobre FSTAB para correo de alguns erros - 21/06/2002
INTRODUO
muito importante a constante atualizao tecnolgica, principalmente nos dias
atuais nos quais a internet se tornou no s uma realidade global, como tambm uma
necessidade empresarial.
As instituies de ensino, sempre pioneiras no gnero UNIX e INTERNET, no
devem e no podem ficar para trs nesta nova onda global: o LINUX.
Sistema operacional que surgiu e se difundiu com o apoio de UNIVERSIDADES, o
LINUX vem crescendo esplendorosamente e se mostrando um sistema operacional
altamente confivel e robusto, satisfazendo todas as necessidades do mercado, com
exceo da falta de profissionais especficos para ele.
Devido a isto, venho com esta apostila e este treinamento (a apostila ser distribuda
gratuitamente na internet e eu ofereo o treinamento para qualquer empresa ou instituio
que desejar) tentar reprimir a falta de profissionais e o mais importante, divulgar ainda mais
o LINUX.
OBJETIVOS
Os objetivos deste treinamento no so os de tornar seus adeptos especialistas
avanados no sistema operacional, e sim usurios e administradores avanados.
Isto quer dizer que eles dominaram algumas caractersticas do sistema, mas devem
estudar e se aprofundar muito para se tornarem especialistas e profissionais no mesmo.
Espero converter os usurios que leiam e faam o treinamento e mostrar-lhes quo
fcil entrar no mundo LINUX.
Percebam que a apostila tcnica, no sendo altamente instrutiva isoladamente, por
isso, faam os exemplos desta e vejam os manuais para maiores entendimentos. Ela
apenas um complemento do treinamento completo, mas pode facilmente se tornar um curso
atravs de um documento para as pessoas mais esforadas e interessadas.
4
5
6
7
8
!
"
#
Exemplo de uso:
man 1 ls
Utilize /palavra para procurar e q para sair.
- Logout
Fecha a shell do usurio. Este comando utilizado quando se termina sua
sesso ou para se trocar de usurio.
- Shutdown -r now
Comando utilizado para reiniciar a mquina. Possui alguns similares:
Reboot
Init 6
Ctrl + Alt + Del
Existe tambm o shutdown -h now que desliga a mquina. Seus similares:
Halt
Init 0
- Su
Utilizado para se trocar de usurio sem efetuar logout. Muito comum em
acessos via rede, j que via rede por default o root no pode se logar.
Usa-se tambm su -c "comando a executar" para se executar um comando
com poderes de root e depois retornar. Obviamente ser pedida uma senha.
Uso do su:
su nomeDoUsuarioAseVirar
- Ls
Comando que serve para listar arquivos. Suas opes mais utilizadas so
-la, onde o -l significa para listar as permisses (inclusive) e o -a para listar todos os
arquivos (lembrando que para o linux arquivos comeados com . so ocultos).
OBS: O Conectiva Linux possui um alias chamado l para o comando ls -la,
use-o e caso a sua distribuio no contenha tal alias, crie-o. Veja mais adiante como fazlo.
- Cp
Copia arquivos. Use: cp arquivoASerCopiado novoArquivo
Opes interessantes:
-i Pede confirmao antes de substituir um arquivo existente
-R Cpia recursiva. Serve para copiar diretrios e seu contedo.
- Mv
Move arquivos. Use-o tambm para renomear.
Uso: mv arquivo novaLocalizacao/
mv arquivo novoNome
Recomendado:
-i Confirma antes de substituir um arquivo existente.
OBS: No Conectiva Linux existe um alias tanto para o comando cp como para o mv
com a opo -i.
- Alias
Cria um apelido para um comando. Tem precedncia sobre o comando, ou
seja, pode-se criar um alias do tipo: alias ls="ls -la". Toda vez que digitarmos ls na
verdade ele executar ls -la.
- Clear
Limpa a tela. Recomenda-se a criao de um alias chamado c para este
comando.
- Mkdir (-p)
Comando para a criao de diretrios. Usa-se o -p caso se queira criar uma
"rvore" de diretrios.
- Rmdir (-p)
Complemento do comando mkdir. Serve para remover um diretrio vazio.
A opo -p serve para remover uma rvore de diretrios vazia (sem arquivos).
- Rm (-rf)
Comando utilizado para apagar arquivos. Observe que o rm simplesmente
no apaga diretrios. Sua opo -r indica para apagar recursivamente, ou seja, ir apagando
todos os arquivos em subdiretrios e inclusive os prprios diretrios. A opo -f fora
apagar, e no emite mensagens de erro caso no exista um arquivo.
Ex: rm -rf arquivoQueNaoExiste
No acontecer NADA. Nenhuma mensagem de erro ser informada.
- Df
Mostra informaes de sistemas de arquivos montados (mesmo CDRom e
Disquete).
- Free
Mostra informaes de memria (swap inclusive).
- Cat /proc/cpuinfo
Informaes muito completas de seu processador.
- Setterm
- Uptime
Mostra a quanto tempo o sistema est ligado. Os maiores uptimes da
internet so com mquinas UNIX.
- Arquivos da Inicializao
Alguns arquivos so executados quando o sistema reinicializa. O que nos
ser conveniente falar por agora ser o arquivo /etc/rc.d/rc.local (todas as distribuies
devem t-lo implementado).
Este arquivo ser o ltimo a ser executado quando da inicializao do
sistema.
Diversos arquivos so executados no processo de entrada de um usurio no
sistema.
So eles:
.bashrc
.profile
.bash_login
Os 3 se localizam no HOME do usurio
E:
/etc/bashrc
/etc/profile
Observe que enquanto os 3 primeiros so exclusivos dos usurios (cada
usurio pode ter suas configuraes), os ltimos 2 so globais a todos os usurios que
entrarem no sistema.
No recomenda-se alterar o arquivo /etc/profile j que este de
configuraes e variveis.
- Variveis
- Varivel PS1
Esta varivel guarda os valores para o PROMPT do Linux. Observe que
estes valores podem ser variveis interpretadas pela SHELL, e por default o so, ou seja, se
voc utilizar uma shell que no a shell BASH, eles podem ficar sem sentido.
A varivel PS1 uma varivel normal do sistema, qualquer valor que for
dado a ela ir ficar no prompt.
No entanto ela possui alguns valores especiais interessantes, eis alguns:
\h
Host da mquina
\W
Diretrio Corrente
\w
Caminha completo do diretrio corrente
\u
Nome do usurio
\t
Hora
\\$
Fica $ se for usurio normal e # se for root
Exemplo:
export PS1="[\h@\w]\\$ "
- Arquivo /etc/motd
Este arquivo lido pelo sistema quando um usurio loga na mquina e seu
contedo enviado para a tela do usurio, como uma mensagem de boas vindas ou algo do
tipo. Preste ateno que comandos NO sero interpretados.
- Arquivo /etc/issue
Tela vista ANTES do usurio se logar. Seria a prpria mensagem antes do
login. Observe que o arquivo /etc/issue.net o mesmo que o issue mas vlido para
conexes via rede (telnet). Em algumas distribuies este arquivo apenas um link para o
/etc/issue.
- Ps (aux)
Comando que lista os processos em execuo no sistema. Recomenda-se
sempre utiliza-lo com as opes AUX, para que liste TODOS os processos ativos no
sistema.
- Kill
Serve para matar um processo em execuo. Deve-se utilizar um dos sinais
existentes para esta tarefa. O sinal padro o sinal 15. Aps o sinal, deve-se informar o
PID (identificador nico de processos) do processo que se deseja matar (encerrar).
- Killall
Implementao do linux muito interessante. Permite-se que se mate diversos
processos com o mesmo nome de uma nica vez. Observe que pode utiliz-lo para matar
um nico processo pelo nome, desde que se tenha o cuidado de perceber se no existem
outros processos com este nome.
Ex: killall httpd
Killall -9 vi
- Touch
Cria um arquivo texto vazio. Muito interessante na hora de se testar alguma
coisa.
Uso: touch nomeDeArquivoaCriar nomeDeArquivoaCriar2 ...
Pode-se criar diversos arquivos de uma nica vez.
- Find
Busca arquivos. Muito avanado.
Uso: find DirAProcurar opes
Exemplos de uso:
find / -name Rodrigo.tar Procura a partir da raiz (no sistema
todo) o arquivo chamado Rodrigo.tar
find /home -exec grep "teste" {} \; -exec ls -la {} \: Procura a
partir do diretrio /home arquivos com o contedo teste (grep teste) e lista este
arquivo (ls -la).
find /usr -type l -ok rm -rf {} \; Procura no diretrio /usr links (type l) e caso encontre, confirma se deve ou no apagar (-ok rm -rf).
Consulte o manual para informaes mais interessantes.
- Locate
Busca arquivos, mas utiliza uma base de dados como padro, o que o torna
muito rpido. Cuidado!! Atualize sempre sua base de dados, ou iro aparecer arquivos que
j foram removidos em suas buscas.
Outro problema do locate o fato de que ele busca qualquer ocorrncia da
palavra a buscar, ou seja, se voc fizer locate a, ele ir listar TUDO no sistema que contm
a palavra a.
Para atualizar sua base de dados utilize: updatedb
Para buscar utilize: locate oqbuscar
- Top
Use:
- Vi (:w :x :q :q! /)
timo editor de textos que recomenda-se e muito saber. As opes vistas
foram:
$Modo Comando, Fim de Linha e de Edio
$:w Salva arquivo
$:x Salva e sai
$:q Sai quando voc no alterou nada
$:q! Sai sem salvar
$/palavra Procura palavra
$n Procura pela prxima ocorrncia de palavra
- Background (&)
O linux possui uma opo interessante que a de mandar processos para o
segundo plano, liberando assim o ambiente do usurio.
Pode-se fazer isso atravs do sinal & aps qualquer comando.
- Jobs
- Fg
Comando que trs de volta um processo do segundo plano.
Uso: fg numeroProcessodeSegundoPlanoRetornadoPeloJobs
- ln (-s)
Este comando cria um link (atalho) entre diretrios e arquivos. Um link
simblico (opo -s) nada mais do que um arquivo no HD que aponta para a rea
onde est o arquivo original. Se o original apagado, o link fica "quebrado". J um
link direto (apenas ln) d um outro nome para a mesma rea do HD. Como um
backup contra remoo indevida, no entanto usa-se o mesmo espao do HD,
referenciando-no de duas maneiras diferentes. Crie e compare. Um link direto no
pode ser feito entre diretrios.
Uso: ln -s Original Link
ln Original Link
- Umask
Comando que muda a mscara de permisses padro para a criao de
arquivos e diretrios.
Seu uso ser explicado mais adiante, apenas em modo OCTAL e no
CARACTERE. O modo CARACTERE foi explicado no curso bsico, mas no o ser nesta
apostila.
- Chown (user:group)
Utilizado para mudar o DONO e o GRUPO dono de um arquivo ou
diretrio.
Uso: chown novodono:novogrupo arquivoOudiretorio
Observe que a opo :novogrupo pode ser omitida ou trocada por
.novogrupo.
Tambm aqui existe a opo -R.
- Chgrp
Utilizado para mudar apenas o grupo dono de um arquivo.
Uso: chgrp novogrupo ArquivoOuDiretrio
- Home do usurio
Diretrio que pertence ao usurio, onde ele pode tudo. O comando cd
isolado leva o usurio at este diretrio. Ao logar no sistema, o usurio cai tambm em seu
home.
- Adicionando um Grupo
Um grupo nada mais do que a unio de diversos usurios com as mesmas
caractersticas. Por exemplo, poderamos ter um grupo estudantes ou alunos.
Para adicionarmos este grupo, devemos utilizar o comando:
groupadd alunos
No arquivo /etc/group ser adicionada uma entrada alunos, e ser dado um
GID (identificador de grupo) a este grupo.
- Adicionando um Usurio
Qualquer pessoa que for utilizar o linux deve necessariamente possuir um
usurio vlido na mquina. Lembrando que NO devemos utilizar o root a menos que
necessrio, esta tarefa importantssima mesmo para usurios caseiros.
Adicionando:
useradd rodrigo -g alunos
Adicionamos o usurio rodrigo no grupo alunos. Observe que a opo -g
nomegrupo no se faz necessria, e caso seja omitida, teremos comportamentos diferentes
em algumas distribuies:
RedHat e familiares (incluindo Conectiva):
Ser criado um grupo com o mesmo nome do usurio e este ser
adicionado neste grupo
Slackware:
O usurio ser adicionado em um grupo chamado users
Isto ocorre devido a no padronizao deste ato e ao fato de um usurio
NECESSARIAMENTE pertencer a algum grupo
- Senhas SHADOW
O esquema de senhas chamado SHADOW foi criado devido ao fato de o
Linux (e os Unix-Like da vida) utilizarem em suas senhas um mtodo de criptografia
chamado DES (Data Encryption Standard). Este mtodo fraco (utiliza chaves de apenas
64 bits) e pode ser facilmente quebrado (Veja o livro Cracking DES para entender melhor
sobre este assunto). Como o arquivo /etc/passwd necessita ter permisso de leitura para
todos, qualquer usurio facilmente conseguiria obter a senha de ROOT do sistema.
Com isso criaram o SHADOW, onde as senhas criptografadas com o DES
ficam no arquivo /etc/shadow que s pode ser visto pelo root.
Sobra ento no arquivo /etc/passwd apenas um * ou ! no lugar da senha
criptografada do usurio.
- Arquivo /etc/passwd
Este arquivo contm os usurios cadastrados na mquina e informaes
sobre eles. Sua sintaxe :
login:UID:GID:Descrio:Home:Shell
Onde:
login Nome do usurio na mquina
UID Identificador do usurio. O Linux utiliza este
nmero para dar ou tirar permisses. Pode ser repetido
entre usurios.
GID Identificador do grupo principal do usurio.
Descrio Qualquer coisa, se for omitido, deve-se deixar
::. Geralmente coloca-se nome e cargo do usurio
Home Diretrio pessoal do usurio. No
necessariamente, mas recomenda-se que ele fique no
/home e tenha o mesmo nome do usurio.
Ex: Usurio: Rodrigo
Home: /home/Rodrigo
Shell
Shell que o usurio ir utilizar para se logar no
sistema. Use /bin/false caso o usurio no deva logar. E
/bin/bash caso deva.
OBS:
Deve ter ficado na cabea do leitor atento o fato de CASO O
USURIO NO DEVA LOGAR.
Mas quando isto acontece?
Digamos que temos uma aplicao que deve ser executada com as
permisses de um usurio. Criamos um para ela, mas este no um usurio vlido, como
minha aplicao iria entrar na mquina? Este um caso.
- Arquivo /etc/group
Similarmente ao /etc/passwd este arquivo possui as configuraes dos
grupos (o /etc/passwd possui dos usurios)
Sua sintaxe geral :
<grupo>:x:<gid>:<usuario1>,<usuario2>
Os usurios que pertencerem a este grupo estaro listados neste arquivo, a
menos que o grupo seja primrio do usurio, neste caso apenas estaria referenciado em
/etc/passwd no campo gid.
Preste ateno que neste arquivo que o GID dos grupos est especificado,
sendo que o /etc/passwd apenas consulta ele.
Shell Script
$#!/bin/bash
oDeve ser utilizado no incio dos shell script
oIndica qual shell dever ser utilizada para a execuo
oNo necessrio
oCaso omitido, o script ser executado usando-se a shell que o
usurio estiver utilizando no momento.
;;
esac
Exerccio: Reescrever o script de abrir interface usando o case
- While
Faz um loop que s sair quando encontrar o comando break ou a condio
for FALSA.
Sintaxe:
while Condio
do
comandos
done
Ex:
a=0
while [ $a -le 10 ]
do
echo $a
expr $a + 1
done
Primeiro indiquei que a varivel a tem valor 0.
O While testa se a varivel a menor ou igual a 10 (-le um operador)
Se for, e , imprime seu valor, primeiramente 0.
O comando expr soma 1 ao valor de a.
O loop refeito, novamente se testa se a menor que 10 e assim por diante.
Perceba o operador -le, temos outros:
-eq Igual
-ne Diferente
-gt Maior que
-ge Maior ou igual
-lt Menor que
-le Menor ou igual
- O comando CUT
Este comando embora pouco conhecido realmente MUITO til. Sua
funo a de capturar apenas uma parte de uma linha, ou expresso.
Quando iramos querer isto?
Vamos pensar, lembrem-se do arquivo /etc/passwd, nele temos diversas
informaes.
Porque no simplesmente capturar o nome do usurio e nada mais?
Como faramos isto? Listar apenas o nome dos usurios do sistema?
Veja:
DESAFIO:
Utilizando o VI
Nome: ext2
Caractersticas:
Pesquisa Binria
No fragmentao
Permisses de Arquivo (podem ser extendidas)
Arquivos com 255 caracteres no nome
Qualquer caractere especial no nome
Por default, no sncrono
Nome: ext3
Caractersticas:
Novo sistema
Journaling FS (assim como o do Aix e o ReiserFS)
Pesquisa Binria
Grava o que foi feito, no necessita FSCK mesmo caso caia a energia
Pode ser aumentado em tempo real, sem perda de dados
Idem a ext2 no restante
Estrutura de Diretrios
importantssimo a qualquer administrador de sistemas entender a
estrutura de diretrios do sistema. Isso porque manter a padronizao definida, o ajudar a
saber onde as coisas esto e a futuros administradores ou auxiliares acharem tudo no
sistema.
O Linux possui uma estrutura muito bem organizada e realmente a
devemos seguir.
Irei colocar cada um dos diretrios principais e o que neles devem
conter:
/etc Configuraes do sistema
/lib Bibliotecas compartilhadas necessrias ao sistema
/mnt Montagem de discos e perifricos
/opt Pacotes adicionais NO fornecidos com o sistema (no
utilizado quase)
/sbin Diretrio usado na inicializao do sistema, pacotes essenciais
para manuteno. Demais pacotes para a administrao do sistema devem ficar em
/usr/sbin ou /usr/local/sbin.
/usr Segundo maior diretrio (logo aps o /), recomenda-se montalo como RO para evitar danos. A grande maioria dos aplicativos do sistema e instalados
com ele ficam a partir deste diretrio.
/var Diretrio que contm arquivos variveis, tais como spool (filas
de email, crontab, impresso) e logs. Este diretrio existe para que os arquivos que
necessitem ser modificados fiquem nele e no no /usr, liberando assim sua montagem como
RO.
/root Alguns Unix-Like no o utilizam (utilizam /home/root). o
diretrio que contm os arquivos do administrador (seu home).
/proc Diretrio VIRTUAL onde o kernel armazena suas informaes.
Alguns dados deste podem ser modificados, como os abaixo de /proc/sys que contm
informaes muito pertinentes a performance tunning do sistema.
/tmp Diretrio que contm arquivos temporrios. Todos os usurios
necessitam poder escrever neste diretrio (para gravar seus temporrios), no entanto um no
pode apagar o temporrio do outro (se no teramos um problema), devido a isto este
diretrio possui uma permisso especial, que possibilita escrever mas s apagar aquilo que
for seu. Esta permisso chama-se STICK BIT.
/home Os diretrios pessoais dos usurios devem ficar a partir daqui.
/bin
Aplicativos e utilitrios usados durante a inicializao do
sistema, antes de qualquer sistema de arquivos ser montado. As shells dos usurios
costumam ficar aqui tambm. Binrios de usurios devem ficar em /usr/bin.
/boot Contm a imagem do kernel e tudo o que for necessrio ao
processo de boot, menos configuraes.
/dev Dispositivos do sistema.
MOUNT
Comando utilizado para se acessar qualquer dispositivo no Linux.
Como dispositivo entenda disquete, cdrom, e o prprio HD.
Sua sintaxe :
mount -t tipofs /dev/dispositivo /ponto/de/montagem
Ponto de montagem: Diretrio que ser utilizado para acessar o
dispositivo.
TipoFS: Tipo do sistema de arquivos do dispositivo, geralmente:
Vfat
Fat32
Msdos
Fat16
NTFS
NTFS
Ext2
Linux
Iso9660
Cdrom
Umsdos
FS especial, sistema Linux sobre FAT.
Monta FAT32 e FAT16, alm de ext2.
OBS: Nossas parties so montadas durante o boot do sistema, por isso
/ um ponto de montagem que indica uma das parties de nosso HD.
FSTAB
Como foi dito, alguns sistemas de arquivos devem ser montados durante o boot,
para que todo o resto funcione. o caso de nossas parties ativas do linux e a prpria
swap.
No arquivo /etc/fstab esto as informaes do que dever ser montado
automaticamente no boot da mquina e algumas opes de dispositivos que so muito
acessados e seu FS no muda (ex: cdrom).
Isto faz com que utilizemos apenas mount /ponto/de/montagem para acessar tais
dispositivos, j que o resto das informaes o linux busca no fstab.
FDISK
Utilizado para se criar ou destruir parties. Observe que seu
particionamento SEMPRE destrutivo.
Uso: fdisk /dev/hdx X indica o HD e no a partio
Ser visto em aula suas opes:
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
__________________________________________________________
FSCK
No se necessita passa-lo, j que o sistema o faz automaticamente
quando precisar, durante o boot.
Observe que caso algum pane acontea na passagem automaticamente,
ser solicitada a senha do administrador e dever ser passado o fsck manualmente.
Digite a senha e faa:
fsck -c -v /dev/hdxy X seu HD, Y partio que deu problema.
-c Manda checar
-v Informa tudo o que est fazendo e pede confirmao
FDFORMAT
Utilizado para formatar DISQUETES.
Use: fdformat /dev/fd0.
Ele no ir criar um sistema de arquivos no disquete. Use o mkfs.
MKFS
MKSWAP
Utilizado para se "formatar" uma swap. Gerar seu sistema de
arquivos. Utilizamos ele assim:
mkswap -c /dev/hdxy
A opo -c opcional mas recomendada, j que checa o HD antes de
criar a swap.
Aps isto feito, deve-se necessariamente ativar a swap para que o
sistema a reconhea.
Faa isso com o comando:
swapon /dev/hdxy
Alguns alunos mais "fuados" j tero visto:
swapon -a
Que indica para se ativar a swap de todos os dispositivos de
swap encontrados em /etc/fstab.
Lembre-se de adicionar a nova swap l para que no prximo
boot seu sistema a reconhea automaticamente.
Bem, como eu j disse o Linux poderoso, Linux Linux,
portanto temos uma opo de caso necessitemos de mais swap, mas no tenhamos uma
partio a parte para isto.
o caso da swap em arquivo. Sua desvantagem o fato de
ser mais lenta, j que estar dentro do sistema de arquivos ext2 alm do seu prprio, mas
uma maneira de se ganhar memria SEM TER QUE REINICIAR ou qualquer coisa do tipo.
Para criar este "arquivo de swap", faa os seguintes passos:
1-) dd if=/dev/zero of=/swap bs=1024 count=8139
2-) mkswap -c /swap
3-) swapon /swap
Passo1: O comando dd "copia transformando". Ele foi utilizado para se
criar o arquivo de swap sem contedo (/dev/zero) e com um tamanho equivalente a 8139
blocos (8MB). Obviamente voc pode adeqar este tamanho para o que necessitar.
Passo2: Cria-se o sistema de swap neste arquivo
Passo3: Ativa-se a swap deste arquivo.
Use o comando free e voc ver que o espao de swap foi incrementado.
oGerenciando Mdulos
NOME
MQUINA
Um exemplo da sintaxe do arquivo /etc/hosts seria:
200.158.118.169
<http://www.firewalls.com.br/>
www.firewalls.com.br
web
Arquivo /etc/resolv.conf
Este arquivo contm o nome do domnio que nossa mquina pertence e os
servidores DNS de nossa mquina.
domain firewalls.com.br
Domnio firewalls.com.br
nameserver 200.158.118.169 DNS primrio
nameserver 200.206.116.2
DNS secondrio
nameserver 200.145.150.1
DNS tercirio
nameserver 200.145.160.1
DNS quaternrio
Arquivo /etc/host.conf
Define a ordem de resoluo de um HOSTNAME, ou seja, se primeiro o
sistema deve procurar o nome de hosts no arquivo /etc/hosts ou se deve requisitar ao
servidor de DNS.
Um exemplo deste arquivo:
order hosts,bind
multi on
arquivo /etc/hosts
Adio de ROTAS
Recomendo SEMPRE utilizar o comando route.
oGzip
timo compactador.
Para utilizar:
gzip arquivoAcompactar
O arquivo ser substitudo pelo mesmo nome mas com extenso .gz, que
indica que ele foi compactado com o gzip.
Para descompactar:
gzip -d arquivoAdescompactar.gz
gunzip arquivoAdescompactar.gz
As duas opes acima so idnticas.
oZip
Pouco utilizado no mundo Linux, um compactador/empacotador.
Utilize zip arquivo.zip Arquivo1 Arquivo2.
Cuidado ao zipar diretrios!!
Para dezipar, use:
unzip arquivo.zip
oBzip
Compactador mais atual e mais eficiente que o GZIP. No est sendo
muito utilizado e atualmente est na verso 2.
Use:
bzip2 arquivoAcompactar
Este arquivo ser substitudo por um com o mesmo nome e extenso
.bz2.
Para descompactar:
bunzip2 arquivoAdescompactar.bz2
bzip2 -d arquivoAdescompactar.bz2
As 2 opes so iguais.
oCompress
Muito antigo, mas ainda hoje encontramos uso deste compactador.
Para compactar:
compress arquivoAcompactar
Ser gerado um arquivo com a extenso .Z
Para descompactar:
Uncompress arquivoAdescompactar.Z
oTar
Praticamente um MITO do mundo UNIX. Este excelente empacotador
serve para a criao de BACKUPs, tendo muitas e muitas opes.
Veremos aqui as mais importantes, tais como as opes de criao de um
arquivo empacotado e j compactado (utilizando gzip, bzip2 ou
compress).
Criando um arquivo .tar:
tar cvf nome.tar ArquivosouDiretoriosATARGIAR
Voltando um arquivo .tar:
tar xvf nome.tar
Criando um arquivo .tar.gz:
Agendamento de Tarefas
oCron
Agenda tarefas a serem executadas sempre. Isto quer dizer, por exemplo,
tarefas a serem executadas todo dia a meia noite por exemplo. Ou todo dia 10 as 10:00
horas e assim por diante.
O cron permite o agendamento de tarefas por usurio. Cada um pode ter
suas tarefas e estas sero executadas com as permisses deste usurio.
Comumentemente agendaremos tarefas como root.
Agendando uma tarefa:
crontab -e
Ser aberto o editor vi, editando o arquivo correto. Ali dentro, siga a
seguinte sintaxe (uma por linha):
MinutoHoraDiadomesMesDiadasemana
comando
Ex:
12345600***LsDentro do crontab deve-se colocar a segunda linha da tabela
acima. A primeira linha ser utilizada para a descrio dos campos, a seguir:
oAt
o/etc/inetd.conf
Sua sintaxe :
ftp
stream tcp
nowait
Explicando os campos:
ftp Servio que escuta na porta 21 (ver /etc/services)
stream Modo para conexes TCP (dgram para udp)
tcp Protocolo de conexo
nowait No ficar esperando
root Rodar como usurio root
/usr/bin/tcpd in.ftpd -l -a Programa a ser chamado e seus parmetros
o/etc/hosts.allow
Observe no exemplo acima, que o programa a ser chamado TCPD.
Este o programa que chamamos de TCP Wrappers. Como parmetro passado o servio a
ser protegido, no caso in.ftpd.
TCP Wrappers implementa um controle de acesso aos servios que
rodam sob o inetd atravs do nmero ip ou nome da mquina.
O arquivo /etc/hosts.allow contm os servios que sero permitidos.
Caso esteja sendo permitido, ele nem sequer ir checar o que est sendo negado.
Sua sintaxe :
Servio:IP
Ex:
in.ftpd:localhost Libera localhost a conectar no servio FTP
All:200.158.118.169 Libera tudo para a mquina 200.158.118.169
o/etc/hosts.deny
Neste arquivo proibimos os servios. Sua sintaxe igual a do
arquivo /etc/hosts.allow.
prompt
Exibir o prompt do lilo
timeout=50
5 segundos de espera
image=/boot/vmlinuz-FwSec-1.0 Imagem do kernel a ser carregada
label=linux
Quando for escolhido o nome linux
root=/dev/hdb1
Partio raiz = /dev/hdb1
read-only
Monta-se como RO
password=teste
Necessita-se digitar a senha TESTE
other=/dev/hda3
Na partio /dev/hda3
label=outroSO
Ser carregado caso outroSO seja escolhido
oO gcc
Em minha opinio o melhor compilador C existente. O kernel do Linux foi
feito para ser compilado no compilador C da GNU (o gcc).
Ele possui diversas caractersticas importantssimas:
Total compatibilidade com o ANSI C
Recursos de otimizao de cdigo automticos
Para compilar um programa em C, use:
gcc arquivo.c -o arquivoBinrioAserGerado
oO comando ./configure
A grande maioria dos aplicativos possui uma opo de configurao que se
trata do comando ./configure. Este comando faz com que a aplicao verifique todas as
necessidades para a compilao de um programa, tais como bibliotecas e outros aplicativos
e o sistema operacional em uso. Geralmente podemos utilizar ./configure -
oMdulos do perl
Perl uma grande linguagem de programao e muitas aplicaes
necessitaram dele. Ele funciona modularizado (assim como o kernel do Linux). Para
instalar um novo mdulo, entre no diretrio do mesmo e digite:
perl Makefile.pl
make
make install
oO comando make
O comando make l as instrues de um arquivo Makefile no diretrio
corrente e atravs destas, compila um programa com cdigos separados e
com as opes do compilador que se fazem necessrias. Aps o
./configure a grande maioria das aplicaes pedem o make.
Instalando
Para instalar um pacote RPM faa:
rpm -ivh pacote.rpm
Removendo
Para remover um pacote RPM faa:
rpm -e nomedopacote
Atualizando
Para atualizar um pacote RPM faa:
rpm -uvh pacote.rpm
Pesquisando
Para pesquisar se determinado pacote RPM est instalado faa:
rpm -qa |grep NOME
A opo -qa lista todos os instalados e o |grep procura pelo nome,
j que geralmente no sabemos o nome, seno poderamos
utilizar diretamente rpm -q nome.
A sada do rpm -qa o que deve ser utilizado pelo rpm -e quando
se deseja excluir um pacote
Erros Comuns
Falha nas Dependncias:
Falta algum aplicativo que este precisa para instalar. Caso
voc tenha instalado tal aplicativo, mas o sistema no esteja
reconhecendo (voc no instalou como RPM), use a opo nodeps.
Pacote mais atualizado j instalado:
Quando voc tenta instalar um pacote mais antigo do que um
j instalado, utilize a opo -oldpackage para forar a instalao.
Pacote j instalado:
Quando voc deseja instalar um pacote j instalado (talvez o
que esteja instalado esteja com problemas), utilize a opo replacepkgs.
Arquivos conflitam:
Isto acontece quando um pacote que est sendo instalado ir
substituir um arquivo existente. Nestas ocasies use a opo replacefiles.
Opo -force:
Une -oldpackage + --replacepkgs + --replacefiles.
Configurando o NFS
Network File System (NFS) consiste em um servio muito utilizado no
mundo UNIX e obviamente portado para o Linux para o compartilhamento de arquivos em
rede.
Ele permite se acessar uma mquina remota, montando-a em sua prpria
como um dispositivo qualquer, permitindo assim um acesso simples, como a um diretrio
local.
oPortmap
Servio necessrio para o bom funcionamento do NFS e de qualquer
servio baseado em RPC (Remote Procedure Call).
RPC foi inventado pela Sun para que servios no utilizassem uma porta
fixa para rodar.
Devido ao fato de no rodar em uma porta fixa, faz-se necessrio que
algum servio indique aos clientes que tentem acessar em qual porta o servidor est
rodando, esta a funo do Portmap.
oAcionando o Portmap
Para ativar o portmap basta cham-lo na linha de comando e no caso do
Conectiva ainda tem-se a opo:
cd /etc/rc.d/init.d
./portmap start
oAcionando o NFS
Aps todas estas configuraes feitas, deve-se acionar o NFS. Chame-o na
linha de comandos (nfsd).
No Conectiva:
cd /etc/rc.d/init.d
./portmap start
SAMBA
Samba como todos devem saber um sistema integrado para Linux que faz com que
este suporte o protocolo NetBEUI, classicamente utilizado pelos produtos Microsoft
log file = /log/samba/%m.log --> Ser criado um arquivo de log com o nome da
mquina.log para cada mquina que acessar o
servidor samba. Este arquivo ser criado em
/log/samba. Observar que %m uma varivel. Ela
Obviamente a extenso .bat foi mantida apenas para fins de facilitar a visualizao,
o Linux no far diferena para isto.
Poderamos tambm substituir o %m por %u, especificando assim um script de
logon por usurio especfico.
Claro, tambm poderamos simplesmente colocar o nome do script, sendo este nico
para todos.
Vamos agora ver um exemplo de script de logon:
vi scriptLogon.bat:
net time \\192.168.0.1 /set /yes
net use r: \\192.168.0.1\public
Mas o que isso?
Estes comandos sero executados assim que um usurio se logar em nosso servidor,
ou seja, o primeiro comando apenas acerta a hora da mquina do usurio que est se
logando com a hora de nosso servidor, facilitando assim o monitoramento das atividades
dos usurios.
O segundo comando mapeia o compartilhamento pblico que criamos para o R: do
usurio que est se autenticando.
Configurando o SSHD
O SSH veio para substituir as fraquezas encontradas com o TELNET. Ele
fornece recursos para administrao remota criptografada.
Seu arquivo de configurao comumente fica em /etc/ssh/sshd_config e
para ativ-lo basta digitarmos sshd, j que ele vem pr-configurado.
O servidor SSH l os arquivos de configurao /etc/hosts.allow e
/etc/hosts.deny assim como o TCP Wrappers.
Configurando o ProFTPd
Eu recomendo fortemente o uso do ProFTPd sobre o WU FTPD (padro
na maioria das distribuies, no no Slackware 8.0).
Esta recomendao devida ao fato do servidor Wu FTPD possuir muitas
vulnerabilidades e um histrico de falhas muito grande e o proftpd ter sido feito com grande
nfase em segurana.
Abaixo coloco um exemplo de um arquivo de configurao do proftpd e
explico suas diretivas mais importantes.
Preste ateno que o proftpd possui MUITOS recursos. Para conhecer
todos eles, acesse o site www.proftpd.org <http://www.proftpd.org/> e veja o manual.
O proftpd l os arquivos /etc/hosts.allow e /etc/hosts.deny assim como o
TCP Wrappers.
Arquivo: /etc/proftpd.conf
ServerName
"Firewalls Security FTP Server" Nome do servidor
ServerType standalone
Tipo: pode ser standalone ou inetd para rodar sob o inetd
DefaultServer
on
Port
21
Escutar na porta 21
Umask
022
MaxInstances
30
User
nobody Rodar com permisses do usurio nobody
Group
nobody
RootLogin
no
No permitir o root se logar via ftp
DisplayConnect
/etc/welcome.FTP
ServerIdent on "Bem Vindo"
<Directory /*>
AllowOverwrite on
Permite sobrescrever arquivos em qualquer diretrio
</Directory>
<Anonymous ~ftp>
Usurio anonymous cair no home do usurio ftp
User ftp
Logar como usurio ftp
Group ftp
UserAlias anonymous ftp Permite entrar com user=anonymous que virar ftp
MaxClients 10
Mximo de conexes annimas permitidas
<Limit WRITE>
Deny All
No permite nenhum usurio anonymous escrever no sistema
</Limit>
</Anonymous>
Configurando o BIND
oEntendendo o DNS
Na internet as mquinas se comunicam atravs de um nmero nico que
identifica cada uma (o IP).
Este nmero possui 32 bits, separados em 4 grupos de 8 bits cada.
Obviamente humanamente impossvel e invivel lembrar-se de tantos
nmeros.
Para isto foi criado um sistema que facilita o processo de comunicao
entre as mquinas.
Este o sistema de DNS.
Ele possibilita que demos um nome ao invs de um IP para as mquinas.
Na verdade a comunicao continua sendo via IP, mas ns fornecemos
um nome e o servidor de DNS retorna o IP para a comunicao.
Claramente este um sistema hierrquico (seria impossvel um nico
servidor conhecer os nomes de mquinas da internet toda).
Quero dizer hierrquico porque cada DNS responsvel por uma faixa
de Ips e quando recebe uma consulta a um IP que ele no o responsvel ele lana esta
consulta um nvel acima at chegar no servidor que seja o real responsvel.
1
2
3
4
10
IN
IN
IN
IN
IN
IN
IN
Configurando o Apache
oSobre
O apache pode ser encontrado em www.apache.org
<http://www.apache.org/> e um servidor WEB muito poderoso e
gratuito.
Atualmente ele vem sendo utilizado por cerca de 60% dos servidores
WEB do mundo e foi inclusive recomendado pelo GartnerGroup.
Com o atual crescimento e onda de vrus e ataques a servidores WEB no
mundo, o apache ganhou muita confiabilidade devido a sua imunidade a estes ataques e a
comprovao de sua extrema segurana.
oPorque utiliz-lo
Robusto
Seguro
Rpido
Flexvel
Administrvel
Cheio de recursos e opes
Fcil configurao
oExemplo de configurao
Aqui forneo um exemplo de configurao do Apache e explico os
pontos mais importantes.
# Configuraes Principais
Port 80
User nobody
Group nobody
ServerType standalone
ServerRoot /etc/httpd
MinSpareServers 2
MaxSpareServers 4
StartServers 2
MaxClients 150
# Logs
ErrorLog
/log/apache/ApacheError.log
LogLevel warn
AccessLog
/log/apache/ApacheAccess.log
# Opes Diversas
UserDir web
index.html index.htm
index.php Estes arquivos
so os ndices das pginas
AccessFileName htaccess
Opes de acesso tambm so encontradas no arquivo
.htaccess
HostnameLookups Off
No transforma Ips em Nomes
Alias /focker
/home/httpd/firewalls/focker Apelido para /focker
DirectoryIndex
# Locations
<Location /focker>
Order deny,allow
Deny from all
Allow from localhost
</Location>
Segurana
oQuesitos para um sistema seguro
Muitas pessoas nos perguntam constantemente o que necessrio para se
montar um sistema seguro.
Possivelmente elas se decepcionam com as respostas:
Basta se manter atualizado e ter uma boa poltica de segurana
Isto quer dizer que devemos agir com segurana, sempre pensar na
segurana.
No existem regras fixas. No existe segurana 100%.
O bsico que podemos fazer ser visto aqui, obviamente tcnicas e
implementaes mais avanadas de segurana existem, mas no caberiam no escopo deste
treinamento.
E vale sempre lembrar:
DESABILITE tudo que no for necessrio!!!
oOnde se atualizar
A comunidade de segurana mais lenta do que os crackers devido
ao fato de segurar mais a informao.
Obviamente isto no uma verdade 100% absoluta, mas os meios de
comunicao dos atacantes realmente funcionam melhor e so mais rpidos.
Eles incluem desde programas BATE PAPO famosos como o IRC e
o ICQ at listas de email e sistemas USENET exclusivos.
Os profissionais de segurana e todos os interessados podem contar
com empresas e rgos que divulgam as informaes nos pases.
Um deles o CERT (Computer Emergency and Response Team).
Maiores informaes e treinamentos tambm podem ser obtidos
atravs do curso ISPA 600 - Segurana em Comunicao de Dados e Firewall.
Uma lista de discusso sobre o assunto, porm fechada a apenas
profissionais que trabalham na rea pode ser encontrada atravs do site:
www.firewalls.com.br/mailman/listinfo/seguranca
<http://www.firewalls.com.br/mailman/listinfo/seguranca>
Tabelas do iptables
O Iptables como o prprio nome indica trabalha com tabelas.
Existem 3 tabelas no Iptables, a saber:
1-) Tabela Filter
Tabela default que trata os pacotes normalmente
2-) Tabela NAT
Utilizada em mascaramentos e NAT
3-) Tabela Mangle
Utilizada para reescrever informaes dos pacotes
Obviamente devido ao tempo, iremos tratar apenas da tabela FILTER
Proibindo protocolos
Antes de lidarmos com o iptables em si, muito importante
salientarmos que um bom Firewall consiste de um conjunto de regras bem elaboradas, com
uma poltica de segurana consistente.
Alguns de vocs j escutaram e todos com certeza escutaro
falar sobre a CHAIN default de um firewall.
Mas o que isto?
Chain DEFAULT nada mais do que o que o Firewall dever
fazer ao se deparar com uma condio que no est prevista, ou seja, no existe uma regra
especfica para esta condio.
O ideal SEMPRE utilizarmos CHAIN DEFAULT DROP,
mais ou menos aquela poltica:
TUDO que no estiver explicitamente liberado est proibido
Limitando as conexes
Muitos ataques realizados (a grande maioria) visam apenas causar algum tipo de negao de
servio, ou seja, impedir que o servidor funcione adequadamente.
Para evitar este ataque, podemos utilizar algumas regras simples, porm prticas de
controle:
iptables -A INPUT -j ACCEPT -p icmp -m limit --limit 3/m
Com esta regra limitamos o nmero de pacotes icmp aceitos em nosso firewall para 3 por
minuto.