authorized_keys auslagern SFTP User

Probleme mit Samba, NFS, FTP und Co.
Antworten
Hitchens
Beiträge: 9
Registriert: 08.10.2016 00:31:15

authorized_keys auslagern SFTP User

Beitrag von Hitchens » 08.10.2016 06:41:35

Guten Abend zusammen,

ich hab jetzt mal rumgegoogelt und auch in meiner Lektüre nachgelesen aber keine zufriedenstellende Antwort gefunden.
Vielleicht könnt ihr mir hier helfen.

Wie sicher bekannt ist, ist der simpelste Weg Usern einen SFTP Zugang zu gewähren sie in der sshd_config durch nen MATCH zu chrooten und ihre authorized_keys im jeweiligen Homedir unter /.ssh/ zu verstauen... genau das ist für mich keine adäquate Lösung und ich würde gerne wissen ob es möglich ist den Key an einem für den User mit SFTP Zugang nicht zugänglichen Ort zu speichern.

Einfach einen Unterordner zu erstellen fällt ebenfalls weg, da die User zu ihrem Homeverzeichnis sowie zu einem sich darüber befindlichen Verzeichnis Zugang haben sollen!

Code: Alles auswählen

#Hier mal eine Aufstellung meiner Directories

/home/data/music      # Ordner für alle SFTP User zugänglich (Nur Upload und Download kein Löschen möglich)
/home/user1              # Homedir von User 1 nur von User 1 zugänglich (voller Zugang)
/home/user2              # Homedir von User 2 nur von User 2 zugänglich (voller Zugang)
geregelt habe ich das mit folgendem MATCH Block

Code: Alles auswählen

Match Group sftpgroup
    ChrootDirectory /home
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp
Frage:

Ist es möglich die authorized_keys so auszulagern das sie nicht von den einzelnen Benutzern bearbeitet werden können. Also ganz aus den Home Verzeichnissen raus in einen für sie aufgrund des Chroots absolut unzugänglichen Bereich?

Das war mal ein viel größerer Post =) aber den ganzen anderen Kram hab ich durch "learning-by-doing" selbst gelöst =)

Danke schonmal für eure Antworten

DeletedUserReAsG

Re: authorized_keys auslagern SFTP User

Beitrag von DeletedUserReAsG » 08.10.2016 06:59:33

Ist es möglich die authorized_keys so auszulagern das sie nicht von den einzelnen Benutzern bearbeitet werden können.
Wenn’s nur um das Bearbeiten geht, könnte man einfach die Rechte entsprechend anpassen. Ansonsten wäre die Option AuthorizedKeyFiles das, wo ich schauen würde.

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: authorized_keys auslagern SFTP User

Beitrag von ThorstenS » 08.10.2016 08:52:44

Wenn du nicht möchtest, dass ein User den key oder den Eintrag in der authorized_keys bearbeitet, dann kannst du ein chattr +i $DATEI darauf anwenden. Damit kann nichtmal root diese Datei verändern oder löschen.
einfach aber effektiv.

Alternativ könntest du mit %h in der sshd_config experimentieren, welches auf das Homeverzeichnis aufgelöst wird.
Damit könntest du die keys nach /srv/sshd_keys/home/$USER auslagern. Denk aber an die entspr. Rechte 0700 für den „Homeordner“

Code: Alles auswählen

AuthorizedKeysFile /srv/sshd_keys/%h/authorized_keys

Hitchens
Beiträge: 9
Registriert: 08.10.2016 00:31:15

Re: authorized_keys auslagern SFTP User

Beitrag von Hitchens » 08.10.2016 19:00:58

Okay habe nun die authorized_keys files in den Ordner
/srv/sshd_keys/home/%u/authorized_keys kopiert und die sshd_config überarbeitet.
Funktioniert jedoch nicht! Server refused our key ist die Meldung nach dem Restart des SSH Dienstes.

Mit dem Pfad

Code: Alles auswählen

AuthorizedKeysFile     /srv/sshd_keys/home/%u/authorized_keys
in der Config müsste doch für den folgenden tree funktionieren.

Code: Alles auswählen

└── sshd_keys  # chown root:sftpgroup chmod 770
    └── home       # chown root:sftpgroup chmod 770
        ├── user1   
                 # chown user1:user1 chmod 700
        │   └── authorized_keys 
                      # chown user1:user1 chmod 600
        ├── user2  
                # chown user2:user2 chmod 700
        │   └── authorized_keys 
                      # chown user2:user2 chmod 600
        └── user3   
                 #  chown user3:user3 chmod 700
             └── authorized_keys 
                      # chown user3:user3 chmod 600
will leider nicht so recht funktionieren... sieht jemand den Fehler?

Leider kann ich auch noch nicht ganz rauskristallisieren wie ich meinen shell User da unterbringen soll... der befindet sich aufgrund des Chroots und des forceCommand natürlich nicht in der Gruppe "sftpgroup" da ich ihn sonst nicht einloggen kann.

würde mich wirklich freuen wenn jemand ne adäquate Lösung zur Hand hätte =)

Antworten