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 1 | Passo 2 Mount Point | Passo 3 Desired Capacity | Passo 4 | Passo 5 (Em Devices, clique em Modify e) | Passo 6 | Passo 7 |
| + | /boot/efi | 600 mib | Clique em Add mount Point | Selecione sda | Clique em Select | Clique em Update Settings |
| /boot | 600 mib | |||||
| / | 14.8 gib | |||||
| Swap | 8 gib | Selecione 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:
- 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.
- Em Host Name, digite o FQDN (nome.domínio) e clique em Apply;
- Ative a interface alterando-a para ON;
- 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