Melhor forma de criar um servidor para backups/acesso a dados remoto

dragao-azul

I fold therefore I AM
Boas,

Irei passar uns meses no estrangeiro (erasmus) e queria deixar um PC em casa onde eu pudesse aceder para fazer backups e tirar ficheiros que necessite.

Já tenho um PC com linux onde normalmente acedo por ssh e sftp, com ligações que apenas aceitam certificados para autenticação, isto parece-me ser a forma mais segura de ter um computador em casa onde posso aceder, mas a maioria dos programas de backup não suporta sftp e quando aceitam parece-me que não se dão muito bem com a autenticação que uso com certificados. EDIT: a autenticação que uso são chaves RSA, falei em certificados mas não sei se é a mesma coisa, de qualquer forma é irrelevante para a dúvida.

Vinha por isso perguntar qual acham ser a melhor solução para backups remotos, a melhor hipótese que vejo é um servidor FTP com autenticação com SSL, será uma boa hipótese? Caso seja penso que este tutorial me explica bem como instalar as coisas, certo?

Têm alguma sugestão melhor que me esteja a escapar? Qual é o método que usam normalmente?

Obrigado!
 
Última edição:
Queria uma forma automática de fazer backups e que preferencialmente fosse um pouco inteligente (não copiar ficheiros que não foram modificados, por exemplo, ao estilo time machine), pelo que o scp implicaria estar a fazer eu um script para isso penso.

O Rsnapshot já me parece uma melhor hipótese, mas há um detalhe que me esqueci de referir: embora eu use um mac (que pelo que percebi funciona com o Rsnapshot), gostava que também fosse possível fazer backups facilmente com windows para poder ter outros computadores de familiares a fazer backup para o mesmo sitio.

Daí ter referido programas de backup, para facilitar o máximo a vida a quem fizer mais backups.

A questão principal aqui é se acham um servidor de ftp protegido com SSL uma forma viável de fazer backups sabendo que estará sempre ligado e que não queria que um "anormal qualquer" que tropece no pc pela internet consiga entrar nele e estragar qq coisa.

De qualquer forma para mim essa alternativa do
Rsnapshot parece bastante interessante, terei de ler o artigo com mais cuidado.

Obrigado!


EDIT: uma dúvida do Rsnapshot - aparentemente o programa fica instalado no servidor, seria possível instalar o programa no cliente e copiar os dados para um servidor remoto? seria tão simples como em vez de ter:

Código:
[/COLOR][COLOR=#E9E9E9]backup	[email protected]:/root/	cliente/[/COLOR][COLOR=#EDEDED]
passar a ter:
Código:
[/COLOR][COLOR=#E9E9E9]backup cliente/ [/COLOR][COLOR=#E9E9E9][email protected]:/root/[/COLOR][COLOR=#EDEDED]

?

Obrigado!
 
Última edição:
Nunca experimentei, mas pelo que leio, o rsnapshot encontra-se no cygwin para windows.
Em windows, prefiro usar o apt-cyg, pois usa-se o apt para instalar pacotes *nix em Windows. Resolve as dependências, etc etc.
Não tenho agora uma máquina Windows para testar a instalação do rsnapshot.

Em Mac, tem que se usar o brew para instalar o rsnapshot. É relativamente simples. O maior problema é em Mac não se ter o cron e ter que se fazer o schedule com a ferramenta nativa (que não me recordo o nome) ou com o iCal.

Ele é inteligente ao não copiar ficheiros não modificados. Cria hardlinks para backups anteriores.

Em relação a usar FTP com SSL, pergunto-te para quê, quando tens o sftp e pelo que percebo, já o usas.
Não estou a ver razão para usar FTP/SSL quando já tens o sftp ou mesmo usar o scp.

Quanto a mais programas de backups, o nfk na altura falou no rdiff-backup. Não estou a ver assim mais programas.
 
EDIT: uma dúvida do Rsnapshot - aparentemente o programa fica instalado no servidor, seria possível instalar o programa no cliente e copiar os dados para um servidor remoto? seria tão simples como em vez de ter:

Código:
[/COLOR][COLOR=#E9E9E9]backup	[email protected]:/root/	cliente/[/COLOR][COLOR=#EDEDED]
passar a ter:
Código:
[/COLOR][COLOR=#E9E9E9]backup cliente/ [/COLOR][COLOR=#E9E9E9][email protected]:/root/[/COLOR][COLOR=#EDEDED]

?

Obrigado![/COLOR]

Na documentação, não vejo qualquer exemplo em que se troque os dois campos.
Se ele aceitar, no caso que colocas, ele vai criar backups incrementais da pasta /Cliente em /<directoria de backup>/[email protected]:/root/.

Penso que não é isso que queres.
Mas porque não, instalar o rsnapshot (parte de servidor) no cliente e ter lá o cron a fazer backups da máquina remota? É isto que pretendes?
 
A ideia do FTP era para ser compatível com outros programas mais fáceis de usar para quem não perceber nada de linux, mas de facto se o Rsnapshot funciona em windows posso deixa-lo configurado e pronto.

Só duas questões: uma está no edit do post anterior que talvez não tenhas visto, é se posso instalar o programa no cliente e não no servidor (penso que é mais prático para agendamentos já que o servidor está sempre ligado mas o cliente não necessariamente). Isto implica ter o programa em vários PC's, mas penso que não há problema se a directoria dos backups for diferente.

A outra é se me sabes dizer se dá para especificar um tamanho máximo para backups. Ainda não investiguei bem como é que isto funciona, mas com o time machine ele faz os backups horários, diários, etc e quando chega ao limite de espaço começa a apagar os mensais antigos, sabes dizer-me se o Rsnapshot faz o mesmo?

Thz

EDIT: ok, respondeste depois a uma das dúvidas, vou explicar melhor:

Quero ter um servidor (sempre ligado) e outros computadores (clientes) que são portateis ou desktops mas que nem sempre estão ligados. Queria que fossem os clientes a gerir quando fazem os backups e não o servidor. Pode ser útil forçar um backup caso já estejam em atraso à muito tempo por exemplo.

O que eu queria era exactamente o que entendeste, ou seja, pegar na minha directoria fotos, por exemplo, que está no meu portátil e colocar no servidor que tenho em casa.

Alias pelo que percebo, se o programa estiver no servidor todos os clientes têm de ter ssh instalado e tem de ser possível aceder-lhes, a ideia seria ao contrário, só o servidor ter ssh.

Estarei a perceber algo mal?
 
Última edição:
A ideia do FTP era para ser compatível com outros programas mais fáceis de usar para quem não perceber nada de linux, mas de facto se o Rsnapshot funciona em windows posso deixa-lo configurado e pronto.

Deixa ver se percebo melhor. As máquinas clientes são Windows e o servidor é Linux.
Queres fazer backup das máquinas Windows para o servidor Linux.

Na verdade, o que procuras é uma solução de um programa Windows que faça backups da máquina Windows para Linux, sendo que o interface mais simples, seja ftp. Estou correcto?

Se sim, já viste estes dois programas para windows?
http://www.cobiansoft.com/index.htm
http://www.genie9.com/free_products/free_timeline.aspx

A tua dificuldade seria instalar o servidor de ftp? Se sim, aquele link que colocaste parece-me estar bom. Criar chroots isolados e SSL parece-me suficiente (e andar sempre em cima dos patchs do servidor).

A outra é se me sabes dizer se dá para especificar um tamanho máximo para backups. Ainda não investiguei bem como é que isto funciona, mas com o time machine ele faz os backups horários, diários, etc e quando chega ao limite de espaço começa a apagar os mensais antigos, sabes dizer-me se o Rsnapshot faz o mesmo?

Tenho 99% de certeza que não faz isso.
Podes forçar com quotas de filesystem, mas o comportamento dele não é bom quando chega ao limite. Vai apagando os backups anteriores, mas se o backup actual chegar ao limite, ele para.

Thz

EDIT: ok, respondeste depois a uma das dúvidas, vou explicar melhor:

Quero ter um servidor (sempre ligado) e outros computadores (clientes) que são portateis ou desktops mas que nem sempre estão ligados. Queria que fossem os clientes a gerir quando fazem os backups e não o servidor. Pode ser útil forçar um backup caso já estejam em atraso à muito tempo por exemplo.

O que eu queria era exactamente o que entendeste, ou seja, pegar na minha directoria fotos, por exemplo, que está no meu portátil e colocar no servidor que tenho em casa.

Alias pelo que percebo, se o programa estiver no servidor todos os clientes têm de ter ssh instalado e tem de ser possível aceder-lhes, a ideia seria ao contrário, só o servidor ter ssh.

Estarei a perceber algo mal?

Confirma se todas as máquinas clientes que usas são Windows. Se sim, vê aqueles dois links que coloquei e a solução de um servidor ftp pode ser boa.
 
Sim, a ideia é essa, ter vários clientes (windows e mac) e conseguir copiar coisas para um servidor linux. Programas de backup já me tinham indicado alguns, o cobian é comum falarem dele o timeline e o duplicati são alternativas que também posso investigar.

O único problema é de facto ter uma boa forma dos clientes com windows acederem ao servidor para guardarem lá os seus backups. O que me parece mais fácil é ftp por pouca compatibilidade do windows com ssh.

No entanto como mantenho sempre o ssh posso ter o Rsnapshot também para fazer backup do Mac, mas neste caso gostaria que fosse o Mac a controlar as opções de backup ligando-se ao servidor quando fosse necessário e "depositando" lá as coisas. Até porque consigo fixar o IP do servidor com um serviço tipo no-ip, mas é mais complicado o servidor aceder aos clientes já que o IP muda.
 
Eu originalmente não tinha percebido bem o que querias e por isso falei no rsnapshot.

Tenho ideia que o Time machine dá para colocar a funcionar com uma share AFP em Linux. Não sei qual o processo que se usa, mas penso que dá.

Porque não continuar a usar o Time machine em cima de um tunel ssh para o servidor remoto?

O Duplicati parece-me muito interessante. Acho que é de experimentar.
 
Sim, o time machine dá para configurar "facilmente" um servidor AFP (ainda briguei mas cheguei a ter isso a funcionar, fazer de novo já não custa tanto) no linux que ele usa numa rede local. Não me lembrei dessa opção, mas sim, é possível usar com um tunel ssh suponho, basta meter um script nos macs que quiser usar para se ligarem ao servidor por ssh quando iniciam.

Neste caso sabes-me dizer se é possível fazer a sessão não expirar? Ou seja os computadores ligam-se e ficam ligados com uma sessão em background até serem desligados ou é uma má ideia?

O time machine até tem a vantagem de eu conseguir por um limite no espaço no servidor e ele limita também o tamanho dos backups.
Tenho interesse nesta opção porque como vou querer ter backups de 3 ou 4 PC's não quero que um dos pc's ocupe o espaço todo.

nfk, quando ao Duplicati sabes-me dizer se ele funciona por ssh com autenticação via chave RSA? Parece-me que ele tem uma opção de deixar um programa externo tratar da ligação a julgar por esta página, mas é uma coisa que também facilmente experimento quando estiver a configurar tudo.

Obrigado!
 
Última edição:
Sim, o time machine dá para configurar "facilmente" um servidor AFP (ainda briguei mas cheguei a ter isso a funcionar, fazer de novo já não custa tanto) no linux que ele usa numa rede local. Não me lembrei dessa opção, mas sim, é possível usar com um tunel ssh suponho, basta meter um script nos macs que quiser usar para se ligarem ao servidor por ssh quando iniciam.

Neste caso sabes-me dizer se é possível fazer a sessão não expirar? Ou seja os computadores ligam-se e ficam ligados com uma sessão em background até serem desligados ou é uma má ideia?

O time machine até tem a vantagem de eu conseguir por um limite no espaço no servidor e ele limita também o tamanho dos backups.
Tenho interesse nesta opção porque como vou querer ter backups de 3 ou 4 PC's não quero que um dos pc's ocupe o espaço todo.

Em vez de um tunel ssh, porque não crias um servidor de vpn com o openvpn ou outra coisa qualquer.
Assim é como se tivesses o servidor na rede local. Não tens que andar a iniciar sessões de ssh e a redirecionar portas.

Colocas a vpn a não fazer de gateway, se não passa o tráfego todo por ela. Assim, só o trafego para o servidor é que vai pela vpn.

Há uns tempos até me pediram para fazer um script de apple script para ligar à vpn caso a máquina não tivesse ligada. Pode ser que te seja útil:

Código:
tell application "System Events"
	tell current location of network preferences
		set VPNservice to service "Nome da ligação vpn"
		if exists VPNservice then connect VPNservice
	end tell
end tell

Acho que seria o melhor para ti. Podias aceder à máquina por afp, smb, etc e colocar as aplicações de backup a correr como se fosse uma rede local.

No Windows tens a opção de reconnect.
 
VPN seria uma boa opção, e o mais simples, sim. Mas com VPN's nunca mexi e preciso de algumas indicações adicionais...

Nesse caso este tutorial deve ser suficiente, não? Penso que não tenho necessidade do modo bridge pois só me quero ligar a um PC, mas quanto à questão do gateway é uma opção do servidor ou do cliente?

Se não passa o tráfego todo como lhe digo que portas vão para a VPN?

É preciso instalar software adicional no mac e no windows para se ligar ao servidor ou os sistemas operativos de origem conseguem-se ligar ao servidor OpenVPN? Já me liguei tanto com mac como com windows sem mais software à VPN da universidade, mas não sei se é a mesma coisa...

Obrigado!
 
Esse tutorial parece-me bom. Não tenho muita experiência com o Openvpn. Pode ser que alguém te ajude melhor.

Penso que não precisas do modo bridge, mas espera que alguém diga mais sobre isso.

A questão da gateway é normalmente do lado cliente. Normalmente a opção está meia escondida. Se precisares de ajuda, coloca aqui no fórum, mas uma busca no google ou google images, dá para perceber onde se tira a opção.

Não tens que dizer que portas usas. Por exemplo, a tua máquina cliente fica com o ip 10.8.0.2 e a máquina servidor, onde está o servidor openvpn fica no 10.8.0.1. Quando te ligas à vpn ganhas uma rota em que para aceders 10.8.0.1 passas pela vpn. O que não queres é que todo o trafego passe pelo 10.8.0.1 (a tal opção de não ser gateway).

Para o openvpn precisas de um cliente Windows e Mac, que está nessa página. Se criares uma vpn pptp não precisas de cliente, mas pptp não é muito seguro.
L2tp é suportado também em Windows. Não sei como é em Mac. Tens também ipsec.

Espera que alguém te ajude mais na parte vpn, mas penso que é a melhor solução para ti. Ficas a ver o servidor como se estivesses numa rede local.
 
Ok, obrigado pela ajuda mais uma vez!

Se alguém me souber ajudar na dúvidas de VPN agradeço se não quando implementar isto também volto cá com dúvidas mais específicas.
 
Estive a instalar o OpenVPN (segui a configuração do site do ubuntu), já tenho os certificados no cliente e a ligação dentro da mesma rede parece funcionar, mas queria testar fora para ver se está mesmo tudo ok.

Como segui todas as opções default só queria confirmar que para ter acesso só dá mesmo com os certificados que eu criei (com todas as opções default), ou seja, se o que gera os certificados é um algoritmo que muda consoante o computador para que mais alguém com um certificado default não se consiga ligar.

(Parece-me lógico que não haja 2 iguais mesmo com opções semelhantes, apenas queria confirmar) Já agora apenas com estes certificados é possível a ligação certo? Com uma password (e com a configuração por certificados activa) não dá?
 
Back
Topo