Segurança

Como configurar Linux Chroot Jails

Como configurar Linux Chroot Jails
Especialmente aqueles dedicados a serviços críticos, os sistemas Linux exigem conhecimento de nível especializado para trabalhar e medidas de segurança básicas.

Infelizmente, mesmo depois de tomar medidas de segurança cruciais, as vulnerabilidades de segurança ainda encontram seu caminho em sistemas seguros. Uma maneira de gerenciar e proteger seu sistema é limitar os danos possíveis quando ocorre um ataque.

Neste tutorial, discutiremos o processo de uso de chroot jail para gerenciar danos ao sistema no caso de um ataque. Veremos como isolar processos e subprocessos para um ambiente particular com falsos privilégios de root. Isso limitará o processo a um diretório específico e negará o acesso a outras áreas do sistema.

Uma breve introdução ao chroot jail

Uma jaula chrootéum método de isolar processos e seus subprocessos do sistema principal usando falsos privilégios de root.

Como mencionado, isolar um processo específico usando privilégios de root falsos limita os danos no caso de um ataque malicioso. Os serviços chrootados são limitados aos diretórios e arquivos dentro de seus diretórios e não são persistentes na reinicialização do serviço.

Por que usar chroot jail

O principal objetivo do chroot jail é como uma medida de segurança. O chroot também é útil ao recuperar senhas perdidas montando dispositivos de mídia ao vivo.

Existem várias vantagens e desvantagens de definir a prisão chroot. Esses incluem:

Vantagens

Desvantagens

Como criar uma jaula chroot básica

Neste processo, iremos criar uma jaula chroot básica com 3 comandos limitados a essa pasta. Isso ajudará a ilustrar como criar uma jaula e atribuir vários comandos.

Comece criando uma pasta principal. Você pode pensar nesta pasta como a pasta / no sistema principal. O nome da pasta pode ser qualquer coisa. No nosso caso, nós o chamamos de / chrootjail

sudo mkdir / chrootjail

Usaremos este diretório como a raiz falsa contendo os comandos que atribuiremos a ele. Com os comandos que usaremos, exigiremos o diretório bin (contém os executáveis ​​do comando) e o, etc., diretório (contendo arquivos de configuração para os comandos).

Dentro da pasta / chrootjail, crie estas duas pastas:

sudo mkdir / chrootjail / etc, bin

A próxima etapa é criar diretórios para bibliotecas vinculadas dinamicamente para os comandos que queremos incluir na prisão. Para este exemplo, usaremos os comandos bash, ls e grep.

Use o comando ldd para listar as dependências desses comandos, conforme mostrado abaixo:

sudo ldd / bin / bash / bin / ls / bin / grep

Se você não estiver dentro da pasta bin, você precisa passar o caminho completo para os comandos que deseja usar. Por exemplo, ldd / bin / bash ou ldd / bin / grep

A partir da saída do ldd acima, precisamos dos diretórios lib64 e / lib / x86_64-linux-gnu. Dentro do diretório jail, crie essas pastas.

sudo mkdir -p / chrootjail lib / x86_64-linux-gnu, lib64

Depois de criar os diretórios da biblioteca dinâmica, podemos listá-los usando uma árvore, conforme mostrado abaixo:

Conforme progredimos, você começará a obter uma imagem clara do que significa uma jaula chroot.

Estamos criando um ambiente semelhante a um diretório raiz normal de um sistema Linux. A diferença é que, dentro desse ambiente, apenas comandos específicos são permitidos e o acesso é limitado.

Agora que criamos o bin. etc., lib e lib64, podemos adicionar os arquivos necessários dentro de seus respectivos diretórios.

Vamos começar com os binários.

sudo cp / bin / bash / chrootjail / bin && sudo cp / bin / ls / chrootjail / bin && sudo cp / bin / grep / chrootjail / bin

Tendo copiado os binários para os comandos de que precisamos, exigimos as bibliotecas para cada comando. Você pode usar o comando ldd para ver os arquivos a serem copiados.

Vamos começar com bash. Para o bash, exigimos as seguintes bibliotecas:

/ lib / x86_64-linux-gnu / libtinfo.tão.6
/ lib / x86_64-linux-gnu / libdl.tão.2
/ lib / x86_64-linux-gnu / libc.tão.6
/ lib64 / ld-linux-x86-64.tão.2

Em vez de copiar todos esses arquivos um por um, podemos usar um loop for simples para copiar cada biblioteca em todas as bibliotecas para / chrootjail / lib / x86_64-linux-gnu

Vamos repetir esse processo para os comandos ls e grep:

Para o comando ls:

Para o comando grep:

Em seguida, dentro do diretório lib64, temos uma biblioteca compartilhada entre todos os binários. Podemos simplesmente copiá-lo usando um comando cp simples:

A seguir, vamos editar o arquivo de login principal do bash (localizado em / etc / bash.bashrc no Debian) para que possamos ajustar o prompt bash ao nosso gosto. Usando comandos simples de echo e tee, conforme mostrado:

sudo echo 'PS1 = "CHROOTJAIL #"' | sudo tee / chrootjail / etc / bash.bashrc

Depois de concluir todas as etapas acima, podemos fazer login no ambiente de prisão usando o comando chroot como mostrado.

sudo chroot / chrootjail / bin / bash

Você obterá privilégios de root com o prompt semelhante aos criados nos comandos echo e tee acima.

Depois de fazer login, você verá que só tem acesso aos comandos que incluiu quando criou a prisão. Se você precisar de mais comandos, você deve adicioná-los manualmente.

NOTA: Visto que você incluiu o shell bash, você terá acesso a todos os comandos internos do bash. Isso permite que você saia da prisão usando o comando exit.

Conclusão

Este tutorial cobriu o que é chroot jail e como podemos usá-lo para criar um ambiente isolado do sistema principal. Você pode usar as técnicas discutidas no guia para criar ambientes isolados para serviços críticos.

Para praticar o que você aprendeu, tente criar uma prisão apache2.

DICA: Comece criando um diretório raiz, adicione os arquivos de configuração (etc / apache2), adicione a raiz do documento (/ var / www / html), adicione o binário (/ usr / sbin / apache2) e finalmente adicione as bibliotecas necessárias (ldd / usr / sbin / apache2)

Como aumentar o FPS no Linux?
FPS significa Quadros por segundo. A tarefa do FPS é medir a taxa de quadros em reproduções de vídeo ou desempenho de jogos. Em palavras simples, o nú...
Top jogos do Oculus App Lab
Se você é proprietário de um fone de ouvido Oculus, deve estar informado sobre o carregamento lateral. Sideload é o processo de instalação de conteúdo...
Os 10 melhores jogos para jogar no Ubuntu
A plataforma Windows tem sido uma das plataformas dominantes para jogos devido à grande porcentagem de jogos que estão sendo desenvolvidos hoje para o...