Implementando um kernel GNU/Linux mais seguro

Nesse artigo iremos mostrar como é possível implementar pequenas filtragens através da compilação do kernel GNU/Linux utilizando o pseudo-sistema de arquivos /proc sem ter um conhecimento avançado de ferramentas específicas de firewalling, como o Netfilter/Iptables, Ipchains, Ipfwadm entre outras.

[ Hits: 65.452 ]

Por: Wagner M Queiroz em 03/02/2005


O pseudo-sistema de arquivos



O diretório /proc é chamado de pseudo-sistema de arquivos, porque na verdade as informações contidas ali são utilizadas pelo kernel para interfacear o mesmo com as estruturas de dados do sistema [2]. O que é encontrado dentro do diretório /proc não é real, ou seja, as informações são geradas conforme a situação em que o sistema se encontra naquele momento pelo kernel [2].

Muitas das configurações que podem ser realizadas nos arquivos encontrados dentro do /proc são valores binários, ou seja, 0 (zero) e 1 (um), representando falso (disable) e verdadeiro (enable) respectivamente [3]. Um exemplo seria o arquivo /proc/sys/net/ipv4/tcp_syncookies. Também são encontrados valores com textos legíveis (ASCII), como é o caso do arquivo /proc/sys/kernel/hostname.

É possível alterar esses arquivos com editores de texto, com o comando sysctl ou com um simples redirecionamento de entrada e saída de dados[1] como descrito no exemplo abaixo:

# echo "casa >" /proc/sys/kernel/hostname

Se agora executarmos:

# cat /proc/sys/kernel/hostname
casa

Obteremos o nome do hostname local que acabamos de modificar. Porém como o diretório /proc/ é alterado quando reiniciamos o sistema, tudo que foi configurado é perdido, é necessário que essas configurações feitas sejam armazenadas em um script para que quando o sistema iniciar, o script possa executar os comandos para que se tornem permanentes no kernel até que o mesmo seja reiniciado. Existem dois métodos para isso: [1]
  • Utilizar um dos scripts rc.d encontrados em /etc/.
  • Utilizar "variável=valor" em /etc/sysctl.conf. Está linha funcionará como sysctl -w.

Os arquivos que iremos modificar as variáveis se encontram dentro do diretório /proc/sys/net/ipv4/, onde os mesmos são responsáveis pelas filtragens de informações de entrada.

O interessante é que o efeito das configurações das variáveis dos arquivos dentro do diretório /proc são instantâneas, a partir do momento que o arquivo é salvo, as mudanças já entram em produção, não sendo necessário executar algum comando de reinício de serviço ou até mesmo o reinício do GNU/Linux. Essa é uma das grandes vantagens de configurar o kernel através dos parâmetros do diretório /proc/.

Lembrando que para executar esses comandos para a configuração do kernel, é necessário o usuário possuir permissões de root.

Página anterior     Próxima página

Páginas do artigo
   1. Resumo
   2. O pseudo-sistema de arquivos
   3. O sysctl
   4. Implementado segurança no kernel
   5. Conclusão
   6. Referências bibliográficas
   7. Sobre o autor
Outros artigos deste autor

VPN: IPSec vs SSL

Leitura recomendada

O kernel do Linux: A definição, importância e funcionalidades

Compilando kernel 2.6 no Slackware 11

Registrando extensões no kernel com o binfmt_misc

Instalando e configurando os módulos do kernel 2.6 no Slackware

Instalando o kernel 2.6.13 pré-compilado no Slackware 10.2

  
Comentários
[1] Comentário enviado por errado em 03/02/2005 - 02:19h

Caramba! Eu tinha acabado de ler um texto sobre /proc e sysclt enão tinha entendido muito bem...Com esse artigo publicado, já dei um salto enorme no entendimento ;)

Parabéns!

[2] Comentário enviado por dark_slack em 03/02/2005 - 03:35h

Muito 10 seu artigo. Muito bom mesmo.

[3] Comentário enviado por reimassupilami em 03/02/2005 - 10:31h

cara, massa mesmo teu artigo viu... isso só ressalta a importância de cuidarmos da segurança dos servidores... nem conhecia todos esses ataques que você mencionou...

com certeza vou dar uma estudada no artigo e pôr tudo em prática...

só uma coisa que não ficou muito clara pra mim: o que eu devo fazer pra que as configurações sejam refeitas quando reinicio a máquina?

[4] Comentário enviado por wmqueiroz em 03/02/2005 - 23:58h

Antes de tudo, fico muito grato a todos pelos comentários e elogios! Vlw mesmo!!

Sobre a questão de reimassupilami... dê uma lida nesse artigo nas partes:

2. O pseudo-sistema de arquivos
3. O sysctl

[]´s
Wagner Queiroz

[5] Comentário enviado por Carlos_Cunha em 05/10/2012 - 14:43h

Olá!
Muito bom artigo, vi em outros post e sites as mesmas "proteção" so que menos eficientes e via regras de iptables....
Aprendi lendo seu artigo

:-D

Abraço

[6] Comentário enviado por px em 10/07/2013 - 21:44h

Grande referência para meus estudos, obg por compartilhar com a comunidade.

[7] Comentário enviado por wldnet1 em 08/09/2015 - 14:49h


Ótima contribuição amigo. Gostei muito auto explicativo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts