Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum core für Administratoren > agorum core installieren (Übersicht)


agorum core unter Linux als nicht-root User laufen lassen

Hinweise:

  • Diese Anleitung bezieht sich auf debian-Linux und kann bei anderen Linux-Systemen variieren.

  • Um die Regeln zur Umleitung dauerhaft anzuwenden, folgen Sie dieser Anleitung für debian: https://wiki.debian.org/iptables

Vorbereitungen

Legen Sie einen Benutzer und eine Benutzergruppe an, unter die agorum core laufen soll, etwa jeweils agorum.

Ports umstellen

Ports über die MetaDB umstellen

  1. Öffnen Sie links in der Seitenleiste Administration und dann MetaDB.
  2. Öffnen Sie den Pfad:
    MAIN_MODULE_MANAGEMENT/roiprotocols
  3. Öffnen Sie jeden Unterordner und stellen Sie die Ports um, sofern ein solcher Eintrag existiert.

Ports über das agorum core support tool umstellen

  1. Öffnen Sie links in der Seitenleiste Weitere Apps und dann support tool.
  2. Wählen Sie links im Menü Protocols > Configurations.
  3. Prüfen Sie alle Einträge auf eventuelle Ports und stellen Sie diese um.

Rechte ändern


Im nächsten Schritt ändern Sie alle Verzeichnisse von agorum core. Ohne ein MySQL-Verzeichnis geht dies mit dem Befehl chown.

Beispiele

chown -R agorum:agorum /opt/agorum/agorumcore/jboss
chown -R agorum:agorum /opt/agorum/agorumcore/scripts
chown -R agorum:agorum /opt/agorum/agorumcore/java
chown -R agorum:agorum /opt/agorum/agorumcore/doc

Das Service-Skript anpassen

agorum core liefert ein Service-Skript mit, das Sie anpassen müssen.

  1. Kopieren Sie bei Bedarf das Service-Skript agorumcored aus dem folgenden Verzeichnis nach /etc/init.d.
    /opt/agorum/agorumcore/scripts
  2. Öffnen Sie den folgenden Pfad. 
    /etc/init.d/agorumcored
    
  3. Fügen Sie hinter start-stop-daemon Folgendes ein:
    --chuid agorum
    

    Beispiel für den Start
    start-stop-daemon --start -b --quiet --chuid agorum --oknodo --pidfile /var/run/agorumcore.pid --exec /opt/agorum/agorumcore/scripts/agorumcore start
  4. Wiederholen Sie Schritt 2 für start, stop und restart.
  5. Starten Sie mit folgendem Befehl den Dienst neu:
    service agorumcored start

Tipp: Verwenden Sie ps -ef | grep agorum, um zu prüfen, ob alle Java-Prozesse unter dem Benutzer agorum laufen.

Ports umleiten

Als letzten Schritt leiten Sie die Ports um, damit diese unter den üblichen Ports erreichbar sind. Dazu können Sie Umleitungsregeln mit iptables anlegen.

Beispiele

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 139 -j REDIRECT --to-port 8139
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 445 -j REDIRECT --to-port 8445
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 26 -j REDIRECT --to-port 8026
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 143 -j REDIRECT --to-port 8143
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 993 -j REDIRECT --to-port 8993
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j REDIRECT --to-port 8021

Beispielskripte

Die folgenden Beispielskripte können als Orientierung dienen, welche Schritte Sie durchführen müssen. 

Hinweis: Diese Beispielskripte wurden von unserem langjährigen Partner BES IT Solutions GmbH entwickelt. Wir bedanken uns!
Die Skripte dienen ausschließlich zu Informationszwecken. Bitte beachten Sie, dass diese Skripte nicht auf allen Linux-Distributionen oder Systemumgebungen ohne Anpassungen lauffähig sind.

Vorbereitung

Das folgende Bash-Skript dient zur Vorbereitung des Umschaltens in den nicht-root-Betrieb. Der Betriebsmodus mit einem eigenen Benutzer wird zurückgesetzt auf den root-Modus. 

#!/bin/bash

AGORUM_USER="agorum"
AGORUM_GROUP="agorum"
AGORUM_HOME="/opt/agorum/agorumcore"
INIT_SCRIPT="/etc/init.d/agorumcored"
MYSQL_DIR="$AGORUM_HOME/mysql"
KEYSTORE_DST="/home/$AGORUM_USER/.keystore"
TOMCAT_CONF="$AGORUM_HOME/jboss/server/default/deploy/jbossweb-tomcat50.sar/server.xml"

echo "== agorum stoppen =="
systemctl stop agorumcored

echo "== Init-Skript auf root zurücksetzen =="
if [ -f "$INIT_SCRIPT" ]; then
  sed -i 's/--chuid agorum//g' "$INIT_SCRIPT"
fi

echo "== systemctl daemon reload =="
systemctl daemon-reexec
systemctl daemon-reload

echo "== agorum Benutzer löschen =="
pkill -u "$AGORUM_USER"
userdel -r "$AGORUM_USER" 2>/dev/null
groupdel "$AGORUM_GROUP" 2>/dev/null

echo "== Besitzrechte zurück auf root =="
chown -R root:root "$AGORUM_HOME"

echo "== Keystore entfernen =="
rm -f "$KEYSTORE_DST"
rmdir "/home/$AGORUM_USER" 2>/dev/null

echo "== MySQL-Konfig zurück verschieben =="
if [ -f "$MYSQL_DIR/my.cnf" ]; then
  rm -f "$MYSQL_DIR/data/my.cnf"
  mv "$MYSQL_DIR/my.cnf" "$MYSQL_DIR/data/my.cnf"
fi

echo "== iptables Regeln entfernen =="
for port in 139 445 26 143 993 21 80 443; do
  iptables -t nat -D PREROUTING -i eth0 -p tcp --dport "$port" -j REDIRECT --to-port $(expr 8000 + $port)
done

echo "== Tomcat-Konfiguration zurücksetzen =="
if [ -f "$TOMCAT_CONF" ]; then
  sed -i 's/port="8080"/port="80"/g' "$TOMCAT_CONF"
  sed -i 's/port="8443"/port="443"/g' "$TOMCAT_CONF"
  sed -i 's/redirectPort="8443"/redirectPort="443"/g' "$TOMCAT_CONF"
fi

echo "== agorum starten (root) =="
systemctl start agorumcored

echo "== Status =="
systemctl status agorumcored --no-pager

echo "== Rücksetzung abgeschlossen =="

Umstellung auf einen eingeschränkten Benutzer

Das folgende Bash-Skript dient zur Durchführung der Schritte, um agorum core mit einem eingeschränkten Benutzer anstelle eines root-Benutzers zu betreiben. 

#!/bin/bash

echo "== agorum stoppen =="
systemctl stop agorumcored

# Variablen
AGORUM_USER="agorum"
AGORUM_GROUP="agorum"
AGORUM_HOME="/opt/agorum/agorumcore"
MYSQL_DIR="$AGORUM_HOME/mysql"
INIT_SCRIPT="/etc/init.d/agorumcored"
KEYSTORE_SRC="/root/.keystore"
KEYSTORE_DST="/home/$AGORUM_USER/.keystore"
TOMCAT_CONF="$AGORUM_HOME/jboss/server/default/deploy/jbossweb-tomcat50.sar/server.xml"

echo "== Benutzer und Gruppe anlegen =="
if ! id "$AGORUM_USER" >/dev/null 2>&1; then
  groupadd "$AGORUM_GROUP"
  useradd -m -s /bin/bash -g "$AGORUM_GROUP" "$AGORUM_USER"
fi

echo "== iptables Portweiterleitungen hinzufügen =="
for port in 139 445 26 143 993 21 80 443; do
  iptables -t nat -A PREROUTING -i eth0 -p tcp --dport "$port" -j REDIRECT --to-port $(expr 8000 + $port)
done

echo "== Besitzrechte für agorum-Verzeichnis setzen =="
chown -R "$AGORUM_USER:$AGORUM_GROUP" "$AGORUM_HOME"

echo "== MySQL-Besitz korrekt setzen =="
if [ -d "$MYSQL_DIR" ]; then
  chown -R mysql:mysql "$MYSQL_DIR"
fi

echo "== MySQL-Konfiguration verschieben, falls nötig =="
if [ -f "$MYSQL_DIR/data/my.cnf" ]; then
  mv "$MYSQL_DIR/data/my.cnf" "$MYSQL_DIR/my.cnf"
  ln -s "$MYSQL_DIR/my.cnf" "$MYSQL_DIR/data/my.cnf"
fi

echo "== Keystore für agorum kopieren =="
if [ -f "$KEYSTORE_SRC" ]; then
  cp "$KEYSTORE_SRC" "$KEYSTORE_DST"
  chown "$AGORUM_USER:$AGORUM_GROUP" "$KEYSTORE_DST"
  chmod 600 "$KEYSTORE_DST"
fi

echo "== Init-Skript prüfen und ggf. kopieren =="
if [ ! -f "$INIT_SCRIPT" ]; then
  cp "$AGORUM_HOME/scripts/agorumcored" "$INIT_SCRIPT"
  chmod +x "$INIT_SCRIPT"
fi

echo "== Init-Skript anpassen =="
sed -i 's/start-stop-daemon/start-stop-daemon --chuid agorum/g' "$INIT_SCRIPT"

echo "== Init-Skript ins System einbinden =="
update-rc.d agorumcored defaults

echo "== Tomcat-Konfiguration anpassen =="
if [ -f "$TOMCAT_CONF" ]; then
  sed -i 's/port="80"/port="8080"/g' "$TOMCAT_CONF"
  sed -i 's/port="443"/port="8443"/g' "$TOMCAT_CONF"
  sed -i 's/redirectPort="443"/redirectPort="8443"/g' "$TOMCAT_CONF"
fi

echo "== agorum starten =="
systemctl start agorumcored

echo "== Fertig, agorum wurde gestartet =="