Compare commits
19 Commits
d77bdac13f
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 312e4e713f | |||
| 7d5d3dc0c8 | |||
| 8167a3ffff | |||
| 3e68e96c8a | |||
| 3b9b7f8789 | |||
| 62f739344c | |||
| 9b913a48bb | |||
| c1f1b48f6b | |||
| acd7daf36f | |||
| 36ac72ec82 | |||
| 440ce4d688 | |||
| 99b400cbc1 | |||
| d78c846898 | |||
| e44480505e | |||
| 625d2fc6bf | |||
| 324c1b7735 | |||
| 4a028aab5f | |||
| 95cc7edba5 | |||
| f5802c9be3 |
56
Dev/APS-SFTP01/APS-SFTP01_System_Documentation_DE.md
Normal file
56
Dev/APS-SFTP01/APS-SFTP01_System_Documentation_DE.md
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
# Systemdokumentation: APS-SFTP01 Datenaustausch-Server
|
||||||
|
|
||||||
|
Dieses Dokument beschreibt die Funktionsweise, das Berechtigungssystem und die Zugriffspfade des Servers **APS-SFTP01 (10.102.1.202)**. Der Server dient zwei getrennten Importprozessen.
|
||||||
|
|
||||||
|
## 1. Systemübersicht
|
||||||
|
Der Server fungiert als zentraler Datenaustauschpunkt für die Systeme Bremen und Amondis:
|
||||||
|
1. **Bremen-Mave Import:** Empfang externer Daten über SFTP.
|
||||||
|
2. **Amondis-Mave Import:** Empfang externer Daten über SMB (Samba), und import nach Mave mit SFTP Protokolle.
|
||||||
|
|
||||||
|
## 2. Benutzer und Zugriff
|
||||||
|
┌──────────────────┬──────────────┬───────────────┬─────────────────┬─────────────────────────────┐
|
||||||
|
│ Benutzer │ Prozess │ Typ │ Shell │ Aufgabe │
|
||||||
|
├──────────────────┼──────────────┼───────────────┼─────────────────┼─────────────────────────────┤
|
||||||
|
│ mave-sftp │ Bremen-Mave │ Nur SFTP │ /sbin/nologin │ Import von Bremen-Daten │
|
||||||
|
│ mave-amondis │ Amondis-Mave │ SFTP & SMB │ /sbin/nologin │ Import von Amondis-Daten │
|
||||||
|
└──────────────────┴──────────────┴───────────────┴─────────────────┴─────────────────────────────┘
|
||||||
|
*Hinweis: Keiner der Benutzer ist für eine interaktive SSH-Anmeldung (Terminal) berechtigt.*
|
||||||
|
|
||||||
|
## 3. Verzeichnisstruktur und Berechtigungen
|
||||||
|
|
||||||
|
### Bremen-Mave Import (mave-sftp)
|
||||||
|
┌────────────────────────────────────────┬─────────────────────┬──────────────┬──────────────────────────────────┐
|
||||||
|
│ Pfad │ Besitzer │ Berechtigung │ Rolle │
|
||||||
|
├────────────────────────────────────────┼─────────────────────┼──────────────┼──────────────────────────────────┤
|
||||||
|
│ /home/mave-sftp │ root:root │ 755 │ SFTP Chroot-Gefängnis │
|
||||||
|
│ /home/mave-sftp/Schnittstellen/Bremen │ mave-sftp:mave-sftp │ 775 │ Beschreibbarer Ordner für Bremen │
|
||||||
|
└────────────────────────────────────────┴─────────────────────┴──────────────┴──────────────────────────────────┘
|
||||||
|
|
||||||
|
### Amondis-Mave Import (mave-amondis)
|
||||||
|
┌───────────────────────────────────────────────┬───────────────────────────┬──────────────┬─────────────────────────────┐
|
||||||
|
│ Pfad │ Besitzer │ Berechtigung │ Rolle │
|
||||||
|
├───────────────────────────────────────────────┼───────────────────────────┼──────────────┼─────────────────────────────┤
|
||||||
|
│ /home/mave-amondis │ root:root │ 755 │ SFTP Home (nicht schreibbar)|
|
||||||
|
│ /home/mave-amondis/Schnittstellen │ root:root │ 755 │ SFTP Chroot-Gefängnis │
|
||||||
|
│ /home/mave-amondis/Schnittstellen/Amondis/APO │ mave-amondis:mave-amondis │ 775 │ Beschreibbares Verzeichnis │
|
||||||
|
└───────────────────────────────────────────────┴───────────────────────────┴──────────────┴─────────────────────────────┘
|
||||||
|
|
||||||
|
## 4. Netzwerkzugriff
|
||||||
|
|
||||||
|
### SMB (Windows Freigabe)
|
||||||
|
* **Amondis-Pfad:** `\\10.102.1.202\mave-amondis\Schnittstellen\Amondis\APO`
|
||||||
|
* **Funktionsweise:** Samba verwendet die Einstellung `force user = mave-amondis`, um Berechtigungskonflikte zu vermeiden.
|
||||||
|
|
||||||
|
### SFTP (Secure FTP)
|
||||||
|
* **Bremen-Verbindung:** `sftp://mave-sftp@10.102.1.202` (sieht nach der Anmeldung den Ordner `mave-amondis\Schnittstellen\Bremen`).
|
||||||
|
* **Amondis-Verbindung:** `sftp://mave-amondis@10.102.1.202` (sieht nach der Anmeldung den Ordner `Amondis\APO`).
|
||||||
|
|
||||||
|
## 5. Automatische Benachrichtigungen (Monitoring)
|
||||||
|
Bei jeder erfolgreichen Anmeldung (für beide Benutzer) wird eine E-Mail-Benachrichtigung an den Administrator gesendet (`i.meszely@antares-apo.de`).
|
||||||
|
|
||||||
|
* **Script-Speicherort:** `/usr/local/sbin/sftp-notify.sh`
|
||||||
|
* **Funktionsweise:** Das Script wird durch das PAM-System (Pluggable Authentication Modules) bei jedem `open_session`-Ereignis aufgerufen. Es unterscheidet zwischen SFTP (eingeschränkt) und interaktiven SSH-Anmeldungen anhand der Benutzer-Shell und versendet die Details (Benutzer, Remote-IP, Zeitstempel) per E-Mail.
|
||||||
|
* **Logdatei:** `/tmp/sftp-notify.log` (für das Debugging).
|
||||||
|
|
||||||
|
---
|
||||||
|
*Aktualisiert am: 25. März 2026*
|
||||||
56
Dev/APS-SFTP01/APS-SFTP01_System_Documentation_HU.md
Normal file
56
Dev/APS-SFTP01/APS-SFTP01_System_Documentation_HU.md
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
# Rendszerdokumentáció: APS-SFTP01 Adatcsere Szerver
|
||||||
|
|
||||||
|
Ez a dokumentum az **APS-SFTP01 (10.102.1.202)** szerver működését, jogosultsági rendszerét és elérési útjait foglalja össze. A szerver két elkülönített import folyamatot szolgál ki.
|
||||||
|
|
||||||
|
## 1. Rendszer Áttekintés
|
||||||
|
A szerver központi adatcsere pontként funkcionál a Bremen és az Amondis rendszerek felé:
|
||||||
|
1. **Bremen-Mave Import:** Külső adatok fogadása SFTP-n keresztül.
|
||||||
|
2. **Amondis-Mave Import:** Belső és külső adatcsere SMB (Samba) és SFTP protokollokon.
|
||||||
|
|
||||||
|
## 2. Felhasználók és Hozzáférés
|
||||||
|
┌──────────────────┬──────────────┬───────────────┬─────────────────┬───────────────────────────┐
|
||||||
|
│ Felhasználó │ Folyamat │ Típus │ Shell │ Feladat │
|
||||||
|
├──────────────────┼──────────────┼───────────────┼─────────────────┼───────────────────────────┤
|
||||||
|
│ mave-sftp │ Bremen-Mave │ Csak SFTP │ /sbin/nologin │ Bremen adatok importálása │
|
||||||
|
│ mave-amondis │ Amondis-Mave │ SFTP & SMB │ /sbin/nologin │ Amondis adatok kezelése │
|
||||||
|
└──────────────────┴──────────────┴───────────────┴─────────────────┴───────────────────────────┘
|
||||||
|
*Megjegyzés: Egyik felhasználó sem jogosult interaktív SSH (terminál) belépésre.*
|
||||||
|
|
||||||
|
## 3. Könyvtárstruktúra és Jogosultságok
|
||||||
|
|
||||||
|
### Bremen-Mave Import (mave-sftp)
|
||||||
|
┌────────────────────────────┬─────────────────────┬─────────────┬─────────────────────────────────┐
|
||||||
|
│ Elérési út │ Tulajdonos │ Jogosultság │ Szerep │
|
||||||
|
├────────────────────────────┼─────────────────────┼─────────────┼─────────────────────────────────┤
|
||||||
|
│ /home/mave-sftp │ root:root │ 755 │ SFTP Chroot Börtön │
|
||||||
|
│ /home/mave-sftp/feltoltes │ mave-sftp:mave-sftp │ 775 │ Írható mappa a Bremen adatoknak │
|
||||||
|
└────────────────────────────┴─────────────────────┴─────────────┴─────────────────────────────────┘
|
||||||
|
|
||||||
|
### Amondis-Mave Import (mave-amondis)
|
||||||
|
┌───────────────────────────────────────────┬───────────────────────────┬─────────────┬────────────────────────┐
|
||||||
|
│ Elérési út │ Tulajdonos │ Jogosultság │ Szerep │
|
||||||
|
├───────────────────────────────────────────┼───────────────────────────┼─────────────┼────────────────────────┤
|
||||||
|
│ /home/mave-amondis │ root:root │ 755 │ SFTP Home (nem írható) │
|
||||||
|
│ /home/mave-amondis/Schnittstellen │ root:root │ 755 │ SFTP Chroot Börtön │
|
||||||
|
│ /home/mave-amondis/Schnittstellen/Amondis │ mave-amondis:mave-amondis │ 775 │ Írható munkakönyvtár │
|
||||||
|
└───────────────────────────────────────────┴───────────────────────────┴─────────────┴────────────────────────┘
|
||||||
|
|
||||||
|
## 4. Hálózati Elérések
|
||||||
|
|
||||||
|
### SMB (Windows Megosztás)
|
||||||
|
* **Amondis Útvonal:** `\\10.102.1.202\mave-amondis\Schnittstellen\Amondis\APO`
|
||||||
|
* **Működés:** A Samba a `force user = mave-amondis` beállítást használja a jogosultsági hibák elkerülése érdekében.
|
||||||
|
|
||||||
|
### SFTP (Biztonságos FTP)
|
||||||
|
* **Bremen Kapcsolat:** `sftp://mave-sftp@10.102.1.202` (belépéskor a `feltoltes` mappát látja).
|
||||||
|
* **Amondis Kapcsolat:** `sftp://mave-amondis@10.102.1.202` (belépéskor az `Amondis` mappát látja).
|
||||||
|
|
||||||
|
## 5. Automatikus Értesítések (Monitoring)
|
||||||
|
Minden sikeres bejelentkezéskor (mindkét felhasználó esetén) e-mail értesítés érkezik az adminisztrátornak (`i.meszely@antares-apo.de`).
|
||||||
|
|
||||||
|
* **Script helye:** `/usr/local/sbin/sftp-notify.sh`
|
||||||
|
* **Működés:** A scriptet a PAM (Pluggable Authentication Modules) rendszer hívja meg minden `open_session` eseménynél. A script megkülönbözteti az SFTP (korlátozott) és az interaktív SSH belépéseket a felhasználó shellje alapján, majd elküldi az adatokat (felhasználó, távoli IP, időpont) e-mailben.
|
||||||
|
* **Log fájl:** `/tmp/sftp-notify.log` (hibakereséshez).
|
||||||
|
|
||||||
|
---
|
||||||
|
*Frissítve: 2026. március 24.*
|
||||||
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.
|
||||||
|
|
||||||
62
Dev/APS-SFTP01/SMB_Setup_HU.md
Normal file
62
Dev/APS-SFTP01/SMB_Setup_HU.md
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
# Samba (SMB) Megosztás Beállítása - APS-SFTP01 (mave-amondis)
|
||||||
|
|
||||||
|
Ez a leírás a `mave-amondis` felhasználó home könyvtárának megosztását mutatja be, aki **kizárólag SMB** hozzáféréssel rendelkezik (nem használ SFTP-t).
|
||||||
|
|
||||||
|
## 1. Előfeltételek (Rendszerfelhasználó)
|
||||||
|
Ellenőrizzük, hogy a felhasználó létezik-e, és a saját mappája az övé:
|
||||||
|
```bash
|
||||||
|
# Ha még nincs felhasználó:
|
||||||
|
# sudo useradd -m -s /sbin/nologin mave-amondis
|
||||||
|
|
||||||
|
# Jogosultságok ellenőrzése (Samba eléréshez 0700 vagy 0755 javasolt)
|
||||||
|
sudo chown mave-amondis:mave-amondis /home/mave-amondis
|
||||||
|
sudo chmod 700 /home/mave-amondis
|
||||||
|
```
|
||||||
|
|
||||||
|
## 2. Samba jelszó beállítása
|
||||||
|
A Samba saját adatbázist használ, így meg kell adni egy jelszót a felhasználónak:
|
||||||
|
```bash
|
||||||
|
sudo smbpasswd -a mave-amondis
|
||||||
|
```
|
||||||
|
|
||||||
|
## 3. Samba konfiguráció (/etc/samba/smb.conf)
|
||||||
|
Add hozzá a fájl végéhez az alábbi részt:
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[mave-amondis]
|
||||||
|
comment = Mave Amondis SMB Share
|
||||||
|
path = /home/mave-amondis
|
||||||
|
valid users = mave-amondis
|
||||||
|
public = no
|
||||||
|
writable = yes
|
||||||
|
browsable = yes
|
||||||
|
guest ok = no
|
||||||
|
create mask = 0644
|
||||||
|
directory mask = 0755
|
||||||
|
force user = mave-amondis
|
||||||
|
```
|
||||||
|
|
||||||
|
## 4. SELinux és Tűzfal (Fedora / RHEL esetén kötelező!)
|
||||||
|
A Fedora alapértelmezésben tiltja a Home könyvtárak megosztását és a Samba forgalmat.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# SELinux: Home könyvtárak engedélyezése Sambához
|
||||||
|
sudo setsebool -P samba_enable_home_dirs on
|
||||||
|
|
||||||
|
# Tűzfal: Samba szolgáltatás engedélyezése
|
||||||
|
sudo firewall-cmd --permanent --add-service=samba
|
||||||
|
sudo firewall-cmd --reload
|
||||||
|
```
|
||||||
|
|
||||||
|
## 5. Szolgáltatások indítása
|
||||||
|
```bash
|
||||||
|
sudo systemctl enable --now smb nmb
|
||||||
|
sudo systemctl restart smb
|
||||||
|
```
|
||||||
|
|
||||||
|
## 6. Csatlakozás (Windows)
|
||||||
|
Windows Intézőben:
|
||||||
|
`\\APS-SFTP01\mave-amondis`
|
||||||
|
|
||||||
|
---
|
||||||
|
*Megjegyzés: Mivel ez a felhasználó nem használ SFTP-t, nem ütközünk a ChrootDirectory (root-owner) korlátozásaiba.*
|
||||||
45
Dev/APS-SFTP01/sftp-notify.sh
Normal file
45
Dev/APS-SFTP01/sftp-notify.sh
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Locale beállítása, hogy a mail parancs ne hibázzon karakterkódolás miatt
|
||||||
|
export LC_ALL=C.UTF-8
|
||||||
|
export LANG=C.UTF-8
|
||||||
|
|
||||||
|
# Log fájl a hibakereséshez (adj rá írási jogot: chmod 666 /tmp/sftp-notify.log)
|
||||||
|
LOGFILE="/tmp/sftp-notify.log"
|
||||||
|
|
||||||
|
# Csak a sikeres bejelentkezésekről (open_session) küldünk értesítést
|
||||||
|
if [ "$PAM_TYPE" = "open_session" ]; then
|
||||||
|
|
||||||
|
# Környezet mentése logba
|
||||||
|
echo "--- $(/usr/bin/date): Login attempt for $PAM_USER from $PAM_RHOST ---" >> "$LOGFILE"
|
||||||
|
|
||||||
|
# Felhasználó shelljének ellenőrzése
|
||||||
|
USER_SHELL=$(/usr/bin/getent passwd "$PAM_USER" | /usr/bin/cut -d: -f7)
|
||||||
|
|
||||||
|
# Típus meghatározása
|
||||||
|
if [[ "$USER_SHELL" == *"/nologin" ]] || [[ "$USER_SHELL" == *"/false" ]]; then
|
||||||
|
LOGIN_TYPE="SFTP (Restricted)"
|
||||||
|
else
|
||||||
|
LOGIN_TYPE="SSH (Interactive)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
MESSAGE="Login értesítés ($PAM_SERVICE):
|
||||||
|
Típus: $LOGIN_TYPE
|
||||||
|
Felhasználó: $PAM_USER
|
||||||
|
Távoli gép: $PAM_RHOST
|
||||||
|
Shell: $USER_SHELL
|
||||||
|
Időpont: $(/usr/bin/date)
|
||||||
|
Host: $(/usr/bin/hostname)"
|
||||||
|
|
||||||
|
# Email küldés (abszolút útvonallal)
|
||||||
|
# Ellenőrizd, hogy a 'mail' parancs a /usr/sbin/mail helyen van-e!
|
||||||
|
echo "$MESSAGE" | /usr/sbin/mail -s "$LOGIN_TYPE: $PAM_USER" i.meszely@antares-apo.de >> "$LOGFILE" 2>&1
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "Siker: Email elküldve." >> "$LOGFILE"
|
||||||
|
else
|
||||||
|
echo "HIBA: Az email küldés sikertelen volt! (Exit code: $?)" >> "$LOGFILE"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
45
Dev/APS-SFTP01/sftp-notify_de.sh
Normal file
45
Dev/APS-SFTP01/sftp-notify_de.sh
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Locale-Einstellungen, damit der Mail-Befehl keine Zeichenkodierungsfehler verursacht
|
||||||
|
export LC_ALL=C.UTF-8
|
||||||
|
export LANG=C.UTF-8
|
||||||
|
|
||||||
|
# Logdatei für das Debugging (Schreibrechte setzen: chmod 666 /tmp/sftp-notify.log)
|
||||||
|
LOGFILE="/tmp/sftp-notify.log"
|
||||||
|
|
||||||
|
# Benachrichtigung nur bei erfolgreichen Anmeldungen (open_session)
|
||||||
|
if [ "$PAM_TYPE" = "open_session" ]; then
|
||||||
|
|
||||||
|
# Umgebung in Log speichern
|
||||||
|
echo "--- $(/usr/bin/date): Anmeldeversuch für $PAM_USER von $PAM_RHOST ---" >> "$LOGFILE"
|
||||||
|
|
||||||
|
# Überprüfung der Benutzer-Shell
|
||||||
|
USER_SHELL=$(/usr/bin/getent passwd "$PAM_USER" | /usr/bin/cut -d: -f7)
|
||||||
|
|
||||||
|
# Bestimmung des Typs
|
||||||
|
if [[ "$USER_SHELL" == *"/nologin" ]] || [[ "$USER_SHELL" == *"/false" ]]; then
|
||||||
|
LOGIN_TYPE="SFTP (Eingeschränkt)"
|
||||||
|
else
|
||||||
|
LOGIN_TYPE="SSH (Interaktiv)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
MESSAGE="Anmeldebenachrichtigung ($PAM_SERVICE):
|
||||||
|
Typ: $LOGIN_TYPE
|
||||||
|
Benutzer: $PAM_USER
|
||||||
|
Remote-Host: $PAM_RHOST
|
||||||
|
Shell: $USER_SHELL
|
||||||
|
Zeitpunkt: $(/usr/bin/date)
|
||||||
|
Host: $(/usr/bin/hostname)"
|
||||||
|
|
||||||
|
# E-Mail-Versand (mit absolutem Pfad)
|
||||||
|
# Prüfen, ob der 'mail'-Befehl unter /usr/sbin/mail verfügbar ist!
|
||||||
|
echo "$MESSAGE" | /usr/sbin/mail -s "$LOGIN_TYPE: $PAM_USER" i.meszely@antares-apo.de >> "$LOGFILE" 2>&1
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "Erfolg: E-Mail gesendet." >> "$LOGFILE"
|
||||||
|
else
|
||||||
|
echo "FEHLER: E-Mail-Versand fehlgeschlagen! (Exit code: $?)" >> "$LOGFILE"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
11
Dev/APS-SFTP01/ssh_user_im_ssd.conf.md
Normal file
11
Dev/APS-SFTP01/ssh_user_im_ssd.conf.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
[mave-amondis]
|
||||||
|
comment = Mave Amondis SMB Share
|
||||||
|
path = /home/mave-amondis
|
||||||
|
valid users = mave-amondis
|
||||||
|
public = no
|
||||||
|
writable = yes
|
||||||
|
browsable = yes
|
||||||
|
guest ok = no
|
||||||
|
create mask = 0644
|
||||||
|
directory mask = 0755
|
||||||
|
force user = mave-amondis
|
||||||
13
Dev/APS-SMTP01/Adduser_für_SMTP_Relay.md
Normal file
13
Dev/APS-SMTP01/Adduser_für_SMTP_Relay.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
useradd -M -s /sbin/nologin n8nuser
|
||||||
|
passwd n8nuser
|
||||||
|
|
||||||
|
|
||||||
|
sudo postconf -e 'relayhost = [10.102.1.201]'
|
||||||
|
sudo postconf -e 'myorigin = antares-apo.de'
|
||||||
|
sudo postconf -e 'smtp_generic_maps = hash:/etc/postfix/generic'
|
||||||
|
|
||||||
|
echo "apslinux@aps-sftp01.localdomain sftp-alert@antares-apo.de" | sudo tee /etc/postfix/generic
|
||||||
|
sudo postmap /etc/postfix/generic
|
||||||
|
|
||||||
|
sudo systemctl restart postfix
|
||||||
|
|
||||||
6
Dev/n8n/docker compose refresh.md
Normal file
6
Dev/n8n/docker compose refresh.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
docker compose pull
|
||||||
|
|
||||||
|
docker compose up -d
|
||||||
|
|
||||||
|
docker image prune -f
|
||||||
|
|
||||||
8
Doc/Aps/User/mave-sftp.md
Normal file
8
Doc/Aps/User/mave-sftp.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Username: mave-sftp
|
||||||
|
Password : asdWFWF45mfEGGEwf
|
||||||
|
Server : 10.102.1.202
|
||||||
|
Server : aps-sftp01
|
||||||
|
|
||||||
|
User kann schrieben unten die Schnittstellen/Bremen/ Ordner
|
||||||
|
|
||||||
|
|
||||||
@@ -18,3 +18,20 @@ https://www.tc-telefon.de/Kontakt/
|
|||||||
Kosten aps - Continia - kosten.aps.7739934@cdc.continiaonline.com
|
Kosten aps - Continia - kosten.aps.7739934@cdc.continiaonline.com
|
||||||
Einkauf aps - Continia - einkauf.aps.7739934@cdc.continiaonline.com
|
Einkauf aps - Continia - einkauf.aps.7739934@cdc.continiaonline.com
|
||||||
|
|
||||||
|
Informationstechnologie
|
||||||
|
Software
|
||||||
|
|
||||||
|
tv-token api
|
||||||
|
297eca2e0221361646d3aa88f4b00e6f
|
||||||
|
|
||||||
|
curl -H 'X-Auth-Token: 297eca2e0221361646d3aa88f4b00e6f' https://10.102.1.201/api/v0
|
||||||
|
|
||||||
|
|
||||||
|
jasmin gresen
|
||||||
|
|
||||||
|
PG19 : Officin
|
||||||
|
|
||||||
|
15454
|
||||||
|
|
||||||
|
ilka banemann - laptop - outlook (profile)
|
||||||
|
inten im Officein drucker von Iphone
|
||||||
|
|||||||
BIN
Doc/Bilders/Development.png
Normal file
BIN
Doc/Bilders/Development.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 877 KiB |
BIN
Doc/Bilders/Infrastrukture.png
Normal file
BIN
Doc/Bilders/Infrastrukture.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 MiB |
BIN
Doc/Bilders/Infrastrukture2.png
Normal file
BIN
Doc/Bilders/Infrastrukture2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.1 MiB |
BIN
Doc/Bilders/Knowledge Base.png
Normal file
BIN
Doc/Bilders/Knowledge Base.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 789 KiB |
BIN
Doc/Bilders/Scripts.png
Normal file
BIN
Doc/Bilders/Scripts.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 760 KiB |
@@ -9,11 +9,15 @@ Wifi: a494052388958b494052388958
|
|||||||
Wifi: ASR22Antares
|
Wifi: ASR22Antares
|
||||||
KP: MuVD9Zcc4HK0jDQ4HzMt
|
KP: MuVD9Zcc4HK0jDQ4HzMt
|
||||||
|
|
||||||
|
Sftp : mave-sftp : asdWFWF45mfEGGEwf
|
||||||
|
SMB : mave-amondis : asdWFasdas43fEGGCf
|
||||||
|
|
||||||
Smtp : mdmuser : Q8ZdNSEFCPwDCpoPsage
|
Smtp : mdmuser : Q8ZdNSEFCPwDCpoPsage
|
||||||
Smtp : n8nuser : Q8ZdNSEFCPwDCpoPsage
|
Smtp : n8nuser : Q8ZdNSEFCPwDCpoPsage
|
||||||
Smtp : drucker : Q8ZdNSrFCpwdCPoPsAge
|
Smtp : drucker : Q8ZdNSrFCpwdCPoPsAge
|
||||||
Smtp : elpro : Q8ZwerrRTHwdDfoPsAge
|
Smtp : elpro : Q8ZwerrRTHwdDfoPsAge
|
||||||
Smtp : maveuser: Q8456rrRgwegwDoRGSRQ
|
Smtp : maveuser: Q8456rrRgwegwDoRGSRQ
|
||||||
|
Smtp : useralert : Q845Rr345gwDoRsdRQ
|
||||||
|
|
||||||
monitor - GNYOJTPFASNEEICPSV
|
monitor - GNYOJTPFASNEEICPSV
|
||||||
|
|
||||||
@@ -172,3 +176,10 @@ RCPT TO:<istvan@meszely.eu>
|
|||||||
|
|
||||||
|
|
||||||
00:08:7B:25:DD:F3
|
00:08:7B:25:DD:F3
|
||||||
|
|
||||||
|
Kapelou2025
|
||||||
|
|
||||||
|
Schliesinger mail:
|
||||||
|
wegner@
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
24
Doc/Microsoft o365 URL.md
Normal file
24
Doc/Microsoft o365 URL.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
1. Kulcsfontosságú URL-ek (FQDN-ek)
|
||||||
|
A login és az outlook mellett a következőket is engedélyezni kell (jellemzően a 443-as porton):
|
||||||
|
|
||||||
|
* Bejelentkezés és Hitelesítés:
|
||||||
|
* *.microsoftonline.com
|
||||||
|
* *.microsoft.com
|
||||||
|
* *.msftauth.net
|
||||||
|
* *.msauth.net
|
||||||
|
* Outlook/OWA és Kapcsolódó szolgáltatások:
|
||||||
|
* *.office.com
|
||||||
|
* *.office365.com
|
||||||
|
* *.outlook.com
|
||||||
|
* Statikus tartalom és CDN (nélkülük lassú vagy szétesik az oldal):
|
||||||
|
* *.msedge.net
|
||||||
|
* *.msecnd.net
|
||||||
|
* *.res.office365.com
|
||||||
|
|
||||||
|
|
||||||
|
*.outlook.office.com
|
||||||
|
*.office.com
|
||||||
|
*.microsoftonline.com
|
||||||
|
*.msftauth.net
|
||||||
|
|
||||||
|
https://learn.microsoft.com/en-us/microsoft-365/enterprise/urls-and-ip-address-ranges?view=o365-worldwide
|
||||||
31
Doc/O365_Winmail_Dat_Fix_SOP_de.md
Normal file
31
Doc/O365_Winmail_Dat_Fix_SOP_de.md
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# SOP: Behebung winmail.dat Anhang-Fehler (Office 365)
|
||||||
|
|
||||||
|
## Problembeschreibung
|
||||||
|
Wenn E-Mails an externe Empfänger gesendet werden, werden Anhänge (z. B. PDF-Dateien) nicht korrekt angezeigt, sondern sind in einer einzigen `winmail.dat`-Datei verpackt. Dies wird durch das Outlook-eigene **TNEF (Transport Neutral Encapsulation Format)** verursacht, das andere E-Mail-Clients nicht interpretieren können.
|
||||||
|
|
||||||
|
## Lösungsmöglichkeiten
|
||||||
|
|
||||||
|
### 1. Globale Lösung (Exchange Online Admin) - EMPFOHLEN
|
||||||
|
Diese Einstellung gilt für die gesamte Organisation und deaktiviert die TNEF-Codierung auf Serverebene für externe Empfänger.
|
||||||
|
|
||||||
|
1. Melden Sie sich im **Exchange Admin Center** an.
|
||||||
|
2. Navigieren Sie zu: **Mail flow** (Nachrichtenfluss) -> **Remote domains** (Remote-Domänen).
|
||||||
|
3. Wählen Sie die Domäne **Default** (*) aus.
|
||||||
|
4. Suchen Sie die Einstellung **Use Table Neutral Encapsulation Format (TNEF)**.
|
||||||
|
5. Setzen Sie den Wert auf **Never** (Niemals).
|
||||||
|
6. Speichern Sie die Änderungen.
|
||||||
|
|
||||||
|
### 2. PowerShell-Lösung (Schnellere Administration)
|
||||||
|
Führen Sie den folgenden Befehl im Exchange Online PowerShell-Modul aus:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Set-RemoteDomain -Identity Default -TNEFEnabled $false
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Einzelne Benutzerlösung (Outlook Client)
|
||||||
|
Wenn die Korrektur nur an einem PC erfolgen soll:
|
||||||
|
1. **Datei -> Optionen -> E-Mail**.
|
||||||
|
2. Im Abschnitt **Nachrichtenformat**: *"Beim Senden von Nachrichten im Rich-Text-Format an externe Empfänger"* -> Auf **In HTML-Format konvertieren** umstellen.
|
||||||
|
|
||||||
|
---
|
||||||
|
*Erstellt am: 24. März 2026*
|
||||||
31
Doc/O365_Winmail_Dat_Fix_SOP_hu.md
Normal file
31
Doc/O365_Winmail_Dat_Fix_SOP_hu.md
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# SOP: winmail.dat csatolmány hiba javítása (Office 365)
|
||||||
|
|
||||||
|
## Probléma leírása
|
||||||
|
Külső címzetteknek küldött e-mailek esetén a csatolmányok (például PDF fájlok) nem megfelelően érkeznek meg, hanem egyetlen `winmail.dat` fájlba csomagolva látszanak. Ezt az Outlook saját **TNEF (Transport Neutral Encapsulation Format)** kódolása okozza, amit más levelezőrendszerek nem tudnak értelmezni.
|
||||||
|
|
||||||
|
## Megoldási lehetőségek
|
||||||
|
|
||||||
|
### 1. Globális megoldás (Exchange Online Admin) - JAVASOLT
|
||||||
|
Ez a beállítás az egész szervezetre vonatkozik, és szerver szinten tiltja le a TNEF kódolást a külső címzettek felé.
|
||||||
|
|
||||||
|
1. Lépj be az **Exchange Admin Center** felületre.
|
||||||
|
2. Navigálj ide: **Mail flow** (Üzenetküldés) -> **Remote domains** (Távoli tartományok).
|
||||||
|
3. Válaszd ki a **Default** (*) tartományt.
|
||||||
|
4. Keresd meg a **Use Table Neutral Encapsulation Format (TNEF)** beállítást.
|
||||||
|
5. Állítsd az értékét **Never** (Soha) típusra.
|
||||||
|
6. Mentsd el a módosításokat.
|
||||||
|
|
||||||
|
### 2. PowerShell megoldás (Gyorsabb adminisztráció)
|
||||||
|
Futtasd az alábbi parancsot az Exchange Online PowerShell modulban:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Set-RemoteDomain -Identity Default -TNEFEnabled $false
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Egyéni felhasználói megoldás (Outlook kliens)
|
||||||
|
Ha csak egy gépen kell javítani:
|
||||||
|
1. **Fájl -> Beállítások -> Posta**.
|
||||||
|
2. Az **Üzenetformátum** résznél: *"Üzenetek küldése RTF formátumban külső címzetteknek"* -> Állítsd át **Konvertálás HTML formátumra** értékre.
|
||||||
|
|
||||||
|
---
|
||||||
|
*Készült: 2026. március 24.*
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
+ Angel
|
|
||||||
+ Aalbek
|
|
||||||
+ Beek
|
|
||||||
Donau
|
|
||||||
+ Eider
|
|
||||||
+ Elbe
|
|
||||||
+ Emmer
|
|
||||||
+ Ems
|
|
||||||
Enz
|
|
||||||
+ Fintau
|
|
||||||
+ Flottbek
|
|
||||||
+ Goldbach
|
|
||||||
+ Hamme
|
|
||||||
+ Hellbach
|
|
||||||
+ Jasenitz
|
|
||||||
+ Juemme
|
|
||||||
+ Linde
|
|
||||||
+ Orthbrookgraben
|
|
||||||
+ Lottbek
|
|
||||||
+ Bille
|
|
||||||
+ Iller
|
|
||||||
Ahr_Struensee-Haus
|
|
||||||
+ Müritz
|
|
||||||
+ Weser
|
|
||||||
+ Radegast
|
|
||||||
+ Seseke
|
|
||||||
+ Siede
|
|
||||||
+ Zorge
|
|
||||||
Elbe 01 - Stuensee - Haus
|
|
||||||
|
|
||||||
|
|
||||||
Auf Elbe:
|
|
||||||
+ Elena Rattelmüller
|
|
||||||
+ Gloria Blewussi
|
|
||||||
+ Sarah Bidar
|
|
||||||
+ Kevin Vischer
|
|
||||||
+ Saskia Koiteck
|
|
||||||
+ Tamara Look
|
|
||||||
+ Marie Kopte
|
|
||||||
+ Vanessa Mettenbrink
|
|
||||||
+ Anne Häusler
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
Liebe Kolleginnen und Kollegen,
|
|
||||||
|
|
||||||
auf dem Drucker Elbe im Erste Etage stehen folgende E-Mail-Adressen für „Senden als E-Mail“ zur Verfügung:
|
|
||||||
|
|
||||||
Kosten aps – Continia
|
|
||||||
kosten.aps.7739934@cdc.continiaonline.com
|
|
||||||
|
|
||||||
Einkauf aps – Continia
|
|
||||||
einkauf.aps.7739934@cdc.continiaonline.com
|
|
||||||
|
|
||||||
Viele Grüße
|
|
||||||
IT Team
|
|
||||||
@@ -34,6 +34,7 @@ A kedvenc programozási nyelvem a Python.
|
|||||||
Weboldalak amiket hasznälni szoktunk:
|
Weboldalak amiket hasznälni szoktunk:
|
||||||
mermaid.live
|
mermaid.live
|
||||||
|
|
||||||
Általában fedora linux alatt dolgozunk.
|
Általában szerver oldalon Fedora Linux alatt dolgozunk.
|
||||||
Második leggyakrabban használt linux az Ubuntu alapu.
|
A második leggyakrabban használt linux az Ubuntu alapú (szintén szerver).
|
||||||
Virtualizácionk Proxmox VE
|
Kliens oldalon (munkaállomás) Windows 11-et vagy macOS-t használunk.
|
||||||
|
Virtualizációnk Proxmox VE.
|
||||||
|
|||||||
BIN
Personal/Anamnesebogen__-_Einverst_ndniserkl_rung.doc
Normal file
BIN
Personal/Anamnesebogen__-_Einverst_ndniserkl_rung.doc
Normal file
Binary file not shown.
2
Personal/Films.md
Normal file
2
Personal/Films.md
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
https://www.imdb.com/de/title/tt30923123/
|
||||||
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
useradd -M -s /sbin/nologin n8nuser
|
|
||||||
passwd n8nuser
|
|
||||||
37
Scripts/bash/ssh_login_alert_de.sh
Normal file
37
Scripts/bash/ssh_login_alert_de.sh
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------
|
||||||
|
# SSH Login Alert Script (DE)
|
||||||
|
# Dieses Skript sendet eine E-Mail an eine angegebene Adresse,
|
||||||
|
# wenn sich ein Benutzer über SSH anmeldet.
|
||||||
|
# ----------------------------------------------------------------
|
||||||
|
|
||||||
|
# Geben Sie hier die E-Mail-Adresse ein, an die die Benachrichtigung gesendet werden soll.
|
||||||
|
RECIPIENT_EMAIL="ihre_email_adresse@example.com"
|
||||||
|
|
||||||
|
# Betreff der E-Mail. Der Befehl `hostname` fügt den Servernamen ein.
|
||||||
|
SUBJECT="SSH-Anmeldung: $USER auf Server $(hostname -f)"
|
||||||
|
|
||||||
|
# Extrahiere nur die IP-Adresse aus der SSH_CLIENT-Variablen.
|
||||||
|
# Z. B. "1.2.3.4 56789 22" -> "1.2.3.4"
|
||||||
|
CLIENT_IP=${SSH_CLIENT%% *}
|
||||||
|
|
||||||
|
# E-Mail-Inhalt. 'cat << EOF' ist eine elegante Art, mehrzeiligen Text zu verarbeiten.
|
||||||
|
BODY=$(cat << EOF
|
||||||
|
Eine SSH-Anmeldung ist auf dem Server $(hostname -f) erfolgt.
|
||||||
|
|
||||||
|
Details:
|
||||||
|
Benutzer: $USER
|
||||||
|
IP-Adresse: $CLIENT_IP
|
||||||
|
Zeitpunkt: $(date +"%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
|
--- Aktuell angemeldete Benutzer ---
|
||||||
|
$(who)
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
# E-Mail mit dem 'mail'-Befehl senden.
|
||||||
|
# Nur senden, wenn die Variable SSH_CLIENT existiert (d. h. es handelt sich um eine SSH-Verbindung).
|
||||||
|
if [ -n "$SSH_CLIENT" ]; then
|
||||||
|
echo "$BODY" | mail -s "$SUBJECT" "$RECIPIENT_EMAIL"
|
||||||
|
fi
|
||||||
92
Scripts/python/check_file_age.py
Normal file
92
Scripts/python/check_file_age.py
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Fájl kor ellenőrző script n8n automatizáláshoz.
|
||||||
|
Használat: python3 check_file_age.py <mappa_utvonal> <max_perc>
|
||||||
|
|
||||||
|
Kimenet: JSON formátum (n8n barát)
|
||||||
|
Exit kód: 0 (ha minden rendben), 1 (ha régi fájlt talált vagy hiba történt)
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
import time
|
||||||
|
import sys
|
||||||
|
import json
|
||||||
|
|
||||||
|
def check_files(directory, max_age_minutes=40):
|
||||||
|
now = time.time()
|
||||||
|
max_age_seconds = max_age_minutes * 60
|
||||||
|
too_old_files = []
|
||||||
|
|
||||||
|
# Mappa létezésének ellenőrzése
|
||||||
|
if not os.path.exists(directory):
|
||||||
|
return {
|
||||||
|
"status": "error",
|
||||||
|
"alert": True,
|
||||||
|
"message": f"A megadott könyvtár nem létezik: {directory}",
|
||||||
|
"files": []
|
||||||
|
}
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Fájlok listázása
|
||||||
|
files_in_dir = os.listdir(directory)
|
||||||
|
|
||||||
|
for filename in files_in_dir:
|
||||||
|
filepath = os.path.join(directory, filename)
|
||||||
|
|
||||||
|
# Csak a fájlokat ellenőrizzük (mappákat nem)
|
||||||
|
if os.path.isfile(filepath):
|
||||||
|
file_age_seconds = now - os.path.getmtime(filepath)
|
||||||
|
|
||||||
|
if file_age_seconds > max_age_seconds:
|
||||||
|
age_min = round(file_age_seconds / 60, 1)
|
||||||
|
too_old_files.append({
|
||||||
|
"file": filename,
|
||||||
|
"age_minutes": age_min,
|
||||||
|
"last_modified": time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.path.getmtime(filepath)))
|
||||||
|
})
|
||||||
|
|
||||||
|
if too_old_files:
|
||||||
|
return {
|
||||||
|
"status": "alert",
|
||||||
|
"alert": True,
|
||||||
|
"message": f"Találtam {len(too_old_files)} db fájlt, ami régebbi mint {max_age_minutes} perc!",
|
||||||
|
"directory": directory,
|
||||||
|
"limit_minutes": max_age_minutes,
|
||||||
|
"files": too_old_files
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
"status": "ok",
|
||||||
|
"alert": False,
|
||||||
|
"message": "Minden fájl friss.",
|
||||||
|
"directory": directory,
|
||||||
|
"files": []
|
||||||
|
}
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
"status": "error",
|
||||||
|
"alert": True,
|
||||||
|
"message": f"Hiba történt az ellenőrzés közben: {str(e)}",
|
||||||
|
"files": []
|
||||||
|
}
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
# Paraméterek átvétele a parancssorból
|
||||||
|
if len(sys.argv) < 2:
|
||||||
|
print(json.dumps({"status": "error", "message": "Hiányzó paraméter! Használat: python3 check_file_age.py <mappa> <perc>"}))
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
dir_to_check = sys.argv[1]
|
||||||
|
age_limit = int(sys.argv[2]) if len(sys.argv) > 2 else 40
|
||||||
|
|
||||||
|
result = check_files(dir_to_check, age_limit)
|
||||||
|
|
||||||
|
# JSON kimenet az n8n számára
|
||||||
|
print(json.dumps(result, indent=2))
|
||||||
|
|
||||||
|
# Exit code beállítása az n8n SSH Node számára
|
||||||
|
if result.get("alert"):
|
||||||
|
sys.exit(1)
|
||||||
|
else:
|
||||||
|
sys.exit(0)
|
||||||
92
Scripts/python/check_file_age_de.py
Normal file
92
Scripts/python/check_file_age_de.py
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Skript zur Überprüfung des Dateialters für n8n-Automatisierung.
|
||||||
|
Verwendung: python3 check_file_age_de.py <verzeichnispfad> <max_minuten>
|
||||||
|
|
||||||
|
Ausgabe: JSON-Format (n8n-freundlich)
|
||||||
|
Exit-Code: 0 (wenn alles ok), 1 (wenn eine alte Datei gefunden wurde oder ein Fehler auftrat)
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
import time
|
||||||
|
import sys
|
||||||
|
import json
|
||||||
|
|
||||||
|
def check_files(directory, max_age_minutes=40):
|
||||||
|
now = time.time()
|
||||||
|
max_age_seconds = max_age_minutes * 60
|
||||||
|
too_old_files = []
|
||||||
|
|
||||||
|
# Überprüfung, ob das Verzeichnis existiert
|
||||||
|
if not os.path.exists(directory):
|
||||||
|
return {
|
||||||
|
"status": "error",
|
||||||
|
"alert": True,
|
||||||
|
"message": f"Das angegebene Verzeichnis existiert nicht: {directory}",
|
||||||
|
"files": []
|
||||||
|
}
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Dateien auflisten
|
||||||
|
files_in_dir = os.listdir(directory)
|
||||||
|
|
||||||
|
for filename in files_in_dir:
|
||||||
|
filepath = os.path.join(directory, filename)
|
||||||
|
|
||||||
|
# Nur Dateien prüfen (keine Verzeichnisse)
|
||||||
|
if os.path.isfile(filepath):
|
||||||
|
file_age_seconds = now - os.path.getmtime(filepath)
|
||||||
|
|
||||||
|
if file_age_seconds > max_age_seconds:
|
||||||
|
age_min = round(file_age_seconds / 60, 1)
|
||||||
|
too_old_files.append({
|
||||||
|
"file": filename,
|
||||||
|
"age_minutes": age_min,
|
||||||
|
"last_modified": time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.path.getmtime(filepath)))
|
||||||
|
})
|
||||||
|
|
||||||
|
if too_old_files:
|
||||||
|
return {
|
||||||
|
"status": "alert",
|
||||||
|
"alert": True,
|
||||||
|
"message": f"{len(too_old_files)} Datei(en) gefunden, die älter als {max_age_minutes} Minuten sind!",
|
||||||
|
"directory": directory,
|
||||||
|
"limit_minutes": max_age_minutes,
|
||||||
|
"files": too_old_files
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
"status": "ok",
|
||||||
|
"alert": False,
|
||||||
|
"message": "Alle Dateien sind aktuell.",
|
||||||
|
"directory": directory,
|
||||||
|
"files": []
|
||||||
|
}
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
"status": "error",
|
||||||
|
"alert": True,
|
||||||
|
"message": f"Fehler während der Überprüfung aufgetreten: {str(e)}",
|
||||||
|
"files": []
|
||||||
|
}
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
# Parameter aus der Befehlszeile übernehmen
|
||||||
|
if len(sys.argv) < 2:
|
||||||
|
print(json.dumps({"status": "error", "message": "Fehlender Parameter! Verwendung: python3 check_file_age_de.py <verzeichnis> <minuten>"}))
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
dir_to_check = sys.argv[1]
|
||||||
|
age_limit = int(sys.argv[2]) if len(sys.argv) > 2 else 40
|
||||||
|
|
||||||
|
result = check_files(dir_to_check, age_limit)
|
||||||
|
|
||||||
|
# JSON-Ausgabe für n8n
|
||||||
|
print(json.dumps(result, indent=2))
|
||||||
|
|
||||||
|
# Exit-Code für den n8n SSH-Node festlegen
|
||||||
|
if result.get("alert"):
|
||||||
|
sys.exit(1)
|
||||||
|
else:
|
||||||
|
sys.exit(0)
|
||||||
70
Scripts/python/md_to_pdf_recursive.py
Normal file
70
Scripts/python/md_to_pdf_recursive.py
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
"""
|
||||||
|
Használati útmutató / Usage:
|
||||||
|
|
||||||
|
1. Telepítés / Installation:
|
||||||
|
pip install markdown-pdf
|
||||||
|
|
||||||
|
2. Futtatás / Execution:
|
||||||
|
- Aktuális könyvtár bejárása:
|
||||||
|
python Scripts/python/md_to_pdf_recursive.py
|
||||||
|
- Konkrét könyvtár megadása:
|
||||||
|
python Scripts/python/md_to_pdf_recursive.py Dev/APS-SFTP01
|
||||||
|
|
||||||
|
A script rekurzívan végigjárja a megadott könyvtárat, és minden .md fájl mellé
|
||||||
|
létrehoz egy azonos nevű .pdf fájlt. A .git, .venv és __pycache__ könyvtárakat kihagyja.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
from markdown_pdf import Section, MarkdownPdf
|
||||||
|
|
||||||
|
def convert_md_to_pdf(root_dir):
|
||||||
|
"""
|
||||||
|
Rekurzívan végigjárja a megadott könyvtárat és minden .md fájlból PDF-et készít.
|
||||||
|
"""
|
||||||
|
print(f"Keresés indítása a következő könyvtárban: {root_dir}")
|
||||||
|
|
||||||
|
# Kizárandó könyvtárak (pl. git, virtuális környezet)
|
||||||
|
exclude_dirs = {'.git', '.venv', '__pycache__', 'node_modules'}
|
||||||
|
|
||||||
|
count = 0
|
||||||
|
for root, dirs, files in os.walk(root_dir):
|
||||||
|
# Alkönyvtárak szűrése (helyben módosítva a dirs listát)
|
||||||
|
dirs[:] = [d for d in dirs if d not in exclude_dirs]
|
||||||
|
|
||||||
|
for file in files:
|
||||||
|
if file.endswith(".md"):
|
||||||
|
md_path = os.path.join(root, file)
|
||||||
|
pdf_path = os.path.splitext(md_path)[0] + ".pdf"
|
||||||
|
|
||||||
|
print(f"Konvertálás: {md_path} -> {pdf_path}")
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Markdown olvasása
|
||||||
|
with open(md_path, "r", encoding="utf-8") as f:
|
||||||
|
md_content = f.read()
|
||||||
|
|
||||||
|
# PDF generálása
|
||||||
|
pdf = MarkdownPdf(toc_level=2)
|
||||||
|
pdf.add_section(Section(md_content, toc=False))
|
||||||
|
pdf.save(pdf_path)
|
||||||
|
|
||||||
|
count += 1
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Hiba a fájl feldolgozása közben ({md_path}): {e}")
|
||||||
|
|
||||||
|
print(f"\nKész! Összesen {count} fájl lett konvertálva.")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
# Ha nincs megadva útvonal, az aktuális könyvtárat használja
|
||||||
|
target_path = sys.argv[1] if len(sys.argv) > 1 else "."
|
||||||
|
|
||||||
|
# Ellenőrizzük a függőséget
|
||||||
|
try:
|
||||||
|
import markdown_pdf
|
||||||
|
except ImportError:
|
||||||
|
print("Hiba: A 'markdown-pdf' könyvtár nincs telepítve.")
|
||||||
|
print("Telepítés: pip install markdown-pdf")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
convert_md_to_pdf(target_path)
|
||||||
Reference in New Issue
Block a user