Arquivo da tag: crontab

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
continuar lendo..

Gestão em infraestrutura de Servidores Cloud VPS e Dedicados. Planos mensais acessíveis e consultoria diferenciada para agências de marketing.
Envie um email para [email protected] e solicite uma análise gratuita!

Como sincronizar arquivos de backup do VPS para o Windows usando o cwRsync

Tutorial de como sincronizar os backups gerados pelo ISPConfig no VPS para o desktop Windows automaticamente usando o Agendador de Tarefas. Para isso usaremos alguns comandos não documentados e o cwRsync, que é muito parecido com o rsync para Linux.

Neste artigo mostrarei como baixar os backups dos sites mas a mesma dica pode ser usada para qualquer arquivo ou diretório no servidor.

Sincronizando arquivos de backup do VPS para o Windows usando cwRsync Baixando e instalando o cwRsync

cwRsync é uma implementação do rsync para Linux compilado para Windows com as DLLs do Cygwin. A ferramenta é gratuita para a versão linha de comando.

1a ⇒ Crie uma pasta no Windows que conterá os arquivos do cwRsync e os backups que baixaremos do servidor. Sugestão: crie a pasta na raiz do sistema ( C:\rsync )

C:\rsync

1b ⇒ Baixe o cwRsync para a pasta criada acima. Link para o download: https://www.itefix.net/content/cwrsync-free-edition

O arquivo estará compactado, descompacte o conteúdo e copie os arquivos de dentro da pasta cwRsync_5.5.0_x86_Free para C:\rsync (em C:\rsync deverá conter a pasta bin e 3 outros arquivos).

1c ⇒ Prepare o sistema para conseguir executar o rsync de qualquer local. Dentro da pasta C:\rsync há um arquivo chamado cwrsync.cmd, clique duas vezes nele para executar.

Em seguida inclua o caminho dos binários rsync nas variáveis de sistema do Windows: Clique em Computador → Configurações Avançadas do Sistema → Variáveis de Ambiente, no segundo quadro “Variáveis do Sistema” clique duas vezes  na variável “Path“. Abrirá uma janela de edição com vários caminhos já definidos pelo Windows, no final da linha adicione o cwrsync separando por um ponto e vírgula conforme mostrado abaixo:

;C:\rsync\bin\

*Após modificar o path confirme todas as telas de propriedade abertas.

Configurando o SSH

No pacote do cwRsync além do comando rsync há também o ssh e o ssh-keygen, o qual usaremos para criar um par de chaves que permitirá acessar o servidor Linux sem necessidade de digitar a senha.

2a ⇒ Abra o prompt de comando do Windows (MS-DOS). Clique em “Iniciar” e na caixa de pesquisa digite “cmd“, na lista selecione cmd.exe para abrir o prompt.

2b ⇒ Acesse o diretório do usuário que já foi criado na instalação do cwRsync e crie um par de chaves:

cd C:\rsync\home\%USERNAME%\.ssh

ssh-keygen

* Pressione ENTER nas perguntas da tela. Será criado um par de chaves pública e privada na pasta .ssh. Usaremos o conteúdo do arquivo id_rsa.pub no próximo passo.

2c ⇒ Acesse o servidor Linux com as credenciais de superusuário root. Dentro do diretório  /root/.ssh há um arquivo chamado authorized_keys. Edite-o e cole o conteúdo do arquivo id_rsa.pub gerado no Windows.

2d ⇒ Corrigindo as permissões das chaves no Windows: Ao tentarmos executar o cwRsync uma mensagem de alerta será exibida dizendo que o arquivo de chaves privadas tem permissões erradas. Mensagem de alerta:

Permission 0770 are too open
This private key will be ignored
Load key bad permissions

Para acertar isso usaremos um comando não documentado do Windows chamado cacls.exe (esse comando permite alterar as permissões de arquivos pela linha de comando). Dentro da pasta C:\rsync\home\%USERNAME%\.ssh execute os seguintes comandos (prompt do MS-DOS):

cd C:\rsync\home\%USERNAME%\.ssh

cacls id_rsa /P Todos:N

cacls id_rsa /P %USERNAME%:F

2e ⇒ Teste o cwRsync: Crie uma pasta teste e use o rsync conforme demonstrado abaixo:

mkdir teste

cd teste

rsync -avz -e ssh [email protected]_DO_SERVIDOR:/var/log/auth.log .

* Será necessário confirmar a exceção de chave quando usar o comando pela primeira vez.

* No exemplo acima fizemos uma cópia do arquivo auth.log do Linux para o Windows. Note o “ponto” no final do comando rsync.

Acionando a opção de backup por site no ISPConfig 

No tutorial de como agendar backups para o ADrive já mostrei como ativar os backups de sites configurados no ISPConfig. Aquela é uma opção bem útil pois faz backup diário de todos os arquivos do site e do banco de dados compactando tudo em 2 arquivos. Segue abaixo um resumo de como usar a funcionalidade:

3a ⇒ Em cada site configurado no ISPConfig existe uma aba “Backup” que está com a função desativada por padrão. Para ativar  por site acesse:

ISPConfig → Sites → <Selecione um site na lista> → aba Backup 

» Intervalo de Backup: <- Daily (diário)

» Número de cópias: <- 1 (número de cópias do site que deseja manter no ISPConfig. Como faremos o download diariamente para o Windows não há necessidade de manter várias cópias no servidor, lembre-se que dependendo do tamanho do site isso poderá ocupar muito espaço)

» Exclude Directories: <- bin/*,etc/*,lib/*,lib64/*,log/*,tmp/*,usr/*,var/*,web/wp-content/managewp/backups/*,web/wp-content/updraft/*.zip,web/wp-content/updraft/*.gz

*Na lista de diretórios a excluir do backup adicionei aqueles gerados pelo ManageWP e pelo UpdraftPlus, mesmo que você não use esses plugins pode configurar conforme mostrado.

3b ⇒ Salve as opções acima e repita o procedimento 3a para todos os sites que deseja ativar o backup automático. Os backups serão gerados a partir da madrugada do dia seguinte, e o diretório onde os arquivos serão gravados no servidor será /var/backup/ (note que para cada site o ISPConfig grava um subdiretório com o nome do usuário de controle)

Configurando o Agendador de Tarefas do Windows 

O último passo deste tutorial será criar uma rotina no Agendador de Tarefas do Windows que baixará automaticamente os backups do servidor. *Para termos mais controle sobre os comandos criaremos um arquivo de script .bat dentro da pasta C:\rsync\home\%USERNAME%

4a ⇒ Crie uma pasta chamada C:\rsync\home\%USERNAME%\backups que abrigará os backups baixados pelo script.

4b ⇒ Crie um arquivo chamado rsyncvps.bat dentro da pasta acima e cole o seguinte conteúdo:

* Substitua as partes em vermelho pelas informações do seu desktop/servidor

* Note que usaremos o comando não documentado forfiles do Windows para manter somente 7 conjuntos de backup no desktop, ajuste se achar necessário

* Quando executamos o comando rsync para Windows, que usa as bibliotecas do Cygwin, o caminho de destino deverá ser escrito conforme mostrado abaixo e com barra normal à direita (no Cygwin o drive C:\ é denominado /cygdrive/c/)

@echo off

REM Mensagens de cabecalho
echo(
echo TRANSFERENCIA DE BACKUP 
echo Copiando arquivos do servidor, aguarde..
echo(

REM
continuar lendo..

Gestão em infraestrutura de Servidores Cloud VPS e Dedicados. Planos mensais acessíveis e consultoria diferenciada para agências de marketing.
Envie um email para [email protected] e solicite uma análise gratuita!

Como Agendar Backups Automáticos dos Sites no ISPConfig com rSync para o ADrive

Tutorial de como fazer backup para o ADrive usando o rSync, agendando a tarefa para executar automaticamente pelo Cron. Mostrarei o procedimento para fazer cópia dos sites gerenciados pelo ISPConfig 3 no VPS, mas o exemplo pode ser adaptado para qualquer outra situação.

Manter cópia de segurança (backup) dos sites e aplicativos do servidor é uma das tarefas mais importantes para um administrador de sistemas. Quando algo der errado ou o website for infectado por um malware, ou ainda a sua hospedagem foi suspensa por qualquer motivo, você ficará grato por ter uma ou mais cópias do seu trabalho.

Já ensinei anteriormente como fazer backups automáticos pelo WordPress, mas aquele tutorial é somente para o banco de dados e conteúdo do site. Hoje vamos ver como fazer cópia de todos os arquivos do diretório /web, incluindo também os diretórios de usuário fora do /web.

* O ADrive é um serviço de Cloud Storage e Soluções de Backup comercial, ou seja ele é pago e não tem versão gratuita. Porém é muito barato, por $ 2,50 dólares mensais você tem direito a 100Gb de espaço. Quem deu a dica e ajudou a testar o procedimento de backup foi o leitor Marcos Aurelio que já utiliza o ADrive por vários anos.

Backup agendado de sites para o ADrive usando rSync

* Este tutorial foi testado em nosso servidor Debian 7 com ISPConfig 3 e Postfix, clique aqui e veja como instalar.

Configurando o ADrive e o servidor para enviar os backups

Acesse sua conta no ADrive se ainda não tiver uma conta clique neste link para registrar-se.

Crie uma pasta no ADrive que será usada para guardar os backups do servidor. Exemplo: vpsbackup

Acesse o servidor VPS via SSH com o usuário root para criar um par de chave criptografada. Digitando o comando:

ssh-keygen 

* Quando solicitar tecle ENTER até sair

Copie a chave pública para o ADrive: O comando acima criou um par de chaves pública e privada no diretório /root/.ssh.  Copie o conteúdo do arquivo /root/.ssh/id_rsa.pub para o ADrive, colando-o na caixa de texto da chave. Para fazer isso acesse:

Account Settings → Manage Public Keys → Add New Public Key

* Certifique-se de colar a chave sem qualquer espaço no inicio ou no final.

* Isso criará um acesso sem senha entre o servidor e o ADrive para podermos executar o rSync.

Configure o backup e o ISPConfig

Teste o acesso ao ADrive pelo servidor digitando o seguinte comando:

rsync -a -e 'ssh -i /root/.ssh/id_rsa' /usr/share/nginx/html/index.html [email protected]@rsync.adrive.com:vpsbackup/

* Substitua [email protected] pelo seu email registrado no ADrive (note que a pasta apontada no comando “vpsbackup” não tem barra no início, muito cuidado para escrever o comando corretamente)

* A primeira vez que tentar executar o comando com uma chave nova, será perguntado se deseja salvar a exceção. Responda “yes“.

Após executar o comando verifique no ADrive se criou um arquivo chamado index.html na pasta vpsbackup.

Acione a rotina de backup no ISPConfig:

ISPConfig → Sites → <Selecione um site na lista> → aba Backup 

» Intervalo de Backup: Daily (diário)

» Número de Cópias: 7 (número de cópias a manter deste site)

» Exclude Directories: <pode deixar em branco>

Esse procedimento irá acionar a rotina de backup automático para o site no ISPConfig (note que será necessário fazer isso para cada site adicionado ao painel). Diariamente serão criados 2 arquivos compactados no diretório /var/backup. Dentro do diretório a ferramenta cria subdiretórios para cada site separadamente. Um arquivo terá o dump do banco de dados e o outro conterá todo o diretório de arquivos do site, incluindo aqueles fora do diretório /web. Configure para um site e veja no outro dia os arquivos criados, você poderá abri-los e visualizar a estrutura de diretórios.

Programe o agendador de tarefas para fazer o rSync automaticamente

Crie uma tarefa no Cron com o gerenciador de tarefas crontab:

ATENÇÃO: somente execute este último procedimento após testar o comando rSync (passo 2A), e verifique se o nome da pasta no ADrive está correta e criada. Usaremos a opção –delete do rSync que apaga da pasta de destino tudo o que for diferente da pasta de origem, então nunca copie para a raiz do aDrive ou tudo o que estiver lá será perdido.

> crontab -e

Esse comando abrirá o editor do Cron, cole o seguinte conteúdo na última linha em branco (negritei o que deve ser alterado, note que o código abaixo deve ser inserido em linha única caso o seu browser trunque o texto):

30 07 * * * /usr/bin/rsync -a --delete -e 'ssh -i /root/.ssh/id_rsa'
continuar lendo..

Gestão em infraestrutura de Servidores Cloud VPS e Dedicados. Planos mensais acessíveis e consultoria diferenciada para agências de marketing.
Envie um email para [email protected] e solicite uma análise gratuita!