Pular para o conteúdo

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.
Wagner M Queiroz wmqueiroz
Hits: 68.032 Categoria: Linux Subcategoria: Kernel
  • Indicar
  • Impressora
  • Denunciar

Parte 2: 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.

   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

VPN: IPSec vs SSL

Compilação do Kernel

Alterando as permissões de um arquivo

kernel Linux otimizado - Compilação e teste

Compilando Kernel no CentOS 6.0

Mascarando conexões PPTP de clientes

#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

Entre na sua conta para comentar.