
Auditoria de distribuição Debian GNU/Linux endurecida
Auditoria de distribuições endurecidas Debian GNU/Linux e CentOS 8.
O ambiente de teste principal é Debian GNU/Linux 9/10/11/12/13, CentOS 8 e Ubuntu 22, e outras versões não foram totalmente testadas. Não há implementações de itens relacionados a desktop nesta versão.
A estrutura do código é baseada no projeto OVH-debian-cis, modificamos algumas implementações originais de acordo com as características do Debian 9/10/11/12/13 e CentOS 8, adicionamos e implementamos itens de verificação para STIG Red_Hat_Enterprise_Linux_7_V2R5 STIG Ubuntu V1R2 e recomendações do cisecurity.org, e também adicionamos e implementamos alguns itens de verificação da comunidade HardenedLinux. As funções de auditoria e aplicação da infraestrutura são implementadas, e a função de correção automática é implementada para os itens que podem ser corrigidos automaticamente.
# bash bin/hardening.sh --audit-all
[...]
hardening [INFO] Treating /home/test/harbian-audit/bin/hardening/13.15_check_duplicate_gid.sh
13.15_check_duplicate_gid [INFO] Working on 13.15_check_duplicate_gid
13.15_check_duplicate_gid [INFO] Checking Configuration
13.15_check_duplicate_gid [INFO] Performing audit
13.15_check_duplicate_gid [ OK ] No duplicate GIDs
13.15_check_duplicate_gid [ OK ] Check Passed
[...]
################### SUMMARY ###################
Total Available Checks : 271
Total Checks Run : 271
Total Passed Checks : [ 226/271 ]
Total Failed Checks : [ 44/271 ]
Enabled Checks Percentage : 100.00 %
Conformity Percentage : 83.39 %
$ git clone https://github.com/hardenedlinux/harbian-audit.git && cd harbian-audit
# cp etc/default.cfg /etc/default/cis-hardening
# sed -i "s#CIS_ROOT_DIR=.*#CIS_ROOT_DIR='$(pwd)'#" /etc/default/cis-hardening
# bin/hardening.sh --init
# bin/hardening.sh --audit-all
hardening [INFO] Treating /home/test/harbian-audit/bin/hardening/1.1_install_updates.sh
1.1_install_updates [INFO] Working on 1.1_install_updates
1.1_install_updates [INFO] Checking Configuration
1.1_install_updates [INFO] Performing audit
1.1_install_updates [INFO] Checking if apt needs an update
1.1_install_updates [INFO] Fetching upgrades ...
1.1_install_updates [ OK ] No upgrades available
1.1_install_updates [ OK ] Check Passed
[...]
################### SUMMARY ###################
Total Available Checks : 284
Total Checks Run : 284
Total Passed Checks : [ 260/284 ]
Total Failed Checks : [ 24/284 ]
Enabled Checks Percentage : 100.00 %
Conformity Percentage : 91.55 %
# bin/hardening.sh --set-hardening-level 5
# bin/hardening.sh --apply
hardening [INFO] Treating /home/test/harbian-audit/bin/hardening/1.1_install_updates.sh
1.1_install_updates [INFO] Working on 1.1_install_updates
1.1_install_updates [INFO] Checking Configuration
1.1_install_updates [INFO] Performing audit
1.1_install_updates [INFO] Checking if apt needs an update
1.1_install_updates [INFO] Fetching upgrades ...
1.1_install_updates [ OK ] No upgrades available
1.1_install_updates [INFO] Applying Hardening
1.1_install_updates [ OK ] No Upgrades to apply
1.1_install_updates [ OK ] Check Passed
[...]
Se usar a instalação via rede a partir de um CD minimalista para instalar Debian GNU/Linux, é necessário instalar pacotes antes de usar a ferramenta de endurecimento.
# apt-get install -y bc net-tools pciutils network-manager
Redhat/CentOS precisa instalar pacotes antes de usar a ferramenta de endurecimento:
# yum install -y bc net-tools pciutils NetworkManager epel-release
Você deve definir uma senha para todos os usuários antes do endurecimento. Caso contrário, não será possível fazer login após a conclusão do endurecimento. Exemplo (usuário do SO: root e test):
# passwd
# passwd test
Os scripts de endurecimento estão em bin/hardening. Cada script tem um arquivo de configuração correspondente em etc/conf.d/[script_name].cfg.
Cada script de endurecimento pode ser habilitado individualmente a partir de seu arquivo de configuração. Por exemplo, este é o arquivo de configuração padrão para disable_system_accounts:
# Configuration for script of same name
status=disabled
# Put here your exceptions concerning admin accounts shells separated by spaces
EXCEPTIONS=""
O parâmetro status pode assumir 3 valores:
disabled (não faz nada): O script não será executado.audit (somente leitura): O script verificará se alguma alteração deve ser aplicada.enabled (leitura/escrita): O script verificará se alguma alteração deve ser feita e aplicará automaticamente o que puder.Você também pode definir o item de configuração para habilitar modificando o nível, com o seguinte comando:
# bash bin/hardening.sh --audit-all
# bash bin/hardening.sh --set-hardening-level <level>
A configuração global está em etc/hardening.cfg. Este arquivo controla o nível de log e o diretório de backup. Sempre que um script recebe a instrução de editar um arquivo, ele criará um backup com timestamp neste diretório.
Para executar as verificações e aplicar as correções, execute bin/hardening.sh.
Este comando tem 2 modos principais de operação:
--audit: Auditar seu sistema com todos os scripts habilitados e em modo de auditoria--apply: Auditar seu sistema com todos os scripts habilitados e em modo de auditoria e aplicar alterações para scripts habilitadosAdicionalmente, --audit-all pode ser usado para forçar a execução de todos os scripts de auditoria, incluindo os desabilitados. Isso não alterará o sistema.
--audit-all-enable-passed pode ser usado como uma maneira rápida de iniciar sua configuração. Ele executará todos os scripts em modo de auditoria. Se um script passar, ele será automaticamente habilitado para execuções futuras. NÃO use esta opção se você já começou a personalizar sua configuração.
Use o comando para endurecer seu SO:
# bash bin/hardening.sh --apply
Se o rsyslog for usado e você quiser imprimir o log do harbian-audit em um arquivo de log separado, a configuração é a seguinte:
user.info /var/log/harbian-audit.log
user.* -/var/log/user.log
O log será enviado para o arquivo /var/log/harbian-audit.log.
Se você aplicar docs/configurations/etc.iptables.rules.v4.sh às suas regras de firewall e quiser imprimir o log do iptables em um arquivo de log separado, insira as seguintes linhas no rsyslog.conf:
:msg,contains,"FW-" -/var/log/firewalllog.log
& stop
Ao executar --apply e set-hardening-level definido como 5 (o nível mais alto), você precisa fazer o seguinte:
# sed -i '/^[^#].*pam_wheel.so.*/s/^/# &/' /etc/pam.d/su
Comente temporariamente a linha que contém pam_wheel.so. Depois de terminar de usar o comando su, remova o comentário da linha.
# echo "ALL: 192.168.1. 192.168.5." >> /etc/hosts.allow
Este exemplo permite apenas que 192.168.1.[1-255] 192.168.5.[1-255] acessem este sistema. Precisa ser configurado de acordo com sua situação.
# sed -i "/^root/a\test ALL=(ALL:ALL) ALL" /etc/sudoers
etc.iptables.rules.v4.sh Primeiro instale o pacote iptables-persistent, depois faça o seguinte:
$ INTERFACENAME="your network interfacename(Example eth0)"
# bash docs/configurations/etc.iptables.rules.v4.sh $INTERFACENAME
# iptables-save > /etc/iptables/rules.v4
# ip6tables-save > /etc/iptables/rules.v6
nftables.conf faça o seguinte (seu nome de interface de rede (Exemplo eth0)):
$ sed -i 's/^define int_if = ens33/define int_if = eth0/g' etc.nftables.conf
# nft -f ./etc.nftables.conf
# bin/hardening.sh --final
Alguns itens de verificação verificam uma variedade de situações e são interdependentes, eles devem ser aplicados (corrigidos) várias vezes, e o SO deve ser reiniciado após cada aplicação (correção).
8.1.35 Porque este item está definido, as regras de auditoria não serão adicionadas.
8.4.1
8.4.2
Estes estão todos relacionados ao aide. É melhor corrigir todos os itens após eles terem sido corrigidos para garantir a integridade do banco de dados no sistema.
4.5
Obtendo o código-fonte
$ git clone https://github.com/hardenedlinux/harbian-audit.git
Adicionando um script de endurecimento personalizado
$ cp src/skel bin/hardening/99.99_custom_script.sh
$ chmod +x bin/hardening/99.99_custom_script.sh
$ cp src/skel.cfg etc/conf.d/99.99_custom_script.cfg
Codifique sua verificação explicando o que ela faz, então se quiser testar:
$ sed -i "s/status=.+/status=enabled/" etc/conf.d/99.99_custom_script.cfg
$ bash bin/hardening.sh --audit --only 99.99
$ bash bin/hardening.sh --apply --only 99.99
Este documento é uma descrição das adições às seções não incluídas na documentação de referência CIS. Inclui documentação de referência STIG e verificações adicionais recomendadas pela comunidade HardenedLinux.
CIS Debian GNU/Linux 8 Benchmark v1.0.0
CIS Debian GNU/Linux 9 Benchmark v1.0.0
harbian audit Debian Linux 9 Benchmark
How to config grub2 password protection
How to persistent iptables rules with debian 9
How to deploy audisp-remote for auditd log
How to migrating from iptables to nftables in debian10
How to persistent nft rules with debian 10
How to fix SELinux access denied
Nodejs + redis + mysql demo
deploy-hyperledger-cello-on-debian-9
nginx-mutual-ssl-proxy-http
nginx-mutual-ssl-proxy-tcp-udp
how to creating and making an AMI public
how to use harbian-audit complianced for GNU/Linux Debian 9
How to creating and making a QEMU image of harbian-audit complianced Debian GNU/Linux 9
How to use QEMU image of harbian-audit complicanced Debian GNU/Linux 9
GPL 3.0
Este projeto é um conjunto de ferramentas. Elas têm como objetivo ajudar o administrador do sistema a construir um ambiente seguro. Embora o utilizemos na OVH para endurecer nossa infraestrutura em conformidade com PCI-DSS, não podemos garantir que funcionará para você. Não vai magicamente proteger qualquer host aleatório.
Adicionalmente, citando a Licença:
ESTE SOFTWARE É FORNECIDO PELA OVH SAS E COLABORADORES ``AS IS'' E QUAISQUER GARANTIAS EXPRESSAS OU IMPLÍCITAS, INCLUINDO, MAS NÃO SE LIMITANDO A, AS GARANTIAS IMPLÍCITAS DE COMERCIALIZAÇÃO E ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO SÃO RENUNCIADAS. EM NENHUM CASO A OVH SAS E OS COLABORADORES SERÃO RESPONSÁVEIS POR QUAISQUER DANOS DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, EXEMPLARES OU CONSEQUENCIAIS (INCLUINDO, MAS NÃO SE LIMITANDO A, AQUISIÇÃO DE BENS OU SERVIÇOS SUBSTITUTOS; PERDA DE USO, DADOS OU LUCROS; OU INTERRUPÇÃO DE NEGÓCIOS) NO ENTANTO CAUSADOS E SOB QUALQUER TEORIA DE RESPONSABILIDADE, SEJA EM CONTRATO, RESPONSABILIDADE ESTRITA OU ATO ILÍCITO (INCLUINDO NEGLIGÊNCIA OU OUTRO) DECORRENTE DE QUALQUER FORMA DO USO DESTE SOFTWARE, MESMO SE AVISADO DA POSSIBILIDADE DE TAIS DANOS.
3-Clause BSD