SFTP fatalne złe własności lub tryby dla katalogu chroot ubuntu 12.04

12

Właśnie skonfigurowałem mój serwer SFTP i działa dobrze, gdy używam go z mojego pierwszego konta użytkownika. Chciałem dodać użytkownika, który nazwiemy „magnarp”. Na początku podobało mi się to w sshd_config:

Subsystem sftp internal-sftp


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

To działało wystarczająco dobrze, użytkownik magnarp wszedł do swojego katalogu domowego. Następnie spróbowałem dodać do niego link symboliczny.

home$ sudo ln -s /home/DUMP/High\ Defenition/ /home/magnarp/"High Defenition"

Symlink działał dobrze przez SSH, ale nie przez SFTP.

Więc teraz chcę zrobić grupę Chroot sftponly do / home / DUMP i podobało mi się to:

Match group sftponly
    ChrootDirectory /home/DUMP
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

Folder DUMP ma następujące uprawnienia.

drwxrwxrwx  5 root     root      4096 aug 18 02:25 DUMP

A to jest kod błędu:

Aug 18 16:40:29 nixon-01 sshd[7346]: Connection from 192.168.1.198 port 51354
Aug 18 16:40:30 nixon-01 sshd[7346]: Accepted password for magnarp from 192.168.1.198 port 51354 ssh2
Aug 18 16:40:30 nixon-01 sshd[7346]: pam_unix(sshd:session): session opened for user    magnarp by (uid=0)
Aug 18 16:40:30 nixon-01 sshd[7346]: User child is on pid 7467
Aug 18 16:40:30 nixon-01 sshd[7467]: fatal: bad ownership or modes for chroot directory "/home/DUMP"
Aug 18 16:40:30 nixon-01 sshd[7346]: pam_unix(sshd:session): session closed for user magnarp
Jonathan
źródło

Odpowiedzi:

21

sshdma pewien poziom paranoi, jeśli chodzi o katalogi chroot. Nie sądzę, że można to wyłączyć (nawet przy StrictModes no). Katalog chroot i wszystkie katalogi nadrzędne muszą być odpowiednio ustawione :

  1. Katalog chroot i wszyscy jego rodzice nie mogą mieć możliwości zapisu grupowego lub światowego (tj. chmod 755)
  2. Katalog chroot i wszyscy jego rodzice muszą być własnością root.

W twoim przypadku błąd logowania może zostać naprawiony za pomocą chmod 755 /home/DUMP Twojej oczywistej intencji posiadania katalogu, w którym można zapisywać na całym świecie, do którego logowałby się sftpuser, a każdy może włożyć pliki można rozwiązać, czyniąc z tego katalogu podkatalog/home/DUMP/

DerfK
źródło
1
Działa jak urok! Dziękuję Ci. Teraz muszę tylko naprawić wszystkie podkatalogi i mój system NFS :)
Jonathan
0

A) Jaki byłby sens tworzenia chroot, jeśli tworzenie linków sim pomógłoby uniknąć chroota? (Każdy użytkownik może załadować łącze simlink, a następnie uzyskać dostęp do całego systemu plików)

B) Jeszcze jeden chmod 777 i zostaniesz osaczony przez theo ( http://rlv.zcache.com/i_got_flamed_by_theo_de_raadt_t_shirt_tshirt-p235453348828729121en7rf_210.jpg ). Zobacz http://lists.mindrot.org/pipermail/openssh-unix-dev/2010-J January/028151.html, aby zrozumieć, dlaczego openssh jest tak wybredny w kwestii uprawnień do katalogu chroot.


źródło