public:services:lehrpool.nrw:masterserver

Dies ist eine alte Version des Dokuments!


  • sudo add-apt-repository -y ppa:ondrej/php
  • sudo apt-get update
  • sudo apt-get install apache2 php5.6-mysql mysql-server php5.6 php5.6-mysql php5.6-curl php5.6-gd php5.6-intl php-pear php5.6-imagick php5.6-imap php5.6-mcrypt php5.6-memcache php5.6-pspell php5.6-recode php5.6-snmp php5.6-sqlite php5.6-tidy php5.6-mbstring php5.6-xmlrpc php5.6-xsl git openjdk-11-jre-headless
  • sudo a2enmod php5.6
  • sudo a2enmod rewrite
  • sudo service apache2 restart
  • mysql -u root
  • CREATE DATABASE master
  • CREATE USER 'master'@'localhost' IDENTIFIED BY 'master';
  • GRANT ALL PRIVILEGES ON master.* TO 'master'@'localhost';
  • FLUSH PRIVILEGES;
  • quit
  • mysql -u master -p master < database.sql
  • mysql -u master -p master < content.sql
  • Eclipse installieren und nach dem Readme ein JAR-File kompilieren.
  • JAR auf den Server kopieren
  • mkdir /opt/masterserver && cd /opt/masterserver
  • mysql -u master -p master
  • INSERT INTO organization (organizationid, name, authmethod, publickey) VALUES ('hochschule-rhein-waal.de', 'Hochschule Rhein-Waal', 'https://lehrpool.hochschule-rhein-waal.de/Shibboleth.sso/SAML2/ECP',''); (Shib-Teil unsicher)
  • INSERT INTO organization_suffix (organizationid, suffix) VALUES ('hochschule-rhein-waal.de', 'hochschule-rhein-waal.de');
  • INSERT INTO user (userid, password, organizationid, firstname, lastname, email, fixedname) VALUES ('master@master.lc', '$6$eb20be7a4c353a2f$6gILRMb4OH.lTGWc.K4vU2AN3cfR9zX9sVaPQbOQ8zFovxfvMW1jGe0JLGmKWHJ9T4LEq3UJErApmpfPVcVyF.', 'hochschule-rhein-waal.de', 'Mr', 'Master', 'master@lehrpool.hochschule-rhein-waal.de', 1);
PW: master(⇒ https://quickhash.com/, Algorithm: SHA-512 / crypt(3) / $6$)
  • INSERT INTO satellite (organizationid, satellitename, addresses, publickey, dateline, userid) VALUES ('hochschule-rhein-waal.de', 'Test1', '["hostname","10.100.61.92"]', NULL, '0', NULL);
  • quit

Basic

  • cd /opt
  • cp config.php.example config.php
  • vi config.php
    • define('CONFIG_PREFIX', '/');
    • define('CONFIG_FORCE_DOMAIN', 'master.lehrpool.hochschule-rhein-waal.de');
    • $lines = @file('/opt/masterserver/config/mysql.properties', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
  • nano /etc/apache2/sites-enabled/000-default.conf
  • <VirtualHost *:80>
    
            ServerAdmin webmaster@localhost
            DocumentRoot /opt/bwlp-webadmin
    
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    
            <Directory /opt/bwlp-webadmin>
                    Options -Indexes +FollowSymLinks +Includes
                    AllowOverride All
                    Order allow,deny
                    Allow from All
                    Require all granted
            </Directory>
    </VirtualHost>
  • mkdir img && wget https://www.hochschule-rhein-waal.de/sites/default/themes/at_hrw/logo.png -O img/bwLehrpool_198x46.png (quick'n'dirty)

SSL

  • sudo a2ensite default-ssl
  • sudo vi /etc/apache2/sites-available/default-ssl.conf
    • <IfModule mod_ssl.c>
              <VirtualHost _default_:443>
                      ServerAdmin webmaster@localhost
                      DocumentRoot /opt/bwlp-webadmin/
      
                      ErrorLog ${APACHE_LOG_DIR}/error.log
                      CustomLog ${APACHE_LOG_DIR}/access.log combined
      
                      SSLEngine on
      
                      SSLCertificateFile      /etc/apache2/ssl/master.crt
                      SSLCertificateKeyFile /etc/apache2/ssl/master.key
      
                      <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                      SSLOptions +StdEnvVars
                      </FilesMatch>
                      <Directory /usr/lib/cgi-bin>
                                      SSLOptions +StdEnvVars
                      </Directory>
      
                      <Directory /opt//bwlp-webadmin>
                          Options -Indexes +FollowSymLinks +Includes
                          AllowOverride All
                          Order allow,deny
                          Allow from All
                          Require all granted
                      </Directory>
              </VirtualHost>
      </IfModule>
  • sudo a2enmod ssl
  • cd /etc/apache2 && sudo mkdir ssl && cd ssl
  • sudo openssl req -new -newkey rsa:4096 -nodes -keyout master.key -out master.csr
  • Zertifikat beantragen und nach /etc/apache2/ssl/master.crt kopieren
  • sudo /etc/init.d/apache2 restart
  • cd /opt/masterserver
  • java -jar image-master-1.0-SNAPSHOT-jar-with-dependencies.jar (Als Test, exit mit CTRL-C)
  • sudo nano /etc/systemd/system/masterserver.service
  • [Unit]
    Description=Lehrpool Masterserver
    [Service]
    User=master
    WorkingDirectory=/opt/masterserver
    ExecStart=/opt/masterserver/systemd.sh
    SuccessExitStatus=143
    TimeoutStopSec=10
    Restart=on-failure
    RestartSec=5
    [Install]
    WantedBy=multi-user.target
  • cd /opt/masterserver && sudo vi systemd.sh
  • #!/bin/sh
    
    /usr/bin/java -Djava.net.preferIPv4Stack=true -jar /opt/masterserver/image-master-1.0-SNAPSHOT-jar-with-dependencies.jar
  • sudo chown master systemd.sh
  • sudo chmod u+x systemd.sh
  • sudo systemctl daemon-reload
  • sudo systemctl enable masterserver.service
  • sudo systemctl start masterserver
  • systemctl status masterserver.service
  • sudo cat /etc/apache2/ssl/master.crt chain.txt > all.pem
  • sudo openssl pkcs12 -export -in all.pem –inkey /etc/apache2/ssl/master.key -name master.lehrpool.hochschule-rhein-waal.de -out master.p12
  • Leeren Keystore erstellen:
    • keytool -genkey -alias foo -keystore master.jks
    • keytool -delete -alias foo -keystore master.jks
  • sudo keytool -importkeystore -deststorepass master -destkeystore master.jks -srckeystore master.p12 -srcstoretype PKCS12
  • sudo cp master.jks /opt/masterserver/config/masterserver.jks
  • sudo systemctl restart masterserver
  • vi /opt/dmsd/config.properties
  • master.address = master.lehrpool.hochschule-rhein-waal.de
  • master.port = 9090 (Wenn die Optionen fehlen, nutzt der Satellit SSL)
  • master.ssl = false
  • :wq
  • reboot
  • In Eclipse importieren
  • /bwsuite/dozentenmodul/src/main/properties/branding.properties anpassen:
    • masterserver.address=master.lehrpool.hochschule-rhein-waal.de;
  • Run ⇒ Run As ⇒ maven install
  • JAR liegt im Ordner target
  • java -jar dozmod-client-1.0-SNAPSHOT-jar-with-dependencies.jar
  • Die command line parameter host port useSSL funktionieren nach unseren Tests nicht. (scheint jetzt zu gehen [Boolen.parse])
  • im Webinterface des Masterservers können Testuser angelegt werden.
    • in der Tabelle users muss für die Spalte fixedname vorher ein Default Wert (0) konfiguriert werden
    • die shibid des Users, der Adminrechte haben soll, muss in inc/user.inc.php config.php eingetragen werden
  • die Spalte „password“ muss null erlauben, damit sich shib-user registrieren können (qnd fix). Denkbar wäre auch ein default-Wert. Beides ist irgendwie meeeh.

INSERT INTO satellite (organizationid, satellitename, addresses, publickey, dateline, userid) VALUES ('hochschule-rhein-waal.de', 'Test1', '["hostname","10.100.61.92"]', NULL, '0', NULL);

  • organizationid: Die ID, die bei der scopedAffiliation im DFN-AAI hinter dem @ steht. Nur Usern dieser org wird der Satellit angezeigt.
  • satellitename: Anzeigename, wird in der Suite nach dem Anmelden angezeigt
  • addresses: JSON-Array mit NEtzwerkadressen. EInzelne Adressen in Double Quotes.
    • z.B.:
      • ["192.168.1.10"]
      • ["hostname.tld.local", "10.1.1.100"]
  • publickey: Zweck unbekannt
  • dateline: Zweck unbekannt
  • userid: Zweck unbekannt, muss aber NULL sein (Ansonsten wird der Sat nicht in der shib/api.php gelistet)
  • public/services/lehrpool.nrw/masterserver.1552403519.txt.gz
  • Zuletzt geändert: 2019/03/12 16:11
  • von dwsa