sauber machen
This commit is contained in:
80
Dev/APS-SFTP01/SFTP_Setup_DE.md
Normal file
80
Dev/APS-SFTP01/SFTP_Setup_DE.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# Konfiguration eines SFTP-Servers auf Fedora Linux
|
||||
|
||||
Diese Anleitung beschreibt die Einrichtung eines sicheren SFTP-Servers unter Verwendung von OpenSSH. Der Fokus liegt auf Sicherheit durch die Einschränkung des Benutzerzugriffs (Chroot) und die Deaktivierung des Shell-Zugriffs.
|
||||
|
||||
## 1. Benutzer anlegen
|
||||
Zuerst erstellen wir einen dedizierten Benutzer für den SFTP-Zugriff. Um die Sicherheit zu erhöhen, deaktivieren wir den normalen SSH-Terminal-Zugriff (`/sbin/nologin`).
|
||||
|
||||
```bash
|
||||
# Benutzer erstellen (ohne Shell-Zugriff)
|
||||
sudo useradd -m -s /sbin/nologin sftpuser
|
||||
|
||||
# Passwort für den Benutzer festlegen
|
||||
sudo passwd sftpuser
|
||||
```
|
||||
|
||||
## 2. Firewall-Konfiguration
|
||||
SFTP läuft über das SSH-Protokoll (Port 22). Dieser muss in der Firewall freigegeben werden.
|
||||
|
||||
```bash
|
||||
# SSH-Dienst in der Firewall erlauben
|
||||
sudo firewall-cmd --permanent --add-service=ssh
|
||||
|
||||
# Konfiguration neu laden
|
||||
sudo firewall-cmd --reload
|
||||
```
|
||||
|
||||
## 3. SSH-Konfiguration (Einschränkungen)
|
||||
Um den Benutzer in seinem Home-Verzeichnis zu isolieren (Chroot) und nur SFTP zu erlauben, muss die Datei `/etc/ssh/sshd_config` angepasst werden.
|
||||
|
||||
1. Öffnen Sie die Konfigurationsdatei: `sudo nano /etc/ssh/sshd_config`
|
||||
2. Fügen Sie am Ende der Datei folgende Zeilen hinzu:
|
||||
|
||||
```text
|
||||
Match User sftpuser
|
||||
ForceCommand internal-sftp
|
||||
PasswordAuthentication yes
|
||||
ChrootDirectory %h
|
||||
AllowTcpForwarding no
|
||||
X11Forwarding no
|
||||
```
|
||||
|
||||
* **Match User:** Wendet die Regeln nur auf diesen Benutzer an.
|
||||
* **ForceCommand internal-sftp:** Erlaubt nur SFTP-Befehle, keinen interaktiven Shell-Zugriff.
|
||||
* **ChrootDirectory %h:** Sperrt den Benutzer in sein Home-Verzeichnis ein.
|
||||
|
||||
## 4. Verzeichnisberechtigungen (Wichtig für Chroot)
|
||||
Damit der `Chroot`-Mechanismus funktioniert, muss das Home-Verzeichnis dem Benutzer `root` gehören und darf für andere nicht schreibbar sein.
|
||||
|
||||
```bash
|
||||
# Besitzer auf root setzen
|
||||
sudo chown root:root /home/sftpuser
|
||||
sudo chmod 755 /home/sftpuser
|
||||
|
||||
# Einen Unterordner für Uploads erstellen, in dem der Benutzer schreiben darf
|
||||
sudo mkdir /home/sftpuser/uploads
|
||||
sudo chown sftpuser:sftpuser /home/sftpuser/uploads
|
||||
```
|
||||
|
||||
## 5. SELinux-Anpassungen (Fedora-spezifisch)
|
||||
Auf Fedora verhindert SELinux standardmäßig, dass der SSH-Dienst in Chroot-Umgebungen Schreibzugriff auf Home-Verzeichnisse hat. Dies muss explizit erlaubt werden.
|
||||
|
||||
```bash
|
||||
# Schreibzugriff für SFTP-Chroot in SELinux aktivieren
|
||||
sudo setsebool -P ssh_chroot_rw_homedirs on
|
||||
```
|
||||
|
||||
## 6. Dienst neu starten und testen
|
||||
Nachdem alle Änderungen vorgenommen wurden, muss der SSH-Dienst neu gestartet werden.
|
||||
|
||||
```bash
|
||||
# SSH-Dienst neu starten
|
||||
sudo systemctl restart sshd
|
||||
```
|
||||
|
||||
### Testen des Zugriffs:
|
||||
Von einem entfernten Rechner oder lokal:
|
||||
```bash
|
||||
sftp sftpuser@<IP-ADRESSE-DES-SERVERS>
|
||||
```
|
||||
*Hinweis: Ein Login via normalem SSH (`ssh sftpuser@...`) sollte nun automatisch abgelehnt werden.*
|
||||
45
Dev/APS-SFTP01/SFTP_Setup_HU.md
Normal file
45
Dev/APS-SFTP01/SFTP_Setup_HU.md
Normal file
@@ -0,0 +1,45 @@
|
||||
1. Felhasználó létrehozása
|
||||
Hozzunk létre egy felhasználót (pl. sftpuser), de tiltsuk le neki a shell hozzáférést, hogy ne tudjon belépni a terminálba, csak fájlokat másolni:
|
||||
1 sudo useradd -m -s /sbin/nologin sftpuser
|
||||
2 sudo passwd sftpuser
|
||||
|
||||
2. Tűzfal (Firewall) beállítása
|
||||
Fedora alatt a firewalld fut. Engedélyezni kell az SSH-t (ami az SFTP-t is viszi):
|
||||
1 sudo firewall-cmd --permanent --add-service=ssh
|
||||
2 sudo firewall-cmd --reload
|
||||
|
||||
3. Az SFTP korlátozása (Opcionális, de ajánlott)
|
||||
Ha azt szeretnéd, hogy a felhasználó csak az SFTP-t használhassa, és ne lásson bele a teljes szerver fájlrendszerébe, módosítsd az SSH konfigurációt:
|
||||
|
||||
1. Nyisd meg: sudo nano /etc/ssh/sshd_config
|
||||
2. Menj a fájl végére és add hozzá:
|
||||
|
||||
1 Match User sftpuser
|
||||
2 ForceCommand internal-sftp
|
||||
3 PasswordAuthentication yes
|
||||
4 ChrootDirectory %h
|
||||
5 AllowTcpForwarding no
|
||||
6 X11Forwarding no
|
||||
Megjegyzés: A ChrootDirectory %h bezárja a felhasználót a saját home mappájába.
|
||||
|
||||
3. Fontos: Ha ChrootDirectory-t használsz, a home mappa tulajdonosának a root-nak kell lennie:
|
||||
|
||||
1 sudo chown root:root /home/sftpuser
|
||||
2 sudo chmod 755 /home/sftpuser
|
||||
3 # Hozz létre egy mappát, amibe írhat is:
|
||||
4 sudo mkdir /home/sftpuser/feltoltes
|
||||
5 sudo chown sftpuser:sftpuser /home/sftpuser/feltoltes
|
||||
|
||||
4. Indítsd újra az SSH-t:
|
||||
1 sudo systemctl restart sshd
|
||||
|
||||
4. SELinux (A Fedora "lelke")
|
||||
Mivel Fedora alatt dolgozunk, az SELinux alapértelmezés szerint blokkolhatja az SFTP írási jogokat, ha nem a szokványos módon használod. Engedélyezd az SFTP írást a home mappákba:
|
||||
|
||||
1 sudo setsebool -P ssh_chroot_rw_homedirs on
|
||||
(Ha nem használsz Chroot-ot, akkor is érdemes ezt futtatni, ha hiba van.)
|
||||
|
||||
Összegzés:
|
||||
* Ha csak gyorsan kell: useradd + passwd + firewall-cmd -> KÉSZ.
|
||||
* Ha biztonságosan kell: Használd a Match User részt az sshd_config-ban, hogy ne tudjon "mászkálni" a szerveren.
|
||||
|
||||
13
Dev/APS-SFTP01/sftp-notify.sh
Normal file
13
Dev/APS-SFTP01/sftp-notify.sh
Normal file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
# Csak a sikeres bejelentkezésekről (open_session) küldünk értesítést
|
||||
if [ "$PAM_TYPE" = "open_session" ]; then
|
||||
MESSAGE="SFTP Login értesítés:
|
||||
Felhasználó: $PAM_USER
|
||||
Távoli gép: $PAM_RHOST
|
||||
Időpont: $(date)
|
||||
Szolgáltatás: $PAM_SERVICE"
|
||||
|
||||
# Itt használd azt az email küldési módot, ami nálad működik (pl. mailx vagy postfix)
|
||||
echo "$MESSAGE" | mail -s "SFTP Login: $PAM_USER" i.meszely@antares-apo.de
|
||||
fi
|
||||
exit 0
|
||||
Reference in New Issue
Block a user