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
|
||||
2
Dev/APS-SMTP01/Adduser_für_SMTP_Relay.md
Normal file
2
Dev/APS-SMTP01/Adduser_für_SMTP_Relay.md
Normal file
@@ -0,0 +1,2 @@
|
||||
useradd -M -s /sbin/nologin n8nuser
|
||||
passwd n8nuser
|
||||
111
Dev/APS-SMTP01/GEMINI_smtp_relay_opprem.md
Normal file
111
Dev/APS-SMTP01/GEMINI_smtp_relay_opprem.md
Normal file
@@ -0,0 +1,111 @@
|
||||
# Postfix SMTP Relay beállítása On-Premise Exchange szerverhez
|
||||
|
||||
Ez az útmutató leírja, hogyan lehet egy Postfix SMTP relay szervert beállítani egy Linux VM-en, amely a belső hálózati eszközökről (pl. nyomtatók, IoT eszközök) érkező e-maileket továbbítja egy helyi (on-premise) Microsoft Exchange szerver felé. A hitelesítés IP-cím alapú bizalmi kapcsolaton (Receive Connector) keresztül történik, nem igényel felhasználónevet és jelszót.
|
||||
|
||||
## Komponensek és IP-címek
|
||||
|
||||
* **Postfix Relay Szerver (Linux VM):** `10.101.0.251`
|
||||
* **On-Premise Exchange Szerver:** `aps-exch01.aps.local`
|
||||
* **Kliens Hálózat (Nyomtatók):** `10.102.9.0/24`
|
||||
|
||||
---
|
||||
|
||||
## 1. Lépések a Postfix Szerveren (`10.101.0.251`)
|
||||
|
||||
Ezeket a parancsokat a Linux VM-en kell futtatni.
|
||||
|
||||
### 1.1. Telepítés
|
||||
|
||||
Válassza ki a megfelelő parancsot a Linux disztribúciójának megfelelően.
|
||||
|
||||
**Fedora/CentOS/RHEL esetén:**
|
||||
```bash
|
||||
sudo dnf install postfix mailx cyrus-sasl-plain -y
|
||||
```
|
||||
|
||||
**Debian/Ubuntu esetén:**
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install postfix mailutils libsasl2-modules -y
|
||||
```
|
||||
*A telepítés során válassza az **'Internet Site'** opciót. A "System mail name" mezőbe írjon be egy tetszőleges, de beszédes nevet, pl. `postfix-relay.aps.local`.*
|
||||
|
||||
### 1.2. Konfiguráció
|
||||
|
||||
Nyissa meg a `/etc/postfix/main.cf` konfigurációs fájlt egy szövegszerkesztővel (`sudo nano /etc/postfix/main.cf`), törölje a teljes tartalmát, és illessze be az alábbiakat:
|
||||
|
||||
```ini
|
||||
# A belső, on-premise Exchange szerver címe, ahova továbbítjuk a leveleket.
|
||||
relayhost = aps-exch01.aps.local
|
||||
|
||||
# A belső hálózatok, ahonnan a Postfix fogadja a leveleket (nyomtatók, stb.)
|
||||
# Itt szerepel a loopback, és az Ön által megadott nyomtató hálózat.
|
||||
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.102.9.0/24
|
||||
|
||||
# Nincs szükség kliens oldali hitelesítésre, mivel az Exchange-en beállítjuk az IP-alapú bizalmat.
|
||||
smtp_sasl_auth_enable = no
|
||||
|
||||
# Ajánlott beállítás a TLS használatára, még belső hálózaton is
|
||||
smtp_use_tls = yes
|
||||
smtp_tls_security_level = may
|
||||
```
|
||||
|
||||
### 1.3. Szolgáltatás újraindítása
|
||||
|
||||
A konfiguráció érvénybe léptetéséhez indítsa újra a Postfix szolgáltatást, és engedélyezze az automatikus indulást.
|
||||
|
||||
```bash
|
||||
sudo systemctl restart postfix
|
||||
sudo systemctl enable postfix
|
||||
```
|
||||
|
||||
### 1.4. Tesztelés
|
||||
|
||||
Küldjön egy teszt e-mailt a parancssorból, hogy ellenőrizze a működést.
|
||||
|
||||
```bash
|
||||
echo "Ez egy teszt üzenet a Postfix relay szerverről." | mail -s "Postfix Teszt" valaki@az_on_domain_e.hu
|
||||
```
|
||||
*Cserélje ki a `valaki@az_on_domain_e.hu` címet egy valós e-mail címre a szervezetén belül.*
|
||||
|
||||
A levélforgalom naplóját a `/var/log/mail.log` (Debian/Ubuntu) vagy `/var/log/maillog` (Fedora/RHEL) fájlban követheti.
|
||||
|
||||
---
|
||||
|
||||
## 2. Lépések az On-Premise Exchange Szerveren (`aps-exch01.aps.local`)
|
||||
|
||||
Ezeket a lépéseket az Exchange adminisztrátorának kell elvégeznie az Exchange szerveren.
|
||||
|
||||
### 2.1. Receive Connector Létrehozása (Grafikus felületen)
|
||||
|
||||
1. Nyissa meg az **Exchange Admin Center (EAC)** webes felületét.
|
||||
2. Navigáljon a **Mail flow > Receive connectors** menüpontra.
|
||||
3. Kattintson az `+` ikonra egy új Receive Connector létrehozásához.
|
||||
4. Adjon neki egy beszédes nevet: `Postfix_Relay_10.101.0.251`.
|
||||
5. Válassza a **Frontend Transport** szerepkört.
|
||||
6. A "Remote network settings" (Távoli hálózati beállítások) alatt távolítsa el az alapértelmezett `0.0.0.0-255.255.255.255` tartományt, és adja hozzá **csak a Postfix szerver IP-címét**: `10.101.0.251`.
|
||||
7. A biztonsági beállításoknál győződjön meg róla, hogy az **Anonymous users** opció be van jelölve.
|
||||
8. Mentse el a beállításokat.
|
||||
|
||||
### 2.2. Külső Relay Engedélyezése (PowerShell)
|
||||
|
||||
**Ez a lépés kritikus ahhoz, hogy a relay szerver a szervezeten kívüli címzetteknek is tudjon levelet küldeni!**
|
||||
|
||||
1. Nyisson meg egy **Exchange Management Shell-t** rendszergazdaként az Exchange szerveren.
|
||||
2. Futtassa az alábbi parancsot (a connector nevének egyeznie kell a 2.1. pontban megadottal):
|
||||
|
||||
```powershell
|
||||
Get-ReceiveConnector "Postfix_Relay_10.101.0.251" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"
|
||||
```
|
||||
A parancs lefutása után a beállítás élesedik.
|
||||
|
||||
---
|
||||
|
||||
## 3. Kliens Eszközök beállítása
|
||||
|
||||
A nyomtatókon, szkennereken, és egyéb IoT eszközökön a következő SMTP beállításokat kell használni:
|
||||
|
||||
* **SMTP Szerver:** `10.101.0.251`
|
||||
* **SMTP Port:** `25`
|
||||
* **Hitelesítés / Authentication:** Nincs / None
|
||||
* **Titkosítás / Encryption:** Nincs / None (vagy STARTTLS, ha az eszköz támogatja)
|
||||
52
Dev/APS-SMTP01/GEMINI_smtp_user.md
Normal file
52
Dev/APS-SMTP01/GEMINI_smtp_user.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# Postfix SMTP Hitelesítés Beállítása (Fedora 43)
|
||||
|
||||
Ez a dokumentum összefoglalja a lépéseket, amelyekkel lokális felhasználói hitelesítést (SASL) állítottunk be egy meglévő Postfix SMTP relay szerveren.
|
||||
|
||||
## 1. Szükséges csomagok telepítése
|
||||
A SASL hitelesítéshez a Cyrus SASL könyvtárakra van szükség.
|
||||
```bash
|
||||
sudo dnf install cyrus-sasl cyrus-sasl-plain
|
||||
```
|
||||
|
||||
## 2. SASL konfigurálása
|
||||
Létrehoztuk a `/etc/sasl2/smtpd.conf` fájlt, amely meghatározza, hogyan ellenőrizze a Postfix a jelszavakat.
|
||||
```conf
|
||||
# /etc/sasl2/smtpd.conf
|
||||
pwcheck_method: saslauthd
|
||||
mech_list: plain login
|
||||
```
|
||||
|
||||
## 3. Postfix konfiguráció módosítása
|
||||
Beállítottuk a Postfix-et, hogy használja a SASL hitelesítést és engedélyezze a hitelesített kliensek számára a levélküldést.
|
||||
```bash
|
||||
sudo postconf -e 'smtpd_sasl_auth_enable = yes'
|
||||
sudo postconf -e 'smtpd_sasl_security_options = noanonymous'
|
||||
sudo postconf -e 'smtpd_sasl_local_domain = $myhostname'
|
||||
sudo postconf -e 'broken_sasl_auth_clients = yes'
|
||||
sudo postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination'
|
||||
```
|
||||
|
||||
## 4. Lokális felhasználó létrehozása
|
||||
Létrehoztunk egy rendszerszintű felhasználót, aki csak hitelesítésre szolgál (nincs shell hozzáférése).
|
||||
```bash
|
||||
sudo useradd -M -s /sbin/nologin mdmuser
|
||||
sudo passwd mdmuser
|
||||
```
|
||||
|
||||
## 5. Szolgáltatások indítása és engedélyezése
|
||||
Elindítottuk a hitelesítésért felelős démont és újraindítottuk a Postfix-et.
|
||||
```bash
|
||||
sudo systemctl enable --now saslauthd
|
||||
sudo systemctl restart postfix
|
||||
```
|
||||
|
||||
## 6. Ellenőrzés és Tesztelés
|
||||
A hitelesítés meglétét `telnet`-tel ellenőriztük:
|
||||
```bash
|
||||
telnet localhost 25
|
||||
# EHLO teszt.local parancs után látni kell:
|
||||
# 250-AUTH PLAIN LOGIN
|
||||
```
|
||||
|
||||
A sikeres küldést a logokban az alábbi bejegyzés igazolja:
|
||||
`sasl_method=PLAIN, sasl_username=mdmuser@antares-apo.local, status=sent`
|
||||
71
Dev/APS-SMTP01/Postfix_SMTP_Relay_SOP_de.md
Normal file
71
Dev/APS-SMTP01/Postfix_SMTP_Relay_SOP_de.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# SOP: Konfiguration Postfix SMTP Relay (APS-SMTP01)
|
||||
|
||||
## 1. Zweck & Übersicht
|
||||
Diese Dokumentation beschreibt die Konfiguration des zentralen Postfix Mail-Relays (**APS-SMTP01**). Das System dient als Brücke, um internen Geräten (Druckern, Scannern) und automatisierten IT-Skripten den E-Mail-Versand über unseren offiziellen Provider zu ermöglichen.
|
||||
|
||||
**System-Details:**
|
||||
* **Server:** Linux (Ubuntu/Fedora basierend)
|
||||
* **Hostname:** `aps-smtp01.aps.local`
|
||||
* **IP-Adresse:** [Bitte interne IP ergänzen]
|
||||
* **Dienst:** Postfix (MTA - Mail Transfer Agent)
|
||||
|
||||
## 2. Zentrale Konfigurationsdateien
|
||||
Die gesamte Konfiguration befindet sich im Verzeichnis `/etc/postfix/`. Die wichtigsten Dateien sind:
|
||||
|
||||
* **`/etc/postfix/main.cf`**: Die Hauptkonfigurationsdatei mit den globalen Parametern.
|
||||
* **`/etc/postfix/sasl_passwd`**: Enthält die Zugangsdaten für den externen Relay-Host (verschlüsselt via postmap).
|
||||
* **`/etc/aliases`**: Definiert E-Mail-Weiterleitungen für lokale Benutzer.
|
||||
|
||||
## 3. Konfigurations-Ausschnitt (main.cf)
|
||||
Die folgenden Parameter sind für den Betrieb als Relay entscheidend:
|
||||
|
||||
```bash
|
||||
# Beispiel-Konfiguration für Relay mit Authentifizierung
|
||||
relayhost = [smtp.dein-provider.de]:587
|
||||
mynetworks = 127.0.0.0/8, 192.168.1.0/24 [Hier interne Subnetze erlauben]
|
||||
smtp_sasl_auth_enable = yes
|
||||
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
|
||||
smtp_tls_security_level = may
|
||||
header_size_limit = 4096000
|
||||
```
|
||||
|
||||
## 4. Administrative Befehle & Wartung
|
||||
Nach Änderungen an der Konfiguration müssen folgende Schritte durchgeführt werden:
|
||||
|
||||
### Konfiguration prüfen und laden:
|
||||
```bash
|
||||
# Syntax-Check der main.cf
|
||||
postfix check
|
||||
|
||||
# Konfiguration neu laden (ohne Neustart des Dienstes)
|
||||
systemctl reload postfix
|
||||
```
|
||||
|
||||
### Passwort-Datenbank aktualisieren:
|
||||
Wenn die `sasl_passwd` geändert wurde, muss die Datenbank neu generiert werden:
|
||||
```bash
|
||||
postmap /etc/postfix/sasl_passwd
|
||||
systemctl restart postfix
|
||||
```
|
||||
|
||||
### Überprüfung der Logs (Fehlersuche):
|
||||
```bash
|
||||
# Echtzeit-Überwachung der Mail-Logs
|
||||
tail -f /var/log/mail.log
|
||||
# Alternativ via journalctl
|
||||
journalctl -u postfix -f
|
||||
```
|
||||
|
||||
## 5. Testen des E-Mail-Versands
|
||||
Um die Funktionalität des Relays direkt auf dem Server zu testen:
|
||||
|
||||
```bash
|
||||
echo "Testmail von APS-SMTP01" | mail -s "Testbetreff" de@deine-domain.de
|
||||
```
|
||||
|
||||
## 6. Bekannte Probleme (Troubleshooting)
|
||||
* **Relay access denied:** Prüfen Sie den Parameter `mynetworks`. Die IP des sendenden Geräts muss dort erlaubt sein.
|
||||
* **Connection timed out (Port 25/587):** Prüfen Sie die Firewall-Regeln auf dem Server und im Netzwerk (Ausgehende Verbindung zum Provider).
|
||||
|
||||
---
|
||||
*Erstellt für die IT-Dokumentation - Projekt: IT Internal Repository*
|
||||
Reference in New Issue
Block a user