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!