Backup beskyttelse mod kompromitterede klienter
Hej
Jeg har tænkt mig at bruge duplicity og scp/sftp til backup.
Det fungerer således at hver klient har en bruger på en central server, og uploader til den. Hver af disse brugere har vha. rssh kun scp/sftp-adgang, og vha. et Match directive kun adgang til en backup-mappe på serveren.
I denne backup-mappe er der undermapper for hver klient sat op med de korrekte permissions - dvs. at de forskellige klienter ikke kan læse hinandens filer.
Hvis en klient kompromitteres, kan angriberen dog slette alle de backups klienten har lavet gennem tiden, med mindre der foregår en eller anden form for rotate?
Er der nogen har oplevet lignende overvejelser?
Jeg har tænkt mig at bruge duplicity og scp/sftp til backup.
Det fungerer således at hver klient har en bruger på en central server, og uploader til den. Hver af disse brugere har vha. rssh kun scp/sftp-adgang, og vha. et Match directive kun adgang til en backup-mappe på serveren.
I denne backup-mappe er der undermapper for hver klient sat op med de korrekte permissions - dvs. at de forskellige klienter ikke kan læse hinandens filer.
Hvis en klient kompromitteres, kan angriberen dog slette alle de backups klienten har lavet gennem tiden, med mindre der foregår en eller anden form for rotate?
Er der nogen har oplevet lignende overvejelser?
Kommentarer11
ACL's
Ja, er det muligt?
måske
Eller retter sagt ja der er en attribut til ext3/4's ACL der sætter tingene append only hvis jeg ellers husker en rigigt men kan ikke give dig en komplet syntax. Men da ACL's ikke er 110% standard så kan ting værre anderledes med forskellig setups.
google ACL + append only
Jeg rodede lidt med getfacl
Til gengæld fandt jeg lsattr og chattr hvor jeg kunne sætte en append-only attribute med:
chattr +a dir
Jeg har dog ikke fundet ud
Never ending story
Bliver bruger profilen kompromitteret, ja så er der et alvorligt problem for den pågældende bruger, og eventuelt også for andre profiler inklusiv netværks admin.
Det løses bl.a. med redundant backup. Slettes noget fra brugerens diskspace, kan det genskabes fra den redundante backup. Ellers skal brugerdata beskyttes på sædvanlig vis, ved periodevis ændring af passwords og eventuel antimalware og firewall, og brugeren holdes ansvarlig for egen sikkerhed og almindelig omgang med sine profiloplysninger, såvel som internetopførsel.
Alt af brugerens arbejde SKAL gemmes på en domæne controller, aldrig lokalt på arbejdsstationen, om det så er krypteret eller ej.
Med andre ord; det kan ikke løses med UNIX (eller NTFS) sikkerhed alene, men må nødvendigvis inkludere redundans, i et eller flere af begrebets mange muligheder.
Man kan jo også bare lave
Een af gruindend til hjeg har fravalgt SFTP er at pure-ftp understøtter denne mulighed men den har vist ikke SFTP-mulighed. Nå ja man kan jo altid køre FTP igennem en SSH-tunnel så er sikkerhedsproblemet jo løst hvis man er paranoid nok til det.
#7
Det er også muligt med
Det er også muligt med sftp ved at lave et ChrootDirectory-direktiv i sshd_config og bruge rssh til at mindske shell-adgang. Problemet er istedet, at hvis en klient kompromitteres, hvordan sikres så klientens backup'ede data?
Lad en anden bruger end brugeren selv stå for rotation..
Vha. "mount --bind" mountes root's backup-mappe for brugeren i brugerens eget bibliotek. Her har brugeren kun læserettigheder. Dermed vil en kompromittering eller fejlagtig sletning aldrig kunne ødelægge mere end den nyeste backup. Samtidig kan hver bruger selv genskabe sine gamle data, uden indblanding fra root/administrator, ved blot at forbinde med et grafisk SCP/SFTP program og downloade gamle backups fra read-only mappen.
Fordelen ved at benytte unison fremfor rsync, er desuden at brugeren kan have flere klienter og benytte Unison's to-vejs sync til at holde mapperne i sync på klienterne (laptop, desktop, osv), hvor alle klienter sync'er mod den centrale server ved opstart og nedlukning (samt evt. undervejs).
#Kenni
Lyder som en god
Lyder som en god løsning. Vil jeg bestemt kigge nærmere på. Tak skal du have
løsning
eks.
mkdir test
sudo chattr +a test
touch test/hej1
touch test/hej2
$ rm test/hej2
rm: kan ikke fjerne 'test/hej2': Operationen er ikke tilladt
lsattr test
-----a-----------e- test/hej1
-----a-----------e- test/hej2
og nej,, du kan heller ikke tilføje linier til filerne det skelner den tilsyneladende ikke mellem,, sikkert fordi unix filer er bytestream orienterede og ikke record orienterede .
Men du kan slf redigere filen udenfor append-only dir og flytte det dertil.
echo 'bleh blah bluh' > hej3
mv hej3 test