Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/dev-sec/chef-os-hardening
Segurança de Infraestrutura em NuvemAuditoria de ConfiguraçãoDevSecOpsAutenticação
GitHubdev-sec/chef-os-hardening

chef-os-hardening

This chef cookbook fornece inúmeras configurações relacionadas à segurança, oferecendo proteção base abrangente.

Ver Repositório
4521326há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Site
Compartilhar

os-hardening (cookbook Chef)

Supermarket Tests

Descrição

Este cookbook fornece inúmeras configurações relacionadas à segurança, oferecendo proteção base abrangente.

Ele configura:

  • Configura o gerenciamento de pacotes, por exemplo, permite apenas pacotes assinados
  • Remove pacotes com problemas conhecidos
  • Configura o módulo pam e pam_limits
  • Configuração do pacote de senhas shadow
  • Configura as permissões de caminhos do sistema
  • Desativa core dumps por meio de limites flexíveis
  • Restringe logins de root ao console do sistema
  • Define SUIDs
  • Configura parâmetros do kernel via sysctl

Ele não irá:

  • Atualizar pacotes do sistema
  • Instalar patches de segurança

Requisitos

  • Chef >= 14.13.11

Plataforma

  • Ubuntu 20.04, 22.04, 24.04, 26.04
  • CentOS Stream 9, 10
  • AlmaLinux 8, 9, 10
  • Rocky Linux 8, 9, 10
  • Oracle Linux 8, 9, 10
  • Debian 13
  • Fedora 43, 44

Atributos

  • ['os-hardening']['components'][COMPONENT_NAME] - permite o controle fino sobre quais componentes devem ser executados por meio da receita padrão. Veja abaixo para mais detalhes
  • ['os-hardening']['desktop']['enable'] = false true se este for um sistema desktop, ou seja, Xorg, KDE/GNOME/Unity/etc
  • ['os-hardening']['network']['forwarding'] = false true se este sistema exigir encaminhamento de pacotes (ex: Roteador), false caso contrário
  • ['os-hardening']['network']['ipv6']['enable'] = false
  • ['os-hardening']['network']['arp']['restricted'] = true true se você quiser que o comportamento de anunciar e responder ao ARP seja restrito, false caso contrário
  • ['os-hardening']['env']['extra_user_paths'] = [] adicione caminhos adicionais à variável PATH do usuário (o padrão é vazio).
  • ['os-hardening']['env']['umask'] = "027"
  • ['os-hardening']['env']['root_path'] = "/" onde o root está montado
  • ['os-hardening']['auth']['pw_max_age'] = 60 idade máxima da senha
  • ['os-hardening']['auth']['pw_min_age'] = 7 idade mínima da senha (antes de permitir qualquer outra alteração de senha)
  • ['os-hardening']['auth']['pw_warn_age'] = 7 número de dias antes da idade máxima da senha para avisar sobre a mudança iminente
  • ['os-hardening']['auth']['uid_min'] = 1000 limite inferior de UIDs atribuídos pelo useradd
  • ['os-hardening']['auth']['uid_max'] = 60000 limite superior de UIDs atribuídos pelo useradd
  • ['os-hardening']['auth']['gid_min'] = 1000 limite inferior de GIDs atribuídos pelo groupadd
  • ['os-hardening']['auth']['gid_max'] = 60000 limite superior de GIDs atribuídos pelo groupadd
  • ['os-hardening']['auth']['retries'] = 5 o número máximo de tentativas de autenticação, antes que a conta seja bloqueada por algum tempo
  • ['os-hardening']['auth']['lockout_time'] = 600 tempo em segundos que precisa passar, se a conta foi bloqueada devido a muitas tentativas de autenticação falhas
  • ['os-hardening']['auth']['timeout'] = 60 tempo limite de autenticação em segundos, então o login será encerrado se esse tempo passar
  • ['os-hardening']['auth']['allow_homeless'] = false true se desejar permitir que usuários sem home façam login
  • ['os-hardening']['auth']['pam']['passwdqc']['enable'] = true true se você quiser usar verificação de senha forte no PAM usando passwdqc
  • ['os-hardening']['auth']['pam']['passwdqc']['options'] = "min=disabled,disabled,16,12,8" defina para qualquer linha de opções (como string) que você queira passar para o passwdqc
  • ['os-hardening']['auth']['pam']['passwdqc']['template_cookbook'] = 'os-hardening' defina para o nome do cookbook do qual o template é obtido para o arquivo /usr/share/pam-configs/passwdqc
  • ['os-hardening']['auth']['pam']['tally2']['template_cookbook'] = 'os-hardening' defina para o nome do cookbook do qual o template é obtido para o arquivo /usr/share/pam-configs/tally2
  • ['os-hardening']['auth']['pam']['system-auth']['template_cookbook'] = 'os-hardening' defina para o nome do cookbook do qual o template é obtido para o arquivo /etc/pam.d/system-auth-ac
  • ['os-hardening']['security']['users']['allow'] = [] lista de coisas que um usuário pode fazer. Pode conter: change_user
  • ['os-hardening']['security']['kernel']['enable_module_loading'] = true true se você quiser ter permissão para alterar módulos do kernel enquanto o sistema está em execução (ex: modprobe, rmmod)
  • ['os-hardening']['security']['kernel']['disable_filesystems'] = ['cramfs', 'freevxfs', 'jffs2', 'hfs', 'hfsplus', 'squashfs', 'udf', 'vfat'] lista de módulos de sistema de arquivos do kernel que estão na lista negra para carregamento (ex: eles não são usados e podem ser desativados). Defina isso como [] para evitar completamente essa lista negra
  • ['os-hardening']['security']['kernel']['enable_sysrq'] = false
  • ['os-hardening']['security']['kernel']['enable_core_dump'] = false
  • ['os-hardening']['security']['suid_sgid']['enforce'] = true true se você quiser reduzir os bits SUID/SGID. Já existe uma lista de itens que são pesquisados e configurados, mas você também pode adicionar os seus próprios
  • ['os-hardening']['security']['suid_sgid']['blacklist'] = [] uma lista de caminhos que devem ter seus bits SUID/SGID removidos
  • ['os-hardening']['security']['suid_sgid']['whitelist'] = [] uma lista de caminhos que não devem ter seus bits SUID/SGID alterados
  • ['os-hardening']['security']['suid_sgid']['remove_from_unknown'] = false true se você quiser remover bits SUID/SGID de qualquer arquivo que não esteja explicitamente configurado em uma blacklist. Isso fará com que cada execução do Chef pesquise nos sistemas de arquivos montados por bits SUID/SGID que não estejam configurados na lista negra padrão e do usuário. Se encontrar um bit SUID/SGID, ele será removido, a menos que este arquivo esteja na sua whitelist.
  • ['os-hardening']['security']['suid_sgid']['dry_run_on_unknown'] = false como remove_from_unknown acima, apenas sem remover os bits SUID/SGID. Ele ainda pesquisará os sistemas de arquivos em busca de bits SUID/SGID, mas apenas os imprimirá no seu log. Esta opção só é recomendada quando você configura remove_from_unknown pela primeira vez para bits SUID/SGID, para que possa ver os arquivos que estão sendo alterados e fazer ajustes na sua whitelist e blacklist.
  • ['os-hardening']['security']['packages']['clean'] = true remove pacotes com problemas conhecidos.
  • ['os-hardening']['security']['packages']['list'] = ['xinetd','inetd','ypserv','telnet-server','rsh-server'] lista de pacotes a remover, por padrão removemos os seguintes pacotes:
    • xinetd (NSA, Capítulo 3.2.1)
    • inetd (NSA, Capítulo 3.2.1)
    • tftp-server (NSA, Capítulo 3.2.5)
    • ypserv (NSA, Capítulo 3.2.4)
    • telnet-server (NSA, Capítulo 3.2.2)
    • rsh-server (NSA, Capítulo 3.2.3)
  • ['os-hardening']['security']['selinux_mode'] = 'unmanaged' defina como unmanaged se você quiser deixar a configuração do selinux como está. Defina como enforcing para aplicar ou permissive para SELinux permissivo.

Controlando os componentes incluídos

default.rb inclui outros componentes com base nos atributos de autodetecção ohai do seu sistema. Ex: não execute selinux em sistemas não-RHEL. Você pode substituir esse comportamento e forçar componentes a serem executados ou não definindo atributos em node['os-hardening']['components'] no nível de override. Exemplo

root@kitploit:~
# algum arquivo de atributos
# não incluir sysctl e auditd
override['os-hardening']['components']['sysctl'] = false
override['os-hardening']['components']['auditd'] = false

# forçar selinux a ser incluído
override['os-hardening']['components']['selinux'] = true

Na implementação atual, diferentes componentes estão localizados nas diferentes receitas. Veja as receitas disponíveis ou default.rb para possíveis nomes de componentes.

Uso

Adicione as receitas ao run_list, deve ser o último:

root@kitploit:~
"recipe[os-hardening]"

Configure os atributos:

root@kitploit:~
"security" : {
  "kernel" : {
    "enable_module_loading" : true
  }
},

Testes Locais

Testes locais

Por favor, instale chef-dk, VirtualBox ou VMware Workstation e Vagrant.

A verificação de lint é feita com rubocop e foodcritic:

root@kitploit:~
$ chef exec rake lint
.....

Os testes de unidade/spec são feitos com chefspec:

root@kitploit:~
$ chef exec rake spec
.....

Os testes de integração são feitos com test-kitchen e inspec:

root@kitploit:~
$ chef exec rake kitchen
.....
# ou você pode usar o kitchen diretamente
$ kitchen test

Testes de CI de forks

Você pode habilitar testes do seu fork no Travis CI. Por padrão, você obterá lint, testes de spec e testes de integração com kitchen-dokken.

Os testes de integração com kitchen-dokken não cobrem tudo, pois são executados no ambiente de contêiner. Testes de integração completos podem ser executados usando DigitalOcean.

Se você quiser ter testes de integração completos para o seu fork, terá que adicionar as seguintes variáveis de ambiente nas configurações do seu fork:

  • DIGITALOCEAN_ACCESS_TOKEN - token de acesso para DigitalOcean
  • CI_SSH_KEY - parte privada de alguma chave ssh, disponível no DigitalOcean para suas instâncias, em formato codificado em base64 (ex: cat id_rsa | base64 -w0 ; echo)
  • DIGITALOCEAN_SSH_KEY_IDS - ID no DigitalOcean do CI_SSH_KEY, veja isto para mais informações

Contribuidores + Agradecimentos

  • Dominik Richter arlimus
  • Bernhard Weisshuhn bkw
  • Christoph Hartmann chris-rock
  • Edmund Haselwanter ehaselwanter
  • Patrick Meier atomic111
  • Artem Sidorenko artem-sidorenko

Este cookbook é baseado principalmente em guias de:

  • Arch Linux wiki, Sysctl hardening
  • Ubuntu Security/Features
  • NSA: Guide to the Secure Configuration of Red Hat Enterprise Linux 5
  • Deutsche Telekom, Group IT Security, Security Requirements (Alemão)

Obrigado a todos!!

Contribuindo

Veja diretriz do contribuidor.

Licença e Autor

  • Autor:: Dominik Richter [email protected]
  • Autor:: Deutsche Telekom AG

Licenciado sob a Apache License, Versão 2.0 (a "Licença"); você não pode usar este arquivo exceto em conformidade com a Licença. Você pode obter uma cópia da Licença em

root@kitploit:~
http://www.apache.org/licenses/LICENSE-2.0

Salvo disposição em contrário por lei aplicável ou por acordo escrito, o software distribuído sob a Licença é distribuído "COMO ESTÁ", SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas. Consulte a Licença para os termos específicos que regem as permissões e limitações sob a Licença.

Baixar ferramenta