Difference between revisions of "SFTP chroot + rsync"

From HoerupWiki
Jump to: navigation, search
Line 58: Line 58:
 
Til at kunne lave automatisk backup kan vi ikke bruge interaktive passwords, derfor bruger vi keys. Og da vi ikke har et helt normalt setup, skal der laves et par ændringer.
 
Til at kunne lave automatisk backup kan vi ikke bruge interaktive passwords, derfor bruger vi keys. Og da vi ikke har et helt normalt setup, skal der laves et par ændringer.
  
===SSH config===
 
 
Da alle brugerne har samme home-dir i top-level /etc/passwd, laver jeg lidt om i strukturen.
 
Da alle brugerne har samme home-dir i top-level /etc/passwd, laver jeg lidt om i strukturen.
 +
 
'''/etc/ssh/sshd_config''':
 
'''/etc/ssh/sshd_config''':
 
  RSAAuthentication yes
 
  RSAAuthentication yes
Line 65: Line 65:
 
  #AuthorizedKeysFile    %h/.ssh/authorized_keys
 
  #AuthorizedKeysFile    %h/.ssh/authorized_keys
 
  AuthorizedKeysFile      /.ssh/%u_authorized_keys
 
  AuthorizedKeysFile      /.ssh/%u_authorized_keys
 +
 +
Nu kan vi lave en key :
 +
ssh-keygen -t rsa
 +
 +
og kopiere indholdet af ~/.ssh/id_rsa.pub op på serveren i /.ssh/user01_authorized_keys.
 +
 +
Voila, nu kan vi rsynce uden password. - Husk at beskyt private filen godt.

Revision as of 16:30, 18 February 2013

af Tommy d. 18. feb.

ChrootDirectory PLUS et traditionelt chroot. - en lyn-guide, nej nok nærmere notater.

Lavet fordi jeg skulle bruge en backup server som kunne modtage backups via rsync og man kunne hente filerne ned igen via FileZilla.

Server Opsætning

SSH server

/etc/ssh/sshd_config:

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Match group sftponly
        ChrootDirectory /home/%u
        X11Forwarding no
        AllowTcpForwarding no
#       ForceCommand internal-sftp

Herfra skal alle homefolders både ha root som owner og group for at virke.

Klargør gruppe

addgroup sftponly

Opret bruger

adduser user01
addgroup sftponly
chown root:root /home/user01

Opret chroot miljø med bash og rsync

mkdir /home/user01/bin
cp /usr/bin/rsync /home/user01/bin/
cp /bin/bash /home/user01/bin/
mkdir /home/user01/lib
cp /lib/libncurses.so.5 /home/user01/lib/
cp /lib/libdl.so.2 /home/user01/lib/
cp /lib/libc.so.6 /home/user01/lib/
cp /lib/libacl.so.1 /home/user01/lib/
cp /lib/libpopt.so.0 /home/user01/lib/
cp /lib/libattr.so.1 /home/user01/lib/
mkdir /home/user01/lib64
cp /lib64/ld-linux-x86-64.so.2 /home/user01/lib64/

Jeg har brugt ldd til at liste dependencies for bash og rsync, samme procedure kan bruges hvis andre programmer skal med.

Opret mappe brugeren kan gemme filer i

Da SSH bestemmer at en ChrootDirectory SKAL ejes af root, skal brugeren have en undermappe med skriverettigheder

mkdir /home/user01/files
chown user01:user01 /home/user01/files

Samme procedure kan bruges hvis det er en webserver, så lav en html mappe.

Rsync

rsync --progress /mappe/filer user01@server:/files

SSH Authorized Keys

Til at kunne lave automatisk backup kan vi ikke bruge interaktive passwords, derfor bruger vi keys. Og da vi ikke har et helt normalt setup, skal der laves et par ændringer.

Da alle brugerne har samme home-dir i top-level /etc/passwd, laver jeg lidt om i strukturen.

/etc/ssh/sshd_config:

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys
AuthorizedKeysFile      /.ssh/%u_authorized_keys

Nu kan vi lave en key :

ssh-keygen -t rsa

og kopiere indholdet af ~/.ssh/id_rsa.pub op på serveren i /.ssh/user01_authorized_keys.

Voila, nu kan vi rsynce uden password. - Husk at beskyt private filen godt.