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
Verifique o status do UFW. Não instalado? Vamos instalar!
# Verificando o UFW sudo ufw statusInstalando e ativando o UFW.
# Instalar (se necessário) sudo apt install ufw # Ativar o firewall sudo ufw enableConfigurar 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 statusVerificação: Depois de configurar, você deve ver algo como:
Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 80 ALLOW Anywhere
Se o comando indicar que "firewall está desativado", precisamos corrigir isso.
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
Verificando o status atual:
# Descobrindo se o SELinux está ligado sestatusSe o modo mostrar
disabled, precisa ativar ele através do arquivo de configuração.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 onano).sudo nano /etc/selinux/configEncontre a linha:
SELINUX=disabledSubstitua por:
SELINUX=enforcingSalve as alterações e reinicie o sistema pra que elas tenham efeito:
sudo rebootChecando depois do reboot.
Depois de carregar o servidor, confira de novo o status do SELinux:
getenforceSe 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.
Visualizando o contexto dos arquivos: O SELinux usa contextos pra gerenciar acesso. Bora ver qual contexto o diretório
/var/www/htmltem.ls -Z /var/www/htmlExemplo de saída:
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/htmlSe algo estiver errado, dá pra mudar o contexto temporariamente:
sudo chcon -t httpd_sys_content_t /var/www/htmlTestando 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.
Crie o diretório:
sudo mkdir /project_dirConfigure as permissões:
Vamos dar pro
user1acesso total e prouser2só leitura:# Acesso total pro user1 sudo setfacl -m u:user1:rwx /project_dir # Só leitura pro user2 sudo setfacl -m u:user2:r-- /project_dirCheque as ACL:
# Checar permissões atuais getfacl /project_dirA saída deve mostrar as suas configurações:
# file: /project_dir user::rwx user:user1:rwx user:user2:r--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
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.
SELinux:
- Verifique os contextos dos arquivos para garantir que o SELinux está restringindo o acesso corretamente.
ACL:
- Entre como os usuários
user1euser2e tente ler e escrever no arquivo dentro do diretório/project_dir.
- Entre como os usuários
Exercícios práticos
- Configure o firewall permitindo apenas acesso via SSH e HTTP.
- Ative o SELinux no modo
enforcinge garanta que o servidor web está funcionando corretamente. - Configure o ACL para o diretório
/project_dir, dando aouser1acesso total, e aouser2apenas permissão de leitura. - 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!
GO TO FULL VERSION