Linux - Netzwerk und Serveradminstration SFTP: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 3: | Zeile 3: | ||
== Vorbereitungen == | == Vorbereitungen == | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
=== DATEN === | === DATEN === | ||
| − | |||
{| class="wikitable" style="background-color: #f2f2f2;" | {| class="wikitable" style="background-color: #f2f2f2;" | ||
! Parameter !! Wert !! Erläuterung | ! Parameter !! Wert !! Erläuterung | ||
|- | |- | ||
| − | | | + | | Netzwerk (NIC) || DMZ|| Interface-Zuweisung |
|- | |- | ||
| − | | | + | | IP || 10.88.2XX.3 || Statische IP |
|- | |- | ||
| − | | | + | | CIDR || 24 || Netzmaske |
|- | |- | ||
| − | | | + | | GW || 10.88.2XX.1 || Gateway |
|- | |- | ||
| − | | | + | | NS || 10.88.2XX.21 || DNS-Server |
|- | |- | ||
| − | | | + | | FQDN || sftp.it2XX.int || Vollständiger Name |
|- | |- | ||
| − | | | + | | SHORT || sftp || Kurzname |
|- | |- | ||
| − | | | + | | DOM || it2XX.int || Domain |
|} | |} | ||
| − | + | ||
*[[Anpassen des Debian Templates]] | *[[Anpassen des Debian Templates]] | ||
| − | == | + | == Sichere Datenübertragung == |
| − | * SFTP | + | *SFTP nutzt SSH zur Verschlüsselung |
| − | * | + | *kein zusätzlicher Dienst notwendig |
| − | * | + | *FTP/TFTP sind unsicher und werden nicht verwendet |
| − | * | + | *Zugriff erfolgt ausschließlich über SSH-Port 22 |
| − | * | + | |
| − | + | == Ziel == | |
| − | + | *Gast-Zugang unter /srv/sftp/gast | |
| − | + | *kein Shell-Zugriff | |
| − | = Benutzer und | + | *Zugriff nur auf eigenes Verzeichnis |
| − | * | + | |
| − | * | + | == Benutzer und Verzeichnis == |
| − | * | + | *sudo mkdir -p /srv/sftp/gast/ablage |
| − | * | + | *sudo groupadd sftponly |
| − | * | + | *sudo useradd -G sftponly -d /srv/sftp/gast -s /usr/sbin/nologin gast |
| − | * | + | *sudo passwd gast |
| + | |||
| + | ;WICHTIG | ||
| + | *Chroot-Verzeichnis muss root gehören | ||
| + | |||
| + | *sudo chown root:root /srv/sftp/gast | ||
| + | *sudo chmod 755 /srv/sftp/gast | ||
| + | |||
| + | *sudo chown gast:gast /srv/sftp/gast/ablage | ||
| + | |||
| + | ;Erklärung | ||
| + | */srv/sftp/gast → gehört root (Pflicht für Chroot) | ||
| + | */ablage → gehört Benutzer (dort darf geschrieben werden) | ||
| + | |||
| + | == SSH Server Konfiguration == | ||
| + | *sudo nano /etc/ssh/sshd_config | ||
| + | |||
| + | <pre> | ||
| + | Subsystem sftp internal-sftp | ||
| + | |||
| + | Match Group sftponly | ||
| + | ChrootDirectory /srv/sftp/%u | ||
| + | ForceCommand internal-sftp | ||
| + | PasswordAuthentication yes | ||
| + | AllowTcpForwarding no | ||
| + | </pre> | ||
| + | |||
| + | *sudo systemctl restart ssh | ||
| − | + | ;Erklärung | |
| − | * | + | *internal-sftp → kein externes Binary notwendig |
| − | * | + | *ChrootDirectory → User sieht nur sein eigenes Verzeichnis |
| − | * | + | *ForceCommand → erzwingt SFTP (kein SSH-Shell) |
| + | *AllowTcpForwarding no → verhindert Tunnel | ||
| − | + | == Test == | |
| − | + | *sftp gast@SERVER-IP | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | = Angemeldete Benutzer anzeigen = | + | == Angemeldete Benutzer anzeigen == |
| + | *ps -ef | grep '[s]shd:.*@notty' | grep -v ^root | ||
| − | + | ;Erklärung | |
| − | * | + | *notty → kein Terminal → reiner SFTP-Zugang |
| − | =Links= | + | == Links == |
*[http://en.wikibooks.org/wiki/OpenSSH/Cookbook/SFTP#Chrooted_SFTP_to_Shared_Directories SFTP] | *[http://en.wikibooks.org/wiki/OpenSSH/Cookbook/SFTP#Chrooted_SFTP_to_Shared_Directories SFTP] | ||
Aktuelle Version vom 1. April 2026, 13:28 Uhr
SFTP Server
Vorbereitungen
DATEN
| Parameter | Wert | Erläuterung |
|---|---|---|
| Netzwerk (NIC) | DMZ | Interface-Zuweisung |
| IP | 10.88.2XX.3 | Statische IP |
| CIDR | 24 | Netzmaske |
| GW | 10.88.2XX.1 | Gateway |
| NS | 10.88.2XX.21 | DNS-Server |
| FQDN | sftp.it2XX.int | Vollständiger Name |
| SHORT | sftp | Kurzname |
| DOM | it2XX.int | Domain |
Sichere Datenübertragung
- SFTP nutzt SSH zur Verschlüsselung
- kein zusätzlicher Dienst notwendig
- FTP/TFTP sind unsicher und werden nicht verwendet
- Zugriff erfolgt ausschließlich über SSH-Port 22
Ziel
- Gast-Zugang unter /srv/sftp/gast
- kein Shell-Zugriff
- Zugriff nur auf eigenes Verzeichnis
Benutzer und Verzeichnis
- sudo mkdir -p /srv/sftp/gast/ablage
- sudo groupadd sftponly
- sudo useradd -G sftponly -d /srv/sftp/gast -s /usr/sbin/nologin gast
- sudo passwd gast
- WICHTIG
- Chroot-Verzeichnis muss root gehören
- sudo chown root:root /srv/sftp/gast
- sudo chmod 755 /srv/sftp/gast
- sudo chown gast:gast /srv/sftp/gast/ablage
- Erklärung
- /srv/sftp/gast → gehört root (Pflicht für Chroot)
- /ablage → gehört Benutzer (dort darf geschrieben werden)
SSH Server Konfiguration
- sudo nano /etc/ssh/sshd_config
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory /srv/sftp/%u
ForceCommand internal-sftp
PasswordAuthentication yes
AllowTcpForwarding no
- sudo systemctl restart ssh
- Erklärung
- internal-sftp → kein externes Binary notwendig
- ChrootDirectory → User sieht nur sein eigenes Verzeichnis
- ForceCommand → erzwingt SFTP (kein SSH-Shell)
- AllowTcpForwarding no → verhindert Tunnel
Test
- sftp gast@SERVER-IP
Angemeldete Benutzer anzeigen
- ps -ef | grep '[s]shd:.*@notty' | grep -v ^root
- Erklärung
- notty → kein Terminal → reiner SFTP-Zugang
