Backup automatizado e seguro usando SSH / SCP / SFTP

São muitos os scripts de backup existentes hoje na Internet para o fim de agilizar e automatizar esse importante e muitas vezes esquecido item de Segurança da Informação. Mas poucos se preocupam em como esses dados serão enviados, podendo criar mais problemas do que solução.

[ Hits: 113.068 ]

Por: Carlos Vinícius Braga dos Santos em 29/05/2007 | Blog: http://slaypher.wordpress.com


Configurando servidor SSH



Vamos agora configurar o nosso servidor SSH afim de obter uma melhor segurança e entender como funciona alguns dos principais parâmetros que definimos no arquivo de configuração.

Edite o arquivo /etc/ssh/sshd_config e defina o seu conteúdo conforme abaixo:

# Define a porta que será usada na conexão
Port 2222

# Altera o intervalo em segundos para gerar uma nova chave criptográfica
# afim de manter a segurança caso a chave seja revelada durante
# uma conexão ssh, e muito importante manter essa opção
KeyRegenerationInterval 1800

# Valor em bits da criptografia
ServerKeyBits 768

# Sistema de logs que são gerados
SyslogFacility AUTH
LogLevel INFO

# Usuários permitidos a usar o ssh e claro, bloqueando acesso root
AllowUsers mestre pequenogrilo
PermitRootLogin no

# Ignora conexões do tipo rhosts, afim de melhorar a segurança
RhostsRSAAuthentication no
IgnoreRhosts yes

# Exige autenticação
PasswordAuthentication yes
PermitEmptyPasswords no

# Define o sistema de ftp criptografado, sftp
Subsystem       sftp    /usr/libexec/sftp-server

Agora reinicie o serviço SSHD, caso não esteja iniciado, faça o seguinte:

# chmod 700 /etc/rc.d/rc.sshd
# /etc/rc.d/rc.sshd restart


Com isso iniciamos o nosso servidor SSH e vale lembrar que ele não está rodando na porta 22 e sim na 2222, afim de melhorar um pouco a segurança, e embora seja uma porta boba no exemplo, seria interessante depois alterar pra uma porta ainda mais alta.

O principal motivo para isso é evitar PostScan e levantamento de informações, pois são poucos os que se preocupam em passar scan em portas altas, e mesmo que o façam, se não pensarem direitinho, vão passar 200 dias em um PortScan inútil até chegar em uma porta qualquer sem a menor idéia do que está ou não rodando ali.

Mas ainda não terminamos, vamos criar 2 usuários para conectar ao SSH, 1 deles terá acesso shell, já o outro não, pois esse será usado apenas para gerar os nossos backup, ou você gosta de sair distribuindo acesso shell à sua máquina assim sem mais nem menos? Afinal, esse foi um dos problemas que listamos no início da leitura não foi? Vamos então começar a solucioná-lo.

Para criar os usuários, basta:

# mkdir -p /home/mestre/.ssh
# mkdir -p /home/pequenogrilo/.ssh


Com isso criamos os diretórios e já um subdiretório que no futuro vamos usar.

Agora criemos os grupos e usuários:

# groupadd mestre
# useradd mestre -s /bin/bash -d /home/mestre -g mestre
# groupadd pequenogrilo
# useradd pequenogrilo -s /bin/bash -d /home/pequenogrilo -g pequenogrilo


Damos agora as permissões corretas para cada um deles:

# chmod -R 700 /home/mestre
# chmod -R 700 /home/pequenogrilo
# chown -R mestre.mestre /home/mestre
# chown -R pequenogrilo.pequenogrilo /home/pequenogrilo


Defina uma senha para cada usuário:

# passwd mestre
# passwd pequenogrilo


Mas espera aí!? Você disse que não iria permitir acesso shell a um dos usuários, então porque você deixou o shell padrão dele como sendo "/bin/bash"?

E eu lhe digo, calma pequeno grilo, tudo a seu tempo.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Configurando servidor SSH
   3. O shell restrito chamado RSSH
   4. Criando jaula SSH de segurança (Jail)
   5. A hora da verdade! O backup
   6. Considerações finais
Outros artigos deste autor

Utilizando atributos em partições ReiserFS

Você sabe o que é INODE?

Traduzir dicas e mensagens do login

Leitura recomendada

Protegendo seu servidor de e-mail Postfix

Vault: SSH com OneTimePassword

Recuperar a senha de root iniciando através do init=/bin/bash e alterando o arquivo /etc/shadow

Configurando um servidor Freeradius + openLDAP

Chroot + Bind sem stress

  
Comentários
[1] Comentário enviado por mbsalgueiro em 29/05/2007 - 10:24h

Cara parabens pelo artigo! Gostei d+ q vou comecar a usa-lo no servidor aqui q dou suporte! =)
So me tira uma duvida eu quero aumentar o tamanho do bk eu mudo essas duas linhas neh?

if [ $(du BKP_`basename $i`_`date +%Y_D%d_M%m`.tar.gz | cut -f1) -gt 10000 ];

if [ $(du BKP_`basename $i`_`date +%Y_D%d_M%m`.tar.gz | cut -f1) -le 10000 ];

e retiro essa pq ela eh p quebrar se o bk for maior de 10Mb

split -b 10m BKP_`basename $i`_`date +%Y_D%d_M%m`.tar.gz BKP_`basename $i`_`date +%Y_D%d_M%m`.tar.gz.

vlww pela att!
abraco

[2] Comentário enviado por slaypher em 29/05/2007 - 23:30h

Olá,

Desculpe a demora para responder, e espero que o artigo junto com o script venha a ser muito útil para você.

Mas respondendo sua questão, você pode também alterar apenas os valores, caso queira um volume maior na quebra, por exemplo 50MB, basta alterar os valores para a sua necessidade ou comentar a parte da quebra dos pacotes.

[]'s

[3] Comentário enviado por cilmar_oliveira em 07/02/2008 - 22:45h

Muito útil....bom mesmo...
valew

[4] Comentário enviado por Maielo em 11/02/2008 - 17:25h

Parabéns pelo artigo, ajudou muito.


Vlw =]]

[5] Comentário enviado por marujo em 19/01/2009 - 11:24h

Irmãozinho parabéns, está muito bem elaborado e explicado...

[6] Comentário enviado por femars em 05/01/2010 - 10:38h

Mto bom, parabens!

[7] Comentário enviado por ls_ketzer em 24/03/2010 - 15:30h

Muito bom mesmo, meus parabens!!!

Feitas as devidas adaptações ta funcionando beleza...

[8] Comentário enviado por paulopmt1 em 26/06/2013 - 11:36h

Olá amigo,
este script faz verificação da data do arquivo antes de enviar (só envia se o arquivo de origem foi modificado)?

Parabéns pelo artigo!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts