Primeiro, você pode ler o nome e falar que o objetivo
do LIDS é detectar intrusos no sistemas, mas na
verdade não é, o seu nome já foi muito discutido,
mas isto é problema do autor. Na verdade o LIDS
é utilitario que é instalado no núcleo do sistema
operacional (kernel) e intercepta algumas chamadas
de sistemas e protege o sistema por meio delas ou
no controle de potencialidades (capabilities).
Quando o intruso ganha privilegios de root em sua
máquina, simples utilitarios como scripts ou programas
são dificieis de oferecerem segurança, no ambiente
Linux o privilegio de root é necessario para varias
ocasiões, e por padrão este super-usuário não tem
restrições, então este usuário pode ler qualquer
coisa, escrever em qualquer coisa e apagar qualquer
coisa. Então, quando um intruso ganha privilegios
de root ele pode fazer qualquer coisa, instalar
modulos no kernel (alterar chamadas de sistema,
filtragem de pacotes, ...), back doors, programas
para rodar no swap, e muito mais.
Com o Lids, arquivos e diretorios podem ser protegidos
para o root, voce pode controlar o acesso via ACLs
(Access Control List, lista de controle de acesso),
também via "potencialidades" (Proteção já do kernel
para algumas tarefas, por exemplo para se abrir
portas abaixo de 1024, apenas o super-usuário, com
o lids voce pode alterar estas potencialidades),
voce pode deixar que um determinado programa execute
alguma tarefa que realmente precisa de root, como
por exemplo abrir uma porta abaixo de 1024, você
não precisa executar a tarefa como root, so para
abrir a porta abaixo de 1024, então você pode dar
esta potenciadade ao programa e voce pode executar
como qualquer usuário e consiguir abrir esta porta.
Outro exemplo, com o LIDS, você pode dizer que
nenhum usuário pode ler o arquivo /etc/shadow,
nem mesmo o root, podemos liberar o acesso de leitura
apenas para o programa /bin/login.
Ainda podemos melhorar, colocar que a escrita só
pode ser feita pelos programas /usr/bin/passwd
e /usr/sbin/useradd, para alterar a senha
e cadastro de novos usuários. Desta forma, você
dificulta um pouco mais o acesso ao /etc/shadow.
Mas, dae você vai me dizer, ah! se eu tiver acesso
de root, é simples de eu apagar o programa /usr/bin/passwd
e consiguir ler /etc/shadow, mas e se eu
colocar outras ACLs para não deixar ninguem ler
e nem escrever nestes arquivos, e somente executar?
Temos que tomar muito cuidado para criar nossas
ACLs, e pensar em todos as situações possiveis,
e realmente deixar que o programa só faça o que
precise.
Instalação do LIDS:
Depois do kernel configurado, você pode puxar a
ultima versão do LIDS, pela página oficial em www.lids.org,
pegue o remendo (patch) da versão correspondente
ao seu kernel. Para aplicar a patch utilize o comando:
patch -p1 ../lids.patch
Para a opção do LIDS ser compilada, você deve habilitar
estas duas opções:
[*] Prompt for development and/or incomplete code/drivers
[*] Sysctl Support
Agora, é so ir na opção do LIDS no menu do kernel
(make menuconfig ou make xconfig) e selecionar o
que você desejar.
Depois é so recompilar o kernel. Não esqueça de
compilar e instalar o lidsadm, que acompanha o pacote
Configuração:
lidsadm -A -s /origem -o /arquivo,diretorio -j REGRA
A sintaxe é parecida com a do ipchains, o -A
é para voce adicionar uma regra na lista dele, no
-s você informa a origem, no -o o destino,
e no -j a regra.
Logo, estarei colocando outro artigo/texto aqui
explicando as regras e com exemplos de uso do lidsadm.