Um die Sicherheit von ePages weiter zu erhöhen, werden zwei neuen User eingeführt.Deren Rechte sind maximal eingeschränkt. Unter ihnen werden die Applikationserver- und Webserverprozesse ausgeführt. Durch die Einschränkung der Rechte können über die Prozesse keine Zugriffe auf das System ausgeführt werden.
Bestehende User
- ep_appl, ep_web, ep_db
-
Grundsätzlich bleiben alle User- und Filerechte so erhalten, wie sie sind. ep_appl behält die Vorzugs-Rechte wie ein Patch zu installieren oder die Services zu starten. ep_db und das Sybase-Verzeichnis werden nicht geändert.
Neue User - ePages Run-User
-
eprunapp - der Nutzer, unter dem der Application-Server-Prozesse laufen.
-
eprunweb - der Nutzer, unter dem die Web-Server-Prozess laufen.
Beide User haben so beschränkte Rechte wie möglich:
-
keine Login-Shell für eprunweb
-
Filerechte so beschränkt wie möglich (lesen, schreiben)
eprunapp gehört zu den Gruppen epages und ep_web, ep_runweb gehört zur Gruppe ep_web. Damit haben beide alle nötigen Lese-Rechte.Da die Files in Cartridges, Perl etc. den Run-Usern nicht gehören, können sie die Files auch nicht ändern. Read-Only für den File-Owner ist nicht nötig.
Die Umgebungsvariablen EPAGES_APPUSER und EPAGES_WEBUSER enthalten die Namen für die user und werden durch Patch/Vollinstalltion in /etc/default/epages6 gesetzt:
-
beim Patch in prerequisits.ini
-
bei der Vollversion in install.cfg
Die Namen und User-IDs für eprunapp und eprunweb können frei gewählt werden. Standardwerte:
EPAGES_APPUSER=eprunapp
EPAGES_WEBUSER=eprunweb
Das bisherige Verhalten kann man erzwingen, wenn man setzt:
EPAGES_APPUSER=ep_appl
EPAGES_WEBUSER=ep_web
eprunweb
Schreibrechte für eprunweb sind auch in Apache/logs nicht nötig, da der Prozess von root bestartet wird.
Weil die Gruppe ep_web in $EPAGES_LOG und $EPAGES_SHARED/Monitor schreiben kann, kann auch eprunweb dort schreiben.
Nötige Änderungen:
-
/etc/init.d/epages6 ändern (Web-Server-Prozeß)
-
httpd.conf: User ep_web wird zu User eprunweb
-
beim Setup User eprunweb einführen
Externe Web-Server bleiben von diesen Änderungen unberührt.
eprunapp
Neben ep_appl gibt es nun eprunapp. ep_appl wird weiterhin für Kommandozeilenaufrufe verwendet, wie:
cd $EPAGES_CARTRIDGES/DE_EPAGES
perl Makefile.PL
make reinstall
eprunapp soll das nicht.
Alle Rechte außer in $EPAGES_SHARED bleiben wie bisher.
$EPAGES_SHARED
Wenn die Rechte in den Verzeichnissen nicht geändert werden, hat eprunapp nur Leserecht.
-
Config
chown -R eprunapp ASPool.db DataCache.conf EbayCategories.db chmod -R 775 ASPool.db DataCache.conf EbayCategories.db setfacl -L -m u:ep_appl:rwx ASPool.db DataCache.conf EbayCategories.db
-
Log
chown -R eprunapp Log setfacl -RdL -m u:ep_appl:rwx Log setfacl -RL -m u:ep_appl:rwx Log
-
Monitor
Rechte bleiben.
-
Static, Stores, WebRoot
chown -R eprunapp Static Stores WebRoot setfacl -RdL -m u:ep_appl:rwx Log setfacl -RL -m u:ep_appl:rwx Log
Die Befehle können bei großen Installationen lange dauern (und möglicherweise wegen inode-caching abstürzen). Das kann man wie folgt umgehen:
-
adduser eprunapp (ID wie ep_appl)
-
setze ID von ep_appl auf eine neue
-
set permissions (aber nicht bei Static, Stores, WebRoot)
Nachdem eprunapp der neue Eigentümer ist, bekommt ep_appl alle ACL-Rechte.
Nötige Änderungen:
-
/etc/init.d/epages6 ändern (Filerechte, Applikations-Server-Prozeß)
-
beim Setup User eprunapp einführen
-
File,pm→SetAccessRights ändern
-
Zugriffsrechte in Patch und Vollversion
Auswirkungen auf den Patch-Prozess
Patchen ist wie bisher möglich: entweder als root oder als ep_appl (wenn ACLs benutzt werden). Die Filerechte werden beim Patchen geändert. Ein Patch von 6.0.6 oder niedriger auf 6.0.7 oder höher kann nur root ausführen, da neue Nutzer angelegt werden.
Auswirkungen auf Partner-Cartridges
Die Rechte-Änderungen haben keine Auswirkungen auf Partner-Cartridges.