Konfigurera SSH vid "pull" backup

Konfiguration av nätverk, hur man använder Ubuntu som server, och håller sin dator säker
viper
Inlägg: 394
Blev medlem: 22 nov 2009, 16:41
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Ort: Torslanda

Konfigurera SSH vid "pull" backup

Inlägg av viper »

Hej,

Nu har jag gått vilse i ssh-nyckelknippan och alla dessa varianter av "så här gör jag" eller "gör inte så utan så här" på nätet när jag försökt googla fram hur man sätter upp "en remote backup över ssh".

Scenario:
Jag har en server A som kör backup lokalt med rsnapshot.
Server B skall sedan hämta en kopia av lokal backup från server A.

För att detta skall fungera sömlöst måste det till ett utbyte av ssh-nycklar mellan burkarna.

Kan någon hjälpa mig med en enkel förklaring av hur jag får till att en user på server B kan hämta en kopia på backupen på server A:
  • Vem kommer åt vad
  • Vilken nyckel till vem
Tjingeling
Oortodox generalist
1 x 20.04 Desktop, 2 x 18.04 Desktop, 2 x 18.04 Server
Användarvisningsbild
johanre
Serveradmin
Inlägg: 3888
Blev medlem: 22 okt 2006, 09:13
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Malmö

Re: Konfigurera SSH vid "pull" backup

Inlägg av johanre »

Jag har själv inte använt rsnapshot, utan mest rsync och rdiff i diverse sammanhang. Denna sida kan vara värd en titt: https://help.ubuntu.com/community/rsync
viper
Inlägg: 394
Blev medlem: 22 nov 2009, 16:41
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Ort: Torslanda

Re: Konfigurera SSH vid "pull" backup

Inlägg av viper »

Hej igen :-)


Tack för tipset, men det är inte rsync eller rsnapshot som är problemet, utan hur man får det att fungera mellan servrar och servrar. Dvs med SSH.

Jag har ett behov av att få en server att prata med en annan server och hämta dess lokala backup. Jag har som sagt gått vilse i skapandet av nya users och passwords och passphrases och nycklar på löpande band så som det föreslås i lösningarna som tycks finnas i olika trådar i olika forum. Kommunikationen över ssh kräver ju att den kopplas till användare (även om det skulle vara root). Och på så sätt har det blivit oöverblickbart just nu.


Därför dags att slänga allt och bygga från scratch:

För denna kommunikation skapar jag användarna "backup_a" och "backup_a" på server A respektive server B.

För bägge skapar jag rsa-nyckel-par 4096 bitars

För bägge servrarna konfigureras /etc/ssh/sshd_config med:
ssh med port 22xxx (annan än 22)
PubkeyAuthentication yes
RSAAuthentication yes

Server A gör idag kontinuerligt roterande backup lokalt enligt schema i rsnapshot. Finns att hämta för den som vill ha.

Så långt inget konstigt med det hela.


Nu kommer vi till det som ger mig gråa hår.

Server B vill ansluta till Server A och ta en kopia på den lokal backupen. Och det är här som det bara inte vill fungera med nycklar, åtkomster, rättigheter, okända enhetsnamn mm mm.

En väldigt enkel schematisk "to-do-list" för mig att ta tag i skulle hjälpa oerhört. Er i forumet också då jag skulle komma med mer konkreta frågor baserat på en plan.
Oortodox generalist
1 x 20.04 Desktop, 2 x 18.04 Desktop, 2 x 18.04 Server
viper
Inlägg: 394
Blev medlem: 22 nov 2009, 16:41
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Ort: Torslanda

Re: Konfigurera SSH vid "pull" backup

Inlägg av viper »

Nu har jag kört ett par test till och funnit att det enklaste blir nog att jag kompletterar instruktionen för den lokala rsnapshot för server A med en rsync till server B. Server B i sin tur använder sedan denna rsync för att skapa sina remote rsnapshot backups "på annan plats".

Kanske inte det elegantaste och smartaste men det enda sättet jag lyckas komma igenom på.

Ser någon några säkerhetsrisker? Låt höra!

Tack på förhand


EDIT: JAG TROR JAG ÄNTLIGEN HITTAT EN GUIDE SOM TALAR TILL MIG PÅ MITT SPRÅK ::) :P :o
https://wiki.gentoo.org/wiki/Advanced_b ... g_rsnaphot


GLÖM MITT GNÄLL - JAG ÅTERKOMMER MED RAPPORT ;D
Oortodox generalist
1 x 20.04 Desktop, 2 x 18.04 Desktop, 2 x 18.04 Server
viper
Inlägg: 394
Blev medlem: 22 nov 2009, 16:41
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Ort: Torslanda

Re: Konfigurera SSH vid "pull" backup

Inlägg av viper »

Tillbaka igen efter att ha testat ett par guider för hur man får två servrar att kommunicera på så sätt att det går att köra automatisk backup med rsnapshot.

Nu har jag kört igenom guiderna nedan åtminstone 3 (tre) gånger vardera med komplett radering av skapade users och återställning av konfigurationer mellan gångerna.
Inte en enda gång har guiden utmynnat i att den avsedda funktionaliteten skapats.

https://serversuit.com/community/techni ... pshot.html
http://technokracy.net/2011/01/07/root_sudo_rsnapshot/
http://rsnapshot.org/rsnapshot/docs/docbook/rest.html
https://wiki.gentoo.org/wiki/Advanced_b ... rsnapshot/
mfl ...

Det är inte roligt längre och jag börjar misströsta.

Ett sista nödrop : är det någon här på forumet som har erfarenhet av en lösning som fungerar. Då kan jag jobba med den och få hjälp när det inte verkar fungera för mig. Alternativt peka på någon av guiderna som verkar "vettig". För jag kan inte avgöra vilken som är bäst att hålla sig till eller som är troligast att få att fungera.

Eller är det bara att överge planen och gå över till rsync och manuell hantering?
Oortodox generalist
1 x 20.04 Desktop, 2 x 18.04 Desktop, 2 x 18.04 Server
Användarvisningsbild
johanre
Serveradmin
Inlägg: 3888
Blev medlem: 22 okt 2006, 09:13
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Malmö

Re: Konfigurera SSH vid "pull" backup

Inlägg av johanre »

Ursäkta viper, jag har inte hunnit vara så aktiv här på sistone. Men det du har missat är när du har skapat ssh nycklar är det inte /etc/ssh/sshd_config konfigurationen som är det avgörande för att det skall fungera.

Om användare A skall "hämta" filer - lösenordslöst - från användare B på server B, så måste:

* användare A's *publika* ssh nyckel måste ligga med i användare B's ~/.ssh/authorized_users fil.

Fixa med det, så kommer du att komma vidare! :)
viper
Inlägg: 394
Blev medlem: 22 nov 2009, 16:41
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Ort: Torslanda

Re: Konfigurera SSH vid "pull" backup

Inlägg av viper »

OK

Jag gör ett nytt försök att ta ett litet steg framåt och jobbar med att få rsync att fungera. Det är ju det som är kärnan i rsnapshot.

Återkommer strax med ett case.

:)
Oortodox generalist
1 x 20.04 Desktop, 2 x 18.04 Desktop, 2 x 18.04 Server
viper
Inlägg: 394
Blev medlem: 22 nov 2009, 16:41
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Ort: Torslanda

Re: Konfigurera SSH vid "pull" backup

Inlägg av viper »

Hej nu är jag tillbaka med ett "case":

Jag kan logga in på server B från min desktop:

Kod: Markera allt

admin@MINDESKTOP:~$ ssh -p 22222 admin@serverB

Last login: Fri Mar  2 15:50:43 2018 from 192.168.1.101
admin@serverB:~$ 
På både server A och server B har jag skapat särskilda användare tänkta att användas för rsnapshot. Jag döpte dem till "snapshotuser" i bägge fallen.

På server B kan jag inte logga in som snapshotuser:

Kod: Markera allt

admin@serverB:~$ sudo su snaphotuser
[sudo] lösenord för admin: 
No passwd entry for user 'snaphotuser'
Jag kan logga in på server A från min desktop

Kod: Markera allt

admin@MINDSESKTOP:~$ ssh admin@serverA -p 22222

Last login: Fri Mar  2 10:30:27 2018 from 192.168.1.101
admin@serverA:~$
På serverA kan jag logga in som "snapshotuser"

Kod: Markera allt

admin@serverA:~$ sudo su snapshotuser
[sudo] lösenord för admin: 
snapshotuser@serverA:/home/admin$ 
Som snapshotuser på serverA kan jag logga in som snapshotuser på serverB via ssh utan att behöva ange lösenord.

Kod: Markera allt

snapshotuser@serverA:~$ ssh -p 22222 snapshotuser@192.168.1.100 -i /home/snapshotuser/.ssh/id_rsa

Last login: Fri Mar  2 10:50:59 2018 from 192.168.1.108
snapshotuser@serverB:~$ 
Och tittar man i /.ssh/authorized_keys för snapshotuser@serverB hittar man mycket riktigt en nyckel från snapshotuser@serverA:

Kod: Markera allt

admin@serverB:~$ sudo cat /home/snapshotuser/.ssh/authorized_keys
[sudo] lösenord för admin: 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC9
...
...
+eKSap5j15KH14plwFbcPSBWwYz1yHVljHcj6UiiSbvny4nMtmvw== snapshotuser@serverA
Inloggad från serverA över ssh som snapshotuser försöker jag med en rsync från serverB till serverA:

Kod: Markera allt

snapshotuser@serverB:~$ rsync -n -v -Aax -e "ssh -p 22222" /home/snapshotuser/ snapshotuser@192.168.1.108:/home/snapshotuser/test/
Det visar sig att en rsync i denna riktning egentligen kräver att det finns en nyckel från snapshotuser serverB sparad i authorized_keys hos snapshotuser i serverA, (något som hitills inte har berörts i någon av de lästa guiderna - därför en nyckevarning).

Kod: Markera allt

The authenticity of host '[192.168.1.108]:22222 ([192.168.1.108]:22222)' can't be established.
ECDSA key fingerprint is SHA256:ydeBCh9wthIwCdIjqHA8C5BBVCMWbhIx/GOxE04lMmc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.1.108]:22222' (ECDSA) to the list of known hosts.
Ubuntu 16.04.4 LTS
snapshotuser@192.168.1.108's password: 
sending incremental file list
./
.bash_history
.bash_logout
.bashrc
.profile
backuplog
rsync-wrapper.sh
.cache/
.cache/motd.legal-displayed
.ssh/
.ssh/authorized_keys
.ssh/known_hosts

sent 459 bytes  received 54 bytes  6.07 bytes/sec
total size is 6,237  speedup is 12.16 (DRY RUN)
Nu verkar grunden vara på plats och det är dags att ta nästa steg mot att kunna rsynca från serverB till serverA.

Vad är nästa steg mot rsync som cronjob styrt från serverA?
Oortodox generalist
1 x 20.04 Desktop, 2 x 18.04 Desktop, 2 x 18.04 Server
Användarvisningsbild
Nemo
Inlägg: 732
Blev medlem: 16 aug 2010, 19:39
OS: Kubuntu
Utgåva: 18.04 Bionic Beaver LTS

Re: Konfigurera SSH vid "pull" backup

Inlägg av Nemo »

viper skrev:På både server A och server B har jag skapat särskilda användare tänkta att användas för rsnapshot. Jag döpte dem till "snapshotuser" i bägge fallen.

På server B kan jag inte logga in som snapshotuser:

Kod: Markera allt

admin@serverB:~$ sudo su snaphotuser
[sudo] lösenord för admin: 
No passwd entry for user 'snaphotuser'
Verkar som att det fallit bort ett s i användarnamnet
viper
Inlägg: 394
Blev medlem: 22 nov 2009, 16:41
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Ort: Torslanda

Re: Konfigurera SSH vid "pull" backup

Inlägg av viper »

:oops:
Nemo skrev:
viper skrev: På server B kan jag inte logga in som snapshotuser:

Kod: Markera allt

admin@serverB:~$ sudo su snaphotuser
[sudo] lösenord för admin: 
No passwd entry for user 'snaphotuser'
Verkar som att det fallit bort ett s i användarnamnet
Hoppsan, blev lite mycket att hålla reda på. Rätt stavat kan jag som admin logga in på snapshotuser även på server B.

++1 till Nemo. :oops: :oops:

Kod: Markera allt

admin@serverB:~$ sudo su snaphotuser
[sudo] lösenord för admin: 
snapshotuser@serverB:/home/admin$ 
Med rätt läsrättigheter på server B och skrivrättigheter på server A skulle användaren snapshotuser tekniskt kunna utföra själva rsyncen från B till A. Men hur skapar jag och säkrar de root-rättigheter snapshotuser behöver för för åtkomsten till "alla filer" på B och motsvarande för skrivrättigheterna på A så att datan är säker?
Dessutom skall det ske genom pull-förfarande från server A.
Oortodox generalist
1 x 20.04 Desktop, 2 x 18.04 Desktop, 2 x 18.04 Server
Användarvisningsbild
Nemo
Inlägg: 732
Blev medlem: 16 aug 2010, 19:39
OS: Kubuntu
Utgåva: 18.04 Bionic Beaver LTS

Re: Konfigurera SSH vid "pull" backup

Inlägg av Nemo »

viper skrev:Med rätt läsrättigheter på server B och skrivrättigheter på server A skulle användaren snapshotuser tekniskt kunna utföra själva rsyncen från B till A. Men hur skapar jag och säkrar de root-rättigheter snapshotuser behöver för för åtkomsten till "alla filer" på B och motsvarande för skrivrättigheterna på A så att datan är säker?
Hur definierar du "alla filer"? Är det rubbet på hela disken eller är det vissa filer som inte ligger i /home ?

De filer som du vill göra backup av och som ligger under /home borde fungera utifrån det du nu har satt upp.

Blir knepigare om du ska göra backup av filer som root är ägare av genom pull-förfarande från server A. Vet inte om sudo går att använda i detta fall.

Kanske Johan vet mer om detta, för min egen kunskapsnivå inom detta område räcker tyvärr inte till för att ge dig ett vettigt lösningsförslag på ditt problem.
viper
Inlägg: 394
Blev medlem: 22 nov 2009, 16:41
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Ort: Torslanda

Re: Konfigurera SSH vid "pull" backup

Inlägg av viper »

Med "alla filer" avses i princip allt som är avsett att backas upp och som snapshotuser inte är ägare till.

Exempel:
För denna server med MariaDB med Nextcloud innebär ju både att göra mysqldump och ta kopia på /var/www/data etc + övriga data i form av utdelade mappar och filer mm.
Oortodox generalist
1 x 20.04 Desktop, 2 x 18.04 Desktop, 2 x 18.04 Server
Användarvisningsbild
Nemo
Inlägg: 732
Blev medlem: 16 aug 2010, 19:39
OS: Kubuntu
Utgåva: 18.04 Bionic Beaver LTS

Re: Konfigurera SSH vid "pull" backup

Inlägg av Nemo »

viper skrev:Med "alla filer" avses i princip allt som är avsett att backas upp och som snapshotuser inte är ägare till.
Det borde fungera så länge snapshotuser har läsrättigheter till de filer som ska backas upp.

Problemet som jag ser det uppstår när du vill göra backup av filer som snapshotuser inte har behörighet till. Kan tyvärr inte hjälpa dig med den biten, då det är över min egen kunskapsnivå.

Hoppas att det finns andra på detta forum som kan hjälpa dig med den biten.
viper skrev:Exempel:
För denna server med MariaDB med Nextcloud innebär ju både att göra mysqldump och ta kopia på /var/www/data etc + övriga data i form av utdelade mappar och filer mm.
Jag är med på vad du vill göra, men jag saknar kunskapen om hur man gör för att uppnå detta.
viper
Inlägg: 394
Blev medlem: 22 nov 2009, 16:41
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Ort: Torslanda

Re: Konfigurera SSH vid "pull" backup

Inlägg av viper »

Nemo skrev: ... Kan tyvärr inte hjälpa dig med den biten, då det är över min egen kunskapsnivå.
Hoppas att det finns andra på detta forum som kan hjälpa dig med den biten.
Jag är med på vad du vill göra, men jag saknar kunskapen om hur man gör för att uppnå detta.
Jag har insett att detta är något som har lika många lösningar som det finns internet-hjältar därute som har sin lösning på det. Detta sagt utan att vara raljant eller så. Därför finns heller inte ett bra svar för mitt behov.

Hittade detta svar från en Ubuntu-källa, som ganska enkelt och tydligt beskriver utifrån "destination" machine och "source" machine:
https://askubuntu.com/questions/719439/ ... on-machine
Någon som kan något om det som beskrivs får gärna kommentera. Annars sätter jag igång så sakteliga med att följa detta recept.
Oortodox generalist
1 x 20.04 Desktop, 2 x 18.04 Desktop, 2 x 18.04 Server
viper
Inlägg: 394
Blev medlem: 22 nov 2009, 16:41
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Ort: Torslanda

Re: Konfigurera SSH vid "pull" backup

Inlägg av viper »

Hittade detta svar från en Ubuntu-källa, som ganska enkelt och tydligt beskriver utifrån "destination" machine och "source" machine:
https://askubuntu.com/questions/719439/ ... on-machine
Att det kan vara så enkelt!?! ;D

Efter att ha tragglat hundratals olika tweaks beskrivna av serveradministratörer över hela världen utan att fördenskull komma ett dugg närmare lösningen, var det egentligen denna enkla beskrivning jag behövde för att förstå och kunna implementera för mina lokala lekmannabehov.

Uppsättningen:
Cronjob med root på backupserver-sidan anropar en backupanvändare på webservern
Backupanvändaren har sudorättigheter kopplade till rsync (ALL=NOPASSWD: /usr/bin/rsync)
För att detta skall fungera måste backupanvändaren ha backup-rootens publika ssh-nyckel.

Återstår att komplettera ssh nyckeln med "forced command" för att låsa den till backup och inget annat.

Tips eller goda råd för hur man kan tajta till säkerheten mottages gärna!
Oortodox generalist
1 x 20.04 Desktop, 2 x 18.04 Desktop, 2 x 18.04 Server
Skriv svar

Återgå till "Nätverk, säkerhet och servrar"