DCIM/IPAM com phpIPAM

De ISPUP!
Revisão de 18h39min de 11 de fevereiro de 2023 por Gondim (discussão | contribs)
Ir para navegação Ir para pesquisar

Introdução

DCIM (Data Center Infraestructure Management) e IPAM (IP Address Management) são ferramentas que nos ajudam a administrar nosso ambiente de Datacenter e nossos recursos IPv4 e IPv6. Tenha em mente que controlar bem esses recursos pode te fazer economizar dinheiro e projetar melhor o crescimento do seu Provedor. Todos temos ciência que recursos de IPv4 público estão escassos e em muitos lugares já se esgotou. No Brasil o esgotamento foi anunciado em 19/8/2020 e atualmente se você deseja um prefixo IPv4 público, será necessário entrar em uma fila de espera de recuperação de recursos IP e tal espera pode ser algo entorno de 5 anos.

O objetivo desse artigo é mostrar a instalação do software phpIPAM, que é um DCIM/IPAM, e mostrar alguns exemplos de configuração. Não será nada tão sofisticado porque você deve configurá-lo conforme sua Operação e porque o objetivo aqui é te mostrar as excelentes possibilidades, para finalmente aposentar sua planilha Excel. Para entendermos o funcionamento dele e como de habitual, trabalharemos orientados em um modelo fictício e demonstrado no diagrama abaixo:


Requisitos

Como de costume utilizaremos o sistema Debian 11 (Bullseye) GNU/Linux e como ambiente não precisaremos de nada tão absurdo:

  • VM CPU Common KVM (2) @ 2.199GHz com 4 cores.
  • 4Gb de ram.
  • Um disco de 50Gb.

Instalação

Você pode dar uma olhada nesse artigo, como uma configuração inicial de ambiente e tenha em mente que esse sistema não deveria estar público na Internet. É um sistema com informações importantes e sigilosas, que só pessoas autorizadas da sua empresa devem ter acesso. Abaixo a lista de pacotes que instalaremos:

# apt install apache2 apache2-utils fping mariadb-server mariadb-client libapache2-mod-php php php-mysql php-cli php-pear php-gmp php-gd php-bcmath php-mbstring php-curl php-xml php-zip php-ldap php-json php-opcache php-readline php-snmp

Confira as variáveis abaixo e seus valores em /etc/php/7.4/apache2/php.ini. Os valores abaixo são os recomendados pelo pessoal do projeto do phpIPAM.

[PHP]
engine = On
short_open_tag = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
serialize_precision = 17
zend.enable_gc = On
expose_php = Off
max_execution_time = 600
max_input_time = 60
memory_limit = 512M
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
log_errors = On
log_errors_max_len = 1024
default_mimetype = "text/html"
default_charset = "UTF-8"
file_uploads = On
upload_max_filesize = 2M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60

[Date]
date.timezone = "America/Sao_Paulo"

[mail function]
smtp_port = 25
mail.add_x_header = On

[SQL]
sql.safe_mode = Off

[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.reconnect = Off

[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off

[Session]
session.save_handler = files
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

[ldap]
ldap.max_links = -1

Após conferir e modificar as variáveis acima, habilitaremos o rewrite e ssl no Apache2:

# a2enmod rewrite
# a2enmod ssl
# a2ensite default-ssl.conf

Melhorar um pouco a segurança:

# perl -i -pe 's%ServerTokens OS%ServerTokens Prod%g' /etc/apache2/conf-available/security.conf
# perl -i -pe 's%ServerSignature On%ServerSignature Off%g' /etc/apache2/conf-available/security.conf
# systemctl restart apache2.service