Gå til innhold

[Løst] Hjemmeserver med kryptert backup til naboen...


Labbtus

Anbefalte innlegg

Hei,

Jeg og en nabo har startet et lite hjemmeserver prosjekt, men vi er begge ny ift Linux, og har dermed noen utfordringer vi trenger hjelp til. Har konferert litt med en ekspert som mener dette er gjennomførbart, men mine linux-ferdigheter strekker nok ikke til her...

 

Har nå satt opp serveren med Fedora 14 og har installert Amahi som server løsning. Fungerer utmerket. :-)

Har videre fått VNC til å fungere; og også VPN (da ikke testet ordentlig enda :-))

Vi har kjøpt 5 harddisker hver, hvor en går til systemet, tre er satt opp i RAID 5, mens den siste er foreløpig montert for å legge over alle filer fra RAID (kryptert), deretter er planen å ta denne disken over til naboen og slik at det bare er behov for å sync'e oppdateringer og nye filer over nettet. (Sparer nettet mellom oss første gang :-))

 

Og da begynner spørsmålene :-)

Jeg har lest litt på nett, og bl.a. funnet denne linken (link). Dette er vel strengt tatt akkurat det jeg ønsker å gjøre.

 

Så derfor gitt at jeg egentlig er ubrukelig med Fedora; noen som kan hjelpe meg videre?

 

Status:

- 2 stk pc'er satt opp med Fedora 14 og Amahi på to forskjellige nettverk.

- Siste disk montert som /backup

 

Dette ønsker jeg å gjøre:

 

  • Kopiere filer fra en folder i RAID til en kryptert folder på den siste harddisken (/backup)
  • Deretter vil vi bytte disker
  • Sette opp brukere på hverandres maskiner??

Deretter sette opp et script som (hvilket språk og program skal jeg evt lese med opp på?):

  • synkroniserer en gitt folder på mitt RAID til disken jeg har flyttet over til naboen hver natt.(rsync?, sshfs?, encfs?) (Amahi har som kjent en innebygget VPN-løsning. Er det verdt å benytte denne, eller evt å sette opp via sshfs??)
  • gjerne sende en mail dersom det blir probelmer med sync; (og evt en ukentlig status ift sync; mulig dette er overkill :-) )

 

Er dette gjennomførbart for en "newbee"? Er det noen som har noen tips ift hvordan jeg kan sette dette opp? :-)

Lenke til kommentar
Videoannonse
Annonse

Jeg ville sette spørsmålstegnet om krav at filsystemkopien er kryptert. Det gjør alt mer tungvindt, og dersom noe går galt er det betydelig vanskeligere å være sikkert på at du har alt i orden og får alle data tilbake. Har du noe som er virkelige hemmelig, er det bedre å lagre den på en USB minnepinne, eller i en egen kryptert fil på disken din (som du da kan kopiere "ukryptert").

 

Er ting ikke kryptert, er det så enkelt som en "rsync" for å holde kopiene oppdatert (over ssh eller vpn om du vil). Jeg anbefale å ta "snapshots" med rsync eller "cp -al", for å hjelpe å beskytte mot brukerfeil i tillegg til hardware feil.

 

Hvis du virkelig vil holde alt kryptert, en enkel løsning kan være å montere en remote disk som iSCSI disk og bruke raid1 (med "write-mostly" til remote disken), eller "distributed block device" som gjør noe lignende - gitt at dere har en nokså raskt nettverkforbindelse.

Lenke til kommentar

Jada, det er gjennomførbart. Dersom naboen ikke skal se hva som ligger der er kryptering en grei løsning. samtidig ønsker du gjerne å slippe å ha dobbellagring, og da kan sshfs være en trygg og grei løsning. Rsync er fin til å synkronisere, men en del foretrekker rdiff-backup. Alt ettersom behov.

 

Du vil trenge å installere ssh, sshfs, rsync og encfs i begge ender, fra terminal:

sudo yum install ssh sshfs rsync encfs

Du trenger å partisjonere, formatere og montere back-up disken på hver server, vet du hvordan det gjøres?

Lenke til kommentar

Jada, det er gjennomførbart. Dersom naboen ikke skal se hva som ligger der er kryptering en grei løsning. samtidig ønsker du gjerne å slippe å ha dobbellagring, og da kan sshfs være en trygg og grei løsning. Rsync er fin til å synkronisere, men en del foretrekker rdiff-backup. Alt ettersom behov.

 

Du vil trenge å installere ssh, sshfs, rsync og encfs i begge ender, fra terminal:

sudo yum install ssh sshfs rsync encfs

Du trenger å partisjonere, formatere og montere back-up disken på hver server, vet du hvordan det gjøres?

 

Hei,

installering av sshfs, rsync og encfs går fint. Når jeg prøver å installere ssh får jeg melding om at "No package ssh available". Kan jeg benytte Openssh? Evt er det en annen måte å innstallere på?

Backup disken er formatert til ext4, og mappet til /backup i fstab.

Ser slik ut:

/dev/sde1 /backup ext4 defaults 1 2

 

RAID 5 ligger mappet slik:

/dev/md0 /var/hda/files ext4 defaults 1 2

 

Planer er da som sagt å kopiere innholder i /var/hda/files til en kryptert versjon i /backup.

Lenke til kommentar

installering av sshfs, rsync og encfs går fint. Når jeg prøver å installere ssh får jeg melding om at "No package ssh available". Kan jeg benytte Openssh?

Sorry, ja den heter openssh i Fedora, bare installer denne.
Backup disken er formatert til ext4, og mappet til /backup i fstab.

Ser slik ut:

/dev/sde1 /backup ext4 defaults 1 2

 

RAID 5 ligger mappet slik:

/dev/md0 /var/hda/files ext4 defaults 1 2

 

Planer er da som sagt å kopiere innholder i /var/hda/files til en kryptert versjon i /backup.

Supert, da er jo alt klart. Da går det akkurat slik Johndoe skisserte (klipp og lim inn i terminal, og si ifra hvis du får feilmeldinger, kan godt hende vi må omgå noen rettigheter):

mkdir /backup/files
mkdir /var/hda/backup
encfs /backup/files /var/hda/backup
rsync -av /var/hda/files/ /var/hda/backup

Når du har gjort dette på begge diskene, kan du bytte de med naboens. Kort fortalt gjør linjene følgende operasjoner:

-lag mappen hvor de krypterete mappene og filene skal ligge

-lag monteringspunkt for den krypterte mappen

-lag /backup/files til en kryptert mappe, og monter den på /var/hda/backup (bare si ja takk til standardvalgene her)

-synkroniser filene mellom /var/hda/files og /backup/files i arkiv modus (dvs. alle rettigheter bevart og alle undermapper inkludert) og verbose modus (dvs. fortell hva som skjer underveis, typisk listes filer opp når de kopieres).

 

Før du bytter om diskene kan det være greit å sjekke at alt har gått greit. Eksempelvis ta en reboot av maskinen, før du tar reboot er det god skikk å avmontere det krytperte filsystemet:

fusermount -u /var/hda/backup

Når du har bootet opp igjen, sjekk at du har masse krypterte greier i /backup/files. Sjekk at /var/hda/backup er tom, så kan du montere igjen med:

encfs /backup/files /var/hda/backup

og sjekke at du nå finner igjen komplett back-up i mappen /var/hda/backup.

 

Da er det bare å bytte disker med naboen (som også nå har kopiert kryptert kopi av sine greier på den andre disken. Dere trenger brukere på hverandres maskiner for å kunne få tilgang over ssh:

sudo adduser [i]brukernavn[/i]

For å hindre hverandre lesetilgang kan du kryssjekke av hjemmemappe og /var/hda/files ikke gir den nye brukeren lese, skrive eller execute rettigheter. Eksemeplvis slik:

chmod 770 /home/labbtus
chmod 770 /var/hda/files

Kryssjekk gjerne at dere nå ikke kan lese hverandres data når dere logger inn på den andres system.

 

Nå er diskene byttet, og det er på tide å nå hverandre over the-big-bad-internet. Er dere på samme VPN? Hvis ikke trenger du å forwarde en port til serveren. Hvis ikke trenger du å forwarde en port for ssh-trafikk fra internett og inn til Amahi serverne. Standard port for ssh er 22, men for å unngå uønsket trafikk (dvs. roboter som forsøker seg på brute-forcing av passord) kan det være greit å bruke en annen port. Vet du hvordan du får forwardet porter, eller har du felles VPN med naboen?

 

Hva med å bruke Crashplan sin ferdige, krypterte løsning?

Jeg ser ikke mye som er ferdig med den løsningen. Det eneste jeg ser der er en døgnflue uten retningssans. Hvorfor bør jeg se nærmere på den løsningen? Endret av Del
  • Liker 1
Lenke til kommentar

installering av sshfs, rsync og encfs går fint. Når jeg prøver å installere ssh får jeg melding om at "No package ssh available". Kan jeg benytte Openssh?

Sorry, ja den heter openssh i Fedora, bare installer denne.
Backup disken er formatert til ext4, og mappet til /backup i fstab.

Ser slik ut:

/dev/sde1 /backup ext4 defaults 1 2

 

RAID 5 ligger mappet slik:

/dev/md0 /var/hda/files ext4 defaults 1 2

 

Planer er da som sagt å kopiere innholder i /var/hda/files til en kryptert versjon i /backup.

Supert, da er jo alt klart. Da går det akkurat slik Johndoe skisserte (klipp og lim inn i terminal, og si ifra hvis du får feilmeldinger, kan godt hende vi må omgå noen rettigheter):

mkdir /backup/files
mkdir /var/hda/backup
encfs /backup/files /var/hda/backup
rsync -av /var/hda/files/ /var/hda/backup

Når du har gjort dette på begge diskene, kan du bytte de med naboens. Kort fortalt gjør linjene følgende operasjoner:

-lag mappen hvor de krypterete mappene og filene skal ligge

-lag monteringspunkt for den krypterte mappen

-lag /backup/files til en kryptert mappe, og monter den på /var/hda/backup (bare si ja takk til standardvalgene her)

-synkroniser filene mellom /var/hda/files og /backup/files i arkiv modus (dvs. alle rettigheter bevart og alle undermapper inkludert) og verbose modus (dvs. fortell hva som skjer underveis, typisk listes filer opp når de kopieres).

 

Før du bytter om diskene kan det være greit å sjekke at alt har gått greit. Eksempelvis ta en reboot av maskinen, før du tar reboot er det god skikk å avmontere det krytperte filsystemet:

fusermount -u /var/hda/backup

Når du har bootet opp igjen, sjekk at du har masse krypterte greier i /backup/files. Sjekk at /var/hda/backup er tom, så kan du montere igjen med:

encfs /backup/files /var/hda/backup

og sjekke at du nå finner igjen komplett back-up i mappen /var/hda/backup.

 

Da er det bare å bytte disker med naboen (som også nå har kopiert kryptert kopi av sine greier på den andre disken. Dere trenger brukere på hverandres maskiner for å kunne få tilgang over ssh:

sudo adduser [i]brukernavn[/i]

For å hindre hverandre lesetilgang kan du kryssjekke av hjemmemappe og /var/hda/files ikke gir den nye brukeren lese, skrive eller execute rettigheter. Eksemeplvis slik:

chmod 770 /home/labbtus
chmod 770 /var/hda/files

Kryssjekk gjerne at dere nå ikke kan lese hverandres data når dere logger inn på den andres system.

 

Nå er diskene byttet, og det er på tide å nå hverandre over the-big-bad-internet. Er dere på samme VPN? Hvis ikke trenger du å forwarde en port til serveren. Hvis ikke trenger du å forwarde en port for ssh-trafikk fra internett og inn til Amahi serverne. Standard port for ssh er 22, men for å unngå uønsket trafikk (dvs. roboter som forsøker seg på brute-forcing av passord) kan det være greit å bruke en annen port. Vet du hvordan du får forwardet porter, eller har du felles VPN med naboen?

 

Hva med å bruke Crashplan sin ferdige, krypterte løsning?

Jeg ser ikke mye som er ferdig med den løsningen. Det eneste jeg ser der er en døgnflue uten retningssans. Hvorfor bør jeg se nærmere på den løsningen?

 

Takk så mye for hjelpen så langt.

 

Da er sync startet; og jeg ser det er godt vi får tatt den først runden lokalt for dette tar tid :-)

Nå blir det snart juleselskapeligheter, så det passer bra med at maskinen får jobbe litt.

 

Skal ta resten av oppskriften i morgen, i tillegg til å starte hos naboen :-). Ny rapport kommer i morgen :-)

 

Vi har ikke samme VPN, men Amahi har en innebygget VPN. Denne er vel egentlig for at en skal nå sin egen server, slik at jeg er usikker på om man kan lage flere brukere på denne løsningen, eller om en evt må dele den ene. Mulig det beste er å opprette en kanal vha ssh? direkte i et script, og ikke involvere løsningen i Amahi.

 

Hvilken løsning vil være enklest for å lage et script som kjører regelmessig? Er den noen linker dere kan anbefale ift å lese om kodespråk og evt program?

Lenke til kommentar

Skal ta resten av oppskriften i morgen, i tillegg til å starte hos naboen :-). Ny rapport kommer i morgen :-)

Høres bra ut :)
Vi har ikke samme VPN, men Amahi har en innebygget VPN. Denne er vel egentlig for at en skal nå sin egen server, slik at jeg er usikker på om man kan lage flere brukere på denne løsningen, eller om en evt må dele den ene. Mulig det beste er å opprette en kanal vha ssh?
Ja, alt du trenger er å forwarde en eller annen port fra internet til port 22 på filserver. Bare rop ut om du ikke har forwardet porter før, det kan være litt knotete, men absolutt verdt å lære.
Hvilken løsning vil være enklest for å lage et script som kjører regelmessig? Er den noen linker dere kan anbefale ift å lese om kodespråk og evt program?
Det finnes forsåvidt flere, men vi gamle gutta sverger til cron. Det finnes flere brukervennlige progammer for å sette opp cron. Det er egentlig ikke verre enn å legge inn når en kommando skal kjøres (typisk rsync), og hvilken kommando:

 

http://en.wikipedia.org/wiki/Cron

Lenke til kommentar

Hei, og takk for all hjelp så langt. Under følger en liten status fra prosjektet.

 

Nå er min disk ferdig, fylt med krypterte data. Porten er åpnet og alt er klart for neste steg; sync over the-big-bad internet. :-)

 

Hos naboen settes hans RAID opp nå, skal formateres i natt, og er så klart for resten av oppsettet i løpet av morgendagen. Og så bytte av disker; forhåpentligvis i morgen.

 

Brukere hos hverandre er/vil bli opprettet.

 

Så; da trenger jeg å sette opp en kanal vha SSH mot naboen? Har lest gjennom manualen til ssh, og jeg lurer på hvilken ssh protocol bør en benytte? Kan jeg lage en "key" på backup-disken som jeg skal ta til naboen? Og evt kopiere denne over på min bruker hos han? Eller er det en mer elegant måte å gjøre dette på?

 

Er det da slik at når en har opprettet sikker kanal med ssh, så vil en benytte sshfs til å montere den "ekstern" disken hos naboen som en intern disk for så å kjøre rsync?

 

Er det best å teste dette i terminalvindu, før en begynner å tester med crontab?

Lenke til kommentar

Om du bare skal bruke rsync må du speile de krypterte dataene hos deg, altså det krever enda en disk.

 

Grunnen er at det krypterte filsystemet ikke kan monteres på den eksterne serveren, så ukrypterte filer kan ikke rsync-es direkte til det systemet. SSHFS kan byttes ut med NFS over VPN eller andre måter å montere eksterne filsystemer lokalt, men det viktige er at det monteres lokalt og at det rsync-es til det lokalmonterte (dekrypterte) filsystemet.

Lenke til kommentar

Så; da trenger jeg å sette opp en kanal vha SSH mot naboen?

Nei, når openssh er installert kan du koble deg opp via ssh. Du kan gjerne sjekke lokalt før du prøver å nå servere over Internet. Du finner alt du trenger å vite via signaturen min. Har du lest denne:

http://wiki.diskusjon.no/index.php/Guide:%28K%29Ubuntu_server_howto/Hjemmeserver#ssh_-_installasjon_og_oppsett

montering med sshfs finner du litt lenger ned:

http://wiki.diskusjon.no/index.php/Guide:%28K%29Ubuntu_server_howto/Hjemmeserver#sshfs_-_den_beste_m.C3.A5ten_.C3.A5_dele_mapper_p.C3.A5

 

Å generere nøkler er en god ide, da slipper dere passordene hos hverandre.

Er det best å teste dette i terminalvindu, før en begynner å tester med crontab?
Ja, da vet du hele veien at alt er som det skal. Det gjør feilsøking mye enklere om vi skulle ha glemt noe. Gjerne test ssh og sshfs lokalt før du tar det over til naboen også.
Lenke til kommentar

Fikk litt problmener med RAID oppsettet hos naboen, derfor har dette tatt litt tid. Vi avbrøt midt i oppsettet av RAID5 (etter denne oppskriften - link) med en omstart, og klarte ikke å komme videre etterpå. Endte med en full reinstallasjon av Fedora, som heller ikke hjalp. Til slutt fant vi løsningen ved å legge "nodmraid" som kernel parameter inn i /boot/grub/grub.conf filen. Fikk da, etter en omstart kjørt konfigurering av raid etter oppskriften i linken over.

 

Nå er vi igang med å teste sshfs og her møter vi selvsagt også noen utfordringer. :)

Portene er forøvrig forwardet i routeren til serverens IP-adresse.

Vi har laget en rsa key ihht til Dels oppskrift, link, og lagt innholdet i filen inn i filen

/home/myuser/.ssh/authorized_keys

på hverandres maskiner. Har forsøk å kjøre følgende kommando:

sshfs -o sshfs_debug,IdentityFile=/home/myuser/.ssh/authorized_keys [email protected]:/home/myuser/backup /var/hda/backup -p xxx

Og før følgende tilbakemelding:

SSHFS version 2.3

read: Connection reset by peer

 

Har sett litt i filene som ligger i /etc/ssh:

-rw-------. 1 root root 125811 Nov 24 2010 moduli

-rw-r--r--. 1 root root 2104 Nov 24 2010 ssh_config

-rw-------. 1 root root 3761 Jan 1 15:31 sshd_config

-rw-------. 1 root root 668 Dec 19 23:27 ssh_host_dsa_key

-rw-r--r--. 1 root root 590 Dec 19 23:27 ssh_host_dsa_key.pub

-rw-------. 1 root root 965 Dec 19 23:27 ssh_host_key

-rw-r--r--. 1 root root 630 Dec 19 23:27 ssh_host_key.pub

-rw-------. 1 root root 1679 Dec 19 23:27 ssh_host_rsa_key

-rw-r--r--. 1 root root 382 Dec 19 23:27 ssh_host_rsa_key.pub

 

Inne i sshd_config har jeg fjernet kommenteringen på disse linjene:

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

 

Får fremdeles samme feilmld.

 

Må det samme evt gjøres i ssh_config ift RSA?

Må en der også ta bort kommentartegnet på denne linjen #Port 22, eller vil kommandoen med -p xxx overstyre portnummer den bruker hos naboen?

 

Noen som umiddelbart ser hva som er feil her? Eller som har tips til hvordan vi kan komme videre med prosjektet?

 

Edit:

Får heller ikke koblet opp med ssh:

ssh -o IdentityFile=/home/myuser/.ssh/authorized_keys [email protected] -p xxx

Får da følgende feilmld:

ssh: connect to host nabo.yourhda.com port xxx: Connection refused

Endret av Labbtus
Lenke til kommentar

Nettopp derfor er det viktig å sjekke underveis. Før du sjekker mellom deg og naboen, sjekk på lokalt nett. Anbefaler omtrent denne sjekk-rekkefølgen:

-funker ssh fra maskin på lokalt nett?

-funker log-in med genererte nøkler (altså ssh til server uten inntasting av passord) fra lokal maskin?

-når dette er gjort kan du sjekke sshfs

-så kan du sjekke mellom deg og naboen med ssh, får du til det så funker sshfs også.

Lenke til kommentar

Da var ssh testet, og fungerer lokalt. Klarer enda ikke å nå serverne over internettet.

Bruker følgende kode:

ssh [email protected] -p xxx

Har også testet:

ssh [email protected]:/home/myuser/ -p xxx

Og alle varianter av denne (xyz er nabo IP):

ssh [email protected]:/home/myuser/ -p xxx

 

Får feilmld som sier: Connection refused.

 

Samme settinger og id_sra filer, og nøkkel i authorized_keys.

Har definert serverne som hosts i /etc/hosts

 

Noen som kan dele sin innsikt ift hva som kan mangle nå? Regner med det er noe ift oppsettet i noen config-filer..

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...