===== Nível Básico ===== === 1. Gerenciamento de Permissões de Arquivos com `chmod` === * **chmod** - Modifica permissões de leitura, escrita e execução. - Exemplo de uso: chmod 755 arquivo.txt - Descrição: Define permissões de leitura, escrita e execução para o proprietário (7) e apenas leitura e execução para o grupo e outros (5). === 2. Verificação de Propriedade de Arquivos com `chown` === * **chown** - Altera o proprietário e grupo de um arquivo. - Exemplo de uso: sudo chown usuario:grupo arquivo.txt - Descrição: Define ''usuario'' como o proprietário e ''grupo'' como o grupo do arquivo ''arquivo.txt'', permitindo controle sobre quem pode acessar ou modificar o arquivo. === 3. Bloqueio de Contas com `passwd` === * **passwd -l** - Bloqueia uma conta de usuário. - Exemplo de uso: sudo passwd -l usuario - Descrição: Bloqueia a conta ''usuario'', impedindo que o usuário faça login até que a conta seja desbloqueada. === 4. Controle de Permissões de Diretórios com `umask` === * **umask** - Define permissões padrão para novos arquivos e diretórios. - Exemplo de uso: umask 022 - Descrição: Define a máscara de permissão para que novos arquivos sejam criados com permissões 755 (leitura e execução para o grupo e outros) e diretórios com permissões 755. ===== Nível Intermediário ===== === 1. Configuração de Senhas Seguras com `chage` === * **chage** - Define a expiração e validade de senhas. - Exemplo de uso: sudo chage -M 90 usuario - Descrição: Configura para que a senha do usuário ''usuario'' expire a cada 90 dias, forçando o usuário a alterá-la periodicamente para aumentar a segurança. * **chage -l** - Exibe as informações de expiração da senha. - Exemplo de uso: chage -l usuario - Descrição: Exibe as informações de expiração de senha do usuário ''usuario'', como o último dia de alteração e a validade da senha. === 2. Controle de Acessos com `sudo` === * **visudo** - Edita o arquivo de configuração do sudo de forma segura. - Exemplo de uso: sudo visudo - Descrição: Abre o arquivo ''/etc/sudoers'' para edição, permitindo a configuração de permissões de execução de comandos como superusuário para usuários específicos. * **Configuração de privilégios** - Permite que um usuário execute comandos como root. - Exemplo de uso: usuario ALL=(ALL) NOPASSWD: /usr/sbin/service - Descrição: Configura o usuário ''usuario'' para que possa executar o comando ''service'' sem precisar de senha. === 3. Criptografia Simples com `gpg` === * **gpg** - Criptografa um arquivo com uma chave simétrica. - Exemplo de uso: gpg -c arquivo.txt - Descrição: Criptografa o arquivo ''arquivo.txt'' usando uma senha, gerando um arquivo ''arquivo.txt.gpg''. Para descriptografá-lo, o comando ''gpg arquivo.txt.gpg'' pode ser usado. === 4. Auditoria de Acessos com `last` e `lastlog` === * **last** - Exibe os últimos logins no sistema. - Exemplo de uso: last - Descrição: Mostra uma lista dos últimos usuários que fizeram login no sistema, útil para auditoria de acessos. * **lastlog** - Verifica o último login de todos os usuários. - Exemplo de uso: lastlog - Descrição: Exibe as informações de último login de todos os usuários do sistema, permitindo identificar contas inativas. ===== Nível Avançado ===== === 1. Controle de Acesso Detalhado com `setfacl` e `getfacl` === * **setfacl** - Define permissões de acesso específicas para usuários/grupos. - Exemplo de uso: sudo setfacl -m u:usuario:rwx /diretorio - Descrição: Define permissões detalhadas de leitura, escrita e execução para o usuário ''usuario'' no diretório ''/diretorio'', independentemente das permissões padrão do sistema de arquivos. * **getfacl** - Exibe as permissões ACL de um arquivo ou diretório. - Exemplo de uso: getfacl /diretorio - Descrição: Mostra todas as permissões ACL definidas para o diretório ''/diretorio'', incluindo permissões específicas para usuários ou grupos. === 2. Gerenciamento de Senhas e Usuários com `faillock` e `pam_tally2` === * **faillock** - Monitora tentativas de login incorretas e bloqueia o usuário. - Exemplo de uso: sudo faillock --user usuario --reset - Descrição: Reseta o contador de tentativas de login incorretas do usuário ''usuario'', desbloqueando a conta caso tenha sido bloqueada por muitas tentativas falhas. * **pam_tally2** - Verifica e limpa contagens de falhas de login. - Exemplo de uso: sudo pam_tally2 --user usuario --reset - Descrição: Exibe o número de tentativas de login falhas para o usuário ''usuario'' e reseta o contador de falhas, desbloqueando a conta. === 3. Criação de Políticas de Controle com `AppArmor` === * **aa-status** - Verifica o status de execução do AppArmor. - Exemplo de uso: sudo aa-status - Descrição: Exibe o status do AppArmor, mostrando quais perfis de segurança estão carregados e aplicados. * **aa-enforce** - Coloca um perfil do AppArmor em modo de execução forçada. - Exemplo de uso: sudo aa-enforce /etc/apparmor.d/usr.bin.nginx - Descrição: Aplica o perfil de segurança do AppArmor para o binário do ''nginx'', forçando restrições de acesso para esse serviço. === 4. Criptografia Avançada com `openssl` === * **openssl enc** - Criptografa arquivos com algoritmos fortes. - Exemplo de uso: openssl enc -aes-256-cbc -salt -in arquivo.txt -out arquivo.txt.enc - Descrição: Criptografa o arquivo ''arquivo.txt'' com o algoritmo AES-256, gerando o arquivo criptografado ''arquivo.txt.enc''. O uso de ''-salt'' garante que a criptografia seja mais segura. * **openssl dgst** - Gera checksums criptográficos para verificar integridade. - Exemplo de uso: openssl dgst -sha256 arquivo.txt - Descrição: Gera um hash SHA-256 para o arquivo ''arquivo.txt'', permitindo verificar a integridade do arquivo mais tarde, comparando o hash. === 5. Monitoramento e Controle de Processos com `auditd` === * **auditctl** - Configura auditoria de eventos no sistema. - Exemplo de uso: sudo auditctl -w /etc/passwd -p war -k passwd_monitor - Descrição: Configura auditoria para o arquivo ''/etc/passwd'', monitorando qualquer operação de escrita, leitura ou alteração, gerando eventos de auditoria com a chave ''passwd_monitor''. * **ausearch** - Pesquisa eventos de auditoria no sistema. - Exemplo de uso: sudo ausearch -k passwd_monitor - Descrição: Pesquisa eventos de auditoria relacionados ao arquivo ''/etc/passwd'' usando a chave ''passwd_monitor'', exibindo tentativas de acesso, modificação ou leitura. === 6. Controle de Rede e Firewall com `iptables` === * **iptables** - Define regras de firewall para controlar tráfego. - Exemplo de uso: sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT - Descrição: Permite tráfego na porta 22 (SSH) para conexões TCP de entrada, configurando o firewall para permitir acesso SSH. * **iptables-save** - Salva as regras atuais do firewall. - Exemplo de uso: sudo iptables-save > /etc/iptables/rules.v4 - Descrição: Salva as regras atuais do firewall em um arquivo, para que sejam aplicadas automaticamente após a reinicialização do sistema. ===== Nível Especializado ===== === 1. Criação de Políticas de Segurança com SELinux === * **getenforce** - Verifica o status atual do SELinux. - Exemplo de uso: getenforce - Descrição: Exibe o status atual do SELinux (''Enforcing'', ''Permissive'' ou ''Disabled''), indicando se o SELinux está aplicando as políticas de segurança. * **setenforce** - Altera o status do SELinux em tempo real. - Exemplo de uso: sudo setenforce 1 - Descrição: Habilita o SELinux no modo ''Enforcing'', fazendo com que as políticas de segurança sejam aplicadas imediatamente. * **semanage** - Configura regras de contexto de segurança para arquivos e portas. - Exemplo de uso: sudo semanage port -a -t ssh_port_t -p tcp 2222 - Descrição: Configura o SELinux para permitir conexões SSH na porta 2222, associando a porta ao tipo de contexto ''ssh_port_t''. === 2. Gerenciamento de Auditoria com `auditd` e Políticas SELinux === * **audit2why** - Explica por que o SELinux negou uma operação. - Exemplo de uso: sudo ausearch -m avc -ts recent | audit2why - Descrição: Analisa os registros de auditoria e explica o motivo pelo qual o SELinux negou uma ação, ajudando a diagnosticar problemas de permissões e políticas. * **audit2allow** - Gera permissões para corrigir bloqueios do SELinux. - Exemplo de uso: sudo audit2allow -M meu_modulo < /var/log/audit/audit.log - Descrição: Gera um módulo de política que permite a ação previamente negada pelo SELinux, baseado nos eventos de auditoria registrados. === 3. Controle de Acesso a Redes com `nftables` === * **nft** - Define políticas de firewall avançadas. - Exemplo de uso: sudo nft add table inet filter sudo nft add chain inet filter input { type filter hook input priority 0 \; } sudo nft add rule inet filter input ip protocol tcp dport 22 accept - Descrição: Configura regras de firewall avançadas com ''nftables'', permitindo o tráfego na porta 22 (SSH). ''nftables'' substitui ''iptables'' em muitas distribuições modernas para controle de tráfego de rede. * **nft list ruleset** - Lista as regras de firewall ativas. - Exemplo de uso: sudo nft list ruleset - Descrição: Exibe todas as regras de firewall atualmente configuradas, permitindo visualizar e auditar políticas de controle de rede. === 4. Hardening de Sistema com `aide` (Advanced Intrusion Detection Environment) === * **aide** - Configura um sistema de detecção de intrusão baseado em mudanças de arquivos. - Exemplo de uso: sudo aideinit - Descrição: Inicializa o banco de dados do AIDE, que será usado para comparar o estado atual do sistema de arquivos com uma versão "confiável", monitorando alterações que possam indicar intrusão. * **aide --check** - Verifica mudanças no sistema de arquivos. - Exemplo de uso: sudo aide --check - Descrição: Compara o sistema de arquivos atual com o banco de dados de referência do AIDE, detectando alterações inesperadas e alertando sobre possíveis intrusões. === 5. Controle de Segurança de Kernel com `sysctl` === * **sysctl** - Configura parâmetros de segurança do kernel. - Exemplo de uso: sudo sysctl -w net.ipv4.conf.all.rp_filter=1 sudo sysctl -w kernel.randomize_va_space=2 - Descrição: Ajusta parâmetros de segurança, como ''rp_filter'' para evitar spoofing de IPs e ''randomize_va_space'' para habilitar a randomização de espaço de endereços de memória (ASLR), aumentando a segurança do sistema contra ataques. * **/etc/sysctl.conf** - Configuração permanente de parâmetros de segurança. - Exemplo de uso: sudo nano /etc/sysctl.conf # Adicione as linhas abaixo net.ipv4.conf.all.rp_filter=1 kernel.randomize_va_space=2 - Descrição: Configura os parâmetros de segurança do kernel para serem aplicados automaticamente a cada reinicialização do sistema. === 6. Hardening de SSH com `sshd_config` === * **/etc/ssh/sshd_config** - Configura o servidor SSH para aumentar a segurança. - Exemplo de uso: sudo nano /etc/ssh/sshd_config # Modifique as linhas abaixo: PermitRootLogin no PasswordAuthentication no AllowUsers usuario1 usuario2 - Descrição: Desabilita o login root direto via SSH, desativa a autenticação por senha (forçando o uso de chaves SSH) e limita o acesso SSH apenas a usuários específicos, aumentando significativamente a segurança do servidor SSH. === 7. Verificação de Vulnerabilidades com `lynis` === * **lynis** - Executa uma auditoria de segurança no sistema. - Exemplo de uso: sudo lynis audit system - Descrição: Realiza uma auditoria de segurança completa no sistema, identificando vulnerabilidades e fornecendo sugestões de melhorias de segurança, como patches e configurações. * **lynis show hardening** - Exibe recomendações para hardening. - Exemplo de uso: sudo lynis show hardening - Descrição: Exibe sugestões específicas de hardening, fornecendo orientações detalhadas sobre como aumentar a segurança do sistema.