Série RHCSA Instalando, configurando e protegendo um servidor da Web e FTP - Parte 9

Série RHCSA Instalando, configurando e protegendo um servidor da Web e FTP - Parte 9

Um servidor da web (também conhecido como um Http Servidor) é um serviço que lida com o conteúdo (mais comumente páginas da web, mas outros tipos de documentos também) para um cliente em uma rede.

Um servidor FTP é um dos recursos mais antigos e mais usados ​​(até hoje) para disponibilizar arquivos para clientes em uma rede em casos em que nenhuma autenticação é necessária, pois o FTP usa nome de usuário e senha sem criptografia.

O servidor da web disponível em RHEL 7 é versão 2.4 do servidor http apache. Quanto ao servidor FTP, usaremos o daemon FTP muito seguro (também conhecido como vsftpd) para estabelecer conexões garantidas pelo TLS.

RHCSA: Instalando, configurando e protegendo Apache e FTP - Parte 9

Neste artigo, explicaremos como instalar, configurar e proteger um servidor da web e um servidor FTP no RHEL 7.

Instalando o Apache e o FTP Server

Neste guia, usaremos um servidor RHEL 7 com um endereço IP estático de 192.168.0.18/24. Para instalar o Apache e o VSFTPD, execute o seguinte comando:

# yum update && yum install httpd vsftpd 

Quando a instalação é concluída, os dois serviços serão desativados inicialmente; portanto, precisamos iniciá -los manualmente por enquanto e permitir que eles comecem automaticamente com a próxima inicialização:

# SystemCtl Iniciar httpd # SystemCtl Ativar httpd # SystemCtl START VSFTPD # SystemCtl Ativar vsftpd 

Além disso, temos que abrir portos 80 e 21, onde os daemons da Web e FTP estão ouvindo, respectivamente, a fim de permitir o acesso a esses serviços de fora:

# firewall-cmd-zone = public --add-port = 80/tcp --permanent # firewall-cmd-zone = public --add-service = ftp --permanent # firewall-cmd--reload 

Para confirmar que o servidor da web está funcionando corretamente, inicie seu navegador e insira o IP do servidor. Você deve ver a página de teste:

Confirme o Apache Web Server

Quanto ao servidor FTP, teremos que configurá -lo ainda mais, o que faremos em um minuto, antes de confirmar que está funcionando como esperado.

Configurando e protegendo o Apache Web Server

O principal arquivo de configuração para Apache está localizado em /etc/httpd/conf/httpd.conf, Mas pode confiar em outros arquivos presentes no interior /etc/httpd/conf.d.

Embora a configuração padrão deva ser suficiente para a maioria dos casos, é uma boa ideia se familiarizar com todas as opções disponíveis, conforme descrito na documentação oficial.

Como sempre, faça uma cópia de backup do arquivo de configuração principal antes de editá -lo:

# cp/etc/httpd/conf/httpd.conf/etc/httpd/conf/httpd.conf.$ (data +%y%m%d) 

Em seguida, abra -o com seu editor de texto preferido e procure as seguintes variáveis:

  1. Serverroot: o diretório em que a configuração, erro e arquivos de log do servidor são mantidos.
  2. Ouvir: Instrui o Apache a ouvir em endereço IP específico e / ou portas.
  3. Incluir: permite a inclusão de outros arquivos de configuração, que devem existir. Caso contrário, o servidor falhará, em oposição à Diretiva Incluiva, que é silenciosamente ignorada se os arquivos de configuração especificados não existirem.
  4. Usuário e grupo: o nome do usuário/grupo para executar o serviço httpd como.
  5. Documentroot: O diretório do qual o Apache servirá seus documentos. Por padrão, todas as solicitações são retiradas deste diretório, mas links e aliases simbólicos podem ser usados ​​para apontar para outros locais.
  6. Nome do servidor: Esta diretiva define o nome do host (ou endereço IP) e a porta que o servidor usa para se identificar.

A primeira medida de segurança consistirá em criar um usuário e grupo dedicados (i.e. Tecmint/Tecmint) para executar o servidor web como e alterar a porta padrão para uma maior (9000 nesse caso):

Serverroot "/etc/httpd" Ouça 192.168.0.18: 9000 Usuário Tecmint Group Tecmint Documentroot "/var/www/html" ServerName 192.168.0.18: 9000 

Você pode testar o arquivo de configuração com.

# apachectl configtest 

E se tudo é OK, Em seguida, reinicie o servidor da web.

# SystemCtl Reiniciar httpd 

E não se esqueça de ativar a nova porta (e desativar a antiga) no firewall:

# firewall-cmd-zone = public--remove-port = 80/tcp --permanent # firewall-cmd-zone = public --add-port = 9000/tcp --permanent # firewall-cmd--reload 

Observe que, devido a Selinux Políticas, você só pode usar as portas devolvidas por

# semanage porta -l | grep -w '^http_port_t' 

para o servidor da web.

Se você quiser usar outra porta (eu.e. Porta TCP 8100), você terá que adicioná -lo a Selinux contexto de porta para o httpd serviço:

# porta semanage -a -t http_port_t -p tcp 8100 
Adicione a porta Apache às políticas do Selinux

Para proteger ainda mais sua instalação do Apache, siga estas etapas:

1. O usuário Apache está em execução, pois não deve ter acesso a um shell:

# UserMod -s /sbin /nologin tecmint 

2. Desativar a listagem de diretórios para impedir que o navegador exiba o conteúdo de um diretório se não houver índice.html presente nesse diretório.

Editar /etc/httpd/conf/httpd.conf (e os arquivos de configuração para hosts virtuais, se houver) e verifique se o Opções A diretiva, tanto no topo quanto nos níveis de bloco de diretório, está definido como Nenhum:

Opções nenhuma 

3. Ocultar informações sobre o servidor da web e o sistema operacional nas respostas HTTP. Editar /etc/httpd/conf/httpd.conf do seguinte modo:

Servertokens Prod ServerSignature Off 

Agora você está pronto para começar a servir o conteúdo do seu /var/www/html diretório.

Configurando e protegendo o servidor FTP

Como no caso do Apache, o principal arquivo de configuração para Vsftpd (/etc/vsftpd/vsftpd.conf) é bem comentado e, embora a configuração padrão seja suficiente para a maioria dos aplicativos, você deve se familiarizar com a documentação e a página do homem (Man vsftpd.conf) Para operar o servidor FTP com mais eficiência (não posso enfatizar isso suficiente!).

No nosso caso, essas são as diretivas usadas:

anonymous_enable = não local_enable = sim write_enable = sim local_umask = 022 dirmessage_enable = sim xferlog_enable = sim connect_from_port_20 = sim xferLog_Std_format = sim chroot_local_user = sIM = ppritetable_chroot = sir 

Usando CHROOT_LOCAL_USER = SIM, Os usuários locais serão (por padrão) colocados em uma prisão de chroot em seu diretório residencial logo após o login. Isso significa que os usuários locais não poderão acessar nenhum arquivo fora de seus diretórios domésticos correspondentes.

Por fim, para permitir que o FTP leia arquivos no diretório inicial do usuário, defina o seguinte Selinux boleano:

# setsebool -p ftp_home_dir 

Agora você pode se conectar ao servidor FTP usando um cliente como Filezilla:

Verifique a conexão FTP

Observe que o /var/log/xferlog Downloads e uploads de registros de logs, que concordam com a listagem de diretório acima:

Monitore FTP Download e upload

Leia também: Limite a largura de banda de rede FTP usada por aplicativos em um sistema Linux com gotejamento

Resumo

Neste tutorial, explicamos como configurar uma web e um servidor FTP. Devido à vastidão do assunto, não é possível cobrir todos os aspectos desses tópicos (i.e. hosts da web virtual). Assim, eu recomendo que você também verifique outros excelentes artigos neste site sobre Apache.