Escolar Documentos
Profissional Documentos
Cultura Documentos
Adm. Servidores Linux
Adm. Servidores Linux
I Por que Administrar ? II Gerenciando Usurios III Entendendo o Diretrio /etc IV Trabalhando com o LILO V Fazendo Backups VI Recompilando e Adaptando o Kernel VII Agendando Processos crontab & at VIII Syslogd A Caixa Preta do Linux IX Tcnicas Bsicas para Trabalhar com Redes ( ifconfig, route ) X Gerenciando os Servios inetd XI Utilizando Ferramentas de Busca XII Instalando SSh / SShD
Apndice A Recuperando a Senha do root Apndice B CheckList de segurana Apndice C Gerenciando distribuies baseadas em Red Hat Apndice D Instalando o XWindows Apndice E Nveis de Execuo no Red Hat Linux
Pgina 1
Um sistema que possuir essas trs caractersticas, sem dvida apresentar uma grande confiabilidade.
Pgina 2
II Gerenciando Usurios
Para adicionar um usurio: adduser <usurio> Em seguida necessrio definir uma senha para este usurio, utilizando o comando: passwd <usurio>
Nunca se deve ter usurios desnecessrios cadastrados. No caso de um usurio para teste, devese removlo logo aps o teste. Para remover um usurio e seu diretrio home: userdel r usurio Uma das regras de segurana mais importantes : "evitar usar o root, fazendoo somente quando necessrio. ". Com certeza muitos problemas so evitados seguindo essa simples regra. Para obter as permisses de outros usurios: su <usurio> Se o campo <usurio> for omitido, o su intender como root. E para simular um login, executando os scripts de inicializao do usurio acrescentase "" entre su e o <usurio>, como no exemplo: su vinicius
Pgina 3
vinic:x:1001:0:Vinicius Schmidt,,,:/home/vinic:/bin/bash Login : Senha : Id : Gid : Nome e Dados : Diretrio : Shell Login: vinic a identificao do usurio que tambm pode ser usado para identificao do email. Senha: x Esse "x" informa que a senha est em outro arquivo mais seguro. Id: 1001 o cdigo nico para o Linux identificar cada usurio. Nunca devese ter dois usurios com o mesmo cdigo. Gid: 0 o cdigo do grupo primrio que o usurio pertence. Nome e Dados: Vinicius Schmidt,,, Este campo usado para armazenar informaes sobre o usurio como nome, telefone, sala, etc.. Esses dados so separados por "," e devem obedecer um padro. Diretrio: /home/vinic Este campo informa qual o directrio home, do usurio. Shell: /bin/bash a shell default do usurio. Para usurios que no precisam de shell deve se colocar "/dev/null".
Pgina 4
login.defs o arquivo de configuraes do login, possui informaes valiosas para melhorar a segurana do seu ambiente. um arquivo muito simples de configurar pois baseado em exemplos, e seus parmetros so simples. profile Toda vez que um usurio loga, este arquivo executado, por isso ele usado para setar as variveis de ambiente globais, dentre outras coisas. Centro de Computao da Unicamp CCUEC Gerncia de Transferncia de Tecnologias Pgina 5
hosts.deny Hosts que no tem permisso para acessar a mquina. in.telnetd: 143.106.20.11 hosts.allow Hosts que tem permisso para acessar a mquina. wu.ftpd: 200.240.2.183 Tanto nos arquivos hosts.deny quanto hosts.allow podese usar variveis coringa: ALL = Todos os IPs LOCAL = Todos os IPs locais REMOTE = Todos os IPs remotos services Este arquivo descreve a relao entre os servios e as portas mais comuns.
Pgina 6
V Fazendo Backups
Realizar backups do sistema hoje em dia uma tarefa essencial de todo administrador. No Linux podese usar o comando tar para compactar os arquivos. Sintaxe: tar [opes] [f arquivo] Opes: x : descompactar. t : lista o contedo de um arquivo. v : mostra na tela o que est sendo feito. z : descompacta arquivos que tambm estejam gzipados. f : especifica o nome do arquivo. c : cria um novo arquivo. Exemplo:
(faz o backup de sua rea pessoal) tar cvzf meu_backup.tgz ~ tar cvzf backup.tgz /home (faz o backup da rea dos usurios ) tar xvzf /root/backup.tar.gz (descompacta o backup)
Pgina 7
Pgina 8
E para agendar processos que devem rodar periodicamente usase o comando crontab. H necessidade de se editar um arquivo que possui o seguinte formato:
Minuto
Hora
Dia
Ms
Dia da Semana
Comando
Onde Minuto um intervalo de 0 a 59, Hora um intervalo de 0 a 23, Dia de 1 a 31, Ms de 1 a 12 e os Dias da Semana podem variar de 0 a 6 correspondendo a variao de domingo a sbado. As linhas que comeam com o caracter "#" so ignoradas. Para editar: crontab u <user> e Para listar: crontab u <user> l Exemplo: # Para executar um comando de 2 em 2 minutos 059/2 * * * * /bin/ls # Para executar um comando de 4 em 4 horas e s 18 horas * 023/4, 18 * * * /usr/bin/comando
Pgina 9
Os registros deste arquivo so divididos em facility , priority e destino, podendo haver derivaes como dois conjuntos "facility.priority" para um mesmo destino. As "facilities" podem ser: auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security (mesmo que auth), syslog, user,uucp e local0. J as "priorities" seguem em ordem crescente: debug, info, notice, warning, warn (memo que warning), err, error (mesmo que err), crit, alert, emerg, panic (mesmo que emerg). Um arquivo gerado na grande maioria dos sistemas *nix o /var/log/messages , este arquivo contm informaes genricas sobre todo o sistema. Um exemplo do contedo desse arquivo segue abaixo. Apr 4 18:27:49 dende sshd[2080]: log: Connection from 200.245.11.158 port 1026 Apr 4 18:28:31 dende sshd[2081]: log: Connection from 200.245.11.158 port 1028 Apr 4 18:29:05 dende sshd[2080]: log: Could not reverse map address 200.245.11.158. May 12 09:37:00 dende su[4559]: + pts/0 vinicroot Outro arquivo muito comum o /var/log/debug que contm informaes mais detalhadas, abaixo um exemplo. Apr 4 16:38:19 dende identd[1985]: Successful lookup: 1501 , 25 : vinic.root Apr 25 13:27:36 dill kernel: VFS: Disk change detected on device fd(2,0)
Pgina 10
E caso haja a necessidade de excluir uma rota usase: route del <destino>
Pgina 11
servio
tipo
protocolo
espera
usurio
servidor linha_de_comando
servio: Fornece o nome do servio a ser disponibilizado. Ele deve ser traduzido em um nmero de porta atravs de uma pesquisa no arquivo /etc/services. tipo: Especifica o tipo de conexo que ser utilizada, stream ( para conexes orientadas a protocolo ) ou dgram ( para protocolos que utilizam datagramas). Servios baseados em TCP devem sempre ser especificados como stream, enquanto que servios baseados em UDP devem sempre ser definidos como dgram. protocolo: Informa o nome do protocolo usado pelo servio. Deve ser um nome que possa ser encontrado no arquivo /etc/protocols, como UDP, TCP, ICMP, etc... espera: Esta opo aplicase somente a conexes por datagramas. Ela pode ser igual a wait , que ir executar um daemon por vez (monoservidor), ou nowait , que nos permite trabalhar com vrios daemons ao mesmo tempo. usurio: Esta a identificao de acesso do usurio sob o qual o processo ser executado. aconselhvel aplicar os usurios com a menor permisso possvel como nobody. Apenas quando necessrio devese usar root. servidor: Fornece o caminho completo do programa servidor a ser utilizado. linha de comando: Esta a linha de comando a ser enviada para o servidor. Isso inclui o argumento 0, que o nome do comando. Abaixo um pequeno exemplo do /etc/idetd.conf imap2 stream tcp #pop3 stream tcp telnet stream tcp nowait root /usr/sbin/tcpd nowait root /usr/sbin/tcpd nowait root /usr/sbin/tcpd imapd ipop3d in.telnetd
Quando se faz alguma alterao nesse arquivo basta reiniciar o daemon inetd com: killall HUP inetd
Pgina 12
1 rc.local: Este arquivo executado sempre na hora do boot, como o Autoexec.bat do DOS
Pgina 13
Modo "single"
Algumas distribuies permitem que na hora da carga ( LILO), se asse o parmetro "single" aps o label correspondente a partio Linux. Na maioria das distribuies esse label "linux", ficando assim linux single.
Pgina 14
Servios Abertos:
Servios desnecessariamente abertos, so os maiores "responsveis" pelas invases atualmente. Senhas Fracas: Podem ser quebradas facilmente atravs de programas "Brute Force". Daemons desatualizados ( sujeitos a exploits): Daemons com bugs, so visados pelos "Intrusos" devido a sua alta vulnerabilidade, e existem sites especializados em relatar tais bugs para qualquer pessoa. Acesso Fsico: E claro, devese tomar cuidado com o local fsico onde se encontra o servidor, observando condies de possveis acidentes, furtos, etc..
Pgina 15
Pgina 16
Uma rpida inspeo nos revela vrios servios conhecidos como sendmail, httpd e named. Cada nvel de execuo controlado atravs de links simblicos existentes nos seis diretrios (/etc/rc.d/rc1.d at /etc/rc.d/rc6.d). Examinemos o contedo do diretrio /etc/rc1.d: # ls l lrwxrwxrwx 1 root lrwxrwxrwx 1 root lrwxrwxrwx 1 root lrwxrwxrwx 1 root lrwxrwxrwx 1 root lrwxrwxrwx 1 root lrwxrwxrwx 1 root lrwxrwxrwx 1 root lrwxrwxrwx 1 root lrwxrwxrwx 1 root lrwxrwxrwx 1 root lrwxrwxrwx 1 root lrwxrwxrwx 1 root lrwxrwxrwx 1 root
root 19 Mar 22 21:02 K00linuxconf > ../init.d/linuxconf root 18 Mar 22 20:54 K05keytable > ../init.d/keytable root 13 Mar 22 20:59 K10xfs > ../init.d/xfs root 13 Mar 22 20:58 K15gpm > ../init.d/gpm root 15 Mar 22 20:53 K15httpd > ../init.d/httpd root 18 Mar 22 21:05 K30sendmail > ../init.d/sendmail root 14 Mar 22 21:03 K50inet > ../init.d/inet root 13 Mar 22 20:53 K60atd > ../init.d/atd root 15 Mar 22 21:06 K60crond > ../init.d/crond root 13 Mar 22 21:02 K60lpd > ../init.d/lpd root 15 Mar 22 20:59 K75netfs > ../init.d/netfs root 17 Mar 22 20:59 K90network > ../init.d/network root 16 Mar 22 21:06 K99syslog > ../init.d/syslog root 16 Mar 22 20:59 S00single > ../init.d/single
Como se pode ver, todo o contedo do diretrio /etc/rc1.d consiste de links simblicos apontando para scripts dentro do diretrio /etc/rc.d/init.d. A primeira letra dos nomes dos links simblicos pode ser ou "S" ou "K", indicando se o processo para o qual aponta deve ser ativado (Started) ou desativado (Killed). O nmero que se segue a esta letra indica a ordem em que os processos devem ser encerrados ou ativados. Em nosso exemplo o primeiro processo a ser desativado o linuxconf. O primeiro a ser ativado, aps terem sido encerrados todos os demais processos, o script single. Centro de Computao da Unicamp CCUEC Gerncia de Transferncia de Tecnologias Pgina 17
Pgina 18
Pgina 19
Referncias Adicionais
No transcorrer deste artigo foram feitas referncias aos comandos ln, init, chkconfig, inittab e runlevel. A leitura da documentao destes comandos fornece informaes valiosas sobre todo o processo descrito e pode ser acessada a partir do comando man (man ln, man init, etc). Artigo escrito por Rubens Queiroz de Almeita na Revista de Informao e Tcnologia http://www.revista.unicamp.br
Pgina 21