github blob

GITHUB BLOG

Ecole42 Born2beroot

bruno-valerohá cerca de 1 mêsmain

Born2BeRoot

Este projeto faz parte do currículo da 42 São Paulo e tem como objetivo principal configurar um sistema Linux de forma segura e restrita, aplicando boas práticas de administração de sistemas. A proposta é que o estudante configure o ambiente apenas com privilégios de root quando necessário, garantindo segurança, controle de acessos e conformidade com requisitos definidos.


📚 Objetivo

O Born2BeRoot ensina na prática conceitos fundamentais de administração de sistemas Linux, incluindo:

  • Gerenciamento de usuários e grupos
  • Configuração de segurança de senha e login
  • Controle de permissões
  • Ajustes em arquivos críticos do sistema
  • Aplicação de políticas de segurança
  • Restrições de acesso físico e remoto

Ao final, o sistema estará configurado para seguir padrões rigorosos de segurança.


⚙️ Estrutura do Projeto

Abaixo estão descritas as principais configurações abordadas no projeto.


1️⃣ sudo e sudoers

O sudo permite que usuários executem comandos com privilégios de superusuário, mas apenas conforme regras predefinidas no arquivo /etc/sudoers.d/sudo_config.

No Born2BeRoot, a configuração do sudo inclui:

  • Criação e atribuição de usuários/grupos específicos com permissões controladas
  • Configuração do sudoers para:
    • Restringir comandos que podem ser executados
    • Ativar logs detalhados de uso do sudo
    • Definir tempo de expiração da sessão de privilégios

📄 Arquivo relevante: /etc/sudoers.d/sudo_config:


2️⃣ login.defs

O arquivo /etc/login.defs define padrões e restrições para criação e gerenciamento de usuários no Linux.

Configurações aplicadas:

  • POLÍTICAS DE SENHA

    • Tamanho mínimo da senha (PASS_MIN_LEN)
    • Tempo mínimo e máximo de validade da senha (PASS_MIN_DAYS e PASS_MAX_DAYS)
    • Aviso prévio de expiração (PASS_WARN_AGE)
  • UID e GID mínimos

    • Definição de IDs mínimos para usuários e grupos (UID_MIN, UID_MAX, GID_MIN, GID_MAX)
  • Criação automática de diretório home

    • Controle do CREATE_HOME na criação de usuários

📄 Arquivo relevante: /etc/login.defs


3️⃣ libpam-pwquality

O PAM (Pluggable Authentication Modules) permite configurar módulos de autenticação no Linux. O módulo libpam-pwquality define critérios de complexidade de senha, evitando combinações fracas.

Configurações típicas no Born2BeRoot:

  • Tamanho mínimo da senha (minlen)
  • Obrigatoriedade de caracteres variados:
    • Letras maiúsculas (ucredit)
    • Letras minúsculas (lcredit)
    • Dígitos (dcredit)
    • Caracteres especiais (ocredit)
  • Histórico de senhas para evitar repetição (remember)
  • Verificação de similaridade com o nome do usuário (difok)

📄 Arquivo relevante: /etc/security/pwquality.conf 📄 Arquivo PAM que integra a regra: /etc/pam.d/common-password


4️⃣ Outras Configurações

Esta seção é reservada para outras customizações exigidas pelo projeto. Você pode descrever aqui configurações extras que tenha feito.

🔹 Configuração de SSH

  • (Descreva aqui) *

🔹 Políticas de firewall

  • (Descreva aqui) *

🔹 Configuração de logs

  • (Descreva aqui) *

🛠️ Comandos Úteis

  • Verificar políticas de senha
    chage -l <usuario>