Como instalar e configurar o Apache no CentOS/Rhel 8

Como instalar e configurar o Apache no CentOS/Rhel 8

O CentOS 8 é o último lançamento do CentOS Linux Operating System, que é baseado no Red Hat Enterprise Linux 8. Neste tutorial, ajudaremos você a instalar o Sistema Apache Web no CentOS 8 ou RHEL 8 com configuração e segurança adicionais.

Pré -requisidades

  • Acesso SSH ao sistema CentOS/RHEL 8
  • Privilégios sudo para o usuário para instalar pacotes

Etapa 1 - Instale o Apache no CentOS 8

Primeiro de tudo, faça o login no seu sistema CentOS 8 ou RHEL 8 via SSH. Em seguida, instale os pacotes de servidores HTTP Apache2 usando o seguinte comando. Isso também instalará pacotes necessários adicionais em seu sistema.

sudo dnf install httpd 

Aguarde a instalação completa

Etapa 2 - Gerenciar o serviço Apache

O serviço Apache é gerenciado com a linha de comando SystemCTL no CentOS/RHEL 8. Após a instalação, use o seguinte comando para ativar o serviço Apache e iniciá -lo.

sudo systemctl ativar httpd.serviço sudo systemctl iniciar httpd.serviço 

Aqui estão os outros comandos para parar e reiniciar o serviço Apache via linha de comando.

sudo systemctl stop apache2.serviço sudo systemctl reiniciar apache2.serviço 

Etapa 3 - Teste a configuração do Apache

Você pode visualizar os detalhes da versão do Apache instalados usando o seguinte comando.

HTTPD -V Server Versão: Apache/2.4.37 (CentOS) Servidor construído: 7 de outubro de 2019 21:42:02 

Crie uma página HTML de teste no diretório raiz do documento padrão (/var/www/html).

sudo eco "Olá Tecadmin.net ">/var/www/html/index.html 

Agora acesse seu servidor Apache usando o endereço IP do servidor ou um domínio apontado para o servidor IP.

Etapa 4 - Criando o VirtualHost

Vamos criar o primeiro host virtual em seu servidor Apache. Para o tutorial, estamos usando o domínio da amostra “Exemplo.com ”. Aqui vamos criar um host virtual, por exemplo.com na porta 80.

Crie um arquivo de índice de amostra em um diretório:

sudo mkdir -p/var/www/exemplo.com eco "olá exemplo.com "| sudo tee/var/www/exemplo.com/índice.html 

Em seguida, crie o arquivo de configuração do VirtualHost e edite no editor:

sudo vim/etc/httpd/conf.d/exemplo.com.conf 

Adicione o seguinte conteúdo no final do arquivo de configuração. Você pode alterar o nome de domínio conforme seu domínio.

ServerAdmin [email protected] documentroot/var/www/exemplo.com servername exemplo.com Serveralias www.exemplo.com #AllowOverRide All ### Uncomment se necessário ErrorLog Logs/exemplo.com_error.Log CustomLog Logs/Exemplo.com_access.log combinado
12345678910111213 ServerAdmin [email protected] documentroot/var/www/exemplo.com servername exemplo.com Serveralias www.exemplo.com #AllowOverRide All ### Uncomment, se necessário ErrorLog Logs/Exemplo.com_error.Log CustomLog Logs/Exemplo.com_access.log combinado

Salve o arquivo de configuração do VirtualHost e recarregue o serviço Apache usando os seguintes comandos:

sudo systemctl recarregar httpd.serviço 

Etapa 5 - Configure o SSL VirtualHost

Você pode pular esta etapa se não precisar de SSL. Mas a segurança é sempre a principal preocupação para qualquer site. Para usar o SSL com o Apache, instale o pacote MOD_SSL no seu sistema.

sudo dnf install mod_ssl 

Para o tutorial, segui estas instruções para gerar um certificado SSL auto -assinado para o nosso domínio.

Você pode usar /etc/httpd/conf/ssl.conf para host virtual SSL ou você pode usar um arquivo de configuração do host virtual separado para o seu domínio. Por exemplo:

sudo vim/etc/httpd/conf.d/exemplo.com_ssl.conf 

Com o seguinte conteúdo:

ServerAdmin [email protected] documentroot/var/www/exemplo.com servername exemplo.com Serveralias www.exemplo.com #AllowOverride All ### Uncomment se necessário Sslengine no SSLCERtificateFile/etc/pki/tls/certs/exemplo.com.CRT SSLCERtificateKeyFile/etc/pki/tls/certs/exemplo.com.Tecla ErrorLog Logs/Exemplo.com_ssl-error.Log CustomLog Logs/Exemplo.COM_SSL-ACCESS.log combinado
123456789101112131415161718 ServerAdmin [email protected] documentroot/var/www/exemplo.com servername exemplo.com Serveralias www.exemplo.com #AllowOverRide All ### Uncomment, se necessário Sslengine no sslCertificatefile/etc/pki/tls/certs/exemplo.com.CRT SSLCERtificateKeyFile/etc/pki/tls/certs/exemplo.com.Tecla ErrorLog Logs/Exemplo.com_ssl-error.Log CustomLog Logs/Exemplo.COM_SSL-ACCESS.log combinado

Aqui estão três termos usados ​​para configurar o SSL VirtualHost:

  • Sslengine - Defina isso como "ON"
  • SslCertificatefile - Defina o caminho do seu certificado SSL
  • SslCertificateKeyFile - Este é os arquivos de chave privados usados ​​para gerar certificado SSL

Depois disso, habilite o virtualhost e recarregue o serviço Apache usando os seguintes comandos:

sudo systemctl recarregar apache2.serviço 

Etapa 6 - Servidor Apache seguro

A segurança é a parte mais importante da hospedagem. Hackers estão prontos para explorar seu servidor da web. Editar arquivo de configuração principal do Apache

sudo vim/etc/httpd/conf/httpd.conf 

Adicione os seguintes valores no final do arquivo:

Servertokens Prod ServerSignature off Off Traceenable Off
123 Servertokens Prod ServerSignature off Off Traceenable Off

Depois disso, edite o arquivo de configuração SSL padrão do Apache:

sudo vim/etc/httpd/conf.d/ssl.conf 

Aqui estão as múltiplas configurações relacionadas à segurança. Adicione ou atualize as seguintes configurações. Não estamos indo em descrições detalhadas sobre isso, mas essas configurações são muito úteis para os servidores de produção.

#Rules retirados de https: // cipherli.sslciphersuite EECDH+AESGCM: EDH+AESGCM # Requer Apache 2.4.36 & OpenSSL 1.1.1 SSLProtocol -Al +TLSV1.3 +tlsv1.2 sslotenslconfcmd curvas x25519: secp521r1: secp384r1: prime256v1 # versões mais antigas # sslprotocol all -sslv2 -sslv3 -tlsv1 -tlsv1.1 SslHonorCipherorder no cabeçalho sempre define o cabeçalho rigoroso de segurança "MAX-AGE = 63072000; inclui subdomínios; o cabeçalho da pré-carga" sempre define o cabeçalho do quadro x nega sempre o cabeçalho X-Content-Type-Octions Nosniff # requer Apache> = 2.4 SSLCOMPRESSO DE OFF SSLUSESTAPLING NO SSLSTAPLINGCACH "SHMCB: LOGS/STAPLING-CACHE (150000)" # Requer Apache> = 2.4.11 SSLSessionTickets Off
123456789101112131415161718#Rules retirados de https: // cipherli.sslciphersuite EECDH+AESGCM: EDH+AESGCM# Requer Apache 2.4.36 & OpenSSL 1.1.1SSLProtocol -Al +TLSV1.3 +tlsv1.2SSLOPENSSLCONFCMD CURVAS X25519: SECP521R1: SECP384R1: PRIME256V1# Versões mais antigas# SSLProtocol All -SSLV2 -SSLV3 -TLSV1 -TLSV1.1SslHonorCipherOrder OnHeader sempre define o cabeçalho rigoroso de segurança "MAX-AGE = 63072000; inclui subdomínios; o cabeçalho da pré-carga" sempre define o X-Options Denyheader sempre definindo X-content-type-Otions Nosniff# requer Apache> = 2.4SslCompression offssluseStapling onSslStaplingCache "shmcb: logs/stapling-cache (150000)"# requer apache> = 2.4.11SlSessionTickets Off

Depois de fazer as alterações reiniciar o serviço Apache para aplicar a nova configuração.

sudo systemctl recarregar apache2.serviço 

Conclusão

Tudo feito, você está executando um servidor Apache seguro no seu sistema CentOS 8 ou RHEL 8 Linux.