Compartilhe que você está se especializando

Durante muitos anos, o CentOS Linux foi a principal escolha para empresas que buscavam a estabilidade do ecossistema Enterprise Linux sem o custo do Red Hat Enterprise Linux (RHEL). Porém, essa realidade mudou em dezembro de 2020, quando o CentOS deixou de ser uma reconstrução estável do RHEL e passou a ser uma distribuição que recebe atualizações antes do próprio RHEL.

Não sendo mais uma “versão estável do RedHat”, não é mais possível garantir que o que é feito no CentOS irá funcionar em um ambiente RHEL. Ou seja, continua sendo um excelente sistema operacional, mas perdeu o sentido usar o CentOS em ambientes locais menores e, ao se tornar um ambiente crítico, poder migrar para o Red Hat.

O Rocky Linux surgiu após essa altração do CentOS Linux, com o objetivo de manter uma distribuição 100% compatível com o ecossistema Red Hat Enterprise Linux (RHEL), um ciclo de vida longo (aproximadamente 10 anos por versão), sem custos de licenciamento e atualizações previsíveis e conservadoras.

Agora, vamos ao post, mostrando como fazer uma instalação padrão do Rocky Linux 10, para ambientes corporativos

Pré Requisitos

Para instalar p Linux distribuição Rocky Linux 10 será necessário:

  • Ter a mídia de instalação correspondente;
  • Cadastrar no DNS interno: NOME_DO_HOST.seudominio.com (para o servidor);
  • Ter o usuário padrão a ser criado (e também a senha do root a ser definida);
  • Ter um servidor NTP (sugerimos que, se possível, o firewall faça essa função);
  • No caso de uma máquina virtual, sugerimos:
    • Tipo de máquina: Red Hat Ent. Linux 9 (64-bit)
    • CPU: 4
    • Memória: 8GB
    • Disco: 1 disco de 16GB (SO) e um disco de 8GB (Swap)

Instalação do SO

Coloque a mídia de instalação. No boot, escolha Install (sem teste) e aguarde até carregar a interface gráfica de instalação. Depois, selecione English (United States) e clique em Continue.

Clique em Installation Destination, marque apenas os discos que já devem ser formatados, marque que a configuração será Custom e clique em Done. Na tela seguinte, selecione Standard Partition. Na tela a seguir, repita os passos de 1 a 9 para todos os discos:

Passo 1Passo 2 Mount PointPasso 3 Desired CapacityPasso 4Passo 5 (Em Devices, clique em Modify e)Passo 6Passo 7
+/boot/efi600 mibClique em Add mount PointSelecione sdaClique em SelectClique em Update Settings
/boot600 mib
/14.8 gib
Swap8 gibSelecione sdb

Após criar todos os discos, clique em Done. Na tela de configuração, clique em Software Selection. Na tela seguinte marque apenas a opção Server e clique em Done.

De volta à tela de configuração, clique em Network & Host Name e na configuração de rede faça o seguinte:

  1. Clique em Configure;
    • Selecione a aba IPv6 Settings e altere o método para Ignore;
    • Selecione a aba IPv4 Settings, altere o método para manual
      • Clique em ADD e insira o IP, máscara e gateway
      • Em DNS Servers, insira o IP dos servidores DNS (separados por vírgula)
      • Em Search domains insira seudominio.com
    • Clique em Save.
  2. Em Host Name, digite o FQDN (nome.domínio) e clique em Apply;
  3. Ative a interface alterando-a para ON;
  4. Concluído, clique em Done.

De volta a tela anterior clique em Date & Time e altere o fuso para (Region) Americas (e City) São Paulo, altere o Network Time para utilizar o firewall (gateway), clique em OK e clique em Done.

Agora clique em Keyboard, insira o Portuguese (Brazil) e remova o teclado americano, depois clique em Done. De volta à tela de configuração, clique em KDUMP, confirme que está ativando o KDUMP e clique em Done.

Clique em Root Password, habilite e defina a senha do root do sistema e clique em Done. De volta à tela de configuração, clique em User Creation, defina um nome e a senha do usuário, desmarque a opção desta conta ter privilégios administrativos e clique em Done.

Por fim, clique em Begin Installation. Ao final, reinicie o computador (Reboot System.)

Padronização

Após reiniciar o servidor, efetue logon como root(usuário e senha) para continuar a configuração. Para remover pacotes gráficos adicionais, mas que não usamos em servidores, execute:

yum remove cockpit* iwl* nmap* nvme-cli -y

Para remover pacotes que não usamos em um servidor básico, execute:

yum remove appstream appstream-data cairo* ed default-fonts-* fontconfig fonts-filesystem freetype gdk-pixbuf2 google-noto-* graphite2 harfbuzz langpacks-fonts-* librsvg* libX* pango pixman postfix quota* redhat-*-fonts xkeyboard-config words -y

Por ser um servidor guest VMWare (que usar drivers virtuais e não firmwares reais), pode remover os seguintes pacotes:

yum remove linux-firmware linux-firmware-whence amd-ucode-firmware amd-gpu-firmware intel-gpu-firmware nvidia-gpu-firmware atheros-firmware brcmfmac-firmware cirrus-audio-firmware intel-audio-firmware mt7xxx-firmware nxpwireless-firmware realtek-firmware tiwilink-firmware libertas-firmware netronome-firmware -y

No servidor base, não é necessário pacotes de containers, por isso remova:

yum remove podman buildah crun conmon aardvark-dns netavark containers-common* container-selinux passt* -y

No servidor base, vamos retirar o suporte a rede, remova:

yum remove ipset* -y

No servidor base, vamos retirar o suporte a Debug / crash / performance, remova:

yum remove sos strace memstrack bpftool python3-perf makedumpfile kdump-utils kexec-tools -y

No servidor base, vamos retirar o suporte a documentação, remova:

yum remove man-db man-pages -y

Sendo um servidor, não será necessário o suporte a Bluetooth e smartcard, por isso remova:

yum remove bluez bolt pcsc-lite* pcsc-lite-ccid -y

No servidor base, vamos retirar o suporte a storage avançado, remova:

yum remove smartmontools* ledmon* libnvme libibverbs flashrom mcelog -y

Servidores não irão autenticar no LDAP (AD), por isso remova os seguintes pacotes:

yum remove sssd sssd-client sssd-common sssd-common-pac sssd-ldap sssd-ad sssd-ipa sssd-krb5 sssd-krb5-common sssd-proxy sssd-kcm libsss_idmap libsss_nss_idmap libsss_sudo libsss_certmap libipa_hbac realmd adcli -y

Vamos também remover ferramentas de desenvolvimento:

yum remove gcc cpp make glibc-devel libxcrypt-devel kernel-headers binutils binutils-gold -y

Agora, remova ferramentas de monitorar rede:

yum remove telnet at mtr tcpdump lshw -y

yum clean all

Instale os pacotes básicos que são utilizados no ambiente corporativo, executando:

yum install vim gcc open-vm-tools make net-tools ntpstat wget telnet -y

dnf distro-sync -y

yum update -y

yum upgrade -y

yum clean all

Para a hora ser sincronizada com o firewall (altere a parte em cinza), execute:

echo "Server 192.168.0.1" >> /etc/chrony.conf
systemctl enable chronyd

Para configurar MOTD, execute:

echo "##################################################################" >> /etc/issue.net
echo "#             Bem vindo ao acesso controlado da Empresa.             #" >> /etc/issue.net
echo "#     Todas as conexoes sao monitoradas e salvas, caso esteja    #" >> /etc/issue.net
echo "#        no lugar errado, favor desconectar IMEDIATAMENTE        #" >> /etc/issue.net
echo "##################################################################" >> /etc/issue.net
sed -i "s/#Banner none/Banner \/etc\/issue.net/g" /etc/ssh/sshd_config
sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin no/g" /etc/ssh/sshd_config
systemctl restart sshd

Vamos adicionar um script de logon que, dependendo do nome do servidor, retornará uma mensagem informando o tipo de ambiente (por exemplo “Atenção, ambient de produção”), entenda esse script abaixo e altere como sua realidade:

tee /sbin/motd.sh > /dev/null << 'EOF'
#!/bin/bash
# COLOR - Red(31), Green(32), Yellow(33), Blue(34), Purple(35), Cyan(36), White(37)
HOSTNAME=$(hostname -s)
HOSTNAME="${HOSTNAME,,}"
case "$HOSTNAME" in
    appprd-*|dbprd-*|ger-*)
        COLOR="31"
        ENVIRONMENT="PRD"
    ;;
    apphmg-*|dbhmg-*)
        COLOR="32"
        ENVIRONMENT="HMG"
    ;;
    dmz-*)
        COLOR="35"
        ENVIRONMENT="DMZ"
    ;;
    *)
        COLOR="36"
        ENVIRONMENT="DESCONHECIDO"
    ;;
esac
printf "\033[${COLOR}m -- AMBIENTE ${ENVIRONMENT} \033[0m\n"
EOF
chmod 644 /sbin/motd.sh
echo "#MOTD" >> /root/.bashrc
echo "source /sbin/motd.sh" >> /root/.bashrc

Para desabilitar o IPv6, execute:

echo "# IPv6 support in the kernel, set to 0 by default" >> /etc/sysctl.d/70-ipv6.conf
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.d/70-ipv6.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.d/70-ipv6.conf
sysctl --system

Para alguns outros ajustes, execute:

sed -i "s/MAILTO=root/#MAILTO=root/g" /etc/cron.d/0hourly
sed -i "s/GRUB_TIMEOUT=5/GRUB_TIMEOUT=2/g" /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

rm -rf /tmp/*
systemctl enable tmp.mount

chown root:root /var/log/messages /var/log/secure /var/log/wtmp /var/log/maillog  /var/log/cron
chmod 660 /var/log/messages /var/log/secure /var/log/wtmp /var/log/maillog  /var/log/cron
chown root:root /dev/mem
chmod 640 /dev/mem

chown root:root /etc/rc.d
chmod 750 /etc/rc.d

Verifique como está a configuração do firewall:

firewall-cmd --list-all

Considerando a configuração original (que permite o cockpit, o dhcp e o ssh), execute:

firewall-cmd --permanent --remove-service=cockpit
firewall-cmd --permanent --remove-service=dhcpv6-client
firewall-cmd --reload
systemctl mask fwupd

Instalação do Cliente Zabbix

Atenção: Caso utilize Zabbix no seu ambiente, execute esse tópico

Libere no firewall local o Zabbix Cliente, antes de iniciar:

firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --reload

instalar o cliente do Zabbix (caso tenha no seu ambiente esse sistema de monitoramento), execute (alterando a parte em cinza, pelo IP do seu servidor Nagios):

rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/10/x86_64/zabbix-release-latest-7.0.el10.noarch.rpm

yum install zabbix-agent2 -y

NOMEHOST=`hostname | tr '[:lower:]' '[:upper:]'`
sed -i "s/LogFileSize=0/LogFileSize=100/g" /etc/zabbix/zabbix_agent2.conf
sed -i "s/Server=127.0.0.1/Server=192.168.0.38/g" /etc/zabbix/zabbix_agent2.conf
sed -i "s/ServerActive=127.0.0.1/ServerActive=192.168.0.38/g" /etc/zabbix/zabbix_agent2.conf
sed -i "s/Hostname=Zabbix server/Hostname=$NOMEHOST/g" /etc/zabbix/zabbix_agent2.conf

Configure a limpeza de logs, com os comandos:

tee /etc/logrotate.d/zabbix-agent2 > /dev/null <<'EOF'
/var/log/zabbix/zabbix_agent2.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    copytruncate
}
EOF

Inicie e verifique possíveis problemas:

systemctl enable zabbix-agent2
systemctl restart zabbix-agent2
logrotate -d /etc/logrotate.d/zabbix-agent2

Fazendo um Snapshot (ou convertendo para template)

Para limpar o histórico do Linux e reiniciar o servidor, execute:

history -c
init 6

Antes de fazer uma instalação, sugerimos um snapshot (para fazer um roolback rápido), ou converter para um template

Fontes/Referências

https://rockylinux.org/pt-BR

Categorias: Soluções OpenSource