Arquivo da tag: firewall

Tutorial Debian 8 x64 com ISPConfig e NginX: Configurações Adicionais

Após a instalação e configuração do servidor e dos sites existem algumas tarefas diárias que devemos executar para monitorar os arquivos e os serviços.

Neste artigo adicional aprenda como direcionar os emails do root para uma conta válida pois não é possível fazer acesso POP na conta do root. E veremos ainda como criar alguns scripts que ajudam na administração.

Segurança: Scripts e Configurações Adicionais Redirecione os emails do root para outra conta

Isso é importante pois alguns emails administrativos do servidor são enviados somente para o superusuário root na máquina local. Por exemplo: se alguém cadastrar um segundo usuário admin no ISPConfig um email será enviado ao root.

1a ⇒ Acesse o terminal SSH como root

1b ⇒ Edite o arquivo /root/.forward (para visualizar arquivos com um ponto no início “arquivos ocultos” digite o comando ls -al). Adicione a seguinte linha:

* Substitua o email abaixo por outro válido e que exista

[email protected]

1c ⇒ Método Alternativo: Caso o primeiro método não seja possível ou não funcione em seu sistema use esta segunda opção. Edite o arquivo /etc/aliases e no final adicione uma nova linha (DICA: direcione para outra conta interna no próprio servidor como a contato de algum site, caso o SMTP esteja bloqueado por algum motivo mesmo assim você poderá recuperar os emails via POP):

root: [email protected]

Após salvar o arquivo digite o comando:

newaliases

Script para monitorar alteração nos arquivos dos sites

Alguns leitores reportaram recentemente que tiveram os sites hackeados, não pelo motivo de terem invadido o servidor mas somente um site isolado (via code injection ou senha fraca cadastrada para o site). Após analisar os ataques nota-se que o invasor instala arquivos adicionais que enviam spam ou atacam outros sites a partir do VPS.

Veja abaixo como criar um script simples de monitoramento, muito útil para detectar infecções por malware e outras pragas.

2a ⇒ Crie um arquivo de script no diretório /root mudando as permissões para que somente o root consiga alterar e executar:

touch /root/site-monitor

chmod 700 /root/site-monitor

2b ⇒ Edite o arquivo e cole o seguinte conteúdo, substituindo os textos em vermelho por informações do seu servidor e pelos seus emails:

* Note que configurei o comando find para encontrar arquivos modificados nos últimos 60 minutos pois criaremos uma tarefa agendada para executar a cada hora

* Se nenhuma alteração for encontrada o email não será enviado

* Cole os comandos abaixo no arquivo de script sem alterar espaçamentos ou formatação, isso é importante pois usaremos um bloco de código here docs na configuração

* O site fatorbinario.com abaixo representado está em um caminho definido por padrão em instalações com ISPConfig. Para outros CPs ou sistemas veja qual o caminho definido para o site. (Pode-se ainda usar coringas de shell)

#!/bin/bash
# Monitora o site e verifica os arquivos alterados na ultima hora

SITEMONRESULTS=$(find /var/www/fatorbinario.com/web -type f -mmin -60 -exec ls -ls {} \;)
if [ ! -z "${SITEMONRESULTS}" ];
then
cat <<EOF | /usr/sbin/sendmail -t
To: [email protected]
Subject: Arquivos do site alterados na ultima hora
From: [email protected]

Os seguintes arquivos do site foram alterados:

$SITEMONRESULTS

EOF
fi

continuar lendo..

Gerenciamento de Servidores Cloud com atendimento e consultoria em português. Planos mensais com os melhores preços do mercado.
Envie um email para [email protected] e saiba mais!

*Regarding english support please contact me by email or post a comment using the Disqus system. I do offer monthly support and custom server deploy. Now accepting Paypal and Bitcoin!

Tutorial Debian 8 x64 com ISPConfig e NginX: Firewall

Um servidor sem Firewall é como aguardar por um desastre anunciado, você sabe que vai acontecer e, como administrador de sistemas, tem que tomar providências para minimizar os estragos.

Durante algumas semanas deixei o meu site num servidor que a gente chama “honey pot“. Esse tipo de servidor é usado para, propositalmente, receber ataques e fazer log de tudo direcionando-os para determinados arquivos do sistema. Com essa técnica consegue-se filtrar e catalogar os tipos mais comuns de ataques, e as análises extraídas servem de base para melhorar as defesas do sistema.

Neste artigo Vamos acionar o Firewall do ISPConfig (Bastille Firewall), reconfigurar o Fail2Ban melhorando a detecção, ajustar o JailKit, acertar o NginX para mitigar ataques DDoS e, opcionalmente, instalar o Logwatch e desativar o modo recursivo do BIND.

Configurando o Firewall do Sistema

* Acesse o terminal SSH como superusuário root para executar os comando de instalação e configuração.

Acionando o Firewall do ISPConfig

No artigo anterior deste tutorial mostrei como adicionar as portas para o modo passivo do FTP ao firewall do ISPConfig, se você pulou aquele passo ou não prestou atenção, proceda da seguinte maneira:

Acesse: ISPConfig → Sistema → Firewall

Clique no botão “Adicionar Registro de Firewall” e confirme a tela que abrirá (se já havia adicionado o Firewall simplesmente abra a configuração existente), em seguida clique na linha de configuração e na caixa de “Portas TCP abertas” adicione “40110:40210” (portas para o FTP passivo) desta maneira:

20,21,22,25,53,80,110,143,443,587,993,995,3306,8080,8081,10000,40110:40210

* Pode-se parar o firewall do ISPConfig pelo console a qualquer momento digitando: /etc/init.d/bastille-firewall stop (isso pode ser útil caso queira testar se algum serviço externo não está conseguindo acessar o servidor por causa de alguma restrição de porta)

Reconfigurando o Fail2Ban e melhorando a detecção de ataques

Fail2Ban é a ferramenta responsável por detectar ataques ao servidor e automaticamente aplicar regras de ban. Alguns serviços básicos já estão configurados, mas vamos adicionar outros para minimizar riscos.

* Antes de adicionar os filtros abaixo ao Postfix, verifique se você tem um nome de servidor FQDN configurado, isso é muito importante para o correto funcionamento. Para uma melhor explicação veja o passo “Antes de começar” neste link.

2a ⇒ Edite o arquivo /etc/postfix/main.cf e altere/adicione as linhas abaixo:

#Próximo à Linha 57: Substitua a instrução "smtpd_recipient_restrictions" por esta abaixo (note que é uma linha única. e note também que no script novo de instalação há suporte a greylisting de emails e que o repositório padrão configurado para checagens é o zen.spamhaus.org. O SpamHaus é conhecido por cometer "enganos" com IPs legítimos, caso decida usar o serviço deles não precisa alterar a linha 57):

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unknown_recipient_domain, permit
 
#Próximo às linhas 66 e 67: Substitua as linhas com instruções "smtpd_sender_restrictions" e "smtpd_client_restrictions" pelo bloco de código abaixo:

#EDIT Out/2016: Ajuste das instruções para a nova versão do instalador do ISPConfig, mantido o bloco antigo somente para compatibilidade

smtpd_data_restrictions = reject_unauth_pipelining
smtpd_delay_reject = yes
smtpd_sender_restrictions = 
   permit_mynetworks,
   reject_non_fqdn_sender,
   reject_unknown_sender_domain,
   check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf,
   permit
smtpd_client_restrictions = 
   permit_mynetworks,
   permit_sasl_authenticated,
   reject_unknown_client_hostname,
   check_client_access mysql:/etc/postfix/mysql-virtual_client.cf,
   permit

#Para instalações a partir de Out/2016 use este bloco de código:
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_delay_reject = yes
smtpd_sender_restrictions =
   check_sender_access regexp:/etc/postfix/tag_as_originating.re,
   permit_mynetworks,
   permit_sasl_authenticated,
   reject_non_fqdn_sender,
   reject_unknown_sender_domain,
   check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf,
   check_sender_access regexp:/etc/postfix/tag_as_foreign.re,
   permit
smtpd_client_restrictions =
   permit_mynetworks,
   permit_sasl_authenticated,
   reject_unknown_client_hostname,
   check_client_access mysql:/etc/postfix/mysql-virtual_client.cf,
   permit

continuar lendo..

Gerenciamento de Servidores Cloud com atendimento e consultoria em português. Planos mensais com os melhores preços do mercado.
Envie um email para [email protected] e saiba mais!

*Regarding english support please contact me by email or post a comment using the Disqus system. I do offer monthly support and custom server deploy. Now accepting Paypal and Bitcoin!

Tutorial Debian 8 x64 com ISPConfig e NginX: Índice

Tutorial de instalação e configuração em um VPS com Linux Debian 8 (Jessie) x64, painel de controle ISPConfig 3 e Servidor de Emails com Roundcube e NginX.

Nestes últimos meses configurei pessoalmente algumas centenas de servidores com Debian 7 e ISPConfig 3 e auxiliei na instalação de muitos outros. E, atendo a pedidos da comunidade, decidi criar este tutorial optando pela versão 64-bit do sistema adicionando algumas implementações solicitadas que publicarei nos próximos artigos.

continuar lendo..

Gerenciamento de Servidores Cloud com atendimento e consultoria em português. Planos mensais com os melhores preços do mercado.
Envie um email para [email protected] e saiba mais!

*Regarding english support please contact me by email or post a comment using the Disqus system. I do offer monthly support and custom server deploy. Now accepting Paypal and Bitcoin!

Monitorando o servidor VPS com Logwatch

Logwatch é uma ferramenta customizável que serve para monitorar os arquivos de log no servidor, reportando as principais atividades e alertando para possíveis tentativas de invasão. Em nossos testes o relatório diário enviado pelo Logwatch tem auxiliado na captura/ban definitivo de ataques ao servidor, tarefa que seria impossível de fazer manualmente.

* Como a maioria de vocês já devem estar acostumados, o objetivo dos tutoriais que publicamos é apresentar o texto de forma resumida optando pelas melhores configurações adaptadas aos tutoriais anteriores. Poderíamos falar mais sobre a ferramenta e mostrar as opções que ela oferece mas da nossa maneira vamos direto ao que interessa. Este tutorial foi instalado e testado no Linux Debian 7 com ISPConfig que configuramos anteriormente.

Instalando e Configurando o Logwatch:

Já vimos anteriormente como analisar os arquivos de log no VPS, aprendendo para que serve cada arquivo e monitorando o servidor. Mas daquela forma levaríamos horas para filtrar possíveis ataques e outras atividades importantes. Com o Logwatch vamos automatizar essa tarefa.

* Este tutorial deve ser seguido posteriormente ao de Segurança no Servidor que publicamos recentemente <clique aqui para aprender como configurar um Firewall>

Baixe e instale o Logwatch:

#Faça primeiro um update dos pacotes no repositório e rode o instalador em seguida
> apt-get update

> apt-get install logwatch
#Na pergunta se deseja continuar tecle ENTER

Altere o arquivo de configuração:

Faremos algumas alterações para o relatório ser enviado com maior clareza e de forma detalhada. Edite o arquivo: /usr/share/logwatch/default.conf/logwatch.conf 

* Em nossos tutoriais usamos sempre o WinSCP com Notepad++ para editar arquivos remotos, siga este link para aprender como fazer isso

#Na linha 35 altere para que o relatorio seja enviado por email
Output = mail

#Na linha 37 altere o formato para HTML facilitando a leitura
Format = html

#Na linha 44 vamos configurar para qual email o relatorio sera enviado (pode ser uma conta interna ou externa)
MailTo = [email protected]

#Na linha 53 podemos, opcionalmente, alterar para que o relatorio seja enviado usando uma conta interna e autenticada do sistema, evitando problemas com entrega para caixas de entrada como as do Hotmail
#Para essa linha de configuracao funcionar veja observacao no passo 3 abaixo
MailFrom = [email protected]

#Na linha 77 altere o nivel de detalhes para Medio, assim o relatorio sera enviado como aquele demonstrado em nosso link acima
Detail = Med

continuar lendo..

Gerenciamento de Servidores Cloud com atendimento e consultoria em português. Planos mensais com os melhores preços do mercado.
Envie um email para [email protected] e saiba mais!

*Regarding english support please contact me by email or post a comment using the Disqus system. I do offer monthly support and custom server deploy. Now accepting Paypal and Bitcoin!

Firewall: Tutorial de Segurança no Servidor de Email do VPS

Ataques ao servidor de emails em um VPS são mais frequentes do que as pessoas imaginam, num único dia um servidor pode ser alvo de dezenas dessas tentativas de invasão. Técnicas de Spoofing e BackScatter podem “sujar” um endereço IP limpo pois conseguem  “forjar” um remetente (Quem nunca recebeu um email marcado como SPAM que foi enviado pelo seu próprio endereço?). Aprenda como se defender de ameaças e mantenha o IP do VPS limpo para que o mesmo não seja marcado em blacklists.

Este tutorial foi elaborado durante semanas de testes e busca por informações. Documentos atualizados falando sobre o assunto são difíceis de encontrar, e os mais antigos têm regras que não se aplicam atualmente. Nos próximos parágrafos tentarei explicar como analisar os arquivos de log e identificar ameaças, e ainda mostrarei como configurar alguns serviços para repelir quase 100% das tentativas de invasão. *Fizemos os testes em nosso servidor Debian 7 com ISPConfig 3, clique aqui para seguir o tutorial de como instalar um sistema completo com painel de controle.

Para que possamos defender o servidor de forma apropriada é importante certificar-se de que o sistema esteja configurado corretamente. Verifique se o nome do seu VPS seja FQDN e esteja ativo, não invente nomes fictícios de domínio, ele precisa existir para o DNS poder localizá-lo (caso tenha criado com o nome errado clique aqui e veja como alterar); Nosso MTA será o Postfix e usaremos o Fail2Ban com o Firewall do ISPConfig 3 para distribuir bans. Como camada extra de segurança eu indico a CloudFlare que tem um firewall próprio além de servir como proxy-cache do site (veja como configurar o DNS com CloudFlare).

*Se você está lendo este artigo e pensa que o seu VPS está seguro então é melhor dar uma olhada nos arquivos de log. Clique aqui para ler minha postagem falando sobre esses arquivos.

Antes de começar: Postfix:

O MTA do nosso servidor será o Postfix que é responsável pelo controle dos emails enviados diretamente do VPS ou via SMTP por um cliente de email (Outlook, Thunderbird). *Erroneamente algumas pessoas pensam que o responsável pelo envio é o sistema operacional ou o painel de controle, veremos isso abaixo.

Quando instalamos o Postfix seguindo o tutorial ele ficou pronto para uso, criamos caixas de entrada e domínios de email. Agora veremos como “tunar” algumas opções para melhorar a segurança.

Arquivo /etc/postfix/main.cf:

*Talvez você possa ter alterado o arquivo original main.cf então vamos verificar algumas configurações. Procure no arquivo pelas seguintes linhas e veja se estão com estes parâmetros, adicione as que não houver (faça um backup do arquivo, um erro aqui e o Servidor de Email para de funcionar):

#Importante: Não altere a ordem em que as linhas aparecem no arquivo

smtpd_use_tls = yes

#Substitua o próximo parâmetro pelo nome FQDN que você deu ao VPS (Se voce seguiu o tutorial com ISPConfig os proximos dois parametros ja devem estar certos)
myhostname = vps1.fatorbinario.com

#Certifique-se de incluir o nome do VPS na próxima linha
mydestination = vps1.fatorbinario.com, localhost, localhost.localdomain

#Para melhor aceitacao no Gmail
inet_protocols = ipv4

#Comente a linha:
#smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf

#E substitua por este bloco (note as virgulas):
smtpd_recipient_restrictions = 
   permit_mynetworks,
   permit_sasl_authenticated,
   reject_unauth_destination,
   reject_unknown_recipient_domain,
   check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf,
   permit

#Verifique ainda se as 2 linhas abaixo estão presentes no seu arquivo 
header_checks = regexp:/etc/postfix/header_checks
smtpd_tls_security_level = may

#Comente as linhas:
#smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf
#smtpd_client_restrictions = check_client_access mysql:/etc/postfix/mysql-virtual_client.cf

#E substitua por este bloco de codigo abaixo adicionando parametros novos:
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_delay_reject = yes
smtpd_helo_required = yes
smtpd_helo_restrictions =
   permit_mynetworks,
   permit_sasl_authenticated,
   reject_non_fqdn_helo_hostname,
   reject_invalid_helo_hostname,
   permit
smtpd_sender_restrictions = 
   permit_mynetworks,
   reject_non_fqdn_sender,
   reject_unknown_sender_domain,
   check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf,
   permit
smtpd_client_restrictions = 
   permit_mynetworks,
   permit_sasl_authenticated,
   reject_unknown_client_hostname,
   check_client_access mysql:/etc/postfix/mysql-virtual_client.cf,
   permit

continuar lendo..

Gerenciamento de Servidores Cloud com atendimento e consultoria em português. Planos mensais com os melhores preços do mercado.
Envie um email para [email protected] e saiba mais!

*Regarding english support please contact me by email or post a comment using the Disqus system. I do offer monthly support and custom server deploy. Now accepting Paypal and Bitcoin!