#
# IPC 11.4
#
# <-> MODULAR <->
#
#- CAMS werden in einer cams.cfg vorkonfiguriert und jenachdem ob davon ein file im cams/ ordner liegt,
# ist es ENABLED oder eben DISABLED und es können auch mehrere des gleichen typs installiert werden...
#- Nurnoch ein Watchdog Script welches für jede ENABLED CAM einzeln an/aus geschaltet werden kann
#- Die OnlineScripte werden als Addons vermerkt und können somit besser gemanaged werden...
#- Neue Update Option um nurnoch einzelne geupdatete IPC-Files zu aktuallisieren anstatt IPC
# komplett neu zu installiern...
#
#- Regelmässige interne Sicherheitsüberprüfungen ob standard Passwörter geändert wurden ansonsten
# "terminiert" sich IPC nach 4 Wochen selbst...
#- IAM: "IPC Access Management" zur Zugriffssteuerung auf das IPC Webif
#
IPC WebIf:
standard Hauptmenü oben rechts mit: Home, Manager (Addons/CAMs/Control/Editor/Updates), SysInfo, Tools, Links, Forum
dadrunter die CAMS die enabled sind (siehe unten) inkl. ggf cam-webif links...
Home: Paketversion etc zieht in den Manager um...
Manager: (einzelne elemente wie beim bisherigen Control als "hide", aufklappbar)
- IAM: "IPC Access Management" zur Zugriffssteuerung auf das IPC Webif - es können benutzer angelegt werden die nur auf bestimmte Menü-Links Zugriff haben, zb "SysInfo" oder "SysInfo,cccam,oscam" oder "FULL"
- Addons: die OnlineScripts anzeigen/abfragen und ggf deinstallieren
(*) sowie anzeigen welche installiert sind (und wann)
- CAMs: anzeigen welche CAMS enabled sind und welche, laut cams.cfg zur verfügung stünden...
ggf möglichkeit geben wie über " ipc cams " neue zu installieren oder zu deinstallieren (disable=rm camname.cfg)
- Control: wie das bisherige control als menue jedoch abgeändert jenachdem welche CAM enabled ist und
in einer tabelle aufgelistet wo sich der zellenhintergrund auf gruen/rot ändern...
zusätzlich muss noch für jede CAM einstellbar gemacht werden ob der WATCHDOG an/aus sein soll...
..somit könnte man sich ersparen CRON jedesmal mit aus zu machen..
..und speichern bei änderung (durch übernehmen knopf oä.) in die camname.cfg
- Editor: beinahe wie der bisherige, nur abhängig davon welche CAMS enabled sind und welche VARs
echte files sein könnten (wenn sie jedoch nicht existieren, müssen sie neu erstellbar sein!)
evtl. unterteilen in IPC relevante configs (ipc.cfg,<camname>.cfg) und CAM configs...
- Updates: kombination aus bisherigem Paketversion's vergleich und " ipc update -files "
..ob einzelne IPC files seit der Installation erneuert wurden..
(*) OnlineScripts umbauen sodass im ordner /var/emu/addons/ ein File liegt (filename) wann
es installed wurde und auch abhängig gemacht wird ob es nur einmal installiert werden kann (zb tmp2ram.sh)
oder mehrmals (zb DDNSupdater.sh) und somit auch aufgelistet/deinstalliert werden könnte...
wenn mehmals dann muss es entweder mit einer fortlaufenden Zahl umbenannt werden oder
ein 'profilname' angegeben werden (ähnlich wie CAMNAME)
-----------
## -- Erklärungs-code <snips>
ipc/index.php ...
abfrage der datei menue.config.php ->
# $_LINK=["<Link-Name>"]="<Target>"
$_LINK=["Home"]="./"
$_LINK=["SysInfo"]="./sysinfophp"
$_LINK=["Manager"]="./IPCManager.php"
$_LINK=["Tools"]="./tools.php"
$_LINK=["Links"]="./links.php"
$_LINK=["Forum"]="$FMURL"
...
$_MAINMENUELINKS=""
foreach LinkName $_LINK (array) ... links anlegen für das Main Menü
if $_MAINMENUELINKS != ""
$_MAINMENUELINKS="<html.code.für.link-trenn-zeichen>"
fi
...
$_MAINMENUELINKS = "<html.code.für.link>"
done
## -- Erklärungs-code </snips>
IPC Access Management:
im Manager muss auch ein " IPC WebIf - Access Manager " eingebaut werden,
der eine eingabe maske zum anlegen eines neuen Benutzers+PWD beinhaltet und
anhand der " menue.config.php " die verfügbaren Link-Names bereitstellt...
das Password wird dann mit dem <login> in der .htpasswd hinterlegt
access.config:
<login>:<link-names>
zb:
ipc:FULL
user:SysInfo
user2

scam,cccam
user3:SysInfo,Manager,cccam,oscam
...default ist dabei für jeden: Home, Forum
...FULL -> Zugriff auf ALLE link-names
------------------------
neuer befehl:
ipc update -files
auf dem UpdateServer ein verzeichnis "updates" in dem alle files liegen,
die seit dem letzten public rls erneuert wurden... ipc update -files prüft dann,
ob und welche files dort & local liegen und vergleicht die modification-time
..jenachdem wird gefragt ob bzw welche Files erneuert werden sollen; macht ein backup und installiert die dann
------------------------
/var/emu/cams/
für jede unterstützte Cam eine .cfg wodurch die cam AN ist, mit inhalt der bisherigen functions.sh (siehe unten)
wenn das file hier liegt ist es AN und wird vom watchdog etc beachtet...
jeder eintrag der [camname] wird später zum ändern der var zur verfügung gestellt (NICHT hardcoded!)
...zum disablen wird die cam beendet und bei erfolg das file gelöscht...
...zum enablen werden die jeweiligen defaults aus /var/emu/conf/cams.cfg geladen
ausserdem ein Script (ipc cams) was kontrolliert welche CAM enabled oder disabled werden soll;
bei installation auswählen und während des betriebs...
...ggf überprüfung ob mindestanforderungen gegeben sind (default vs camname.cfg)
watchdog anpassen sodass nurnoch ein crontab eintrag nötig ist und der anhand der camname.cfg erkennt was/wie/wo und ggf RESPONDCHECK macht etc
IPC WebIf Konfigurations Bereich wo die camname.cfg bearbeitet werden kann sowie watchdog.
Menü Einträge, Editor.php, control.php für die CAMs abhängig davon machen was AN ist (/var/emu/module/camname.cfg)
-------------------
"terminiert"
daemon script was zum einen vom watchdog script geprüft wird obs noch läuft... und regelmässig prüft ob
die standard Passwörter geändert wurden: alle 6 Tage (und 15min nach jedem boot) und fals Negativ wird die
motd.txt geändert sowie eine WARNUNG im IPC WebIf unter Home eingeblendet (ggf auch jedesmal als popup),
nach 4 wochen und mind 4 warnversuchen wird ein FULL Backup gemacht und alle IPC installierten Files gelöscht sowie der Rechner herruntergefahren!
...ggf externe überprüfung ob standard Ports UND standard Passwörter weitergeleitet sind....
...problem dabei: 'nur eine' überprüfungs-quelle könnte geblockt werden...
...idee zunächst: ähnlich DDNSupdater.sh anhand einer grossen urls-liste random 20 pingen und wenn eine antwort,
... irgendwie mehrere wege probiern eine unsichere weiterleitung INTERN zu testen, ohne 'selber' daten zu senden etc