1.8 Gerenciando Serviços no Linux

Lição 14/50 | Tempo de Estudo: 20 Min

É muito importante para um administrador de redes/sistemas/Analista de Cyber  saber gerenciar serviços no SO. Quando se faz uma alteração em um arquivo de configuração, é necessário reiniciar o serviço. O sistema de gerenciamentos do Linux antigo é chamado de SysVinit, que define runlevels (níveis) que um determinado daemon irá ser executado.

Antigamente, era usado o SysVinit, contudo, um novo sistema de gerenciamento e supervisão de serviços foi criado trazendo várias melhorias, conhecido como Systemd.

Systemd

O processo de inicialização de qualquer sistema operacional envolve uma série de procedimentos e eventos que devem ocorrer em determinada ordem para que o resultado final seja o esperado.

O systemd é um novo sistema de supervisão e inicialização de serviços, substituto do sistema legado SysVinit, que trás consigo algumas melhorias como paralelismo na inicialização de serviços e utilizar outras linguagens de programação diferentes de shell scripts. Ainda existe muita discussão sobre ele, mas já está sendo usado em várias distribuições.

Estado de Serviços


O estado de um serviço pode ser visto com systemctl status nome.tipo. Se o tipo de unidade não for indicado, systemctl irá exibir o status dos serviços, se existir um. Exemplo:


systemctl status sshd.service




Listando arquivos de units com systemctl


- Listando o estado de todas as units para verificar o startup de um sistema:

systemctl


- Listando o estado de apenas as units de serviços:

systemctl --type=service


- Investigando qualquer unit que falhou ou está no estado de manutenção; Opcionalmente, adicione -l para exibir a saída completa:

systemctl status sshd.service -l


Outro detalhe muito importante, sempre verificar se a porta relativa ao serviço está aberta, utilizando comando ss:


ss -natlp | grep sshd




Ah André eu não sei verificar quais serviços e portas estão interligados. Verificar o arquivo /etc/services.

vim /etc/services



- O argumento status pode também ser usado para determinar se uma unit particular está ativa e exibir se está unit está habilitada para iniciar durante o boot:


systemctl is-active sshd
systemctl is-enable sshd


- Exibe apenas os serviços que falharam:


systemctl --failed --type=service



Iniciando e parando daemons do sistema


Iniciar, parar, reiniciar, recarregar, e verificar o status são ações comuns realizadas por quem administra os serviços.

- Verificar o status do service sshd:


systemctl status sshd.service



Verificar se o processo indicado na saída do comando (30118) está em execução:


ps -up 30118



-  Parar o serviço e verificar o status:


systemctl stop sshd.service


systemctl status sshd.service



- Iniciar o serviço e verificar o status. O ID do processo foi alterado:


systemctl start sshd.service




systemctl status sshd.service



- Parar e iniciar o serviço com um único comando:


systemctl restart sshd.service



-  Emitir instruções para um serviço para ler e recarregar (reload) seu arquivo de configuração sem uma parada completa com um stop start. O ID do processo não vai mudar:


systemctl reload sshd.service



systemctl status sshd.service


Habilitando daemons do sistema para iniciar ou não durante o boot


Serviços são iniciados durante o boot quando links são criados adequadamente no diretório de configuração do systemd. Esses links são criados e removidos com o comando systemctl.

- Exibindo o status de um serviço:


systemctl status sshd.service


- Desabilitar o serviço e verificar o status. Note que desabilitando o serviço você não para o serviço:


systemctl disable sshd.service


systemctl status sshd.service



- Habilitando o serviço e verificando o status:

systemctl enable sshd.service
systemctl is-enable sshd.service



- Pode-se habilitar um serviço para iniciar durante o boot e startar ao mesmo tempo:


systemctl enable --now sshd.service



Journald


O journald é um dos componentes centrais do sistema de inicialização systemd, responsável pela coleta e armazenamento dos logs gerados pelo sistema e por suas aplicações. Ao contrário dos tradicionais sistemas de log baseados em arquivos de texto (como o syslog), o journald utiliza um formato binário para armazenar as informações, o que traz diversas vantagens em termos de performance, segurança e flexibilidade na manipulação dos dados registrados.

Filtragem e Consulta Avançada:

Por meio do comando journalctl é possível aplicar filtros por data, nível de log, unidade de serviço e outros parâmetros, o que facilita a identificação e resolução de problemas. Exemplos comuns de uso incluem:

- Consultar logs do kernel:

journalctl -k


- Mostrar os logs somente dos serviços de rede:


journalctl -u network.service


- Exibir logs recentes em tempo real:


journalctl -f


- Exibir logs detalhados filtrando por nível de severidade:


journalctl -u ssh.service -p err


André Albuquerque

André Albuquerque

Designer de Produto
4.00
Perfil

Sessões de Aula

1- 3.1 Netcat 2- 4.1 Introdução a comandos de rede no Linux 3- 5.1 Shell Script 4- Temas abordados 5- Temas Abordados 6- 1.1 Instalação do Linux 7- 1.3 Atividades Pós-Instalação 8- 1.4 Usuário root e Usuário comum 9- 1.2 Utilizando LVM 10- 1.5 Sistemas de Arquivos 11- 1.6 Comandos Básicos 12- 1.7 Procurando Arquivos 13- 1.8 Gerenciando Serviços no Linux 14- 1.9 Encontrando, instalando e removendo tools 15- 2.1 Ambiente do Shell 16- 2.2 Piping e redirecionamento 17- 2.3 Procurando texto e manipulação 18- 2.4 Editando arquivos 19- 2.5 Comparando arquivos 20- 2.6 Gerenciando processos 21- 2.7 Monitorando arquivos e comandos 22- 2.8 Baixando arquivos 23- Slide Módulo 2 24- 3.2 Socat 25- Atuar com Cyber Security 26- 6.1 Uma Introdução ao Docker 27- 4.2 Introdução a Análise de Rede 28- 4.3 Networking 29- 4.4 Portas e Serviços 30- 4.5 Análise com Wireshark 31- 4.6 Análise com tcpdump 32- 5.2 Variáveis 33- 5.3 Argumentos 34- 5.4 Lendo Entrada 35- 5.5 Estruturas condicionais if, else e elif 36- 5. 6 Loops 37- 5.7 Criando Menus 38- 5. 8 Funções 39- Exemplos Práticos 40- 6.2 Instalação do Docker no Windows e Linux. 41- 6.3 Imagens e Containers 42- 6.4 Mais Prática - Gerenciando Containers 43- 6.5 Criar conta/usuário no Docker Hub 44- 6.6 Docker Cleanup - Limpando a Casa 45- 6.7 Volumes Docker 46- 6.8 Redes no Docker - Isolamento e Segurança 47- 4.0 🔒 Fundamentos de Redes para Cybersecurity 48- 🎯 EXERCÍCIOS PRÁTICOS 49- 🎯 Wireshark - EXERCÍCIOS PRÁTICOS 50- 🎯 TcpDump- EXERCÍCIOS PRÁTICOS