Pular para o conteúdo principal

GLPI e Fusioninventory

GLPI e Fusioninventory sem complicações:



Devido a muitos artigos ensinarem a instalar diversas ferramentas no qual sysadmins e ou administradores não se preocuparem com a segurança, decidi escrever um tutorial robusto explicando como instalar GLPI com Fusioninventory aplicando alguns meios no qual aumente a segurança em ambientes corporativos.


# O que é GLPI?

Um sistema web de código aberto desenvolvido em php para gerenciamento de ativos de TI, sendo possível realizar a gestão, inventário, incididentes/requisições ou projetos em um ambiente corporativo.


# O Que é fusioninventory?

Um plugin do sistema GLPI no qual facilita e incrementa informações de inventário e deploy de instalações de aplicações remotas.


# Instalação dos aplicativos no Debian:

# Recomenda-se atualizar o repositório, o sistema e os pacotes:

apt update && apt upgrade


# Pré instalação (Servidor web Apache, Banco de Dados Mariadb e PHP)

apt install apache2 php php-curl php-gd php-cli php-mbstring php-mysql php-xml php-cas php-imap php-ldap php-xmlrpc php-soap php-snmp php-apcu php-zip php-intl php-bz2 mariadb-server vim -y


# Deve-se inicializar o banco de dados Mariadb e habilita-lo:

systemctl enable mariadb --now


# Deve-se primeiramente criar segurança no sistema Mariadb:

mysql_secure_installation 


# Exemplo de resultado resumido:

Enter current password for root (enter for none):  -->  [ENTER]

Switch to unix_socket authentication [Y/n] --> [ENTER]

Change the root password? [Y/n] --> [Y]

New password: [senha_segura] --> Ex: s3nh@_$3gur@

Remove anonymous users? [Y/n] --> [Y]

Disallow root login remotely? [Y/n] --> [Y]

Remove test database and access to it? [Y/n] --> [Y]

Reload privilege tables now? [Y/n] --> [Y]


# Deve-se criar a base de dados:

# Obs: Para fins de segurança a base glpi, será criada para acesso localmente, recomenda a inserção de senha uma segurança para a conectar a base.

mysql -u root -p's3nh@_$3gur@'

mysql> create database glpi;

mysql> create user 'glpi'@'localhost' identified by 'senha_segura';

mysql> grant all on glpi.* to glpi identified by 'senha_segura';

mysql> quit;


# Recomenda-se baixar o arquivo do GLPI no site oficial:

cd /var/www/html/

wget https://github.com/glpi-project/glpi/releases/download/9.5.7/glpi-9.5.7.tgz

tar -vxf glpi-9.5.7.tgz


# Recomenda-se baixar o arquivo do Fusioninventory no site oficial:

cd /var/www/html/glpi/plugins

wget https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi9.5%2B4.2/fusioninventory-9.5+4.2.tar.bz2

tar -vxf fusioninventory-9.5+4.2.tar.bz2


# Permissão GLPI para todas pastas e arquivos incluindo o plugin do fusioninventory:

chmod 775 /var/www/html/glpi -Rf

chown www-data. /var/www/html/glpi -Rf


# Deve-se habilitar o servidor Web apache:

systemctl enable apache2 --now


# Recomenda-se a implementação de segurança Básica no servidor web, instalação do firewalld.

apt install firewalld -y


# Deve-se adicionar a regra para habilitar o protocolo http permanentemente:

# Obs: Recomenda-se posteriormente habilitar a regra para protocolo https e desabilitar o http

firewall-cmd --zone=public --add-service=http --permanent

firewall-cmd --reload


# Verificar regras para a zona public:

firewall-cmd --list-all --zone=public

Resultado: services: dhcpv6-client http ssh


# Incrementar o protocolo ssl no servidor apache, para a conexão ser criptografada, para isto será necessário uma chave e um certificado.

Obs: Será necessário informar dados como: Nome de domínio, organização, localidade, estado, email etc na requisição para assinatura de um certificado digital.


# Deve-se instalar os pacotes necessários

apt install openssl ca-certificates -y


# Para incrementar essa camada de segurança, deve-se criar a chave

cd /etc/ssl/private && openssl genrsa -out ca.key 2048

# Deve-se gerar um arquivo csr para solicitar a assinatura e validar um autoridade certificadora.

cd /etc/ssl/ && openssl req -new -key /etc/ssl/private/ca.key -out ca.csr

# Deve-se assinar a requisição via autoridade certificadora válida ou auto assinar.

cd /etc/ssl/certs && openssl x509 -req -days 365 -in /etc/ssl/ca.csr -signkey /etc/ssl/private/ca.key -out /etc/ssl/certs/ca.crt


# Deve-se criar o arquivo de configuração ssl no apache:

> /etc/apache2/conf-available/ssl-params.conf

vim /etc/apache2/conf-available/ssl-params.conf


# Conteúdo do arquivo:

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH

SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

SSLHonorCipherOrder On

# Disable preloading HSTS for now.  You can use the commented out header line that includes

# the "preload" directive if you understand the implications.

# Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"

Header always set X-Frame-Options DENY

Header always set X-Content-Type-Options nosniff

# Requires Apache >= 2.4

SSLCompression off

SSLUseStapling on

SSLStaplingCache "shmcb:logs/stapling-cache(150000)"

# Requires Apache >= 2.4.11

SSLSessionTickets Off


# Criar o arquivo vhosts para utilizar a porta 443:

cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak

vim /etc/apache2/sites-available/default-ssl.conf


# Conteúdo a ser alterado:

SSLCertificateFile /etc/ssl/certs/ca.crt

SSLCertificateKeyFile /etc/ssl/private/ca.key


# Habilitar o mod ssl no apache

/usr/sbin/a2enmod ssl

/usr/sbin/a2ensite default-ssl


# Adicionar o protocolo https no firewall:

firewall-cmd --zone=public --add-service=https --permanent

firewall-cmd --reload


# Recomenda-se redicionar conexões http para https para incremento de segurança:

# Habilitar o modo rewrite:

/usr/sbin/a2enmod rewrite

# Adicionar configuração no vhost referente a porta 80:

vim /etc/apache2/sites-available/000-default.conf


# Conteúdo para ser adicionado:      

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}


# Deve-se continuar aprimorando segurança no servidor web, para ocultar versão do apache e do sistema operacional:

vim /etc/apache2/conf-available/security.conf

# Altera as seguintes variáveis para ocultar as informações:

ServerSignature Off

ServerTokens Prod


# Deve-se instalar o modsecurity, um módulo que atua para um incremento de segurança, facilitando monitor o tráfego em tempo real e previnindo possíveis ataques de força bruta:

apt install libapache2-mod-security2 && /usr/sbin/a2enmod security2

# Recomenda-se incrementar configuração adicinonal para além do módulo detectar, bloquear atividades suspeitas, Exemplo:

cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf 

# Altere de "SecRuleEngine DetectionOnly" para "SecRuleEngine On"

vim /etc/modsecurity/modsecurity.conf


# Recomenda-se incrementar regras de intrusão de ataques, visando aprimorar e proteger sua estrutura web.

# Conhecida como "OWASP ModSecurity Core Rule Set (CRS)"

cd /root

wget https://github.com/coreruleset/coreruleset/archive/refs/tags/v3.3.4.zip

tar -vxf v3.3.4.tar.gz

cp /root/coreruleset-3.3.4/crs-setup.conf.example /etc/modsecurity/crs-setup.conf

mv /root/coreruleset-3.3.4/rules/ /etc/modsecurity/

# Recomenda-se remover as regras com falso positivo ou reconfigura-las

rm -f /etc/modsecurity/rules/REQUEST-922-MULTIPART-ATTACK.conf

rm -f /etc/modsecurity/rules/RESPONSE-980-CORRELATION.conf

rm -f /etc/modsecurity/rules/RESPONSE-959-BLOCKING-EVALUATION.conf"

# Deve-se atualizar as regras no módulo security

vim /etc/apache2/mods-enabled/security2.conf

# Deve ser alterar o arquivo conforme informações:

IncludeOptional /etc/modsecurity/*.conf

Include /etc/modsecurity/rules/*.conf

##IncludeOptional /usr/share/modsecurity-crs/owasp-crs.load


# Reiniciar o serviço do apache pois ativado os módulos: ssl, rewrite e outras configurações

systemctl restart apache2


# Deve-se continuar a instalação web, utiliza-se o ip ou dns.

# Obs 1: Escolha a base de glpi criada durante a instalação, informe a senha.

# Obs 2: Esse procedimento é um pouco demorado.

http://seu_ip/glpi/


# Para instalar o plugin, após a conclusão habilite o plugin:

Clique em: setup --> Plugins --> Caixa com sinal de +, "Opção Install",


# Deve-se instalar o agent do fusioninventory:

apt install fusioninventory-agent -y


# Deve-se alterar o servidor na váriavel server do arquivo e no-ssl-check para não verificar ou validar o certificado:

vim /etc/fusioninventory/agent.cfg

server =  http://seu_ip/glpi/plugins/fusioninventory/

no-ssl-check = 1


# Deve-se reiniciar o serviço do agente do fusioninventory-agent para garantir a aplicabilidade das configurações

systemctl restart fusioninventory-agent


# Tutorial criado para auxiliar aumentar e incrementar segurança ao serviços, recomenda-se atentar ou realizar reajustes adicionais conforme a necessidade do ambiente computacional.


Ass: Luiz Guilherme Nunes Fernandes
Email: narutospinal@gmail.com
Informativo: Entusiasta e colaborador em Software Livre.

Comentários