8/3/2019 Treinamento avanado em linux
1/62
TREINAMENTOAVANADO EMLINUX
Autor:Bruno Mortgua Ribeiro
8/3/2019 Treinamento avanado em linux
2/62
APOSTILA TREINAMENTO AVANADO EM LINUX
V1.5
Instrutor: Bruno Mortgua Ribeiro
8/3/2019 Treinamento avanado em linux
3/62
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)
LogoutShutdown -r now
SuLs (-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
8/3/2019 Treinamento avanado em linux
4/62
Vi (:w :x :q :q! /)
Background (&)
Jobs
Fg
Ln (-s)
Chmod (ugo +rwx)
Umask
Chown (user:group)
Chgrp
Caracteres Especiais (~,[],*,?)
Home do Usurio
Adicionando um Grupo
Adicionando um Usurio
Senhas SHADOWArquivo /etc/passwd
Arquivo /etc/group
Porque saber editar manualmente usurios e grupos?
oCaractersticas da Shell BASHoShell Script
#!/bin/bash
If [ condicao ] then fi
For variavel in lista do done
Script Adiciona 1000 usurios
Script Abrir Interface que Escolher
-Aprofundando-se em SHELL ScriptoCase
oReescrevendo o script de abrir interface usando o case
oWhile
oO comando CUT
oEscrevendo um script para acertar as permisses do HOME dos usurios
oPara aprofundar: Script LogRotate.sh
-Utilizando o VIoEditando um texto
oIndo para a ltima linha
oIndo para a primeira linha
oIndo para a ensima linha
oRemovendo uma linha
oRemovendo a partir do cursor
oColocando nmero nas linhas
oSubstituindo linhas
oSalvando
oSaindo e salvando
oSaindo sem salvar
oSalvando para outro arquivo
oSaindo e salvando em outro arquivo
8/3/2019 Treinamento avanado em linux
5/62
oForar salvao
oInserir linha abaixo do cursor
oInserir linha acima do cursor
oCopiar e colar linhas
-Entendendo o sistema de arquivos do LinuxoEstrutura de Diretrios
oMOUNT
oFSTAB
oFDISK
oFSCKoFDFORMAT
oMKFS
oMKSWAP
-Configurao e Instalao do KerneloEntendendo o conceito de mdulos
oGerenciando Mdulos
oAdicionando Suporte a um Novo Hardware
oPersonalizando o kernel
-Ferramentas Bsicas de RedeoIfconfig
oRouteoNetstat
oPing
oTraceroute
oNslookup
oEditando os arquivos de configurao manualmente
-Compactadores e Empacotadores de ArquivosoGzip
oZip
oBzip
o
CompressoTar
-Agendamento de TarefasoCron
oAt
-Entendendo o Super Daemon Inetdo/etc/inetd.conf
o/etc/hosts.allow
o/etc/hosts.deny
-Configurando o boot da mquina: /etc/lilo.conf-Instalao e compilao de aplicativos
8/3/2019 Treinamento avanado em linux
6/62
oO gcc
oO comando ./configure
oMdulos do perl
oO comando make
oO comando make install
oQuando ocorrem os problemas...
oGerenciamento de pacotes RPMInstalando
Removendo
AtualizandoPesquisando
Erros Comuns
-Configurando o NFSoEscolhendo os diretrios a compartilhar
oAtualizando tabela de arquivos compartilhados
oPortmap
oAcionando o Portmap
oAcionando o NFS
oVerificando arquivos compartilhados pela mquina
oVerificando clientes que esto acessando os arquivos compartilhados
-SAMBAoEntendendo o Funcionamento do NetBIOS
oEntendendo o Funcionamento do Samba
oConfigurando um servidor SAMBA
oCompartilhando Diretrios atravs do SAMBA
oAcessando arquivos compartilhados atravs do Linux
oFazendo uma mquina Windows se autenticar no Linux
-Configurando o SSHDoRetirando a compatibilidade com a Verso 1
oRetirando o uso da diretiva UseLogin
o
Aumentando a chave criptogrficaoPermitindo ao root se logar remotamente
-Configurando o ProFTPdoHabilitando usurio anonymous
oMudando informaes do servidor
oDiretivas de configurao
-Configurando o BINDoEntendendo o DNS
oConfigurando uma Zona de Exemplo
oConfigurando uma Zona Reversa de Exemplo
oOs arquivos de Zonas
8/3/2019 Treinamento avanado em linux
7/62
-Configurando o ApacheoSobre
oPorque utiliza-lo
oExemplo de configurao
-Configurando o PostFixoEntendendo o servidor de Emails
oPorque utilizar postfix
oDiretivas de configurao
-SeguranaoQuesitos para um sistema seguro
oOnde se atualizar
oMontando um firewall linuxEntendendo o iptables
Regras de entrada, sada e passagem de pacotesTabelas do iptables
Proibindo protocolos
Proibindo portas e tipos de mensagens
Proibindo flags TCP
Proibindo estados de pacotes
Limitando as conexes
ChangeLog v1.5As 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, queantes estava como @usuario o que na verdade poderia ser @grupo ousimplesmente usuario - 19/06/2002
-Corrigido pequena falha na parte sobre man, j que ficava um nmero 9 auto-colocado 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
8/3/2019 Treinamento avanado em linux
8/62
-Corrigido problema srio no comando MKFS onde se dizia que o mkfs DEVERIAsuportar o sistema de arquivos a ser montado, mas quem realmente devesuportar 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 estediretrio utilizado pelo windows como um temporrio do netlogon e istocausava 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 diasatuais nos quais a internet se tornou no s uma realidade global, como tambm umanecessidade empresarial.
As instituies de ensino, sempre pioneiras no gnero UNIX e INTERNET, nodevem e no podem ficar para trs nesta nova onda global: o LINUX.
Sistema operacional que surgiu e se difundiu com o apoio de UNIVERSIDADES, oLINUX vem crescendo esplendorosamente e se mostrando um sistema operacionalaltamente 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 instituioque desejar) tentar reprimir a falta de profissionais e o mais importante, divulgar ainda maiso LINUX.
OBJETIVOS
Os objetivos deste treinamento no so os de tornar seus adeptos especialistasavanados 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 cursoatravs de um documento para as pessoas mais esforadas e interessadas.
8/3/2019 Treinamento avanado em linux
9/62
NO ficarei preso a uma nica distribuio, mas gostaria de lembrar quepessoalmente eu utilizo o FwSec Linux, um Slackware Linux modificado e com asegurana reimplementada pela minha empresa (Firewalls Security), portanto, todos osexemplos mostrados sero em Conectiva Linux (no qual sou certificado) e SlackwareLinux.
Tambm NO mencionarei o uso de Configuradores Grficos (tais comoLinuxConf e WebMin).
Os exemplos aqui apresentados so EXEMPLOS, embora as configuraesfuncionem podem no ser as ideais para um servidor e devem ser revistas e acrescentadas.
Esta apostila PODE e DEVE ser distribuda livremente, desde que no seja alterada.Esta pode ser encontrada online em .
Listas de Discusses de Bauru
Estou tentando formular algumas listas para discusso sobre o sistema operacionalLinux em Bauru.
Atualmente, existem as seguintes listas criadas:senacctitcpdump
segurancalinux
Para se cadastrar acesse:www.firewalls.com.br/mailman/listinfo/nomeDaLista
Coloque seu email e uma senha e voc receber uma mensagem com instrues.O objetivo destas listas ter discusses de qualidade, portanto sero monitoradas e
assuntos infundados sero proibidos.
Recapitulando o mdulo Bsico
- ManComando que nos mostra o manual de um outro comando.Uso: man [seo] comandoObserve que seo opcional, mas pode ser:
1 2 3 4
8/3/2019 Treinamento avanado em linux
10/62
5 6 7 8
Exemplo de uso:man 1 lsUtilize /palavra para procurar e q para sair.
- LogoutFecha a shell do usurio. Este comando utilizado quando se termina sua
sesso ou para se trocar de usurio.
- Shutdown -r nowComando utilizado para reiniciar a mquina. Possui alguns similares:
RebootInit 6Ctrl + Alt + Del
Existe tambm o shutdown -h now que desliga a mquina. Seus similares:Halt
Init 0
- SuUtilizado 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
- LsComando 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 osarquivos (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 faz-lo.
8/3/2019 Treinamento avanado em linux
11/62
- Cd (deslocamento relativo x absoluto)Comando para mudar-se de diretrio. O deslocamento absoluto se tem
quando utilizamos a raiz (/) para indicarmos para onde queremos ir. Por exemplo,imaginemos que estamos no diretrio /usr/src/linux e desejamos ir para o diretrio/usr/src/teste. Temos duas opes, a seguir:
cd /usr/src/teste Deslocamento absoluto, observe o uso do / no incio dodiretrio para o qual queremos ir
cd ../teste Deslocamento relativo, perceba que se estivssemos em umoutro diretrio (/usr) por exemplo, no iramos cair onde queremos. Da a conveno de"relativo".
- Cp
Copia arquivos. Use: cp arquivoASerCopiado novoArquivoOpes interessantes:-i Pede confirmao antes de substituir um arquivo existente-R Cpia recursiva. Serve para copiar diretrios e seu contedo.
- MvMove arquivos. Use-o tambm para renomear.Uso: mv arquivo novaLocalizacao/
mv arquivo novoNomeRecomendado:
-i Confirma antes de substituir um arquivo existente.
OBS: No Conectiva Linux existe um alias tanto para o comando cp como para o mvcom a opo -i.
- AliasCria 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 naverdade ele executar ls -la.
- ClearLimpa a tela. Recomenda-se a criao de um alias chamado c para estecomando.
- Mkdir (-p)Comando para a criao de diretrios. Usa-se o -p caso se queira criar uma
"rvore" de diretrios.
8/3/2019 Treinamento avanado em linux
12/62
- 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 apagandotodos os arquivos em subdiretrios e inclusive os prprios diretrios. A opo -f foraapagar, e no emite mensagens de erro caso no exista um arquivo.
Ex: rm -rf arquivoQueNaoExisteNo acontecer NADA. Nenhuma mensagem de erro ser informada.
- Who (w, who is god, whoami)O commando who e w listam os usurios que esto logados na mquina. O
w tem uma sada um pouco mais complexa, mostrando mais informaes.O comando who is god uma stira e retorna o nome de seu usurio.
O comando whoami (pode ser escrito who am i) tambm retorna o nome deseu usurio e utilizado para saber com qual usurio voc est logado, muito usado quandose utiliza o su e acaba se confundindo quem voc.
- DfMostra informaes de sistemas de arquivos montados (mesmo CDRom e
Disquete).
- FreeMostra informaes de memria (swap inclusive).
- Cat /proc/cpuinfoInformaes muito completas de seu processador.
- Setterm
8/3/2019 Treinamento avanado em linux
13/62
Este comando serve para modificar configuraes do terminal do Linux, taiscomo cor de fundo e cor da letra.
Ex:setterm -background green --> Fundo Verdesetterm -foreground yellow --> Letra "amarela". O amarela
est entre aspas devido ao fato de que a cor no parece ser amarelo no.OBS: Este comando mudar a cor a partir do momento em que ele for dado,
ou seja, voc precisa imprimir algo na tela ou dar um clear para realmente mudar a cor.
- TputUtilizaremos este comando para posicionar o cursor na tela, onde quisermos.
Ele ser muito til quando estivermos construindo shell scripts.Ex:
tput cup 5 10 Posiciona o cursor na linha 5 coluna 10.
- UptimeMostra a quanto tempo o sistema est ligado. Os maiores uptimes da
internet so com mquinas UNIX.
- Arquivos da InicializaoAlguns 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 distribuiesdevem t-lo implementado).
Este arquivo ser o ltimo a ser executado quando da inicializao dosistema.
Diversos arquivos so executados no processo de entrada de um usurio nosistema.
So eles:.bashrc.profile.bash_login
Os 3 se localizam no HOME do usurioE:
/etc/bashrc/etc/profile
Observe que enquanto os 3 primeiros so exclusivos dos usurios (cadausurio pode ter suas configuraes), os ltimos 2 so globais a todos os usurios queentrarem no sistema.
No recomenda-se alterar o arquivo /etc/profile j que este deconfiguraes e variveis.
- Variveis
8/3/2019 Treinamento avanado em linux
14/62
Variveis nada mais so do que espaos na memria que armazenamvalores. O linux possui variveis do prprio sistema, que armazenam valores deconfiguraes ou informaes da mquina.
Para v-las utilize o comando set.Para darmos um valor a uma varivel e torna-la global ao sistema, fazemos
export varivel=valor.Para retirarmos uma varivel fazemos unset varivel.
- Varivel PS1Esta 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, sevoc utilizar uma shell que no a shell BASH, eles podem ficar sem sentido.
A varivel PS1 uma varivel normal do sistema, qualquer valor que fordado 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/motdEste 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 dotipo. Preste ateno que comandos NO sero interpretados.
- Arquivo /etc/issueTela 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 paraconexes 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 nosistema.
8/3/2019 Treinamento avanado em linux
15/62
- KillServe 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 oPID (identificador nico de processos) do processo que se deseja matar (encerrar).
- KillallImplementao 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 matarum nico processo pelo nome, desde que se tenha o cuidado de perceber se no existemoutros processos com este nome.
Ex: killall httpdKillall -9 vi
- Sinais (1, 9, 15) importante se lembrar destes 3 sinais principais:
1-) SigHUP Manda a aplicao reiniciar9-) SigKILL Manda o kernel tirar a aplicao da lista de
processos ativos (mata mesmo!)15-) SigTERMManda um sinal para que a aplicao termine
normalmente
Os sinais so utilizados para comunicaes INTER-PROCESSOS, ou seja,quando um processo deseja indicar algo para outro processo.
Neste caso, o processo kill (killall a mesma coisa), envia o sinal quepedirmos para a aplicao.
Existem outros sinais (como SigINT) que so utilizados pelo sistema. Paravisualiz-los utilize o comando kill -l.
- TouchCria 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.
- FindBusca arquivos. Muito avanado.Uso: find DirAProcurar opes
8/3/2019 Treinamento avanado em linux
16/62
Exemplos de uso:find / -name Rodrigo.tar Procura a partir da raiz (no sistema
todo) o arquivo chamado Rodrigo.tarfind /home -exec grep "teste" {} \; -exec ls -la {} \: Procura a
partir do diretrio /home arquivos com o contedo teste (grep teste) e lista estearquivo (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.
- LocateBusca 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 quej 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 contma palavra a.
Para atualizar sua base de dados utilize: updatedbPara buscar utilize: locate oqbuscar
- TopMtodo interessante de se vizualizar os processos ativos na mquina.
Use: M --> Ordenar por consumo de memriaP --> Ordenar por consumo de CPU
- 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 palavran 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
8/3/2019 Treinamento avanado em linux
17/62
Lista os processos que esto em segundo plano, retornando o nmero doprocesso de segundo plano, que dever ser utilizado para traze-lo de volta.
- FgComando 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 reaonde 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 umbackup contra remoo indevida, no entanto usa-se o mesmo espao do HD,referenciando-no de duas maneiras diferentes. Crie e compare. Um link direto nopode ser feito entre diretrios.
Uso: ln -s Original Linkln Original Link
- Chmod (ugo +rwx)Comando que muda as permisses de um arquivo. Estas podem ser vistas
atravs do comando ls -l.
A esquerda dos arquivos aparecer uma cadeia de caracteres de difcilcompreenso inicial, mas prestem ateno:
PrimeiroCaractere Indica o tipo de arquivo, pode ser:- Arquivo normal (executvel ou texto)d Diretrioc Dispositivo orientado a caracteres (modem, portas seriais)b Dispositivo orientado a blocos (hd)s Socket mapeado em arquivo ("Em Unix tudo arquivo")p FIFO, comunicao inter-processosl Link Simblico
3 prximos Caracteres Permisses Vlidas para o DONO do arquivo, 1 colunacom nome de usurio.
R Permisso de leitura. Para diretrios, pode listar seu contedo.W Permisso de escrita.X Permisso de execuo. Para diretrios, pode entrar nele.
3 prximos Caracteres Permisses Vlidas para o GRUPO dono de um arquivo,2 coluna, do lado da do DONO do arquivo. Observe que o GRUPO dono nonecessariamente tem o DONO como membro.
3 prximos Caracteres Permisses para o restante dos usurios do sistema.Ex: chmod ugo+rwx -R arquivoOudiretrio.
8/3/2019 Treinamento avanado em linux
18/62
A opo -R manda dar a permisso recursivamente a todos os arquivos esubdiretrios deste diretrio em questo.
Esclarecendo a Sintaxe UGO:U Refere-se as permisses para o DONOG Refere-se as permisses para o GRUPO DONOO Refere-se as permisses para o restante dos usuriosA Refere-se as permisses para TODOS os usurios (mesmo que
Ugo junto)+rwx Est-se dando todas as permisses-rwx Est-se tirando todas as permissesOBS: Pode utilizar apenas -r ou -w sozinhos, por exemplo.=rw Estaria-se igualando as permisses a +RW-X, ou seja,
quando se utiliza o sinal de igual, as permisses se IGUALAM as que o sinal indica, sendo
retiradas as que no forem mencionadas.
- UmaskComando 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 nestaapostila.
- Chown (user:group)Utilizado para mudar o DONO e o GRUPO dono de um arquivo ou
diretrio.Uso: chown novodono:novogrupo arquivoOudiretorioObserve que a opo :novogrupo pode ser omitida ou trocada por
.novogrupo.Tambm aqui existe a opo -R.
- ChgrpUtilizado para mudar apenas o grupo dono de um arquivo.
Uso: chgrp novogrupo ArquivoOuDiretrio
- Caracteres Especiais (~,[],*,?)So tambm conhecidos como METACARACTERES.Os mais comuns e utilizados so:
* Simboliza TUDO? Simboliza QUALQUER CARACTERE~ Simboliza o HOME do usurio Corrente[AB]* Qualquer arquivo (*) comeado com A ou com B.
8/3/2019 Treinamento avanado em linux
19/62
- Home do usurio
Diretrio que pertence ao usurio, onde ele pode tudo. O comando cdisolado leva o usurio at este diretrio. Ao logar no sistema, o usurio cai tambm em seuhome.
- Adicionando um GrupoUm 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 alunosNo arquivo /etc/group ser adicionada uma entrada alunos, e ser dado um
GID (identificador de grupo) a este grupo.
- Adicionando um UsurioQualquer pessoa que for utilizar o linux deve necessariamente possuir um
usurio vlido na mquina. Lembrando que NO devemos utilizar o root a menos quenecessrio, esta tarefa importantssima mesmo para usurios caseiros.
Adicionando:useradd rodrigo -g alunos
Adicionamos o usurio rodrigo no grupo alunos. Observe que a opo -gnomegrupo 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 seradicionado 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 usurioNECESSARIAMENTE pertencer a algum grupo
- Senhas SHADOWO esquema de senhas chamado SHADOW foi criado devido ao fato de oLinux (e os Unix-Like da vida) utilizarem em suas senhas um mtodo de criptografiachamado DES (Data Encryption Standard). Este mtodo fraco (utiliza chaves de apenas64 bits) e pode ser facilmente quebrado (Veja o livro Cracking DES para entender melhorsobre este assunto). Como o arquivo /etc/passwd necessita ter permisso de leitura paratodos, qualquer usurio facilmente conseguiria obter a senha de ROOT do sistema.
Com isso criaram o SHADOW, onde as senhas criptografadas com o DESficam no arquivo /etc/shadow que s pode ser visto pelo root.
Sobra ento no arquivo /etc/passwd apenas um * ou ! no lugar da senhacriptografada do usurio.
8/3/2019 Treinamento avanado em linux
20/62
Todas as distribuies linux trazem o SHADOW por padro.
- Arquivo /etc/passwdEste 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 mquinaUID Identificador do usurio. O Linux utiliza este
nmero para dar ou tirar permisses. Pode ser repetidoentre usurios.
GID Identificador do grupo principal do usurio.Descrio Qualquer coisa, se for omitido, deve-se deixar
::. Geralmente coloca-se nome e cargo do usurioHome 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/RodrigoShell 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, comominha aplicao iria entrar na mquina? Este um caso.
- Arquivo /etc/groupSimilarmente ao /etc/passwd este arquivo possui as configuraes dos
grupos (o /etc/passwd possui dos usurios)
Sua sintaxe geral ::x::,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.
- Porque saber editar manualmente usurios e grupos?Esta uma pergunta bem simples, j que teremos de editar manualmente em
8/3/2019 Treinamento avanado em linux
21/62
diversas situaes onde desejarmos modificar opes de usurios e desejarmos fazeristo de uma forma rpida e segura.
Caractersticas da Shell BASH
O TAB completa, tanto comandos como nomes de arquivos ou diretrios,use-o.
Setas para cima e para baixo movimentam-no entre os comandos que jforam digitados.
Shift+PageUP sobe a tela.
Ctrl+D efetua LOGOFF.Cuidado!! O Linux FAZ DIFERENA ENTRE MAISCULAS EMINSCULAS.
Cuidado!! No existe UNDELETE no Linux porque seu sistema de arquivosse auto-defragmenta durante seu uso.
Shell Script
Um shell script nada mais do que se utilizar diversos comandosencadeados em um arquivo. Estes comandos sero executados na ordem em que foremvistos.
Use: sh arquivo para executar.#!/bin/bash
oDeve ser utilizado no incio dos shell scriptoIndica qual shell dever ser utilizada para a execuooNo necessriooCaso omitido, o script ser executado usando-se a shell que o
usurio estiver utilizando no momento.
If [ condicao ] then fioComando condicional, caso a opo for verdadeira ele executa o
que estiver entre o then e o fioOpcionalmente pode-se utilizar o else.oEx:
if [ $valor = "1" ]then
echo "Valor = 1 "echo " legal!" Ocorrer um erro, porque as "permitem que valores dentro dela sejam interpretados.
8/3/2019 Treinamento avanado em linux
22/62
Neste caso o ! ser interpretado como o operador NOTe causar um erro. Portanto deve-se utilzar queimpede que qualquer coisa seja interpretada.
elseecho Valor != 1 Agora esta certo
fiFor variavel in lista do done
oComando de loopoA varivel ir assumir a cada itereo do loop um valor da listaoEx:
for nome in Rodrigo Alberto Gilbertodo
echo $nome
doneoIr ter a sada:
RodrigoAlbertoGilberto
Script Adiciona 1000 usuriosCria-se um arquivo chamado /tmp/nomes.txtNeste arquivo coloca-se o nome dos 1000 usurios.Faz-se o seguinte script:
ofor user in `cat /tmp/nomes.txt`odo
useradd $userodone
Observe o cat /tmp/nomes.txt` no lugar da lista. A crase fazcom que o comando seja executado.
O comando CAT lista o contedo de um arquivo, no casonomes.txt que fica no lugar da LISTA.
A varivel user assume valor por valor desta lista a cada
iterao e utilizado o comando useradd para adicionar ousurio.Tambm pode ser escrito assim:
for user in `cat /tmp/nomes.txt` ; do useradd $user;done
Script Abrir Interface que EscolherLembre-se que o arquivo .xinitrc localizado no home do
usurio executado assim que a interface grfica abre.#!/bin/bashecho "Escolha a interface"
8/3/2019 Treinamento avanado em linux
23/62
echo " 1- KDE"echo " 2- Wmaker"echo " 3- Gnome"read ifaceif [ $iface = "1" ]then
kdeexit
fiif [ $iface = "2" ]then
echo "wmaker" > ~/.xinitrcfi
if [ $iface = "3" ]thenecho "gnome" > ~/.xinitrc
fistartx
OBS: Observe o echo "gnome" > ~/.xinitrc, utilizei ometaractere ~ para indicar o home do usurio, assim independente do usurio que executar,o script funcionar.
O comando exit serve para fechar o script, porque eu nodesejo que o startx seja executado caso kde tenha sido.
Coloquei um nico startx ao final do script, ao invs de um
por if. Utilizei o comando read para acessar um valor digitado pelousurio e armazenei este valor na varivel iface, que no precisa ser previamente declarada.
Aprofundando-se em SHELL Script
- CaseUsado quando se necessita de muitos Ifs.Funciona assim:
case $Varivel invalor) comando
comandocomando;;
valor2) comandocomando;;
*) comandocomando
8/3/2019 Treinamento avanado em linux
24/62
;;esac
Exerccio: Reescrever o script de abrir interface usando o case
- WhileFaz um loop que s sair quando encontrar o comando break ou a condio
for FALSA.Sintaxe:
while Condiodo
comandos
done
Ex:a=0while [ $a -le 10 ]do
echo $aexpr $a + 1
donePrimeiro 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 CUTEste 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:
8/3/2019 Treinamento avanado em linux
25/62
cat /etc/passwd |cut -f1 -d":"
Mas o que fizemos?Primeiramente listei o contedo do arquivo com o cat.Canalizei ele para o comando cut.-f1 Indica que quero o 1 campo. Nossa que primeiro campo?? Vou
especificar com o -d-d":" Indiquei que o que separa cada campo o caracterer dois pontos (:).
Exerccio: Escrever um script para acertar as permisses do HOME dos usurios.
DESAFIO:DESAFIO:DESAFIO:DESAFIO: Construir um script que faz o seguinte:
L um arquivo chamado LOGS.txt que possui a seguinte sintaxee ser criado a parte:
ArquivoDelog TAMANHOEx:
/log/tudo.log 10000Aps ler este arquivo, ele ir ser rodado via CRON (ver mais
adiante) e de tempos em temos ele ir checar os arquivos que
estiverem no arquivo LOGS.txt e seus respectivos tamanhos.Se o tamanho for atingido ou for passado, ele ir compactar oarquivo de log, gerando um chamadonomedoarquivo.log.DIAMESANO.tar.gz.
No nosso exemplo, o arquivo /log/tudo.log ao atingir o tamanho10000 ir ficar:
/log/tudo.log.19012002.tar.gzDia 19 de janeiro de 2002
Utilizando o VI
8/3/2019 Treinamento avanado em linux
26/62
Editando um texto: vi nomedoarquivo
vi +linha nomedoarquivo Abre direto nalinhaIndo para a ltima linha: :$Indo para a primeira linha: gg ou :1Indo para a ensima linha: :nRemovendo uma linha: ddRemovendo a partir da linha n at a tima: :n,$ dColocando nmero nas linhas: :set numberTirando nmero das linhas: :set nonumber
Substituindo linhas: :n,n2 s/palavraSerSubstituida/palavraVaiSubstituir/gSalvando: :w
Saindo e salvando: :xSaindo sem salvar: :q ou :q! caso tenha modificadoSalvando para outro arquivo: :w outroarquivoSaindo e salvando em outro arquivo: :x outroarquivoForar salvao: :x! til quando o arquivo est como ROInserir linha abaixo do cursor: oInserir linha acima do cursor: OInserir: [INSERT] ou iSubstituir: [INSERT 2x] ou rInserir no fim da linha: AInserir aps o cursor: aCopiar e colar linhas: y copia linha
P cola linha
8/3/2019 Treinamento avanado em linux
27/62
Entendendo o sistema de arquivos do Linux
Nome: ext2Caractersticas: 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: ext3Caractersticas: 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 asaber onde as coisas esto e a futuros administradores ou auxiliares acharem tudo nosistema.
O Linux possui uma estrutura muito bem organizada e realmente adevemos seguir.
Irei colocar cada um dos diretrios principais e o que neles devemconter:
/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 monta-lo como RO para evitar danos. A grande maioria dos aplicativos do sistema e instaladoscom ele ficam a partir deste diretrio.
/var Diretrio que contm arquivos variveis, tais como spool (filasde email, crontab, impresso) e logs. Este diretrio existe para que os arquivos que
8/3/2019 Treinamento avanado em linux
28/62
necessitem ser modificados fiquem nele e no no /usr, liberando assim sua montagem comoRO.
/root Alguns Unix-Like no o utilizam (utilizam /home/root). odiretrio 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 contminformaes muito pertinentes a performance tunning do sistema.
/tmp Diretrio que contm arquivos temporrios. Todos os usuriosnecessitam poder escrever neste diretrio (para gravar seus temporrios), no entanto um nopode apagar o temporrio do outro (se no teramos um problema), devido a isto estediretrio possui uma permisso especial, que possibilita escrever mas s apagar aquilo quefor 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 dosistema, antes de qualquer sistema de arquivos ser montado. As shells dos usurioscostumam ficar aqui tambm. Binrios de usurios devem ficar em /usr/bin.
/boot Contm a imagem do kernel e tudo o que for necessrio aoprocesso 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/montagemPonto de montagem: Diretrio que ser utilizado para acessar odispositivo.TipoFS: Tipo do sistema de arquivos do dispositivo, geralmente:
Vfat Fat32Msdos Fat16NTFS NTFS
Ext2 LinuxIso9660 CdromUmsdos 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.
8/3/2019 Treinamento avanado em linux
29/62
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 prpriaswap.
No arquivo /etc/fstab esto as informaes do que dever ser montadoautomaticamente no boot da mquina e algumas opes de dispositivos que so muitoacessados 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.
Sua sintaxe geral:
Dispositivo ponto de montagem FS opes OrdemBackup OrdemFSCK
Onde opes podem ser:AutoAsyncAtimeDev
ExecNoatimeNoautoNodevNosuidNouserRemountRoRwSuidSyncUserDefaults --> rw,suid,dev,exec,auto,nouser,async
Ordem Backup:Usado pelo comando dump para fazer backup do FS.Caso seja 0 no far backup.Nmeros 1 acima sero feito backups na ordem (1 primeiro e assim por
diante)Nmeros repetidos ser feito backup do que estiver primeiro no fstab.
Ordem FSCK:Usado pelo comando FSCK para checar o FS.
8/3/2019 Treinamento avanado em linux
30/62
Caso seja 0 no ser checado.Nmeros 1 acima sero checados na ordem (1 primeiro e assim por diante)Em caso de nmeros repetidos ser checado primeiro, o que aparecer antes
no FSTAB.
FDISK
Utilizado para se criar ou destruir parties. Observe que seuparticionamento SEMPRE destrutivo.
Uso: fdisk /dev/hdx X indica o HD e no a partioSer visto em aula suas opes:__________________________________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
FSCK
No se necessita passa-lo, j que o sistema o faz automaticamentequando 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 formatarDISQUETES.Use: fdformat /dev/fd0.Ele no ir criar um sistema de arquivos no disquete. Use o mkfs.
MKFS
8/3/2019 Treinamento avanado em linux
31/62
Utilizado para criar um sistema de arquivos.Perceba a necessidade de se especificar o sistema a ser criado e o fatode que o kernel DEVE suportar este sistema.Uso:mkfs -t tipofs /dev/dispositivoOnde tipofs um dos tipos j mencionado e dispositivo pode serqualquer dispositivo de armazenamento. Ex: fd0, hda1.
MKSWAP
Utilizado para se "formatar" uma swap. Gerar seu sistema dearquivos. Utilizamos ele assim:mkswap -c /dev/hdxyA 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/hdxyAlguns alunos mais "fuados" j tero visto:swapon -a
Que indica para se ativar a swap de todos os dispositivos deswap encontrados em /etc/fstab.
Lembre-se de adicionar a nova swap l para que no prximoboot 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 umapartio a parte para isto.
o caso da swap em arquivo. Sua desvantagem o fato deser 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=81392-) mkswap -c /swap3-) swapon /swap
Passo1: O comando dd "copia transformando". Ele foi utilizado para secriar o arquivo de swap sem contedo (/dev/zero) e com um tamanho equivalente a 8139blocos (8MB). Obviamente voc pode adeqar este tamanho para o que necessitar.
Passo2: Cria-se o sistema de swap neste arquivoPasso3: Ativa-se a swap deste arquivo.Use o comando free e voc ver que o espao de swap foi incrementado.
8/3/2019 Treinamento avanado em linux
32/62
Configurao e Instalao do Kernel
A grande caracterstica do Linux o fonte aberto, que facilita odesenvolvimento. Ele realmente est muito desenvolvido e constantemente so lanadosmuitas verses novas de seu ncleo.
Algumas destas novidades so importantes para ns e por isso desejamos atualizarnosso sistema. Mesmo que no queiramos atualizar, devemos no mnimo recompilar nossokernel que vem no sistema para que se adapte apenas a nossa mquina, fazendo assim uma
grande economia de memria e desempenho.O primeiro passo baixar o novo kernel.Faa isso acessando: www.kernel.org ou em caso
de pessoas de dentro da Unesp: ftp.feb.unesp.br/pub/Linux
oEntendendo o conceito de mdulos
O kernel do linux muito bem elaborado e projetado.Obviamente foi pensado em diversas possibilidades do uso de um
sistema operacional, como por exemplo o fato de no utilizarmos o cdrom 100% dosmomentos em que estamos no computador.
Se no assim, porque o suporte ao CD deve estar o tempo todo namemria, ocupando espao?
Com isto inventaram o conceito de mdulos, ou seja, quando o sistemaoperacional precisa, ele carrega o cdigo para memria, usa e descarrega.
oGerenciando Mdulos
Existem alguns comandos para o gerenciamento de mdulos dosistema operacional. So eles:
modprobe -l Lista os mdulos disponveismodprobe mdulo Carrega o mdulo na memriainsmod mdulo Carrega o mdulo na memria mas no checalsmod Lista os mdulos carregados
oAdicionando Suporte a um Novo Hardware
8/3/2019 Treinamento avanado em linux
33/62
Para isto, devemos recompilar nosso kernel
oPersonalizando o kernel (recompilando)
Aps baixar o arquivo do kernel, vamos supor chamado:linux-2.4.17.tar.bz2
Copie-o para /usr/src e entre neste diretrioMova o kernel antigo para outro nome (mv linux linux.old)Descompacte-o (veja compactadores nesta apostila).Move ele para um nome mais descritivo (mv linux linux-2.4.17)
Crie um link chamado linux (alguns aplicativos precisam)ln -s linux-2.4.17 linuxEntre no diretrio dos fontescd linuxInicie a configurao:make menuconfig Recomendado, pode ser make xconfig oumake config tambmEscolha o que deseja inserir (m para mdulo) e saia.make depmake cleanmake bzImage
make installmake modulesmake modules_installV para a raiz (cd /)Mova o arquivo vmlinuz (imagem do kernel) para o diretrio /boot Padro do FS do linuxMova o arquivo System.map para o diretrio /boot tambmEdite o lilo.conf para que o sistema boote pelo novo kernelDigite liloPRONTO!! Reinicie sua mquina.OBS: TODOS OS DETALHES SERO VISTOS EM AULA.
ATENTE-SE PARA CASO NO SEU SISTEMA J EXISTA O ARQUIVO/BOOT/VMLINUZ (FAA UM BACKUP DE SEGURANA E PREVINA ISTO NOLILO.CONF TAMBM).
O LILO.CONF SER EXPLICADO MAIS ADIANTE NESTAAPOSTILA.
8/3/2019 Treinamento avanado em linux
34/62
Ferramentas Bsicas de Rede
oIfconfig Este comando retorna informaes sobre as placas de rede(mesmo virtuais) e a interface lo.Ele pode ser utilizado para mudar informaes de rede assim:ifconfig interface ip netmask mascaraREDEEx:
ifconfig eth0 192.168.0.1 netmask 255.255.255.0
ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0Primeiro, dizemos que o ip de nossa placa ser 192.168.0.1 classe C.Depois, configuramos um ip virtual para esta placa tambm classe C.
oRoute Comando que gerencia a tabela de roteamentoesttica do Linux. Apenas iremos utilizar estecomando (em casos bsicos, claro, roteamentos maisavanados podem ser feitos, lembrando que ser umroteamento esttico e limitado. Veja: AdvancedRouting HOWTO para entender melhor o uso doiproute) para definir o gateway de nossa mquina:
route add default gw IPdoGATEWAY
Use: route -n para listar a tabela de roteamento.oNetstat Lista conexes ativas. Use netstat -na para
listar todas as conexes ativas e que esto escutando.oPing Famoso comando que utiliza o protocolo
ICMP para verificar o delay de uma mquina a outrana rede.
oTraceroute Comando muito utilizado para severificar o caminho efetuado por um pacote de umamquina a outra na rede.
oNslookup Retorna o nome da mquina a partir deseu nmero IP.
Use: nslookup IPUma opo interessante seria:
nslookup -type=mx ip Retorna o servidor de email destedomnio. Veja manual.
Editando os arquivos de configurao manualmente
8/3/2019 Treinamento avanado em linux
35/62
Esta parte do treinamento se torna um pouco mais complicada, devido ao fato de asmuitas distribuies existentes trabalharem diferentemente com os arquivos deconfigurao.
No Slackware esta tarefa muito mais simples, bastando editar-se o arquivo/etc/rc.d/rc.inet1. Neste arquivo, existem variveis com nomes bem demonstrativos quebastam ser colocados seus valores corretos para trabalhar perfeitamente. Preste ateno queestamos ensinando apenas com uma nica interface de rede, no cabendo a este treinamentoaprofundar-se no uso de duas. Caso seja da sua necessidade, por favor mande um emailpara [email protected] que no exitaremos emauxiliar-lhe.
No Conectiva Linux:Edite o arquivo /etc/sysconfig/network Variveis bem demonstrativasEdite o arquivo /etc/sysconfig/network-scripts/ifcfg-eth0 Variveis bem
demonstrativas.Estes dois scripts servem para setarmos o IP, GATEWAY e NOME damquina. Observe que ifcfg-eth0 se trata da primeira interface, setivssemos um ifcfg-eth1 seria a segunda e assim por diante.Podemos tambm setar uma virtual com ifcfg-eth0:0.Caso queira setar um ip virtual, apenas copie o ifcfg-eth0 para ifcfg-eth0:0 eedite suas opes.Aps as alteraes, faa ifdown eth0 e ifup eth0 para que elas sejamvalidadas.
Agora as opes so vlidas para todas as distribuies:
Arquivo /etc/hosts
Este arquivo contm os nomes de hosts conhecidos da mquina e queno seriam necessrios checar o servidor de DNS.
muito til. Sua sintaxe :IP FQDN APELIDO
Para quem no sabe, FQDN seria o nome completo da mquina, coma seguinte sintaxe:
NOMEMQUINA.NOMEDOMNIO.DOMNIOPRIMEIRAGRANDEZA.Ex:
www.firewalls.com.br | | | || | DOMNIO PRIMEIRA GRANDEZA| || NOME| DOMNIO
8/3/2019 Treinamento avanado em linux
36/62
NOMEMQUINA
Um exemplo da sintaxe do arquivo /etc/hosts seria:
200.158.118.169 www.firewalls.com.br web
Quando fizermos por exemplo, ping web, automaticamente minha mquinasaber que WEB seria a mquina com ip 200.158.118.169.
Arquivo /etc/resolv.confEste arquivo contm o nome do domnio que nossa mquina pertence e os
servidores DNS de nossa mquina.
Um exemplo deste arquivo seria:
domain firewalls.com.br Domnio firewalls.com.brnameserver 200.158.118.169 DNS primrio
nameserver 200.206.116.2 DNS secondrionameserver 200.145.150.1 DNS tercirionameserver 200.145.160.1 DNS quaternrio
Arquivo /etc/host.conf
Define a ordem de resoluo de um HOSTNAME, ou seja, se primeiro osistema deve procurar o nome de hosts no arquivo /etc/hosts ou se deve requisitar aoservidor de DNS.
Um exemplo deste arquivo:
order hosts,bind Primeiro v o arquivo hosts depois o DNSmulti on Permite mais de um endereo por host no
arquivo /etc/hosts
Adio de ROTAS
Recomendo SEMPRE utilizar o comando route.
8/3/2019 Treinamento avanado em linux
37/62
Configurando sua placa de REDE
Obviamente este seria o primeiro passo, mas como ele genrico a todas asdistribuies quis coloca-lo aqui primeiro, onde o aluno j estar familiarizado com asconfiguraes de rede do linux.
1-) Adicione suporte a sua placa de rede no kernel (recompilar), geralmenteadicionamos como mdulo, mas no necessariamente.
2-) Edite o arquivo /etc/modules.conf. Este arquivo contm configuraeslidas antes de se carregar qualquer mdulo no kernel.
3-) Coloque a seguinte linha:
alias eth0 nomemduloPara a segunda placa, coloque alias eth1 nomemdulo e assim pordiante para outras placas de rede.
Perceba que o nome do mdulo apenas seu nome, sem extenso .oou seu caminho no sistema.
Um exemplo seria:alias eth0 dmfealias eth1 rtl8139
Ok, tudo pronto, agora basta testar.
Primeiramente de um ping em seu GATEWAY (definido com o comando route).
Caso no responda cheque novamente as rotas, digite ifconfig para ver se a placa derede est no ar.Se tudo parecer correto mas continuar sem responder, verifique o cabo de rede.
Compactadores e Empacotadores de Arquivos
Tpico importantssimo para a utilizao de qualquer sistema operacional,compactadores e empacotadores so SEMPRE utilizados na internet para diminuir o
tamanho de arquivos (transferncias mais rpidas) e unir diversos arquivos em um nico.Compactador Diminui o tamanho de um arquivo. Arquivos texto so
mais facilmente compactados e tendem a diminuir entre 60 e 70% de seu tamanho.Empacotador Une diversos arquivos ou diretrios em um nico. Os
usurios no lidam muito com este termo, j que no sistema operacional concorrente oscompactadores so tambm empacotadores.
oGziptimo compactador.Para utilizar:
8/3/2019 Treinamento avanado em linux
38/62
gzip arquivoAcompactarO arquivo ser substitudo pelo mesmo nome mas com extenso .gz, que
indica que ele foi compactado com o gzip.Para descompactar:
gzip -d arquivoAdescompactar.gzgunzip 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
oBzipCompactador mais atual e mais eficiente que o GZIP. No est sendo
muito utilizado e atualmente est na verso 2.Use:
bzip2 arquivoAcompactarEste arquivo ser substitudo por um com o mesmo nome e extenso
.bz2.Para descompactar:
bunzip2 arquivoAdescompactar.bz2
bzip2 -d arquivoAdescompactar.bz2As 2 opes so iguais.
oCompressMuito antigo, mas ainda hoje encontramos uso deste compactador.Para compactar:
compress arquivoAcompactarSer gerado um arquivo com a extenso .ZPara descompactar:
Uncompress arquivoAdescompactar.ZoTar
Praticamente um MITO do mundo UNIX. Este excelente empacotadorserve para a criao de BACKUPs, tendo muitas e muitas opes.Veremos aqui as mais importantes, tais como as opes de criao de umarquivo empacotado e j compactado (utilizando gzip, bzip2 oucompress).Criando um arquivo .tar:
tar cvf nome.tar ArquivosouDiretoriosATARGIARVoltando um arquivo .tar:
tar xvf nome.tarCriando um arquivo .tar.gz:
8/3/2019 Treinamento avanado em linux
39/62
tar zcvf nome.tar.gz ArquivosouDiretoriosATARGZIPARVoltando um arquivo .tar.gz:
tar zxvf nome.tar.gzCriando um arquivo .tar.bz2:
tar Icvf nome.tar.bz2 ArquivosouDiretoriosATARBZIPAR Conectiva 6tar jcvf nome.tar.bz2 ArquivosouDiretoriosATARBZIPAR Conectiva 7tar ycvf nome.tar.bz2 ArquivosouDiretoriosATARBZIPAR Slackware
Voltando um arquivo .tar.bz2:tar Ixvf nome.tar.bz2 ArquivosouDiretoriosATARBZIPAR Conectiva 6tar jxvf nome.tar.bz2 ArquivosouDiretoriosATARBZIPAR Conectiva 7tar yxvf nome.tar.bz2 ArquivosouDiretoriosATARBZIPAR Slackware
Existem muitas outras opes do TAR. Veja o manual para maioresinstrues.
Agendamento de Tarefas
O agendamento de tarefas faz parte do dia-a-dia dos administradores desistemas. Sempre necessrio automatizar as tarefas. Isto ns aprendemos atravs dacriao de scripts. Mas nossos scripts muitas vezes necessitam ser executados de tempos
em tempos. Como fazer isso? Programando sua execuo. Utilize o cron e o at para isto.
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:00horas 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 -eSer aberto o editor vi, editando o arquivo correto. Ali dentro, siga a
seguinte sintaxe (uma por linha):MinutoHoraDiadomesMesDiadasemana comandoEx: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:
8/3/2019 Treinamento avanado em linux
40/62
CampoValorIntervalo1Minutos0 a 592Hora0 a 233Dia do ms1 a 314Ms1 a125Dia da semana0 a 6 (0=domingo)6Comando a ser executado-No nosso exemplo, ocomando ls ser executado exatamente a meia noite em ponto (0 horas e 0 minutos) todosos dias. O * significa todos os valores possveis.
oAt
Agendamento de tarefas a serem executadas uma nica vez. Por exemplo,uma tarefa que necessite ser executada hoje a meia noite.
Uso:at hora -f arquivoEx:at midnight -f /root/Instalados/logrotate.shUtilize o atq para visualizar as tarefas agendadas e atrm numeroDatarefa para
desagendar uma tarefa.
Entendendo o Super Daemon Inetd
A funo do inetd a de economizar memria. Como? Imaginemos umservidor ftp que no recebe muitas requisies, digamos umas 5 por dia, por exemplo.
Este servidor ftp fica o tempo todo na memria da mquina, ocupando umespao que no necessrio. No entanto, poderia haver alguma maneira de fazer com queeste servio no ficasse no ar o tempo todo, apenas quando necessrio.
Da surgiu o inetd. Ele fica no ar, esperando conexes para os mais diversosservios (configurados em /etc/inetd.conf). Quando a conexo chega, ele apenas repassapara o servio especfico.
Infelizmente, como inconveniente temos o fato de que ser necessriocarregar o servio para a memria, o que torna o processo mais lento.
o/etc/inetd.confSua sintaxe :ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
8/3/2019 Treinamento avanado em linux
41/62
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 esperandoroot Rodar como usurio root
/usr/bin/tcpd in.ftpd -l -a Programa a ser chamado e seus parmetros
o/etc/hosts.allowObserve no exemplo acima, que o programa a ser chamado TCPD.
Este o programa que chamamos de TCP Wrappers. Como parmetro passado o servio aser protegido, no caso in.ftpd.
TCP Wrappers implementa um controle de acesso aos servios querodam 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 FTPAll:200.158.118.169 Libera tudo para a mquina 200.158.118.169
o/etc/hosts.denyNeste arquivo proibimos os servios. Sua sintaxe igual a do
arquivo /etc/hosts.allow.
Configurando o boot da mquina: /etc/lilo.conf
Lilo (LInux LOader) o gerenciador de boot mais utilizado e antigo nosistema operacional Linux.
Atualmente temos tambm ganhando muito prestgio o chamado GRUB.Um exemplo de sua configurao seria:
boot=/dev/hda HD em que o LILO ser instaladomap=/boot/map Mapa do HDinstall=/boot/boot.b Geometria do HD
8/3/2019 Treinamento avanado em linux
42/62
prompt Exibir o prompt do lilotimeout=50 5 segundos de esperaimage=/boot/vmlinuz-FwSec-1.0 Imagem do kernel a ser carregadalabel=linux Quando for escolhido o nome linuxroot=/dev/hdb1 Partio raiz = /dev/hdb1read-only Monta-se como ROpassword=teste Necessita-se digitar a senha TESTEother=/dev/hda3 Na partio /dev/hda3label=outroSO Ser carregado caso outroSO seja escolhido
Instalao e compilao de aplicativos
No Linux a grande maioria dos aplicativos sero encontrados em seu estadonatural, ou seja, em cdigo fonte, geralmente na linguagem C.
Nesta parte do treinamento aprenderemos como compilar tais aplicativos etorn-los executveis.
Sempre leia o arquivo README e/ou INSTALL.Geralmente fazemos apenas:
./configuremakemake install
oO gccEm 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 automticosPara compilar um programa em C, use:gcc arquivo.c -o arquivoBinrioAserGerado
oO comando ./configureA grande maioria dos aplicativos possui uma opo de configurao que se
trata do comando ./configure. Este comando faz com que a aplicao verifique todas asnecessidades para a compilao de um programa, tais como bibliotecas e outros aplicativose o sistema operacional em uso. Geralmente podemos utilizar ./configure -
8/3/2019 Treinamento avanado em linux
43/62
prefix=/dir/a/ser/instalado para especificar um diretrio onde a aplicao dever serinstalada.
Observe atentamente possveis erros aqui, como a falta de bibliotecasinstaladas no sistema.
Quando falta uma biblioteca, devemos instal-la antes de prosseguir.Para isto, basta acessar www.freshmeat.net e
procurar pela biblioteca faltante.Ao baix-la, descompact-la e entrar no diretrio, dando ./configure.Aps isto, make e make install.Verificar se o diretrio em que a biblioteca foi instalada est em
/etc/ld.so.config, caso no esteja, inserir.Aps isto, digite ldconfig.
oMdulos do perlPerl uma grande linguagem de programao e muitas aplicaes
necessitaram dele. Ele funciona modularizado (assim como o kernel do Linux). Parainstalar um novo mdulo, entre no diretrio do mesmo e digite:
perl Makefile.plmakemake install
oO comando makeO comando make l as instrues de um arquivo Makefile no diretriocorrente e atravs destas, compila um programa com cdigos separados ecom as opes do compilador que se fazem necessrias. Aps o./configure a grande maioria das aplicaes pedem o make.
oO comando make install
Este comando apenas copia os binrios gerados pelo comando make paraseus respectivos locais dentro do sistema.
oQuando ocorrem os problemas...Problemas ocorrem quando estamos fazendo algo errado. Tem certeza
que leu o arquivo README e INSTALL e l no fala nada de diferente para a instalao??Sim?
8/3/2019 Treinamento avanado em linux
44/62
Ok, ento verifique as dependncias, ou seja, verifique se no faltamaplicativos ou bibliotecas, lembre-se de sempre ver as mensagens de erro que aparecem,tanto no configure quanto no make.
Dificilmente uma aplicao conter erros e estar disponvel paradownload, mas muitas vezes ser necessrio modificar alguma opo no compatvel com oseu sistema. Verifique os erros de compilao e baseado em conhecimento de programao(caso voc no tenha, ou pea para quem tem ou tente baixar outra verso ou j binrio)tente arrumar.
oGerenciamento de pacotes RPMOs pacotes RPM foram inventados pela RedHat Linux e fazem parte do
projeto de desmistificao do Linux, tornando-o um sistema operacional mais facilmente
gerencivel e acessvel a usurios caseiros.Os pacotes possuem extenso .RPM e so pr-compilados (no estamos
falando dos SRPMs).Instalando
Para instalar um pacote RPM faa:rpm -ivh pacote.rpm
RemovendoPara remover um pacote RPM faa:
rpm -e nomedopacoteAtualizando
Para atualizar um pacote RPM faa:rpm -uvh pacote.rpmPesquisando
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 poderamosutilizar diretamente rpm -q nome.A sada do rpm -qa o que deve ser utilizado pelo rpm -e quandose deseja excluir um pacote
8/3/2019 Treinamento avanado em linux
45/62
Erros ComunsFalha nas Dependncias:
Falta algum aplicativo que este precisa para instalar. Casovoc tenha instalado tal aplicativo, mas o sistema no estejareconhecendo (voc no instalou como RPM), use a opo -nodeps.Pacote mais atualizado j instalado:
Quando voc tenta instalar um pacote mais antigo do que umj instalado, utilize a opo -oldpackage para forar a instalao.Pacote j instalado:
Quando voc deseja instalar um pacote j instalado (talvez oque esteja instalado esteja com problemas), utilize a opo -replacepkgs.
Arquivos conflitam:Isto acontece quando um pacote que est sendo instalado irsubstituir um arquivo existente. Nestas ocasies use a opo -replacefiles.Opo -force:
Une -oldpackage + --replacepkgs + --replacefiles.
Configurando o NFSNetwork File System (NFS) consiste em um servio muito utilizado no
mundo UNIX e obviamente portado para o Linux para o compartilhamento de arquivos emrede.
Ele permite se acessar uma mquina remota, montando-a em sua prpriacomo um dispositivo qualquer, permitindo assim um acesso simples, como a um diretriolocal.
oEscolhendo os diretrios a compartilharOs diretrios que desejarmos compartilhar devem ser mencionados no
arquivo /etc/exports.A sintaxe deste arquivo segue o seguinte exemplo:
/home/focker 192.168.0.*(ro)Primeiramente temos o diretrio a ser compartilhado: /home/fockerMquinas que podem acessar o compartilhamento:192.168.0.* --> ClasseCPermisses de acesso: ro --> Somente LeituraObserve que por mais que voc compartilhe com permisses de leitura e
escrita (rw) necessrio que no sistema de arquivos local, tal permisso tambm seja dada atodos no sistema, isto devido ao fato de que as permisses do sistema local sobressaem-sesobre as do NFS.
oAtualizando tabela de arquivos compartilhados
8/3/2019 Treinamento avanado em linux
46/62
Para atualizar a tabela de arquivos compartilhados devemos utilizar ocomando exportfs -a.
oPortmapServio 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 estrodando, esta a funo do Portmap.
oAcionando o PortmapPara 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 startoAcionando o NFS
Aps todas estas configuraes feitas, deve-se acionar o NFS. Chame-o nalinha de comandos (nfsd).
No Conectiva:cd /etc/rc.d/init.d./portmap start
oVerificando arquivos compartilhados pela mquinaPara verificar quais arquivos esto sendo compartilhados por uma
mquina, faa: showmount -e IPNo caso de voc estar na mquina que voc quer ver, apenas faa
showmount -e.oVerificando clientes que esto acessando os arquivos
compartilhadosPara se verificar quais clientes esto acessando a mquina, faa:
showmount IPCaso voc esteja na mquina, faa apenas showmount.
SAMBA
Samba como todos devem saber um sistema integrado para Linux que faz com queeste suporte o protocolo NetBEUI, classicamente utilizado pelos produtos Microsoft
8/3/2019 Treinamento avanado em linux
47/62
Entendendo o Funcionamento do NetBIOS
Os aplicativos de impresso e compartilhamento de arquivos so baseados noNetBIOS (network basic input output system). O BIOS define a interface de aplicaespara solicitar servios de I/O no DOS. O NetBIOS extende esta interface at os servios derede.
A evoluo do NetBIOS fez com que funcionasse sobre o TCP/IP e fosse divididoem em partes.
No nos aprofundaremos no estudo deste protocolo e sim como fazer com que oLinux se comunique com as mquinhas Windows em uma rede.Entendendo o Funcionamento do Samba muito importante lembrar que o programa se chama SAMBA devido ao nome dado a
uma das partes do NetBIOS: SMBPara entendermos melhor o funcionamento do Samba, precisaremos saber um pouco
mais sobre o NetBIOS.Ele precisa mapear os nomes dos computadores NetBIOS para um endereo IP, para
isto, o NetBIOS possui 3 modos:Via BroadcastVia lmhosts
Via um servidor de Nomes NetBIOS
Configurando um servidor SAMBA
Neste treinamento no iremos nos aprofundar no funcionamento de servidores denomes NetBIOS, nem em opes mais avanadas do SAMBA, nos prendendo mais a partede compartilhamento de arquivos propriamente dita.
A configurao do Samba muito simples e se baseia exclusivamente em umarquivo de configurao: smb.conf
Vejamos aqui um exemplo da seo principal deste arquivo:
[global] --> Indica as configuraes vlidas para todoshosts allow = 192.168.0. --> A rede 192.168.0.0 tem permisso de acessar
workgroup = windows --> Nome do Workgroup que deve ser colocadonas estaesnetbios name = server --> Nome NETBIOS do Servidor SAMBAserver string = Firewalls Samba Server --> String de Apresentaosecurity = share --> Especifica que a segurana esta no
compartilhamento
log file = /log/samba/%m.log --> Ser criado um arquivo de log com o nome damquina.log para cada mquina que acessar o
servidor samba. Este arquivo ser criado em/log/samba. Observar que %m uma varivel. Ela
8/3/2019 Treinamento avanado em linux
48/62
que ser substituda pelo nome da mquina queestiver acessando o compartilhamento.
guest account = nobody --> Permitir acesso a usurios no autenticados
Compartilhando Diretrios atravs do SAMBA
Como pudemos perceber na seo global de nosso arquivo smb.conf, no est sendoespecificado nenhum diretrio que ser compartilhado.
Iremos fazer isso agora:
[public] --> Nome do compartilhamentocomment = Espaco Publico --> Comentrio para este compartilhamento
brownseable = yes --> Poder ser visto por todoscreate mode = 0777 --> Ao ser criado, a permisso ser 0777directory mode = 0777 --> Mesmo para as permisse de diretriopath = /home/Backups --> Localizao do diretrio compartilhado
no sistemapublic = yes --> Este diretrio tem acesso pblico, todos
podem acess-loonly guest = yes --> Usurios no autenticados iro acessar
diretrioread only = no --> No est somente para leitura
Esta configurao acima um exemplo sutil de um compartilhamento aberto paratodos os indivduos que desejarem acessar.
Agora, caso se deseje algo mais restrito, poderamos ter compartilhamentosbaseados em usurios (usurio + senha):
[rodrigo] --> Nome do compartilhamentocomment = Diretorio Rodrigo --> Comentriobrownseable = yes --> Poder ser vistocreate mode = 0770 --> Mscara da criaodirectory mode = 0770 --> Mscara de diretrios
path = /home/rodrigo --> Localizao na mquinavalid users = @rodrigo --> Usurios que podem acessarread only = no --> Pode-se escrever
Existem diversas configuraes avanadas que se podem fazer atravs do samba,que sero vistas mais adiantes neste treinamento.
Obviamente devido a escassez do tempo, muitas delas sero deixadas para que oaluno aprenda sozinho. O principal do caminho lhes ser fornecido.
Acessando arquivos compartilhados atravs do Linux
8/3/2019 Treinamento avanado em linux
49/62
Obviamente os usurios Linux tambm iro querer acessar dados compartilhadospelas mquinas Windows (ou servidores SAMBA).
Nestes casos, temos trs opes:Utilizar o SMBClientUtilizar o SMBMount
Utilizar o comando mount -t smbfs
A terceira opo chama a segunda quando executada no sistema, portanto noiremos explic-la.
Nenhuma das duas opes necessitam configuraes da mquina Linux queacessar os compartilhamentos.
Basta fazer:smbclient \\\\servidor\\compartilhamento -U
ou
smbmount \\\\servidor\\compartilhamento username=A grande diferena entre as duas opes anteriores est no fato do SMBMOUNT
criar um ponto de montagem para o compartilhamento remoto, permitindo assim que oacessemos como um diretrio local, enquanto o smbclient possui um cliente especfico.
Fazendo uma mquina Windows se autenticar no Linux
Chegamos a parte mais complexa de nosso pequeno estudo sobre o SAMBA.Devido a grande demanda de servios pedido para diversos consultores do mercado,
relativos a utilizao de um servidor SAMBA (em linux) para fazer a autenticao ecompartilhamento dos dados para uma rede windows, estaremos ensinando como executartal servio.
Nesta etapa do treinamento, seu instrutor e voc j montaram um servidor SAMBAem Linux, o acessaram atravs de outro Linux, e com mquinas no mesmo workgroup,trocaram arquivos entre Windows e Linux.
Agora iremos para a parte mais interessante, como fazer estas mquinas Windowsse autenticarem e execurarem scripts de LOGON que esto no nosso sistema Linux.
A primeira etapa envolver a configurao dos clientes Windows:- Entre no Registro- Siga at o seguinte item:
/HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/VxD/VNETSUP - Crie uma chave com o nome: EnablePlainTextPassword- E com contedo: 1
Isto foi feito para habilitar senhas em texto puro no sistema Windows, j que eleutiliza um esquema de criptografia diferente de nossas mquinas Linux.
Obviamente isto gera um certo grau de periculosidade em redes, portantorecomendamos fortemente o estudo de implementaes SAMBA com criptografiahabilitada.
- Agora, nas propriedades do ambiente de rede, escolha a opo de Clientede Redes Microsoft.
8/3/2019 Treinamento avanado em linux
50/62
- Na aba apropriada escolha a opo de efetuar logon em um domnio NT.- Coloque o nome do Workgroup.
Pronto, sua mquina Windows est pronta, vamos para a parte mais gostosa,configurar nosso servidor Linux!
Criemos o compartilhamento NetLogon, onde ficaro nossos scripts de logon:
[netlogon]
comment = Network Logon Service
path = /home/Samba/netlogon
public = no
writable = no
browsable = no
Feito isso, iremos ter de alterar e acrescentar algumas opes em nossa seo globaldo arquivo smb.conf:
domain logons = yes --> Indica que ser servidor de LOGONsecurity = user --> Segurana para usuriosdomain master = yes --> Ser o mestre do domniopassword level = 5 --> Senhas de no mnimo 5 dgitosusername level = 5 --> Usurios com no mnimo 5 letrassmb passwd file = /home/Samba/private/smbpasswd--> Arquivo de senhaslogon script = %m.bat --> Script de logon
Vejamos alguns detalhes deste arquivo acima.
Estamos especificando um arquivo de senhas, portanto devemos cri-lo, mas antestemos de saber que o usurio a ser criado no SAMBA deve existir no sistema.
Para criarmos tal usurio, fazemos:smbpasswd -a
Ser solicitada a senha do usurio.Caso se deseje modificar, use smbpasswd (sem a opo -a)
Como podemos perceber a senha para o sistema e para o SAMBA ser diferente.
Aps termos criado este arquivo de senhas, devemos nos atentar para a TAG logonscript = %m.bat
Ela ir procurar o script de logon no diretrio netlogon que criamos no sistema.
O arquivo ter o .bat
8/3/2019 Treinamento avanado em linux
51/62
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 delogon por usurio especfico.
Claro, tambm poderamos simplesmente colocar o nome do script, sendo este nicopara 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 selogando com a hora de nosso servidor, facilitando assim o monitoramento das atividadesdos usurios.
O segundo comando mapeia o compartilhamento pblico que criamos para o R: dousurio que est se autenticando.
Configurando o SSHD
O SSH veio para substituir as fraquezas encontradas com o TELNET. Elefornece recursos para administrao remota criptografada.
Seu arquivo de configurao comumente fica em /etc/ssh/sshd_config epara 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.
oRetirando a compatibilidade com a Verso 1 importante atentarmos para isto, j que tal compatibilidade possua uma
vulnerabilidade em algumas verses do OpenSSH.Mude a linha:
Protocol 2,1 do arquivo de configurao para Protocol 2
oRetirando o uso da diretiva UseLoginA diretiva UseLogin tambm possua vulnerabilidade em algumas verses
do OpenSSH, portanto convm desabilit-la (atente que esta vem desabilitada por padro).Para isto, basta alterar:
8/3/2019 Treinamento avanado em linux
52/62
UseLogin yes para UseLogin no
oAumentando a chave criptogrficaVoc pode querer aumentar o tamanho da chave criptogrfica a ser
negociada com o servidor. Para isto basta alterar a diretiva:ServerKeyBits 624
Para:ServerKeyBits 2048 por exemplo, como eu costumo recomendar.
Deixe pelo menos 1024 bits de chave criptogrfica.
oPermitindo ao root se logar remotamente
Isto no nem um pouco recomendado, mas no sei por qual motivo insanovoc pode necessitar disto, portanto ensinarei aqui.
Lembre-se voc pode logar-se remotamente com um usurio e utilizar o supara se tornar root.
Caso deseje se logar diretamente como root, use a diretiva:PermitRootLogin yes
Configurando o ProFTPdEu 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 grandenfase em segurana.
Abaixo coloco um exemplo de um arquivo de configurao do proftpd eexplico suas diretivas mais importantes.
Preste ateno que o proftpd possui MUITOS recursos. Para conhecertodos eles, acesse o site www.proftpd.org e veja o manual.
O proftpd l os arquivos /etc/hosts.allow e /etc/hosts.deny assim como oTCP Wrappers.
Arquivo: /etc/proftpd.conf
ServerName "Firewalls Security FTP Server" Nome do servidorServerType standalone Tipo: pode ser standalone ou inetd para rodar sob o inetdDefaultServer onPort 21 Escutar na porta 21Umask 022MaxInstances 30
8/3/2019 Treinamento avanado em linux
53/62
User nobody Rodar com permisses do usurio nobodyGroup nobodyRootLogin no No permitir o root se logar via ftpDisplayConnect /etc/welcome.FTPServerIdent on "Bem Vindo"
AllowOverwrite on Permite sobrescrever arquivos em qualquer diretrio Usurio anonymous cair no home do usurio ftp
User ftp Logar como usurio ftpGroup ftpUserAlias anonymous ftp Permite entrar com user=anonymous que virar ftpMaxClients 10 Mximo de conexes annimas permitidas
Deny All No permite nenhum usurio anonymous escrever no sistema
Configurando o BIND
oEntendendo o DNSNa 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 comunicaoentre 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 estaconsulta um nvel acima at chegar no servidor que seja o real responsvel.
8/3/2019 Treinamento avanado em linux
54/62
oConfigurando uma Zona de ExemploVamos iniciar a configurao de um servidor DNS de exemplo.Primeiramente devemos conhecer o domnio que queremos configurar.Como exemplo, configuraremos o domnio firewalls.com.br.
Edite o arquivo /etc/named.conf:options { Opes globais
directory "/etc/named". Os arquivos ficaro em /etc/named};zone "firewalls.com.br" { Domnio firewalls.com.br
type master; DNS masterfile "firewalls.named"; Arquivo /etc/named/firewalls.named
};zone "118.158.in-addr.arpa" { Zona Reversatype master; DNS masterfile "firewalls.rev"; Arquivo /etc/named/firewalls.rev
};zone "." { Zona . (Primeira hierrquia=
type hint; Tipo HINT (root servers)file "named.ca"; Arquivo que j vem padro (root servers)
};zone "0.0.127.in-addr.arpa" { Zona reversa do localhost
type master; Servidor DNS master
file "local.rev"; Arquivo /etc/named/local.rev};
oConfigurando uma Zona Reversa de ExemploArquivo /etc/named/local.rev:$TTL 24h ; tempo que permite outros DNS fazerem cache@ IN SOA localhost. root.localhost. {
1 ; para servidor slave28800 ; ciclo de atualizao do slave14400 ; ciclo de tentativas do slave antes da prxima em caso de
erro3600000 ; tempo limite para que o slave passe a responder86400 } ; TTL padro do domnio
IN NS localhost. ; DNS do domnio ser LOCALHOST
1 IN PTR localhost. ; IP 1 host localhostArquivo /etc/named/firewalls.rev:$TTL 24h ; tempo que permite outros DNS fazerem cache@ IN SOA ns.firewalls.com.br. root.firewalls.com.br. {
1 ; para servidor slave28800 ; ciclo de atualizao do slave
8/3/2019 Treinamento avanado em linux
55/62
14400 ; ciclo de tentativas do slave antes da prxima em caso deerro
3600000 ; tempo limite para que o slave passe a responder86400 } ; TTL padro do domnio
IN NS ns.firewalls.com.br. ; DNS do domnioIN NS nss.firewalls.com.br. ; DNS reserva
1 IN PTR ns.firewalls.com.br.2 IN PTR nss.firewalls.com.br.3 IN PTR pop.firewalls.com.br.4 IN PTR email.firewalls.com.br.10 IN PTR gateway.firewall.com.br.
oOs arquivos de ZonasArquivo /etc/named/firewalls.named:
@ IN SOA ns.firewalls.com.br. root.firewalls.com.br.1 ; para servidor slave28800 ; ciclo de atualizao do slave14400 ; ciclo de tentativas do slave antes da prxima em caso de
erro3600000 ; tempo limite para que o slave passe a responder86400 } ; TTL padro do domnio
IN NS ns.firewalls.com.br.IN NS nss.firewalls.com.br.IN MX 10 pop.firewalls.com.br. ; precedncia 10 de emailIN MX 20 email.firewalls.com.br. ; precedncia 20 de email
; quanto menor a precedncia maior a preferncians IN A 200.158.118.1nss IN A 200.158.118.2pop IN A 200.158.118.3email IN A 200.158.118.4gateway IN A 200.158.118.10localhost IN A 127.0.0.1
Configurando o Apache
oSobreO apache pode ser encontrado em www.apache.org e um servidor WEB muito poderoso egratuito.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 acomprovao de sua extrema segurana.
8/3/2019 Treinamento avanado em linux
56/62
oPorque utiliz-loRobustoSeguroRpidoFlexvelAdministrvelCheio de recursos e opesFcil configurao
oExemplo de configurao
Aqui forneo um exemplo de configurao do Apache e explico ospontos mais importantes.
# Configuraes PrincipaisPort 80 Servidor Roda na Porta 80User nobody Roda com permisses do user nobodyGroup nobodyServerType standalone Roda standalone e no sob inetdServerRoot /etc/httpd Arquivos do servidor esto em /etc/httpdMinSpareServers 2 Mnimo de 2 servidores ativos (e sem conexo)MaxSpareServers 4 Mximo de 4 servidores ativos (e sem conexo)StartServers 2 Inicia 2 servidores no comeoMaxClients 150 Mximo de 150 conexes
# Mdulos (apenas um exemplo, o servidor no funcionar se no# forem declarados outros mdulos necessrios)LoadModule php4_module modules/libphp4.so Identifica mdulo php4 Se for definido SSL (httpd -DSSL)
LoadModule ssl_module modules/libssl.so Identifica mdulo sslClearModuleList Limpa lista de mdulos carregados
AddModule mod_php4.c Carrega (insere) mdulo no apacheAddModule mod_ssl.c
# Hosts VirtuaisNameVirtualHost www.firewalls.com.br Caso uma
conexo chegue sem o nome de destino,o default ser www.firewalls.com.br
HostVirtual www.firewalls.com.br
8/3/2019 Treinamento avanado em linux
57/62
DocumentRoot /home/httpd/firewalls Documentos se encontram em...ServerName www.firewalls.com.br Nome
do servidor a ser apresentadoServerAdmin [email protected] Email
do administrador, caso algum erroocorra
DocumentRoot /home/httpd/tcpdumpServerName www.br.tcpdump.org ServerAdmin [email protected]
# Diretrios Diretrio /home/httpd/firewallsOptions Indexes FollowSymLinks Includes ExecCGI Opes de acesso ao
diretrioAllowOverride None No permite ser sobreposto pelo arquivo .htaccessOrder allow, deny Ordem de permissoAllow from all Permite todos
Options Indexes FollowSymLinks Includes ExecCGIAllowOverride None
Order allow, denyAllow from all
# Arquivos Arquivos nomeados .htaccess
Order allow, denyDeny from all
# Logs
ErrorLog /log/apache/ApacheError.log Log de Erros do ApacheLogLevel warn Logs no nvel de Alerta (normal)AccessLog /log/apache/ApacheAccess.log Logs de Acesso do Apache
# Opes DiversasUserDir web Diretrio nos homes dos usurios que armazenam suas
pginas, ser acessado assim: ww.servidor.com.br/~usuario
8/3/2019 Treinamento avanado em linux
58/62
DirectoryIndex index.html index.htm index.php Estes arquivosso os ndices das pginas
AccessFileName htaccess Opes de acesso tambm so encontradas no arquivo.htaccess
HostnameLookups Off No transforma Ips em NomesAlias /focker /home/httpd/firewalls/focker Apelido para /focker
# Locations Caso acessem www.servidor.com.br/focker
Order deny,allow Ordem de permissoDeny from all Probe todosAllow from localhost Exceto da mquina local
SeguranaoQuesitos para um sistema seguroMuitas 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 seguranaIsto 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 destetreinamento.
E vale sempre lembrar:DESABILITE tudo que no for necessrio!!!
oOnde se atualizarA 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 decomunicao 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:
8/3/2019 Treinamento avanado em linux
59/62
www.firewalls.com.br/mailman/listinfo/seguranca
oMontando um firewall linuxEntendendo o iptables
Netfilter e as iptables so a mais nova inovao em Firewallpara Linux. Finalmente diversos conceitos avanados de Firewall foram implementadospara um sistema Linux.
Mquinas Linux podem agora substituir carssimas caixaspretas, ou seja, hardwares comerciais feitos exclusivamente para atuarem como Firewallde uma rede.
Regras de entrada, sada e passagem de pacotes
Existem 3 possibilidades para um pacote transitando em uma
com um Firewall e que envolvam este Firewall.1-) O pacote para o FirewallRegra de Entrada: INPUT
2-) O pacote passar pelo FirewallRegra de Repasse: FORWARD
3-) O pacote sair do FirewallRegra de Sada: OUTPUT
Tabelas do iptables
O Iptables como o prprio nome indica trabalha com tabelas.Existem 3 tabelas no Iptables, a saber:
1-) Tabela FilterTabela default que trata os pacotes normalmente
2-) Tabela NATUtilizada em mascaramentos e NAT
3-) Tabela MangleUtilizada para reescrever informaes dos pacotes
Obviamente devido ao tempo, iremos tratar apenas da tabela FILTERProibindo protocolos
Antes de lidarmos com o iptables em si, muito importantesalientarmos que um bom Firewall consiste de um conjunto de regras bem elabor
Top Related