CodeGym /Cursos /Docker SELF /Configuração de firewall, SELinux e regras básicas de ACL...

Configuração de firewall, SELinux e regras básicas de ACL

Docker SELF
Nível 5 , Lição 5
Disponível

1. Passo 1: Instalando e configurando o firewall

Oi! Hoje vamos colocar em prática tudo o que você aprendeu sobre segurança no Linux ao longo do dia. Vamos configurar o firewall, explorar como o SELinux funciona e entender como o ACL facilita o gerenciamento de acesso a arquivos. Essa palestra é o seu "campo de treinamento". Bora colocar nossos "ombros de segurança de admin" e começar!

Você já sabe que um bom firewall é como um segurança na entrada. Ele decide quem entra e quem leva um "De jeito nenhum!". Vamos começar protegendo nosso sistema, limitando o acesso apenas aos serviços de SSH e HTTP.

Trabalhando com UFW

  1. Verifique o status do UFW. Não instalado? Vamos instalar!

    # Verificando o UFW
    sudo ufw status
  2. Se o comando indicar que "firewall está desativado", precisamos corrigir isso.

  3. Instalando e ativando o UFW.

    # Instalar (se necessário)
    sudo apt install ufw
    
    # Ativar o firewall
    sudo ufw enable
  4. Configurar o acesso. Queremos permitir apenas SSH (porta 22) e HTTP (porta 80), bloqueando todo o resto. A lógica é clara: servidor não é um hotel barato pra qualquer um se hospedar.

    # Permitir SSH
    sudo ufw allow 22
    
    # Permitir HTTP
    sudo ufw allow 80
    
    # Verificar configurações
    sudo ufw status
  5. Verificação: Depois de configurar, você deve ver algo como:

    Status: active
    To                         Action      From
    --                         ------      ----
    22                         ALLOW       Anywhere
    80                         ALLOW       Anywhere
    

Se você usa iptables, a configuração é um pouco mais complicada, mas a lógica é a mesma: criamos regras para SSH e HTTP, bloqueando o resto.


2. Etapa 2: Trabalhando com o SELinux

SELinux é tipo aquele professor rígido que fica de olho no comportamento dos arquivos e usuários no seu servidor. O lema dele é: "Confie, mas verifique". Vamos ativar o SELinux e ver como ele funciona.

Ativando o SELinux

  1. Verificando o status atual:

    # Descobrindo se o SELinux está ligado
    sestatus

    Se o modo mostrar disabled, precisa ativar ele através do arquivo de configuração.

  2. Ativando o SELinux pelo arquivo de configuração:

    O arquivo de configuração do SELinux fica no caminho /etc/selinux/config. Abra ele com um editor de texto (tipo o nano).

    sudo nano /etc/selinux/config
    

    Encontre a linha:

    SELINUX=disabled
    

    Substitua por:

    SELINUX=enforcing
    

    Salve as alterações e reinicie o sistema pra que elas tenham efeito:

    sudo reboot
    
  3. Checando depois do reboot.

    Depois de carregar o servidor, confira de novo o status do SELinux:

    getenforce
    

    Se a resposta do sistema for Enforcing, parabéns, você está na linha de frente da segurança!


Exemplo com SELinux e servidor web

Imagina que você tem um servidor web que armazena arquivos no diretório /var/www/html. Vamos verificar como o SELinux protege ele.

  1. Visualizando o contexto dos arquivos: O SELinux usa contextos pra gerenciar acesso. Bora ver qual contexto o diretório /var/www/html tem.

    ls -Z /var/www/html
    

    Exemplo de saída:

    drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
    

    Se algo estiver errado, dá pra mudar o contexto temporariamente:

    sudo chcon -t httpd_sys_content_t /var/www/html
    
  2. Testando o servidor web: Depois de configurar o contexto, confira se o servidor tá funcionando e se não tem erro de acesso.


3. Passo 3: Gerenciamento de permissões com ACL

ACL (Access Control List) — é tipo uma "chave extra" pra lidar com permissões. Quando as permissões padrão rwx são limitantes, ACL deixa você ajustar os acessos pra usuários específicos.

Crie um diretório de teste

Bora criar o diretório project_dir e configurá-lo pros acessos de dois usuários: user1 e user2.

  1. Crie o diretório:

    sudo mkdir /project_dir
    
  2. Configure as permissões:

    Vamos dar pro user1 acesso total e pro user2 só leitura:

    # Acesso total pro user1
    sudo setfacl -m u:user1:rwx /project_dir
    
    # Só leitura pro user2
    sudo setfacl -m u:user2:r-- /project_dir
  3. Cheque as ACL:

    # Checar permissões atuais
    getfacl /project_dir

    A saída deve mostrar as suas configurações:

    # file: /project_dir
    user::rwx
    user:user1:rwx
    user:user2:r--
  4. Configuração de permissões padrão:

    Pra que todos os novos arquivos no diretório herdem automaticamente as permissões da ACL, vamos definir elas como padrão:

    sudo setfacl -d -m u:user1:rwx /project_dir
    sudo setfacl -d -m u:user2:r-- /project_dir
    

4. Verificando a configuração final

  1. Firewall:

    • Certifica-te de que as portas SSH e HTTP estão acessíveis, e que as outras estão bloqueadas. Tente conectar no servidor via SSH e abrir um site no navegador.
  2. SELinux:

    • Verifique os contextos dos arquivos para garantir que o SELinux está restringindo o acesso corretamente.
  3. ACL:

    • Entre como os usuários user1 e user2 e tente ler e escrever no arquivo dentro do diretório /project_dir.

Exercícios práticos

  1. Configure o firewall permitindo apenas acesso via SSH e HTTP.
  2. Ative o SELinux no modo enforcing e garanta que o servidor web está funcionando corretamente.
  3. Configure o ACL para o diretório /project_dir, dando ao user1 acesso total, e ao user2 apenas permissão de leitura.
  4. Verifique os usuários ativos no sistema usando o comando who.

Esses exercícios vão te ajudar a consolidar o aprendizado e a entender como aplicar na prática. E lembra: segurança no Linux não é só configuração, mas também atenção constante aos detalhes. Boa sorte!

1
Pesquisa/teste
Trabalhar com usuários no Linux, nível 5, lição 5
Indisponível
Trabalhar com usuários no Linux
Trabalhar com usuários no Linux
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION