Aula 11 DHCP Monitoramento de LOGs (Dinamic Host Configuration Protocol) em Sistemas Linux Prof. Roitier Campos Gonçalves
Definição Em computação, log de dados é uma expressão utilizada para descrever o processo de registro de eventos relevantes num sistema computacional. Esse registro pode ser utilizado para restabelecer o estado original de um sistema ou para que um administrador conheça o seu comportamento no passado. Um arquivo de log pode ser utilizado para auditoria e diagnóstico de problemas em sistemas computacionais. Fonte: https://pt.wikipedia.org/wiki/log_de_dados
Logs Contam a história do sistema. Contêm registros de eventos, avisos e erros. Auxiliam na detecção de problemas. São administrados pelo syslog. Embora alguns daemons não utilizem o syslog. É necessário analisar logs se o sistema está funcionando corretamente? Por quê?
Logs Nos LOGs encontramos eventos normais, além de avisos e erros registrados pelo kernel e por outros daemons e programas. Os logs devem ser utilizados pelo administrador não só na resolução de problemas, mas também para acompanhar a saúde do sistema.
Categorias de Logs Logs de Aplicação Logs do Sistema Logs de Eventos Logs de Serviço
Logs de Autenticação (auth.log)
Logs mais relevantes... /var/log/syslog ou /var/log/messages: mensagens gerais, bem como informações relacionadas ao sistema. Essencialmente, este registro armazena todos os dados de atividade em todo o sistema global. /var/log/auth.log ou /var/log/secure: armazena logs de autenticação, incluindo logins e métodos de autenticação bem-sucedidos e com falhas. /var/log/boot.log: um repositório de todas as informações relacionadas à inicialização e quaisquer mensagens registradas durante a inicialização. /var/log/maillog ou /var/log/mail.log: armazena todos os logs relacionados aos servidores de e-mail, útil quando você precisa de informações sobre postfix, smtpd ou qualquer serviço relacionado ao email que esteja sendo executado em seu servidor.
...Logs mais relevantes... /var/log/kern: armazena logs do Kernel e dados de aviso. Esse registro também é útil para solucionar problemas de kernels personalizados. var/log/dmesg: mensagens relacionadas aos drivers de dispositivo. O comando dmesg pode ser usado para visualizar mensagens neste arquivo. /var/log/faillog: contém informações sobre todas as tentativas de login falhas, o que é útil para obter informações sobre falhas de login, como aquelas que tentam hackear credenciais de login e ataques de força bruta. /var/log/cron: armazena todas as mensagens relacionadas a Crond (tarefas cron), como quando o daemon cron iniciou um trabalho, mensagens de falha relacionadas, etc.
...Logs mais relevantes /var/log/yum.log: se você instalar pacotes usando o comando yum, este registro armazena todas as informações relacionadas, o que pode ser útil para determinar se um pacote e todos os componentes foram instalados corretamente. /var/log/httpd/: um diretório contendo arquivos error_log e access_log do daemon httpd Apache. O error_log contém todos os erros encontrados pelo httpd. Esses erros incluem problemas de memória e outros erros relacionados ao sistema. Access_log contém um registro de todos os pedidos recebidos em HTTP. /var/log/mysqld.log ou /var/log/mysql.log: arquivo de log do MySQL que registra todas as mensagens de depuração, falha e sucesso. Contém informações sobre o início, parada e reinício do MySQL daemon mysqld. Esta é outra instância onde o sistema determina o diretório; RedHat, CentOS, Fedora e outros sistemas baseados em RedHat usam /var/log/mysqld.log, enquanto o Debian/Ubuntu usa o diretório /var/log/mysql.log.
Logs menos relevantes /var/log/daemon.log: rastreia serviços executados em segundo plano que executam tarefas importantes, mas não tem saída gráfica. /var/log/btmp: gravações de tentativas de login com falha. /var/log/utmp: estado de login atual, por usuário. /var/log/wtmp: histórico de login/logout. /var/log/lastlog: informações sobre os últimos logins para todos os usuários. Este arquivo binário pode ser lido pelo comando lastlog. /var/log/pureftp.log: executa o processo pureftp que escuta as conexões FTP. Todas as conexões, logins de FTP e falhas de autenticação são logadas aqui. /var/log/spooler: raramente usado e muitas vezes vazio. Quando usado, contém mensagens da USENET. /var/log/xferlog: contém todas as sessões de transferência de arquivos FTP, incluindo informações sobre o nome do arquivo e o usuário iniciando transferências FTP.
Gerenciando os Logs do Apache O apache, por defaut possui 2 arquivos de logs centralizados, o log de acesso e o log de erros. Os dois arquivos podem ser encontrados na pasta /var/log/apache/. # tail -f /var/log/apache2/access.log # tail -f /var/log/apache2/error.log
Samba O servidor SaMBa também possui arquivos de log bem enxutos, e dependo da parametrização do arquivo smb.conf ele pode gerar logs individuais por clientes dentro da pasta no formato /var/log/samba/log.172.16.0.1, por exemplo. O arquivo de logs responsável por monitorar o servidor smb e nmbd do sistema é o samba.log # tail -f /var/log/samba.log
Verificando os últimos logins do Linux com Last O comando last permite filtrar os últimos logins do servidor com os IP's, usuários e tempo de login de cada sessão, além de aplicar filtros a partir de arquivos, usuários e períodos. Ele exibe todas as informações referentes a entrada (login) e saída (logout) de usuários do sistema. # last -x Mostra os últimos logins do sistema) # last roitier Mostra os últimos logins do usuário roitier O comando lastb funciona da mesma forma do comando last. Entretanto, ele usa, por padrão, o arquivo /var/log/btmp que possui informações sobre as tentativas mal sucedidas de se logar ao sistema. # lastb
Acesso a LOGs binários Em vez de texto, alguns arquivos dentro do /var/log mantêm informações em modo binário, como os arquivos lastlog e faillog. Para a leitura do conteúdo desses arquivos, são utilizados os comandos: # lastlog lista o último login de cada usuário; # last lista os últimos logins feitos no sistema; # faillog lista as tentativas malsucedidas de logins no sistema.
Analisadores de LOGs A atividade de ler logs é difícil, repetitiva e com poucos resultados visíveis, exigindo a combinação e, muitas vezes, a automatização (scripts) da análise para que os resultados sejam expressivos. Além de poder haver a necessidade de associar registros entre os diversos equipamentos da rede, como Roteadores, Switches, Access Points, entre outros. Para esses casos a alternativa mais eficiente é o uso de Analisadores de LOGs Exemplos: logcheck, swatch e log-analysis.
Analisador de LOG Logcheck Projetado para executar automaticamente e verificar o sistema de arquivos de log em busca de registros que permitam identificar violações de segurança e atividades incomuns. Instalação: #apt-get install logcheck logcheck-database logtail Arquivo de configuração: /etc/logcheck/logcheck.conf
Parâmetros e níveis do Logcheck Os principais parâmetros são o usuário padrão para o qual serão enviados os relatórios de alerta (SENDMAILTO) e o nível de detalhe da análise (REPORTLEVEL). Os três níveis de detalhes possíveis são: workstation, server e paranoid. Workstation (estação de trabalho), para máquinas relativamente não críticas; Server (servidor) é o nível padrão; Paranoid (paranóico) é recomendado apenas para máquinas de alta segurança executando poucos serviços.