Formação de Administradores de Redes Linux LPI – level 1

Propaganda
Formação de Administradores
de Redes Linux
LPI – level 1
Aula 6
SENAC TI
Fernando Costa
Agenda
•
Objetivo 101.2 – Início (boot) do
sistema
(/var/log/messages, dmesg, BIOS,
bootloader, kernel, init)
•
Objetivo 101.3 – Alternar runlevels,
desligar e reiniciar o sistema
(/etc/inittab, shutdown, init, /etc/init.d,
telinit)
•
Objetivo 102.2 – Instalar o
gerenciador de inicialização
(/boot/grub/menu.lst, grub-install,
MBR, superblock, /etc/lilo.conf, lilo)
•
Objetivo 108.2 – Configurar e
recorrer a arquivos de log
(syslog.conf, syslogd, klogd, logger)
Agenda
• Objetivo 101.2 –
Início (boot) do
sistema
/var/log/messages
dmesg,
BIOS,
bootloader,
kernel,
init
/var/log/messages
• Syslogd
dmesg
Ciclo de vida do sistema:
Ligamento & Desligamento
Power
on
Power
off
Boot
Kernel
Init
OS
Init
RUN!
Shut
down
Terminologia de boot
• Loader:
– Programa que move bits do disco (comumente) para memória e
transfere o controle da CPU para os bits carregados na memória
(executado).
• Bootloader / Bootstrap:
– Programa que carrega o “primeiro programa” (o kernel).
• Boot PROM / PROM Monitor / BIOS:
– Código persistente de já está carregado ao ligar o computador.
• Boot Manager:
– Programa que você escolheu como primeiro programa a ser
carregado.
LILO: LInux LOader
• Um boot manager versátil que suporta:
–
–
–
–
Seleção do Kernel do Linux.
Seleção dos parâmetros do kernel durante o Boot.
Bootar kernel não-linux (ex: Windows).
Uma variedade de configurações.
• Características:
– Armazenado na MBR ou na partição marcada para boot.
– Tem conhecimento da estrutura do sistema de arquivo…
– Criar um setor que “mapeia arquivos” (mapeia blocos) para
localizar o kernel.
• /sbin/lilo – “map installer”.
– /etc/lilo.conf é o arquivo de configuração do lilo.
Exemplo do lilo.conf
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
default=linux
image=/boot/vmlinuz-2.2.12-20
label=linux
initrd=/boot/initrd-2.2.12-20.img
read-only
root=/dev/hda1
LILO x GRUB
• LILO
– Roda o LILO para modificar o mini-bootloader na MBR
– Não pode ler o sistema de arquivo sozinho
• GRUB
– Loader multi-estágio
– Pode ler o sistema de arquivo sozinho
Processo Init (1)
Questão de prova: Qual é o PID do processo INIT?
init
Quando o kernel inicia (é carregado na memória, começou a rodar, e está
iniciando todos os drivers de dispositivos e estruturas de dados e tal), termina a
sua parte do processo de boot ao iniciar um programa em nível de usuário, init.
init
Assim, o init é sempre o primeiro processo (o seu número do processo é sempre 1).
O kernel procura init em alguns locais que têm sido historicamente utilizado por
ele, mas o local adequado para ele (em um sistema Linux) é /sbin/init. Se o kernel
não consegue encontrar init, ele tenta executar /bin/sh, e se isso também falhar, a
inicialização do sistema vai falhar.
Quando o init é iniciado, ele termina o processo de boot, fazendo uma série de
tarefas administrativas, tais como verificação de disco, limpeza de / tmp,
começando diversos serviços, e iniciar um getty para cada terminal e console
virtual, onde os usuários devem ser capazes de logar.
Hierarquia de processos *nix
[0]
/etc/inittab
init [1]
Daemon
e.g. httpd
Login shell
Filho
Filho
Neto
Filho
Neto
pstree
Kernel threads, não são processos reais
Fork de processos para conexões de rede
Sequencia de inicialização
Power-on
Power-on
Boot
Boot
loader
loader
LILO
LILO
Initialisation Scripts
Create
Create
init
init
process
process
Linux
hardware
rc.sysinit
Load
Load
Kernel
Kernel
runlevel
0-6
rc.local
Ready
Arquivos de inicialização
• Como são iniciados os serviços?
– /etc/rc.local
– Inicialização dos runlevels
•
processo init e o arquivo /etc/inittab
– Níveis do init no linux:
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
Scripts de inicialização
• /etc/inittab informa ao init onde os scripts
estão
• /etc/init.d diretórios dos script
• /etc/rc*.d link para o diretórios dos scripts
Arquivos de inicialização
• Endetendendo o /etc/inittab
– Nome : runlevel : Ação : Processo
id:5:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
Algumas ações do inittab
Ação
Descrição
Boot
Executa quando o sistema boota
Bootwait
Aguarda o Init carregar
Ctrlaltdel
Initdefault
Configura o nível padrão do runlevel
Off
Desabilita a linha
Once
Para todos os runlevels especificados
Powerfail
Quando o init receber o sinal SIGPWR
Powerokwait
SIGPWR e /etc/powerstatus estão ok
Respawn
Reinicia o processo quando ele for
terminado
Sysinit
Antes de qualquer boot
Wait
Esperar todos runlevels carregarem
Inicialização do Linux
rc.sysinit script
• /etc/rc.d/rc.sysinit – uma lista de tarefas básicas
incluindo:
– Configura a rede
– Configura o host name
– Verifica o sistema de arquivos /
– Verifica a quota do sistema de arquivo /
– Monta os outros sistemas de arquivos fazendo a
verificação e reparação
– Habilita o Swap (Subsistema de memória virtual)
– Verifica e carrega os módulos (drivers)
• (veja o /var/log/messages)
Linux Run Levels
– O Linux define 7 run levels
– Cada run level define uma lista de programas/comandos que
serão iniciados ou parados.
– Este comandos estão no diretório /etc/init.d
– E os diretórios dos níveis de runlevel (rc0.d, rc2.d…rc6.d)
contém links para os diretórios de inicialização
– Os comandos possuem o prefíxo S ou K e são numerados de 00
a 99
• S é um prefixo para os processos que serão iniciados
(started)
S10network
• K é um prefixo para os processos que serão parados/mortos
(killed)
K70syslog
• Os número determinam a ordem que os comandos serão
executados, do menor para o maior
Shutdown
• shutdown permite...
– Aos usuários o recebimento de um aviso
– Que os arquivos sejam sincronizados com o disco
evitando quebras
– Marcar o sistema de arquivos como
finalizado/desmontado ( liberando o disco de um
verificação na inicialização)
• O acesso ao comando é restrito (está localizado
no /sbin)
• exemplo shutdown -h now
h = halt
r = reboot
Internet Daemon
• O Daemon inetd iniciar no momento do
boot
• A configuração dele é feita no arquivo
/etc/inetd.conf
Nome, Tipo, Protocolo, wait-status, uid, Servidor, Argumentos
#
ftp
stream
tcp6
nowait
root
/usr/sbin/tcpd
in.ftpd
telnet
stream
tcp6
nowait
root
/usr/sbin/tcpd
in.telnetd
#
# Mail is a useful thing...
pop3
stream
tcp
nowait
root
/etc/mail/popper
popper -s
imap
stream
tcp
nowait
root
/etc/mail/imapd
imapd
Internet Daemon
• Quando modificamos o inetd.conf
– Para disabilitar um serviço
• Adicionamos “#” no início da linha
• Enviamos um sinal de hang-up para o processo
inetd
kill –HUP [processid]
– Habilitar um serviço
– Mudar uma pasta
– Mudar os argumentos
Extensão do Internet Daemon
• Daemon xinetd
• Arquivo de configuração /etc/xinetd.conf e
o diretório /etc/xinetd.d
– Atributo/valor par
– Disable = yes/no
Agendamento de tarefas - cron
– Muitos aspéctos da administração de um sistema
necessitam de algumas rotinas básicas
•
•
•
•
Rotatividade de históricos (log rotate)
Criação de arquivos de ajuda
Verificação de espaço em disco
Verificação de permissão
– Lembrar destas tarefas é um ação muito difícil
– O Linux provê um mecanismo de agendamento
chamado de cron ou anacron.
– O cron tem duas partes
• Daemon - crond
• Tabela de ações /etc/crontab
Cron
• O agendador crond Daemon é iniciado no
momento do boot
• O daemon ‘acorda’ a cada minuto para
verificar a tabela de ações/atividades
– Se tiver alguma atividade -> ele executa
– Se não --> ele volta depois de “dormir” por 1
min
• A tabela Cron é uma lista de tempos e
comandos. O formato dela é:
minuto hora dia mês dia_da_semana comando
Crontab
• Os comandos podem ser agendados por:
•
•
•
•
•
minuto (0 59)
hora ( 0 a 23)
dia do mês (1 - 31)
mês ( 1 a 12)
Dia da semana (0=Domingo 6 = Sábado, ou use mon, tues, wed)
• Exemplo
01 * * * *
* 1 * * *
04 1 * * *
* Todos os meses
commnd2
commnd2
commands
# todas as horas no primeiro minutos
# diariamente todaily at 1 am
# Roda todo 4º minuto da 1ª hora do dia
Cron
• Sistemas baseados no Redhat Linux usam a
tabela de cron em diretórios especiais:
– /etc/cron.hourly
– /etc/cron.daily
• Contém o logrotate, makewhatis, slocate, tmpwatch
– /etc/cron.weekly
– /etc/cron.monthly
• Você pode adicionar um comando no diretório apropriado
mas lembrese que ele tem que ser executável e rodará
automaticamente!
Comandos da crontab
• crontab
• crontab
• crontab
• crontab
• crontab
Replace ^C exit
–l Lista
–e Edita
–l > cronfile
cronfile
– cron.allow
– cron.deny
Usos comuns para o CRON
• Limpeza o sistema de arquivos
• Rotatividade dos logs
• Backups
Conceitos avançados de boot
• Disco RAM inicial (initrd) – dois estágios para
flexibilidade (utilizados nos live-cds):
–
–
–
–
–
Monta primeiro a ram com o /
Executa o LinuxRC para fazer uma configuração adicional.
Finalmente monta o / real e continua
Veja a documentação initrd.txt para mais detalhes.
Depois veja o “man initrd”.
• Boot de rede (Net booting):
– Remote root (Diskless-root-HOWTO).
– Diskless boot (Diskless-HOWTO).
Inicialização do sistema
• Visão geral do processo de boot de um PC
– Quando um PC é ligado, a BIOS (Basic InputOutput System) roda primeiro, seguida pelo
boot loader e finalmente pelo rotina de
inicialização do sistema operacional.
Inicialização do sistema
• o BIOS
– Quando a energia é inicialmente aplicada ao computador este
aciona o pino RESET do processador. Isso faz o processador ler
endereço de memória 0xFFFFFFF0 e começar a executar do
código deste endereço.
Este endereço é mapeado para o Read-Only Memory (ROM)
que contém a BIOS. O BIOS deve consultar o hardware e criar
um ambiente capaz de inicializar o sistema operacional. As
funcionalidades de BIOS podem ser dividida em três áreas:
• Power On Self Test (POST),
• a instalação e
• inicialização.
– A última ação da BIOS é para executar a 19ª interrupção, que
carrega o primeiro setor do primeiro dispositivo de inicialização.
Uma vez que esta é a localização do boot loader, a execução do
controle de transferências da 19ª interrupção para o boot loader.
Inicialização do sistema
• O Boot Loader
– Uma vez que o BIOS carrega o primeiro setor do dispositivo de boot para a
RAM, o Loader inicia a execução. No caso de um disco rígido, este primeiro
setor é conhecido como o Master Boot Record (MBR). O MBR contém a
tabela de partição descrevendo as partições definidas no disco rígido. Ele
também poder conter um programa, o bootloader, que carrega o primeiro
setor da partição marcada como ativa para a RAM e executa.
– O tamanho da MBR é limitada a um sector em disco ou 512 bytes, uma vez
que está localizado no primeiro setor do disco no cilindro 0, cabeça 0, setor
1.
– Normalmente, bootloaders são altamente integrados com o sistema
operacional que suportam. Essa integração reduz as operações que um
gerenciador de boot deve executar, tornando possível possuir só 512 bytes.
Quando mais funcionalidade é necessária, um loader multi-estágio pode
ser utilizado.
– Um loader multi-estágio oferece mais funções e flexibilidade de trabalho em
torno da limitação do tamanho de 512 bytes. Não se tratava de um único
programa que carrega o sistema operacional diretamente, gestores de boot
multi-estágio dividem sua funcionalidade em uma série de pequenos
programas que cada cargam sucessivamente uns aos outros.
Inicialização do Sistema
• Inicialização do Sistema Operacional
– Quando o bootloader é carregado, uma imagem do
S.O. é carregada na memória e o controle da CPU é
transferido para o S.O.
– Um grande aspécto da inicialização é o
estabelecimento do gerenciamento da memória
virtual.
– Tarefas adicionais incluem a inicialização de drivers
de dispositivos e a criação da tabela de interrupções Interrupt Descriptor Table (IDT).
– Outra tarefa da inicialização é estabelecer suporte a
outros tipos de sistema e montar o sistema de
arquivos /
Inicialização do Sistema
• Inicialização do Sistema
Operacional
– O processo de inicialização deve, explicitamente,
trazer para si todas as tarefas realizadas por uma
chamada de fork().
– 0 processo deve ser capaz de se auto-gerir o seu
contexto próprio processo. Uma vez que este
contexto foi criado, o sistema tem a capacidade
de suspender e retomar a execução do Processo
e subprocesso(fork).
– Processo 1, comumente referido como o processo
de inicialização, é o primeiro processo, é um fork
do processo 0.
Inicialização do Sistema
Inicialização do Sistema
Inicialização do Sistema
Inicialização do Sistema
Inicialização do Sistema
• O Kernel inicia o / em modo somente
leitura(read only – ro) e roda o processo
init
• E o resultado disso é:
– Um sistema em R.O.
– Processo init
• O próximo passo da inicialização é
carregar o ambiente do usuário baseado
na configuração do arquivo /etc/inittab
Agenda
•
Objetivo 101.2 – Início (boot) do
sistema
(/var/log/messages, dmesg, BIOS,
bootloader, kernel, init)
•
Objetivo 101.3 – Alternar runlevels,
desligar e reiniciar o sistema
(/etc/inittab, shutdown, init, /etc/init.d,
telinit)
•
Objetivo 102.2 – Instalar o
gerenciador de inicialização
(/boot/grub/menu.lst, grub-install,
MBR, superblock, /etc/lilo.conf, lilo)
•
Objetivo 108.2 – Configurar e
recorrer a arquivos de log
(syslog.conf, syslogd, klogd, logger)
Fernando Costa
www.fernandocosta.com.br
[email protected]
Download