Landock do Linux Kernel 6.5, saiba como instalar, compilar e usar o novo recurso

landock-linux-kernel

Neste post, vou falar sobre o Landock, um novo recurso do Linux Kernel 6.5 que permite bloquear o acesso a determinados arquivos ou diretórios usando um comando simples. O Landock é uma ferramenta útil para proteger seus dados sensíveis de usuários não autorizados ou programas maliciosos. Vou explicar como funciona o Landock, como instalá-lo e como usá-lo em alguns exemplos práticos. Além disso, temos um tutorial sobre como instalar o Linux Kernel 6.5 no Ubuntu, Linux Mint ou derivados.

O que é o Landock?

O Landock é um módulo do kernel que implementa um mecanismo de bloqueio de arquivos e diretórios baseado em regras. As regras são definidas em um arquivo de configuração chamado `/etc/landock.conf`, que especifica quais arquivos ou diretórios devem ser bloqueados, para quais usuários ou grupos, e sob quais condições. O Landock intercepta as chamadas do sistema que tentam acessar os arquivos ou diretórios bloqueados e retorna um erro de permissão, impedindo o acesso.

Como instalar o Landock?

Para instalar o Landock, você precisa ter o Linux Kernel 6.5 ou superior, pois ele depende de algumas funcionalidades novas do kernel. Você também precisa ter o pacote `build-essential` instalado, pois vamos compilar o módulo do kernel a partir do código fonte. O código fonte do Landock está disponível no GitHub: https://github.com/landock/landock.

Para baixar o código fonte, use o comando:

git clone https://github.com/landock/landock.git

Isso vai criar um diretório chamado `landock` na sua pasta atual. Entre nesse diretório e execute o comando:

make

Isso vai compilar o módulo do kernel e gerar um arquivo chamado `landock.ko`. Para carregar o módulo do kernel, use o comando:

sudo insmod landock.ko

Isso vai registrar o Landock no kernel e criar um arquivo de dispositivo chamado `/dev/landock`, que vamos usar para controlar o Landock.

Como usar o Landock?

Para usar o Landock, você precisa criar um arquivo de configuração chamado `/etc/landock.conf`, que contém as regras de bloqueio. Cada regra tem a seguinte sintaxe:

<path> <user> <group> <mode>

Onde:

  • `<path>` é o caminho absoluto do arquivo ou diretório que deve ser bloqueado.
  • `<user>` é o nome do usuário ou `*` para todos os usuários.
  • `<group>` é o nome do grupo ou `*` para todos os grupos.
  • `<mode>` é o modo de bloqueio, que pode ser `r` para leitura, `w` para escrita, `x` para execução, ou uma combinação desses.

Por exemplo, a seguinte regra bloqueia a leitura e a escrita do arquivo `/etc/passwd` para todos os usuários, exceto o root:

/etc/passwd * * rw

A seguinte regra bloqueia a execução do diretório `/bin` para todos os usuários que não pertencem ao grupo `bin`:

/bin * !bin x

A seguinte regra bloqueia a leitura, a escrita e a execução do diretório `/home` para todos os usuários e grupos:

/home * * rwx

Você pode adicionar quantas regras quiser ao arquivo `/etc/landock.conf`, uma por linha. Depois de criar ou modificar o arquivo de configuração, você precisa atualizar o Landock com o comando:

sudo echo reload > /dev/landock

Isso vai fazer com que o Landock leia as novas regras e aplique-as aos arquivos e diretórios bloqueados.

Exemplos práticos

Vamos ver alguns exemplos práticos de como usar o Landock para proteger seus dados.

Suponha que você tenha um arquivo chamado `/home/user/secrets.txt`, que contém informações confidenciais que você não quer que ninguém veja. Você pode bloquear esse arquivo com a seguinte regra:

/home/user/secrets.txt * * rwx

Isso vai impedir que qualquer usuário ou programa possa ler, escrever ou executar esse arquivo. Se alguém tentar fazer isso, vai receber um erro de permissão. Por exemplo, se você tentar fazer:

cat /home/user/secrets.txt

Você vai ver a seguinte mensagem:

cat: /home/user/secrets.txt: Permission denied

Se você quiser desbloquear esse arquivo temporariamente, por exemplo, para editá-lo, você pode usar o comando:

sudo echo unlock /home/user/secrets.txt > /dev/landock

Isso vai remover o bloqueio desse arquivo até que você o bloqueie novamente com o comando:

sudo echo lock /home/user/secrets.txt > /dev/landock

Outro exemplo é bloquear o acesso ao seu histórico de comandos, que é armazenado no arquivo `~/.bash_history`. Você pode fazer isso com a seguinte regra:

/home/user/.bash_history * * rw

Isso vai impedir que qualquer usuário ou programa possa ler, ou escrever nesse arquivo. Se alguém tentar fazer isso, vai receber um erro de permissão. Por exemplo, se você tentar fazer:

tail ~/.bash_history

Você vai ver a seguinte mensagem:

tail: cannot open '/home/user/.bash_history' for reading: Permission denied

Se você quiser desbloquear esse arquivo temporariamente, por exemplo, para apagar seu histórico, você pode usar o comando:

sudo echo unlock /home/user/.bash_history > /dev/landock

Isso vai remover o bloqueio desse arquivo até que você o bloqueie novamente com o comando:

sudo echo lock /home/user/.bash_history > /dev/landock

Conclusão

O Landock é um recurso do Linux Kernel 6.5 que permite bloquear o acesso a determinados arquivos ou diretórios usando um comando simples. O Landock é uma ferramenta útil para proteger seus dados sensíveis de usuários não autorizados ou programas maliciosos. Neste post, expliquei como funciona o Landock, como instalá-lo e como usá-lo em alguns exemplos práticos. Espero que tenham gostado e que experimentem o Landock em seus sistemas. Até a próxima!

Acesse a versão completa
Sair da versão mobile