Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Hardening no OpenBSD
Linux user
Publicado por Andre Luiz Facina em 09/02/2009

Login: netbug, 172423 pontos
[ Hits: 3329 ]

Hardening no OpenBSD

A técnica de Hardening são atividades corretivas para elevar o nível de segurança do sistema operacional, preparando-o para enfrentar tentativas de ataques. Normalmente o Hardening inclui remover logins do sistema, desativar serviços desnecessários, aplicar patchs, modificar permissões no sistema etc.

Até mesmo nos sistemas operacionais considerados mais seguros, como o OpenBSD, é possível realizar o Hardening, aumentando ainda mais a segurança do sistema e chegando a um nível bem paranóico de usuários. :-)

Começando...

Secure Levels

O Secure Levels diz como o kernel irá lidar com a segurança do ambiente. Existem quatro níveis de segurança, são eles -1, 0, 1 e 2, e pode ser configurado no arquivo /etc/rc.securelevel.

Nível -1: Podemos dizer que o nível -1 é o nível Windows, pois não há nenhuma "feature" de segurança configurada para o kernel. Os desenvolvedores do OpenBSD não recomendam utilizar esse nível. Apenas utilize em casos de necessidade.

Nível 0: Quando o OpenBSD é iniciado pela primeira vez o securelevel 0 é usado. Esse nível também não possui segurança adicional.

Nível 1: É o padrão do OpenBSD. Nesse nível o kernel não permite a escrita direta a memória através dos devices /dev/mem e /dev/kmem. A escrita nos "Raw Disk" também é proibida e as flags schg e sappnd não podem ser removidas dos arquivos.

Nível 2: É o nível mais paranóico do sistema. Nesse nível o firewall (PF) não pode ser alterado e as configurações até mesmo do relógio do sistema são limitadas. Esse nível também inclui as características do nível 1.

O secure level pode ser definido através do comando sysctl (se estiver nos níveis -1 e 0), ou através do arquivo /etc/rc.securelevel (será preciso reiniciar o sistema).

# sysctl kern.securelevel
kern.securelevel=-1
# sysctl kern.securelevel=2
kern.securelevel: -1 -> 2

Kernel Flags

Essas flags são permissões adicionais no sistema de arquivos, fugindo das permissões padrões de usuário, grupo e outros. O conceito é parecido com os atributos estendidos do Linux, pois você pode definir um arquivo como imutável, como modificável apenas por um daemon, arquivo que pode ser editado, mas não removido etc.

Existem quatro tipos de flags, elas são: sappnd, schg, uappnd e uchg.
  • sappnd
    Essa flag só pode ser definida ou removida pelo root. Arquivos definidos com essa flag só podem receber dados (append), mas não podem ser editados. O uso é adequado para logs do sistema. Essa flag não pode ser removido com o secure level 1 ou superior.
  • schg
    Essa flag só pode ser definida ou removida pelo root. Arquivos com essa flag se tornam imutáveis, não podendo ser modificados ou substituídos. Essa flag não pode ser removida no o secure level 1 ou superior.
  • uappnd
    O dono do arquivo ou o root podem definir essa flag. Com ela arquivos podem ser modificados, mas não removidos por outros usuários. O dono do arquivo ou o root podem remover essa flag em qualquer secure level.
  • uchg
    O dono do arquivo ou o root podem definir essa flag. Da mesma forma como o schg, essa flag torna o arquivo imutável, mas com a diferença que a flag pode removida em qualquer secure level pelo dono do arquivo ou root.

Uso das flags

Exemplo de um arquivo sem as flags:

# ls -lo /bsd
-rw-r--r-- 1 root wheel - 6861562 Dec 16 18:15 /bsd

Definindo uma flag para o arquivo /bsd (kernel)

# chflags schg /bsd

Verificando novamente:

# ls -lo /bsd
-rw-r--r-- 1 root wheel schg 6861562 Dec 16 18:15 /bsd

Removendo a flag:

# chflags noschg /bsd
# ls -lo /bsd
-rw-r--r-- 1 root wheel - 6861562 Dec 16 18:15 /bsd

Lembrando que as flags schg e sappnd não podem ser removidas com o secure level 1 e 2. Para poder removê-las desses dois secure levels é preciso rebootar o sistema e entrar em modo mono-usuário (boot -s).

Arquivos interessantes do sistema para utilizar a flag schg (imutáveis).

# chflags schg /bsd
# chflags schg /etc/changelist
# chflags schg /etc/daily
# chflags schg /etc/inetd.conf
# chflags schg /etc/netstart
# chflags schg /etc/pf.conf
# chflags schg /etc/rc
# chflags schg /etc/rc.conf
# chflags schg /etc/rc.local
# chflags schg /etc/rc.securelevel
# chflags schg /etc/rc.shutdown
# chflags schg /etc/security
# chflags schg /etc/mtree/special


Pastas:

# chflags -R schg /bin
# chflags -R schg /sbin
# chflags -R schg /usr/bin
# chflags -R schg /usr/libexec
# chflags -R schg /usr/sbin


Swap com criptografia

É interessante manter o swap criptografado, para ativar é muito simples.

# sysctl vm.swapencrypt.enable
vm.swapencrypt.enable=0
# sysctl vm.swapencrypt.enable=1
vm.swapencrypt.enable: 0 -> 1

No exemplo acima, no próximo boot a configuração será perdida. Para manter a configuração edite o arquivo /etc/sysctl.conf.

# vi /etc/sysctl.conf

Modifique a linha:

#vm.swapencrypt.enable=0

Para:

vm.swapencrypt.enable=1

Desativando o Inetd

Por padrão o OpenBSD vem com o inetd habilitado, se você não for utilizar nenhum serviço dele é bom desativá-lo.

Edite o arquivo /etc/rc.conf e troque a linha inetd=YES para inetd=NO, depois pare o processo do inetd.

# kill `cat /var/run/inetd.pid`

Bom, acima demostrei algumas técnicas básicas de Hardening no OpenBSD. Espero assim difundir ainda mais o OpenBSD na comunidade brasileira e desmitificá-lo como sendo um sistema super difícil de utilizar.

André Facina.


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada cpb - Copiando arquivos executáveis ...
   Dica Linux recomendada Recuperando o lilo pelo DOS
   Dica Linux recomendada Firefox - Dicionário em pt_BR
   Dica Linux recomendada Prova LPI no Rio em Abril
   Dica Linux recomendada Terminal bash com arquivos coloridos

Comentários
Nenhum comentário foi encontrado.

Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.