Série RHCSA Instalando, configurando e protegendo um servidor da Web e FTP - Parte 9
- 4263
- 289
- Enrique Gutkowski PhD
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 9Neste 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 ServerQuanto 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:
- Serverroot: o diretório em que a configuração, erro e arquivos de log do servidor são mantidos.
- Ouvir: Instrui o Apache a ouvir em endereço IP específico e / ou portas.
- 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.
- Usuário e grupo: o nome do usuário/grupo para executar o serviço httpd como.
- 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.
- 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 8100Adicione 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 FTPObserve que o /var/log/xferlog
Downloads e uploads de registros de logs, que concordam com a listagem de diretório acima:
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.
- « Seção.IO Lançado - Configurar solução completa de cache de verniz para seus sites em minutos
- 10 usos incríveis e misteriosos de (!) Símbolo ou operador em comandos Linux »