Este artigo nos introduz ao LIDS (Linux Intrusion Detection System), um sistema robusto que aplicado como patch no kernel nos oferece recursos extremos de configurações de segurança do sistema operacional.
4.1 - Protegendo um arquivo/pasta como "somente leitura"
Essa configuração não irá permitir que nenhum usuário consiga
escrever nos arquivos protegidos. Essa atitude é muito útil em
caso de arquivos binários como o /bin/login, /bin/su
para evitar o trabalho de rootkits.
Devemos frisar que quando digo nenhum usuário, me refiro a nenhum
mesmo, nem mesmo o root. Portanto cuidado com os arquivos que irá
proteger.
# lidsconf -A -o /path/to/file -j READONLY
Isso será necessário para proteger o arquivo como somente leitura.
Se quisermos proteger uma pasta toda, basta colocarmos a pasta
que queremos:
# lidsconf -A -o /pasta -j READONLY
E todas subpastas e arquivos de dentro estarão protegidos.
4.2 - Protegendo um arquivo/pasta tornando-o oculto e inacessível por usuários
Essa configuração tornará o arquivo protegido como invisível e
inacessível para os usuários e para o sistema. Assim ele se tornará
quase que algo não existente.
Raramente usaremos esses parâmetros sozinhos e sim em conjuntos
para obter um controle em que softwares poderão escrever em
determinados arquivos e tudo mais.
# lidsconf -A -o /path/file -j DENY
Com isso o arquivo ficará totalmente inacessível.
Isso e muito útil quando temos um servidor em que não se adiciona
usuários, daí faremos o seguinte esquema para proteger o
/etc/shadow:
# lidsconf -A -o /etc/shadow -j DENY
# lidsconf -A -o /bin/login -j READONLY
# lidsconf -A -s /bin/login -j READONLY
Isso faria com que nós conseguíssemos logar no sistema, mesmo o
/etc/shadow estando totalmente inacessível ao sistema.
Somente o /bin/login interage com ele.
4.3 - Como proteger meus arquivos de logs?
Bom, com certeza que arquivos de logs são os alvos mais
previsíveis durante uma invasão, todo usuário iria querer sumir
com suas entradas de dentro deles. Portanto, protegendo os logs
como APPEND eles podem apenas ser adicionados, nunca apagados.
# lidsconf -A -o /var/log -j APPEND
Assim o invasor mesmo com root no sistema não conseguiria eliminar
seus vestígios no sistema.
Bom, isso é o básico que todos devem saber sobre o LIDS. Vou
passar agora umas regras básicas de proteção para o sistema, como
por exemplo, proteger determinador daemons.
[1] Comentário enviado por fabio em 21/02/2004 - 12:34h
Já cansei de ouvir falar sobre LIDS, mas como nunca dei a devida atenção para segurança, nunca tinha procurado saber do que se tratava. Lendo esse artigo agora posso afirmar, essa é uma ferramenta fantástica. Parabéns!
[3] Comentário enviado por Copyleft em 22/02/2004 - 13:07h
Oi, muito bom o artigo, fiz tudo, estou apenas tendo algumas respostas diferentes em relacao as regras e duvidas (de lei:)).
/sbin/lidsconf -A -s /usr/local/apache/bin/httpd -o /etc/httpd -j READONLY
lidsconf: cannot find the object file
/sbin/lidsconf -A -o /etc/lilo.conf -j DENY
lidsconf: the type is less than default permssion, this rule is useless
Estes sao apenas alguns exemplos, na maioria esta funcionado, alguem sabe qual meu erro aqui, no FAQ do site parecem ser as mesmas...alguem sabe de outro local com algumas?
Estava lendo (um livro muito velho), nele recomenda-se deixar o
[ ] Security alert when execing unprotected programs before
sealing LIDS selecionado, qual valor vcs recomendam?
E a respeito do 30:CAP_INIT_KILL, melhor deixar + ou -?
Desde ja agradeco pela ajuda:)
[4] Comentário enviado por Copyleft em 22/02/2004 - 14:22h
Voltei, bom eu dei uma olha e vi que estas menssagens sao bugs...nao se deve usar o lidstools-0.5.1 e lidstools-0.5.2 com kernel 2.4.24, nesta ja aproveitei e instalei o kernel 2.6.2 com o lids-2.0.4pre1-2.6.2 e lidstools-0.4 (recomendado), pelo fato desta versao ter uns lances de bloquear worms em HTTP, FTP, POP3, mas ta em desenvolvimento...alguem aqui esta usando, caso esteja, ta dando muito pau?
Se colocar assim funciona:
lidsconf -A -o /etc/ipsec.secrets -j DENY
lidsconf -A -o /etc -j READONLY
Se inverter nao rola:
lidsconf -A -o /etc -j READONLY
lidsconf -A -o /etc/ipsec.secrets -j DENY
Tem este patch pra corrigir:
-------------------------------------------------------------
diff -u -r1.1.1.1 lidsconf.c
--- lidsconf.c 17 Feb 2004 06:20:27 -0000 1.1.1.1
+++ lidsconf.c 20 Feb 2004 05:29:07 -0000
@@ -802,7 +802,7 @@
exit_error(2,"you must define the default rules for object
files");
}
/* if current type have less persmission of defualt _rule */
- if( type < default_rule ) {
+ if( type < default_rule && !sys_cap ) {
exit_error(2,"the type is less than default permssion, this rule is
useless"); }
}
------------------------------------------------------------
Acho que devemos testar algumas coisas antes de publicarmos,principalmente o que envolve seguranca.
Em todo caso valeu pelo artigo publicado, desperto meu interesse nesta ferramenta, to gostando muito dela.
PS. To rodando no 2.6.2 e ta indo.
[6] Comentário enviado por y2h4ck em 25/02/2004 - 17:41h
A proposito nao tive bug nenhum em minha instalacao creio que seria mais interessante reinstalar pq deve ter dado algum problema por ai ... aqui ele esta funcionando perfeitamente num servidor de missao critica com mais de 200 dias de Uptime ... portanto meu amigo ... antes de vc vir falar para mim testar algumas coisas ... acho melhor VC ver se esta fazendo a coisa direito ...
mas obrigado pelo post ate mais :)
[7] Comentário enviado por Copyleft em 26/02/2004 - 00:03h
Sem duvida nao eh aqui o erro, eh um bug, tanto que se vc perceber o patch foi escrito no dia idsconf.c 20 Feb 2004 05:29:07 , nao teria como ter sido eu que escrevi, sendo que instalei no dia 22, quem afirma que eh um bug eh o responsavel como segue:
It is a bug..try following patch
------------------------- cut here ---------------------------------------------------
diff -u -r1.1.1.1 lidsconf.c
--- lidsconf.c 17 Feb 2004 06:20:27 -0000 1.1.1.1
+++ lidsconf.c 20 Feb 2004 05:29:07 -0000
@@ -802,7 +802,7 @@
exit_error(2,"you must define the default rules for object
files");
}
/* if current type have less persmission of defualt _rule */
- if( type < default_rule ) {
+ if( type < default_rule && !sys_cap ) {
exit_error(2,"the type is less than default permssion, this rule is
useless"); }
}
---------------------- cut here -----------------------------------------------------------
The problem is, this checking should only performance on all the acl with a "SUBJECT", for
other acl without a "SUBJECT", you can do any thing you want..:-).
Thanks for reporting the bug! It will be release in next version.
Huagang
Desculpe se pareceu que quis desprestigiar seu trabalho, se vc diz que nao teve problemas acredito, nao uso icq por isso nao entrei em contato.
[8] Comentário enviado por removido em 15/12/2006 - 07:15h
Legal seu artigo, só não concordei com o título. O LIDS é uma ótima ferramenta que pode até fazer um sistema extremamente seguro, mas com as regras que você colocou no artigo, não achei o artigo corresponde com o título. Mas de qualquer modo parabéns por esse artigo e pelo seus artigos disponibilizados no site do LIDS. Principalmete pela tradução do artigo feito pelo criador do LIDS!