tipps_und_tricks

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste Überarbeitung Beide Seiten der Revision
tipps_und_tricks [2009/08/29 12:08]
flacco
tipps_und_tricks [2018/12/15 13:21]
flacco [Zarafa-Pakete herunterladen und entpacken]
Zeile 2: Zeile 2:
 In diesem Bereich des Wikis werden sporadisch Kurzanleitungen,​ Workarounds usw. zu verschiedenen Themenbereichen auftauchen. ​ In diesem Bereich des Wikis werden sporadisch Kurzanleitungen,​ Workarounds usw. zu verschiedenen Themenbereichen auftauchen. ​
  
-===== VirtualBox ​===== +===== Rettungsumgebung (Chroot) ​=====
-Da der invis Server auch in Form virtueller Maschinen nutzbar ist und wir auf Messen gelegentlich entsprechende Images verteilen, beginnt die Tipps und Tricks Ecke mit einem Verweis auf VirtualBox - unserem favorisierten Virtualisierungssystem. Da mit einigen Einträgen zum Thema VirtualBox zu rechnen sein wird, widme ich diesem Thema eine eigene Wiki-Seite.+
  
-[[:​tipps_und_tricks:​virtualbox| Tipps und Tricks ​zu VirtualBox]]+Wie ich selbst leidvoll erkennen musste, taugt die openSUSE Rettungsumgebung nicht dazu eine vollständige "​Chroot"​ Umgebung aufzubauen um an einem nicht mehr startenden System ​zu arbeiten. Daher hier eine kurze Anleitung zur Realisation einer Chroot-Umgebung für openSUSE.
  
-===== Group-e Samba Dateimanager auch unter openSUSE ​===== +Schritt 1 ist statt des Rettungssystems ein openSUSE-Live-System zu starten.
-Out of the Box lässt sich der Samba Dateimanager von Group-e unter openSUSE nicht nutzen.+
  
-Das hat zwei Gründe:+Danach können Schritt für Schritt alle Teilverzeichnissysteme zu einer vollständigen Umgebungzusammen gesetzt werden. Im Folgenden wird dies basierend auf unserer Partitionierungsempfehlung mit Software-RAID und LVM vorgenommen:
  
-  - Die smbclient-Methode funktioniert nicht, weil der PTY-Support in PHP seit einiger Zeit nicht mehr aktiviert ist. Dies zu lösen würde bedeuten PHP selbst neu zu übersetzen. Das wurde im Group-e Forum schon mehrfach diskutiert und stellt definitiv keine Lösung dar!!!! +<​code>​ 
-  - Die smbmount-Methode funktioniert nicht, da //**smbmount**// schlicht in openSUSE nicht mehr enthalten ist. (Dürfte bei anderen Distris möglicherweise auch schon so sein) //**smbmount**// bzw. smbfs wird nicht mehr wirklich gepflegt. Als Ersatz ist das Paket cifs-mount mit den Kommandos ​//**mount.cifs**// und //**umount.cifs**/​enthalten.+linux:~ # mount /dev/system/root /mnt 
 +linux:~ # mount /dev/system/var /mnt/var 
 +linux:~ # mount /dev/mdXXX /mnt/boot 
 +</code>
  
-Im Gegensatz zu den alten Kommandos //**smbmount**// und //**smbumount**// ist bei den neuen aus Sicherheitsgründen das SUID-Bit nicht gesetzt.+**mdXXX** steht für das Software-RAID Device auf dem das /boot-Verzeichnis liegt. Leider nummeriert die Live-Umgebung SW-RAID Devices anders durch, als das installierte System. Kann also sein, das aus /dev/md0 im realen System ​/dev/md127 in der Live-Umgebung wird. Einfach ausprobieren.
  
-Um diese Kommandos für group-e nutzbar zu machen muss zunächst allen Sicherheitsbedenken zum Trotz das SUID-Bit für beide Kommandos gesetzt ​werden:+Dann müssen noch die speziellen Verzeichnisse hinzugefügt ​werden:
  
-<​code>​chmod u+s /sbin/mount.cifs +<​code>​ 
-chmod u+s /sbin/umount.cifs</​code>​+linux:~ # mount -t proc none /mnt/proc 
 +linux:~ # mount -t sysfs non /mnt/sys 
 +linux:~ # mount -o bind /dev /mnt/dev 
 +</​code>​
  
-Da Group-e leider immer noch die alten Kommandos voraussetzt und vermutlich niemand bei jeder neuen Version den Quellcode anfassen möchte, müssen noch zwei symbolische Links angelegt werden:+(Genau der Teil funktioniert mit dem einfachen Rettungssystem nicht!)
  
-<​code>​ln ​-s /​sbin/​mount.cifs /​usr/​bin/​smbmount +Damit ist die Chroot-Umgebung fertig und kann betreten werden:
-ln -s /​sbin/​umount.cifs /​usr/​bin/​smbumount</​code>​+
  
-Das wars, danach funktioniert der Samba-Dateimanager auch unter openSUSE, wenn auch mit ein paar Abstrichen in Sachen Sicherheit. ​+<​code>​ 
 +linux:~ # chroot /mnt 
 +</​code>​
  
-**Ergänzung:​**+Jetzt kann im installierten System gearbeitet werden. Sie können hier beispielsweise Grub reparieren oder eine neue inird erzeugen.
  
-Wenn es nicht funktioniert bitte die /etc/hosts kontrollieren. Wenn dort eine wie im folgenden Beispiel gezeigte Zeile zu finden ist, ist diese entweder zu löschen oder die 127.0.0.2 gegen die tatsächliche IP-Adresse zu tauschen.+Verlassen wird es einfach mit //**exit**//
  
-<​code>​127.0.0.2 ​     invis65.invis-net.loc ​    ​invis65</​code>​ 
  
-(Bitte nicht mit der 127.0.0.1 verwechseln.). 
  
-Es sollte ein korrekter Eintrag direkt unter "​127.0.0.1 localhost"​ stehen: 
  
-<​code>​127.0.0.1 ​           localhost 
-192.168.200.10 ​      ​invis65.invis-net.loc ​    ​invis65</​code>​ 
  
-**Erläuterung:​** 
  
-**//smbmount//** fragt die /etc/hosts nach der IP des Servers ​ab und gibt sich mit der ersten zutreffenden Antwort zufriedenWenn dies mit 127.0.0.2 beantwortet wird und Samba mit der Option ​"bind interfaces only" ​an bestimmte IPs gebunden ist, verweigert ​es einfach den Mount-Versuch.+===== Zarafa License-Daemon im Eigenbau ===== 
 + 
 +Offiziell wird openSUSE als Basis einer Zarafa-Version nicht unterstützt,​ was unter anderem dazu führt, dass weder Zarafa-Backup noch der License-Daemon dafür zur Verfügung stehen. Beide Tools enthalten Closed-Source-Komponenten und sind damit nicht Bestandteil der Open-Source-Pakete die wir in unserem Build-Service-Repository vorhalten. 
 + 
 +Sie sind aber Bestandteil der Free-Edition und können somit kostenlos genutzt werden, allerdings nur auf unterstützten Plattformen,​ wie etwa Ubuntu LTS. 
 + 
 +Problematisch ist grundsätzlich,​ dass Zarafa seine eigene Software meist statisch gegen vorhandene System-Libraries linkt. Da sich diese von Distribution zu Distribution in Ihren Versionen unterscheiden,​ ist es nicht möglich SLES oder RedHat-Pakete einfach unter openSUSE zu nutzen. 
 + 
 +Möglich ist aber den License-Daemon in einer Art Sandbox laufen zu lassen, in der er alle Libraries hat, die er benötigt. Die folgende Beschreibung erläutert den Aufbau der Sandbox auf einem Ubuntu-LTS System 
 + 
 +==== VM einrichten ==== 
 +Zunächst muss dafür ein Ubuntu-LTS System installiert werden, hier empfiehlt sich die Arbeit mit Virtualbox. Entgegen der Angaben im Zarafa-Wiki spielt die Architektur der Sandbox sehr wohl eine Rolle. Da wir unsere invis-Server immer als 64Bit Systeme installieren,​ nutzen wir entsprechend auch ein 64Bit Ubuntu als Basis. 
 + 
 +Zusätzlich zur einfachen Standard-Installation wird das Software-Paket ​**mklibs** benötigt:​ 
 + 
 +<​code>​ 
 +heinz@ubuntu:​~$ sudo apt-get install mklibs 
 +</code> 
 + 
 +Wenn Sie Ihre Sandbox unter SLES bauen möchten, werden Sie feststellen,​ dass es für SUSE-Linuxe das Paket **mklibs** nicht gibt. Abhilfe schaft ein gleichnamiges Shellscript:​ [[https://github.com/blunderer/​mklibs]] 
 + 
 +===== Speicherüberlauf Cyrus Index-DB ===== 
 + 
 +Cyrus IMAP speichert ​die den Mailboxen zugehörigen Index-Datenbanken unter /var/lib/imap im Berkeley-DB (sleepycat) Format ​ab. Die für dieses Format übliche Konfigurationsdatei "​DB_CONFIG"​ fehlt im Verzeichnis /​var/​lib/​imap/​db. Das bedeutet, dass die Datenbank ​mit Standardwerten betrieben wird. Es kann vorkommen, das der per Default vorgegebene für die Datenbanken zur Verfügung stehende maximale Speicherplatz überschritten wirdDie Folge ist, dass Cyrus die weitere Annahme in die von ihm verwalteten Postfächer verweigert. 
 + 
 +Dieser Fehler äußert sich in /​var/​log/​messages ​mit folgenden Zeilen: 
 + 
 +<​code>​ 
 +Feb 21 11:01:47 invis5bio lmtpunix[1802]:​ DBERROR db4: Logging region out of memory; you may need to increase its size 
 +Feb 21 11:01:47 invis5bio lmtpunix[1802]:​ DBERROR: opening /​var/​lib/​imap/​deliver.db: Cannot allocate memory 
 +Feb 21 11:01:47 invis5bio lmtpunix[1802]:​ DBERROR: opening /​var/​lib/​imap/​deliver.db: cyrusdb error 
 +Feb 21 11:01:47 invis5bio lmtpunix[1802]:​ FATAL: lmtpd: unable to init duplicate delivery database 
 +Feb 21 11:01:47 invis5bio master[17315]:​ service lmtpunix pid 1802 in READY state: terminated abnormally 
 +</​code>​ 
 + 
 +Behoben werden kann dieser Fehler durch erzeugen einer Konfigurationsdatei für die Berkeley-DB unter dem Namen "​DB_CONFIG"​ in /​var/​lib/​imap/​db:​ 
 + 
 +<​code>​ 
 +set_cachesize ​2097152 1 
 + 
 +# Data Directory 
 +#​set_data_dir db 
 + 
 +# Transaction Log settings 
 +set_lg_regionmax 2097152 
 +set_lg_bsize 2097152 
 +set_lg_max 4194304 
 +set_tx_max 200 
 +set_tas_spins 1 
 +#set_lg_dir logs 
 +</​code>​ 
 + 
 +Daran anschließend ist Cyrus neuzustarten:​ 
 + 
 +<​code>​ 
 +linux:~ #/etc/init.d/cyrus restart 
 +</​code>​ 
 + 
 +===== Group-e -- Passwwort des Benutzers ​"config" ​zurück setzen ===== 
 + 
 +Das Passwort des Benutzers "​config"​ wird unabhängig von der generellen Benutzerverwaltung in Group-e immer in der MySQL-Datenbank verwaltet. Um es zurückzusetzen muss eine SQL-Anweisung über das MySQL-Komandozeilen Frontend abgesetzt werden: 
 + 
 +<​code>​ 
 +linux:~ # mysql -u root -p 
 + 
 +... 
 + 
 +mysql> use groupe; 
 +Database changed 
 +mysql> UPDATE `ModulCfg` SET `CfgVal`=MD5( '​config'​ ) WHERE `ModulCfg`.`FKModul`='​global'​ AND `ModulCfg`.`FKCfgKey`='​cfg/​pwd'​ AND `ModulCfg`.`FKObjID`=0;​ 
 +Query OK, 1 row affected (0.01 sec) 
 +Rows matched: 1  Changed: 1  Warnings: 0 
 + 
 +mysql> quit 
 +Bye 
 +linux:~ #  
 +</​code>​ 
 + 
 +Danach kann man sich wieder als Benutzer "​config"​ mit dem Passwort "​config"​ anmelden.
  
-Gibt man in der Freigaben-Konfiguration von Group-e statt des Hostnamens die IP-des Samba-Servers ein, funktioniert es immer. ​ 
  
 ===== Nein Danke Zensursula ===== ===== Nein Danke Zensursula =====
Zeile 79: Zeile 155:
 neu.  neu. 
  
-===== Deeplinks verhindern ===== 
-Wenn der Webserver eines invis Servers auch via HTTPs aus dem Internet erreichbar ist, können die einzelnen Applikationen derzeit noch durch direkte Eingabe der Zieladresse im Browser ohne Umweg über das invis Portal erreicht werden. 
  
-Dieses Verhalten ist aus Sicherheitsgründen eher bedenklich und in der Regel nicht erwünscht. Um dies zu verhindern muss die Apache-Konfigurationsdatei /​etc/​apache2/​vhosts.d/​i7ssl.conf erweitert werden.+===== Faxgate-Client unter Linux nutzen =====
  
-Tragen Sie dort für jede Applikation die nicht direkt angesprochen werden soll folgenden Eintrag ​ein:+Um den Faxgate-Client unter Linux nutzen zu können sind ein paar Kleinigkeiten zu beachen:
  
-<​code>​ +  - Die Firewall des Linux-Clients muss Port 50000/TCP geöffnet haben. 
-    # Deeplinks verhindern +  - Die ".jar" Datei ist mittels der Befehlszeile "​java ​-jar FaxgateClient.jar" ​zu starten. Das lässt sich ja unter KDE oder Gnome als fertiges Icon auf den Desktop legen. 
-    <​Directory /srv/www/​htdocs/​phpMyAdmin>​ +  - In der hosts-Datei von Client und Server sollten trotz funktionierendem DNS in Einträgen mit der IP "127.0.0.2" ​stattdessen die realen IP-Adressen verwendet werden. 
-        ​SetEnvIfNoCase Referer ​"^http://​invis.invis-net.loc" ​dontblock +  - Da unter Linux nicht unter fremder Benutzerkennung gedruckt werden kannmuss für jeden Fax-Benutzer Serverseitig eine Fax-Konfiguration via YaST erzeugt werden. Wird dort die MSN für eingehende Faxe nicht eingetragen,​ kann dieser Eintrag nur für den Faxversand genutzt werden. Der Faxempfang kann so weiterhin über die Benutzerkennung "​fax"​ erfolgen. D.h. alle Faxe landen im speziellen Faxpostfach und sind für alle Nutzer lesbar.
-        ​SetEnvIfNoCase Referer ​"^https://​your.dyndns-domain.net" ​dontblock +
-        Order Deny,Allow +
-        Deny from all +
-        Allow from env=dontblock +
-    </​Directory>​ +
-</​code>​+
  
-Das Beispiel zeigt den Deeplink-Schutz für das Verzeichnis von phpMyAdmin. Sie müssen lediglich die Domain-Namen an Ihre Gegebenheiten anpassen und den Apache neustarten. Danach sind die geschützten Applikationen nur noch über das invis-Portal erreichbar. 
  
-Die gezeigten Einträge werden ab invis Release 6.6-R4 generell für alle Applikationen Standard sein. 
  
  • tipps_und_tricks.txt
  • Zuletzt geändert: 2018/12/15 14:05
  • von flacco