Kör en OpenSSH SFTP server chroot() ersätt ftp!

Sedan OpenSSH version 4.8p1 så finns det en ny funktion som enkelt
låter dig skapa chroot():ade logins! Det finns andra lösningar
på samma problem som tex rssh och scponly men med denna nya funktion i OpenSSH så slipper man hålla dessa
uppdaterade.

Nu kan du byta ut FTP mot sftp mycket enkelt och slippa skicka
lösenord över nätverket, använda nycklar istället för lösenord
och framförallt slippa allt strul med FTP passive/active mode
för att ta sig igenom NAT.

Då sätter vi igång!

Vi börjar med att ändra i filen: /etc/ssh/sshd_config

Ändra raden för sftp:

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

Lägg till raderna:

Subsystem sftp internal-sftp

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

Nu skapar vi användaren och ställer in hemkatalogen till
en tom katalog som ägs av root, denna behövs av ssh. Vi skapar
hemkatalogen (som måste ägas av root) och en "upload" katalog
som vi sätter "sftpchroot" som ägare till, denna ska vi sedan
kunna ladda upp filer till.

# useradd sftpchroot
# id
uid=1001(sftpchroot) gid=1001(sftpchroot) groups=1001(sftpchroot)
# mkdir /chroot
# usermod -d /chroot sftpchroot
# mkdir /home/sftpchroot
# mkdir /home/sftpchroot/upload
# chown sftpchroot:sftpchroot /home/sftpchroot/upload
# chown root:root /home/sftpchroot

Nu är det dags att starta om "sshd"

# invoke-rc.d ssh restart
Restarting OpenBSD Secure Shell server: sshd.

Nu ska vi testa om det fungerar,

user@beaker:$ sftp sftpchroot@192.168.0.2
Connecting to 192.168.0.2...
sftpchroot@192.168.0.2's password: 
sftp> ls -al
drwxr-xr-x    3 0        0            4096 Sep 12 08:34 .
drwxr-xr-x    3 0        0            4096 Sep 12 08:34 ..
drwxr-xr-x    2 1001     1001         4096 Sep 12 08:49 upload
sftp> pwd
Remote working directory: /
sftp> cd upload
sftp> put /tmp/linux-2.6.26.5.tar.bz2
Uploading /tmp/linux-2.6.26.5.tar.bz2 to /upload/linux-2.6.26.5.tar.bz2
/tmp/linux-2.6.26.5.tar.bz2     100%    47MB  11.8MB/s   00:04
sftp> ls -al linux-2.6.26.5.tar.bz2
-rw-r--r--    0 1001     1001     49450713 Sep 12 10:53
linux-2.6.26.5.tar.bz2
sftp> pwd
Remote working directory: /upload
sftp>

Lycka till!

Prenumerera på innehåll