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:

  1. adduser eprunapp (ID wie ep_appl)

  2. setze ID von ep_appl auf eine neue

  3. 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.