===== 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.