Dies ist eine Übertragung der alten FAQ-Beiträge in das neue dokuwiki-System. Eine Prüfung, inwiefern diese Beiträge überhaupt noch Relevanz für einen aktuellen eisfair-Server haben, ist bislang nicht erfolgt!
FAQ
Allgemeines
Ich möchte ein Paket für eisfair zusammenstellen, wie gehe ich am besten vor?
Wie ein Paket erstellt wird, und welche Richtlinien es gibt wird in der Entwicklerdoku Dokumentation beschreiben.
Kann ich das OPT_XYZ von fli4l auf meinem eisfair installieren?
Nein, das geht nicht weil fli4l die libc5 benutzt, eisfair benutzt die neuere libc6. Diese Libraries sind zueinander nicht kompatibel.
Außer dem benutzt eisfair auch die info-Dateien, die unter fli4l nicht eingesetzt werden (müssen).
Wie bekomme ich bestehende Userkonten von einem eisfair auf einen neu installierten eisfair?
Altes System:
cp /etc/passwd /tmp cp /etc/shadow /tmp cd /tmp # in das tmp-Verzeichnis wechseln joe passwd # alle system-User rauswerfen joe shadow # dito wc -l passwd shadow # prüfen, ob beide Dateien gleiche Anzahl User haben cd /home # nach /home wechseln tar cvfz /tmp/home.tgz * cd /tmp
Alle drei Dateien nach /tmp auf den Zielrechner übertragen
Neues System:
cd /etc # nach /etc wechseln cat /tmp/passwd >>passwd # passwd erweitern, WICHTIG: Doppel-Größer-Zeichen! cat /tmp/shadow >>shadow # shadow erweitern, WICHTIG: Doppel-Größer-Zeichen! cd /home # nach /home wechseln tar xvpzf /tmp/home.tgz # tar-Archiv auspacken
Wichtig:
Auf dem Zielrechner dürfen noch keine User angelegt sein, sonst könnte es zu UID-Konflikten kommen.
Wie verhindere ich, dass Cron eine Mail verschickt?
Das kannst Du erreichen, indem Du an Deinen Aufruf ein „> /dev/null“ anhängst (ohne „“).
Laut der Roadmap müsste die neue eisfair-Version schon längst draußen sein, wann kommt der Release?
Bitte suche dir eine Antwort aus:
- Wenn sie fertig ist
- Weihnachten
Wie übersetze ich auf eisfair einen Kernel?
- Installieren des developer Paketes
- Installieren des kernel-dev Paketes
- cd /usr/src/linux-2.4.26-1
- make oldconfig
Mit Schritt 4 stellst Du erstmal sicher, dass die Original-eiskernel- Konfiguration hergestellt wird. Anschließend kannst Du mit
make menuconfig
Änderungen vornehmen.
Der neue Kernel und die Module werden dann mit
make dep && make clean && make bzImage && make modules && make modules_install
hergestellt. Das ist aber noch nicht alles, der neue Kernel muss dann noch nach /boot und lilo ausgeführt werden - eventuell nach Anpaasung der Datei /etc/lilo.conf. Auch musst Du vielleicht noch ein neues initrd erstellen - wegen SCSI-Treiber usw.
Wie deaktivere ich den Screensaver auf der Console?
Lege unter /etc/init.d ein Shell-Script namens „blank“ mit folgendem Inhalt ab:
#! /bin/sh echo -e '\033[9;0]\c'
und gebe diesem Ausführungsrechte mit:
chmod +x blank
Lege dann einen Symbolic Link an:
cd /etc/rc2.d ln -s ../init.d/blank S99blank
Das war's.
Base
Im Verzeichnis /var/install/packages liegen zu jedem Paket eine Datei, die von verschiedenen Scripts ausgewertet wird. Diese kann gelöscht werden.
In /var/install/menu/setup.services.menu steht evt. ebenfalls ein Menüeintrag. Dieser kann ebenso gelöscht werden.
Eine Meldung an den Paketautor bzw. an die Newsgroups wäre dann angebracht, damit dieser Fehler in den Paketen korrigiert werden kann.
Webserver (Apache, mini-httpd, ...)
Nimda & CodeRed - Logfile enthält kryptische Einträge
Hilfe! Mich versucht jemand zu hacken! In meiner Logfile tauchen diese Einträge auf: GET /scripts/root.exe?/c+dir GET /MSADC/root.exe?/c+dir GET /c/winnt/system32/cmd.exe?/c+dir GET /d/winnt/system32/cmd.exe?/c+dir GET /scripts/..%5c../winnt/system32/cmd.exe?/c+dir GET /_vti_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe?/c+dir GET /_mem_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe?/c+dir GET /msadc/..%5c../..%5c../..%5c/..xc1x1c../..xc1x1c../..xc1x1c../winnt/system32/cmd.exe?/c+dir GET /scripts/..xc1x1c../winnt/system32/cmd.exe?/c+dir GET /scripts/..xc0/../winnt/system32/cmd.exe?/c+dir GET /scripts/..xc0xaf../winnt/system32/cmd.exe?/c+dir GET /scripts/..xc1x9c../winnt/system32/cmd.exe?/c+dir GET /scripts/..%35c../winnt/system32/cmd.exe?/c+dir GET /scripts/..%35c../winnt/system32/cmd.exe?/c+dir GET /scripts/..%5c../winnt/system32/cmd.exe?/c+dir GET /scripts/..%2f../winnt/system32/cmd.exe?/c+dir
Keine Angst, das ist nur der Nimdawurm, der guckt ob auf deinem eisfair ein IIS (Internet-Information-Server) von Microsoft läuft. Er sucht nach einer Sicherheitslücke, die dem Script-Kiddie ermöglicht Programme auf Windows-Rechnern auszuführen, die nicht den Patch gegen den Nimdawurm haben.
CodeRed ist auch ein Wurm, der deinem Apache ebenfalls nichts anhaben kann. Wenn er deinen Rechner scannt, tauchen ähnliche kryptische Logeinträge auf.
Das kann verschiedene Ursachen haben:
Zum einen muss in der allerersten Zeile (davor darf auch kein Leerzeichen sein) der Pfad zum Interpreter stehen. Bei Shell-CGI-Scripts ist das z.B.
#!/bin/sh
oder bei Perl
#!/usr/bin/perl
Eine weitere Ursache kann sein, dass das Script keine ausreichenden Rechte hat. Die richtigen Rechte setzt man mit
chmod 755 /var/www/cgi-bin/cgi-script.cgi
Noch eine Ursache kann sein, dass du den Header vom Script nicht mitschickst, wie du das machst, entnimmst du bitte Google.
Wenn dein Problem immernoch, trotz der obenbeschrieben Hilfestellungen besteht, dann lohnt sich ein Blick in die access_log bzw. in die error_log vom Apache, diese befinden sich beide in /var/www/log/, wenn du den Pfad nicht geändert hast.
Das liegt daran, dass Apache das „webmail“ als Datei Interpretiert, damit korrekt auf das gleichnamige Verzeichnis umgeleitet werden kann, muss die Variable APACHE_SERVER_NAME gleich dem Eintrag im DNS-Server lauten. (z.B. eis.lan.fli4l)
Wenn der Apache-Server auch von außerhalb Zugriff haben soll, muss der Name, den der fli4 bzw. eisfair hat eingetragen werden, die er im Internet hat. Z.B. meinedomain.eisfair.net
Bei der ersten Apache-Installation wirst du aufgefordert ein Passwort für den User wwwrun einzugeben.
Diesen Benutzer musst du auch nehmen, wenn du dich per FTP einloggen willst, um Dateien dem Internet zur Verfügung zu stellen.
Jeder User soll Dateien über den Apache bereitstellen können, wie funktioniert das?
Jeder System-User (nicht die virtuellen FTP-User) hat die Möglichkeit, eine eigene Homepage auf dem EIS abzulegen. Diese ist dann per http://ip.adresse.des.eis/~username zugänglich. Dazu muss der User in seinem Homeverzeichniss ein Verzeichnis names public_html erstellen, dieses Verzeichnis mit chmod 755 ~/public_html auf die richtigen Rechte bringen, und dann kann er darin seine HTML-Dateien ablegen. Alle Funktionen (wie PHP, Basic Authentication, usw.) des Servers funktionieren auch für diese User-Homepages.
EisFAX/HylaFAX
Diese Meldung kommt von „sudo“. Die Datei /etc/sudoers ist nicht wie in Kapitel 3.4 der eisfax-Doku verlangt, angepasst worden - bitte nachholen.
Hier hilft in /var/lock das Device zu loeschen und dann das Modem zu resetten, bzw aus- und einzuschalten.
Die mit JBIG empfangenen Faxe sind korrupt.
Dies kann bei Modems der Class 1 vorkommen. Die Loesung fuer dieses Problem:
In der HylaFAX Config den Parameter
HYLAFAX_ANALOG_1_CONFIGURE_AUTO='no'
einstellen und in /var/spool/hylafax/etc/ die Modem Config config.ttyS? bearbeiten und den Parameter
Class1JBIGSupport: no
hinzufuegen, speichern und HylaFAX neu starten.
Mailserver
Wie aktiviere ich den Virenscan im Mailserver?
In der Konfiguration des Mail-Paketes.
EXISCAN_AV_ACTION = discard EXISCAN_AV_SCANNER = auto
Im Setup-Services-Menü von ClamAV wählt
7: (Re)Activate virus scanning for mail package
aus. Kurz mit 'y' bestätigen. Fertig!
Hinter folgenden Menüpunkten verbergen sich die relevanten Einstellungen im Thunderbird E-Mail-Programm:
-> Extras -> Konten-Einstellungen -> Im gewünschten E-Mail-Konto -> Server-Einstellungen Falls Du lokal KEIN Zertifikat verwendest: - Servertyp: IMAP - Port: 143 - Verbindungssicherheit: Keine - Authentifizierungsmethode: Verschlüsseltes Passwort Falls Du lokal EIN Zertifikat verwendest: - Servertyp: IMAP - Port: 143 - Verbindungssicherheit: STARTTLS - Authentifizierungsmethode: Verschlüsseltes Passwort Hinweis: Beim Servertyp 'POP3' muss nur der Port auf '110' gesetzt werden, sonst sind die Parameter gleich zu setzen. -> Extras -> Konten-Einstellungen -> Postausgangsserver (SMTP) -> Den gewünschten Postausgangsserver auswählen und 'Bearbeiten' auswählen: Falls Du lokal KEIN Zertifikat verwendest: - Port: 587 - Verbindungssicherheit: Keine - Authentifizierungsmethode: Verschlüsseltes Passwort Falls Du lokal EIN Zertifikat verwendest: - Port: 587 - Verbindungssicherheit: STARTTLS - Authentifizierungsmethode: Verschlüsseltes Passwort
Kennwortüberragung zu aktivieren:
ROUNDCUBE_1_SERVER_IMAP_HOST = dein-server.local.lan:143 ROUNDCUBE_1_SERVER_IMAP_TYPE = uw ROUNDCUBE_1_SERVER_IMAP_AUTH = md5 (CRAM-MD5->Verschlüsseltes Passwort) Falls Du KEIN Zertifikat verwendest: ROUNDCUBE_1_SERVER_IMAP_TRANSPORT = default Falls Du EIN Zertifikat verwendest: ROUNDCUBE_1_SERVER_IMAP_TRANSPORT = tls ROUNDCUBE_1_SERVER_SMTP_HOST = dein-server.local.lan:587 ROUNDCUBE_1_SERVER_SMTP_AUTH = md5 (CRAM-MD5->Verschlüsseltes Passwort) Falls Du KEIN Zertifikat verwendest: ROUNDCUBE_1_SERVER_SMTP_TRANSPORT = default Falls Du EIN Zertifikat verwendest: ROUNDCUBE_1_SERVER_SMTP_TRANSPORT = tls
Auf dem PC werden eingehende Ident-Callbacks (http://de.wikipedia.org/wiki/Ident) auf dem Port 113/tcp (Auth) durch eine installierte Firewall blockiert. Dieser Port muss entweder auf dem Client-PC für den Zugriff von außen geöffnet werden, oder man schaltet die Ident-Callbacks in der Konfiguration des mail-Paketes aus. Hierzu sind bei Bedarf die folgenden beiden Parameter anzupassen:
POP3IMAP_IDENT_CALLBACKS SMTP_IDENT_CALLBACKS
Im Verzeichnis /var/run existiert noch eine Datei „fetchmail.pid“, welche beim Beenden des Programms nicht korrekt gelöscht wurde. Die Datei löschen und dann mit „/etc/init.d/mail start fetch“ Fetchmail neu starten.
Im Home-Verzeichnis des Users legt man eine Datei „.forward“ an, über die man Befehle ausführen lassen kann. Diese Datei wird direkt bei der Zustellung ausgeführt.
Tipp: Suchmaschinen liefern Informationen über das Dateiformat durch Eingabe von „.forward file“
Hier einmal eine Beispielkonfiguration auf Basis des Mail-Pakets v1.1.6:
FETCHMAIL_x_SERVER='pop.t-online.de' FETCHMAIL_x_USER='name' FETCHMAIL_x_PASS='1' FETCHMAIL_x_FORWARD='userx@home.lan' FETCHMAIL_x_SMTPHOST='' FETCHMAIL_x_DOMAIN='no' FETCHMAIL_x_ENVELOPE='no' FETCHMAIL_x_SERVER_AKA_N='0' FETCHMAIL_x_LOCALDOMAIN_N='0' FETCHMAIL_x_PROTOCOL='' FETCHMAIL_x_PORT='' FETCHMAIL_x_AUTH_TYPE='' FETCHMAIL_x_KEEP='no' FETCHMAIL_x_FETCHALL='yes' FETCHMAIL_x_SSL_PROTOCOL='none' FETCHMAIL_x_SSL_TRANSPORT='no' FETCHMAIL_x_SSL_FINGERPRINT='' SMTP_SMARTHOST_x_HOST='mailto.t-online.de' SMTP_SMARTHOST_x_AUTH_TYPE='plain' SMTP_SMARTHOST_x_ADDR='name@t-online.de' SMTP_SMARTHOST_x_DOMAIN='' SMTP_SMARTHOST_x_USER='name' SMTP_SMARTHOST_x_PASS='1' SMTP_SMARTHOST_x_FORCE_AUTH='no' SMTP_SMARTHOST_x_FORCE_TLS='no'
Das Passwort kannst so gelassen werden, da bei T-Online die Authentifizierung über den Zugang erfolgt. Dies hat natürlich den Nachteil, dass man nicht mehrere T-Online Accounts abrufen kann, ohne sich zuvor jedesmal mit geänderten Zugangsdaten für den Internet-Zugang anzumelden.
Es können keine Mails über den Smarthost meines Providers XYZ verschickt werden.
Kann man vom eisfair-Server Mails über den Smarthost (Smtp-Server) meines Providers XYZ verschicken? Ich habe dort einen Account und kann mich entsprechend authentifizieren, trotzdem wird der Versand abgelehnt. Die Fehlermeldung lautet: SMTP error from remote mailer after end of data: host xyz.domain.de [123.123.123.123]: 550 rejected: cannot route to sender
Als Absender muss eine gültige, und damit für den SMTP-Server von XYZ verifizierbare, Absenderadresse eingetragen werden. Mails mit „Phantasieadresse“ als Absender nimmt XYZ nicht an.
Für die Adressumsetzung vor dem Versand verwendet man folgende Parameter:
SMTP_OUTGOING_ADDRESSES_N='1' SMTP_OUTGOING_ADDRESSES_1='localuser: externe@adresse.de'
und so weiter…
Es muss sichergestellt werden, dass die Besitzrechte für die Dateien und Verzeichnisse nach dem Restore wieder korrekt gesetzt werden. Hierzu geht man wie folgt vor:
cd /<< home directory of the user >> chown -R << username >>: .imapmail chown << username >>: .mailboxlist
Die spitzen Klammern natürlich nicht schreiben
Mail Versand nicht möglich - Fehler `broken pipe' wird ausgegeben.
ch möchte Mail versenden und zuvor die Mail-Adresse über den Parameter SMTP_OUTGOING_ADDRESSES_1='gurru: mail-guru@meine-domain.de' umschreiben lassen. Die Mail wird zwar korrekt in die Queue gestellt, jedoch nicht an den konfigurierten Smarthost ausgeliefert. In der Logdatei erscheint die Meldung: ... SMTP>> writing message and terminating "." LOG: MAIN mail.meine-domain.de [123.123.123.123]: Broken pipe LOG: MAIN == mail-guru@meine-domain.de R=smart_route T=remote_smtp defer (32): Broken pipe: mail.meine-domain.de [123.123.123.123] LOG: queue_run MAIN End queue run: pid=12594 -qff Was ist die Ursache für diese Meldung?
Die Übersetzung interner in externe Mailadressen wird durch ein Perl-Script realisiert, welches vor der Übermittlung der Nachricht an einen anderen SMTP-Server aufgerufen wird. Aus diesem Grund ist es essentiell notwendig, dass zuvor das Perl-Paket installiert wurde. Ist dies nicht der Fall, so wird z.B. eine `broken pipe'-Fehlermeldung ausgegeben und die Übermittlung einer Nachricht schlägt fehl.
"Check receiver email address" gibt Meldung "unroutable address" zurück.
Wieso erhalte ich, wenn ich die Funktion "Check receiver email address" aufrufe, die Meldung "unroutable address"? Please enter email address which should be checked: michael@domain.lan michael@domain.lan is undeliverable: Unrouteable address
Bei dieser Funktion prüft Exim erst, ob die Domain „domain.lan“ eine lokale Domain oder eine „remote“ Domain ist. Da „domain.lan“ nicht meine lokale Domain ist, ist das Ergebnis bei mir auch wie folgt:
michael@domain.lan michael@domain.lan router = smart_route, transport = remote_smtp << schicke alles zum ISP host mail.epost.de [193.28.100.151] << schicke alles zum ISP
Handelt es sich um eine lokale Domain und der angegebene User existiert nicht (kein Systemuser) oder es wurde eine gemischte Schreibweise verwendet (Klein- und Großschrift) oder kein Alias definiert (SMTP_ALIASES_x…), so erscheint die Meldung „unrouteable address“.
Fetchmail - Problem beim Abruf meiner Mail-Accounts.
Rufe ich meine Mail-Accounts ab, so treten die folgenden Fehlermeldungen auf: - Could not decode BASE64 challenge - Unknown Login or authentication error on - Query Status=15 Dieser Fehler tritt ab dem mail-Paket v1.1.6 bzw. Fetchmail v6.2.2 auf, mit früheren Fetchmail Versionen (5.9.11 bis 6.2.0) trat dieser Fehler nicht auf.
1. Could not decode BASE64 challenge
2. Unknown Login or authentication error on …
3. Query Status=15
Die genannten Meldungen erhält man, weil der POP3-Daemon des ISP die Option TLS anzeigt, obwohl diese nicht unterstützt wird. Dieser Fehler kann gelöst werden, indem man den Parameter FETCHMAIL_x_AUTH_TYPE='password' setzt.
Weiterleiten aller eingehenden Nachrichten an z.B. einen Xchange-Server.
Wie muß ich das mail-Paket konfigurieren, damit alle eingehenden Nachrichten, die z.B. via Fetchmail reinkommen, an einen Xchange- Server weitergeleitet werden. Vom eisfair-Server sollen die Nachrichten "nur" abgerufen, auf Viren geprüft und weitergeleitet werden ;-)
Wenn man annimmt, dass die auf dem Exchange-Server gehostete Domain z.B. 'domainxy.de' und der Exchange-Server selbst 'mskiste.local.lan' heißt, dann könnte man dies meines Erachtens wie folgt lösen:
1. Abruf eines POP3-Multidrop-Postfach konfigurieren
FETCHMAIL_1_DOMAIN='yes' FETCHMAIL_1_ENVELOPE='yes' FETCHMAIL_1_SERVER_AKA_N='1' FETCHMAIL_1_SERVER_AKA_1='domainxy.de' FETCHMAIL_1_LOCALDOMAIN_N='1' FETCHMAIL_1_LOCALDOMAIN_1='domainxy.de'
2. SMTP-Server konfigurieren
SMTP_LOCAL_DOMAIN_N='3' SMTP_LOCAL_DOMAIN_1='@' SMTP_LOCAL_DOMAIN_2='localhost' SMTP_LOCAL_DOMAIN_3='transferdomain.lan' SMTP_RELAY_TO_DOMAIN_N='1' SMTP_RELAY_TO_DOMAIN_1='domainxy.de'
3. Weiterleitung konfigurieren
SMTP_SMARTHOST_ONE_FOR_ALL='yes' SMTP_SMARTHOST_DOMAINS='' SMTP_SMARTHOST_N='1' SMTP_SMARTHOST_1_HOST='mskiste.local.lan' SMTP_SMARTHOST_1_AUTH_TYPE='none' SMTP_SMARTHOST_1_FORCE_AUTH='no' SMTP_SMARTHOST_1_FORCE_TLS='no'
1. Lege einen Public-Ordner an:
IMAP_PUBLIC_FOLDER_N='1' IMAP_PUBLIC_FOLDER_1_ACTIVE='yes' IMAP_PUBLIC_FOLDER_1_NAME='Spam-Mail' IMAP_PUBLIC_FOLDER_1_USERGROUP=''
2. Modifiziere die Exiscan-Konfiguration:
EXISCAN_SPAMD_ENABLED='yes' EXISCAN_SPAMD_ACTION='redirect spam-mail@<deine domain>'
3. Modifizieren der Antispam-Konfiguration im antispam-Paket um eine Benachrichtigung zu verschicken:
ANTISPAM_MAILBOX_FILE='/home/imappublic/spam-mail'
Automatisch fehlenden Date-Header ergänzen.
Manchmal kommt es vor, dass Mails zugestellt werden in deren Mail-Header der Date-Eintrag fehlt. Dies führt dazu, dass in einigen Mail-Clients entweder kein Datumsstempel angezeigt wird oder dieser automatisch auf z.B. den '01.01.1970' gesetzt wird. Wie kann ich automatisiert prüfen ob ein entsprechender Eintrag im Header existiert und ihn gegebenenfalls durch den Mail-Server ergänzen lassen?
Vorgehensweise ab dem mail-Paket v1.3.0:
Man legt eine Datei /var/spool/exim/custom-systemfilter.add_date mit exakt folgendem Inhalt an (die erste Zeile muß unverändert übernommen werden!):
# Exim custom filter if "${if def:h_Date: {def}{undef}}" is undef then headers add "Date: $tod_full" endif
Danach bitte nicht vergessen die mail-Konfiguration neu zu erzeugen Es sollte dabei kurz folgender Hinweis angezeigt werden:
creating system-filter file ... adding custom system filter /var/spool/exim/custom-systemfilter.add_date ...
Bei Verwendung von SSL muss sicher gestellt werden, dass das entsprechende Server-Zertifikate, das Zertifikat des Ausstellers und ein eventuelles Root-Zertifikat im lokalen Zertifikatsverzeichnis /usr/local/ssl/certs existieren. Auch müssen Hash-Werte für alle Zertifikate erstellt werden.
Die Konfigurationschritte sehen z.B. für den Zugriff auf securepop.t-online.de wie folgt aus:
1. Abruf des Server-Zertifikates
openssl s_client -connect securepop.t-online.de:995 -showcerts
Aus den angezeigten Informationen wird der Datenblock, welcher durch `—–BEGIN CERTIFICATE—–' und `—–END CERTIFICATE—–' gekapselt ist, markiert und in eine Datei mit z.B. dem Namen 'tonline.pem' kopiert. Die Datei muss im Verzeichnis /usr/local/ssl/certs abgelegt werden.
2. Server-Zertifikat prüfen:
openssl verify -CApath /usr/local/ssl/certs -verbose tonline.pem Ausgabe: tonline.pem: /O=VeriSign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3/OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign error 2 at 1 depth lookup:unable to get issuer certificate
3. Aussteller des Zertifikats ablesen bzw. auf diese Weise ermitteln:
openssl x509 -in tonline.pem -noout -issuer issuer= /O=VeriSign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3/OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign
4. Issuer-Zertifikate von Verisign herunterladen, bzw. dass beim Serverzertifikat mitgelieferte Zertifikat in einer Datei, z.B. 'vtnetwork.pem', abspeichern und Hash-Wert erzeugen. (Eventuell muss das Zertifikat zuvor noch in das PEM-Format konvertiert werden!)
5. Issuer-Zertifikat prüfen:
openssl verify -CApath /usr/local/ssl/certs -verbose vtnetwork.pem vtnetwork.pem: /O=VeriSign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3/OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign error 20 at 0 depth lookup:unable to get local issuer certificate
6. Aussteller des Zertifikats ablesen bzw. auf diese Weise ermitteln:
openssl x509 -in vtnetworks.pem -noout -issuer issuer= /C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
7. Root-Zertifikat von Verisign herunterladen und in einer Datei, z.B. vroot.pem, abspeichern und Hash-Wert erzeugen.
8. Schritt 4 wiederholen:
vtnetwork.pem: OK
9. Schritt 2 wiederholen:
tonline.pem: OK
10. Jetzt schaut man sich die Fetchmail-Parameter an und setzt diese wie folgt:
FETCHMAIL_x_ACTIVE='yes' FETCHMAIL_x_SERVER='securepop.t-online.de' FETCHMAIL_x_USER='+++mein-Login+++' FETCHMAIL_x_PASS='+++mein-Passwort+++' FETCHMAIL_x_FORWARD='+++lokaler-USer+++' FETCHMAIL_x_PORT='' FETCHMAIL_x_AUTH_TYPE='' FETCHMAIL_x_KEEP='no' FETCHMAIL_x_FETCHALL='yes' FETCHMAIL_x_SSL_PROTOCOL='ssl3' FETCHMAIL_x_SSL_TRANSPORT='yes' FETCHMAIL_x_SSL_FINGERPRINT='+++Fingerprint-des-Zertifikates+++' (Grossbuchstaben!) (Fingerprint ermitteln: openssl x509 -in tonline.pem -noout -fingerprint -md5)
11. Hurra, es klappt
fetchmail: 6.2.5 querying securepop.t-online.de (protocol POP3) at Tue, 03 May 2005 22:38:20 +0200 (CEST): poll started fetchmail: Issuer Organization: VeriSign Trust Network fetchmail: Unknown Issuer CommonName fetchmail: Server CommonName: SECUREPOP.T-ONLINE.DE fetchmail: securepop.t-online.de key fingerprint: 1D:C8:2E:1E:B8:AA:9B:D9:15:98:B9:CD:B0:4F:E7:AC fetchmail: securepop.t-online.de fingerprints match. fetchmail: POP3< +OK T-Online POP3 Server fpopd ready fetchmail: POP3> CAPA
Hinweis: Die Zertifikatskette sieht also wie folgt aus:
tonline.pem (Server Zertifikat) –> vtnetwork.pem (Verisign Zertifikat) –> vroot.pem (Verisign Root-Zertifikat)
Mit folgender .forward-Datei, welche im Home-Verzeichnis des Anwenders abgelegt werden muss, kann man eine Benachrichtigung beim Eingang einer Nachricht versenden.
- Die Benachrichtigung findet statt, wenn in der Betreffzeile das Wort „Forward“ enthalten ist.
- Die Betreffzeile der Benachrichtigung enthält den Absender und die Betreffzeile der eingegangenen Nachricht.
- Die Bachrichtigung wird an die Adresse 'frank@elsewhere.com' geschickt.
- Beim Versenden einer Benachrichtigung wird ein Eintrag in die Logdatei 'forwarded-mail.log' geschrieben.
#Exim filter <- DO NOT EDIT OR REMOVE THIS LINE if error_message then finish endif if $header_subject: contains "Forward" then # Der folgende Befehl ist in einer Zeile zu schreiben mail to "frank@elsewhere.com" subject "F:$h_from S:$h_subject" log $home/forwarded-mail.log endif
Wie muss ich Fetchmail konfigurieren um Email von einem Googlemail-Postfach mittels POP3 abzurufen?
Um Email von einem Googlemail-Account abrufen zu können muss man wie folgt vorgehen:
1. Das benötigte Serverzertifikat lädt man bei installiertem certs-Paket durch Aufruf des folgenden Skriptbefehls:
/var/install/bin/certs-request-cert -writecert pop3 pop.googlemail.com 995
Es wird automatisch im Verzeichnis /usr/local/ssl/certs gespeichert und der benötigte Hash erzeugt.
2. Danach gibt man den Aussteller des Zertifikats mittels des folgende Befehls aus:
openssl x509 -in /usr/local/ssl/certs/pop.googlemail.com.pem -noout -issuer
3. Die ermittelte Information nutzt man um das passende Root-Zertifikat von der identifizierten CA-Homepage herunter zu laden. Die Datei muss im PEM-Format im Verzeichnis /usr/local/ssl/certs abgelegt werden. Zusätzlich müssen die Hash-Werte mittels des Befehls '/usr/bin/ssl/c_rehash /usr/local/ssl/certs' aktualisiert werden.
4. Mittels des folgenden Befehls prüft man ob die Zertifikatskette korrekt geprüft werden kann:
openssl verify -CApath /usr/local/ssl/certs -verbose /usr/local/ssl/certs/pop.googlemail.com.pem
5. In der mail-Konfiguration legt man nun einen Fetchmail-Account mit folgenden Parametern an:
FETCHMAIL_1_ACTIVE='yes' FETCHMAIL_1_COMMENT='Googlemail' FETCHMAIL_1_SERVER='pop.googlemail.com' FETCHMAIL_1_USER='' FETCHMAIL_1_PASS='' FETCHMAIL_1_FORWARD='dein-account@local.lan' FETCHMAIL_1_SMTPHOST='' FETCHMAIL_1_IMAP_FOLDER='' FETCHMAIL_1_DOMAIN='no' FETCHMAIL_1_ENVELOPE='no' FETCHMAIL_1_ENVELOPE_HEADER='' FETCHMAIL_1_SERVER_AKA_N='0' FETCHMAIL_1_LOCALDOMAIN_N='0' FETCHMAIL_1_PROTOCOL='' FETCHMAIL_1_PORT='995' FETCHMAIL_1_AUTH_TYPE='password' FETCHMAIL_1_KEEP='no' FETCHMAIL_1_FETCHALL='no' FETCHMAIL_1_MSG_LIMIT='0' FETCHMAIL_1_SSL_PROTOCOL='tls1' FETCHMAIL_1_SSL_TRANSPORT='yes' FETCHMAIL_1_SSL_FINGERPRINT='D3:B3:42:74:E5:1C:6F:30:6B:06:E4:CE:1C:8F:D6:45' (muss gegebenenfalls angepasst werden)
Danach sollte ein Abruf problemlos funktionieren.
Tipp: man kann das Fetchmail-Programm mittels des Befehls '/etc/init.d/mail -debug restart fetch' starten um eine detailliertere Logausgabe (/var/log/fetchmail.log) zu erhalten.
Mittels folgender Schritte kann man individuelle ok_locales- und ok_languages-Parameter festlegen:
1. Im Verzeichnis /var/antispam/spamassassin legt man eine Datei mit dem Namen xx_my_own_settings.cf an welche folgenden Inhalt hat:
# # my own settings # # only allow messages in german and english languages ok_languages de en ok_locales de en # add guessed message language header to all messages add_header all Language _LANGUAGES_ # add score information header to all messages add_header all Score _SCORE_/_REQD_ # add full spam report to all messages add_header all Report _REPORT_ # increase score for unwanted language bodies (default 2.8) score UNWANTED_LANGUAGE_BODY 5.0
2. Danach startet man SpamAssassin neu:
/etc/init.d/antispam restart
3. Anschließend erstellt man sich z.B. drei einfache Testnachrichten in den Sprachen deutsch, englisch und französisch. Hier als Beispiel die französische Nachricht:
From: root@local.lan Date: Fri, 06 Apr 2012 20:58:56 +0200 To: dummy@local.lan Subjet: SA - c'est une message en français Vous pouvez utiliser et diffuser ces règles sous toutes les formes que vous souhaitez (papier, électronique, plaques de marbre, etc...), à vos risques et pér ils. Elles sont en prod sur mes serveurs, mais ce qui fonctionne pour moi ne fonctionnera peut-être pas pour vous. Si vous avez un doute, commencez par mettre un score égal à 0.0 pour mesurer les impacts, et regardez les headers (en-têtes) de vos courriers. Remarque: cette page n'est pas AllGood Compliant. Je me refuse à utiliser des barbarismes et autres néologismes de bon aloi sous prétexte que ça fait plus "in French in ze texte".
4. Nun verwendet man diese Nachricht für einen ersten Test:
spamassassin < /tmp/xxx_french_locale_test_msg.txt
5. Das Ergebnis sollte gekürzt wie folgt aussehen:
Received: from localhost by eis1-dev.privatnet.lan with SpamAssassin (version 3.3.2); Thu, 12 Apr 2012 10:59:39 +0200 From: root@local.lan To: dummy@local.lan Date: Fri, 06 Apr 2012 20:58:56 +0200 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eis1-dev.privatnet.lan X-Spam-Flag: YES X-Spam-Level: ***** X-Spam-Status: Yes, score=5.9 required=5.0 tests=AWL, DKIM_ADSP_NXDOMAIN,MISSING_MID,MISSING_SUBJECT,NO_RECEIVED NO_RELAYS,UNWANTED_LANGUAGE_BODY autolearn=no version=3.3.2 X-Spam-Language: fr # << X-Spam-Score: 5.9/5.0 # << X-Spam-Report: * -0.0 NO_RELAYS Informational: message was not relayed via SMTP * 0.8 DKIM_ADSP_NXDOMAIN No valid author signature and domain not in DNS * 5.0 UNWANTED_LANGUAGE_BODY BODY: Message written # << in an undesired language # << * 0.1 MISSING_MID Missing Message-Id: header * 1.8 MISSING_SUBJECT Missing Subject: header * -0.0 NO_RECEIVED Informational: message has no Received headers * -1.8 AWL AWL: From: address is in the auto white-list MIME-Version: 1.0 ...
Wie man sehen kann wird die Nachricht wie gewünscht gefiltert.
Samba
Wie richte ich einen Cronjob ein, der z.b. Nachts die Samba-Laufwerke per ClamAV überprüft?
CRON_2_TIMES='05 2 * * *'
CRON_2_COMMAND='clamscan –bell -r -i /dein/daten/pfad'
Das „–bell“ erzeugt bei einem Virenfund ein „beep“ am eisfair.
Newsserver
Zuerst sei angemerkt, daß man dazu die aktuelle developer-Version 1.1.3 benötigt. Dabei ist allerdings immer noch etwas Handarbeit angesagt. Man muß sich auf eisfair einloggen (per ssh oder Konsole) und folgende Schritte nacheinander ausführen :
cd /var/spool/news/.outgoing mkdir news.bar.invalid:119 chown news news.bar.invalid:119 chgrp news news.bar.invalid:119
Dann in das setup wechseln zum Punkt „News Service“ und folgende Punkte wählen:
4: Goto news tools 3: Delete external newsserver 3: Remove server and change all related groups to another server
Jetzt news.foo.invalid löschen und alle Gruppen nach news.bar.invalid wechseln lassen. Zum Schluß noch, falls nötig, im setup unter dem Punkt „News Service“ per
4: Goto news tools 8: Change login on external newsserver
die alten Zugangsdaten für news.bar.invalid neu eintagen.
Anzahl der Artikel in neuen Gruppen ist immer 200
Ich will mehr als die letzten 200 Artikel holen, wenn ich eine Newsgroup neu anlege. In der Config steht: SN_GENERAL_MAXARTICLES_1='50000' sn lädt aber beim besten Willen nur die 200 letzten Artikel. Übersehe ich da noch einen Punkt in der Konfiguration?
Nein, Du übersiehst keinen Punkt in der Konfiguration. Das Problem ist folgendes: sn kennt zwei verschiedene Maxima. Das eine (das ist das, was man in der Konfiguration einstellen kann) bezieht sich auf die Anzahl der Artikel, wenn man die Gruppe bereits abonniert und auch schon Artikel geladen hat. Das zweite Maximum bezieht sich auf den sogenannten initialen Fetch, d.h. es bezeichnet die maximale Anzahl der Artikel, die geladen werden sollen, wenn zum allerersten Mal News für diese Gruppe bezogen werden. Dieses Maximum wirkt leider global und ist nicht für jede Gruppe extra einstellbar. Wenn man den Standardwert von 200 trotzdem ändern möchte, dann kann man das folgendermaßen tun:
Folgende Zeilen am Ende der Datei /var/install/bin/sn-gn
su news -c "/usr/local/sn/snget -p2 2>>$SN_LOG_DIR/$SN_FETCH_LOG" &
und
/usr/local/sn/snget -p2 2>>$SN_LOG_DIR/$SN_FETCH_LOG &
durch
su news -c "/usr/local/sn/snget -p2 -m XXX 2>>$SN_LOG_DIR/$SN_FETCH_LOG" &
und
/usr/local/sn/snget -p2 -m XXX 2>>$SN_LOG_DIR/$SN_FETCH_LOG &
ersetzen. Für XXX einfach eine Zahl Deiner Wahl einsetzen. Dies gilt dann ab sofort für alle neuen Gruppen.
Zur Zeit leider nur mit viel Handarbeit. Außerdem funktionieren dann unter Umständen einige Tools im setup nicht mehr. Falls der Server news.foo.invalid heißt und auf Port 666 lauscht, ist Folgendes zu tun:
Zuserst sollte man ganz normal alle Gruppen per setup für diesen Server bestellen. Anschließen muß man den Port ändern:
cd /var/spool/news/.outgoing/ mv news.foo.invalid:119 news.foo.invalid:666 chown news news.foo.invalid:666 chgrp news news.foo.invalid:666
Jetzt muß man den betreffenden Gruppen noch ihren neuen Server mitteilen:
cd /var/spool/news/gruppe.foo.bar rm .outgoing ln -s ../.outgoing/news.foo.invalid:666 .outgoing chown news .outgoing chgrp news .outgoing
Dies ist für jede Gruppe, die von diesem Server bezogen wird, durchzuführen.
Webmail
Nachricht mit Dateianhang läßt sich nicht öffnen
Will man eine Nachricht mit einem großen Dateianhang öffnen, so wird die Fehlermeldung "Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/htdocs/webmail/functions/mime.php on line 848" angezeigt. Wie kann man diese Fehlermeldung vermeiden?
Man setzt z.B. in der Datei /etc/php.ini den Parameter „max_execution_time = 90“ und startet anschließend den Apache-Webserver neu um die Änderung zu übernehmen.
MariaDB/MySQL
Leider nein. MySQL 4.1.x ist nicht mehr abwärtskompatibel zu vorherigen Versionen. Es wurde das interne Datenbankformar geändert. Auch die erstellten Backups können nicht unter vorherigen Versionen verwendet werden.
Dafür kann es viele Ursachen geben. Einige Programme mögen leider die sichere und immer vorhandene Möglichkeit der internen Kontaktaufnahme zu MySQL, über /var/lib/mysql/mysql.sock oder /tmp/mysql.sock nicht. Sie benötigen eine Kommunikation über TCP Port 3306, die erst freigeschaltet werden muss:
MYSQL_NETWORK='yes'
Dann sollte man aber nach Möglichkeit den freigeschalteten Port nur intern nutzbar machen:
MYSQL_BIND_IP_ADDRESS='127.0.0.1'
Wird aber auch noch direkter Zugriff auf die Datenbank selber von anderen Computern aus gewünscht, so kommt man nicht daran vorbei, diese Option leer zu lassen. Das wäre z.B. bei Nutzung eines Datenbankprogrammes auf einem Windows PC der Fall.
MYSQL_BIND_IP_ADDRESS=''
Auf jeden Fall benötigt man für den externen Zugriff auf MySQL einen Benutzer, der mit entsprechenden Rechten, z.B. über den Menüpunkt „Add new MySQL user“, angelegt wird. Dabei ist die Abfrage „Enter the allowed host:“ so sicher wie möglich zu beantworten. Am besten wäre da die Eingabe einer IP-Adresse oder eines Hostnamens:
'192.168.6.1' oder 'user01.foo.local'
Möchte man von allen Computern einer Domain den Zugriff aus erlauben:
'192.168.6.0/255.255.255.0' oder '%.foo.local'
Für Vollzugriff aus allen Netzen steht dann:
'%'
VBox
Wie kann man eine eigene Ansage für VBox erstellen?
Man kann eigene Ansagen für VBox auf mehrere Arten erstellen. Hier ein paar Beispiele:
- Man ruft die VBox an und spricht seine Ansage wie eine normale Nachricht auf. Danach kopiert man die Nachrichtendatei aus dem Verzeichnis /var/spool/vbox/USERNAME/incoming nach /var/spool/vbox/USERNAME/messages und benennt sie in standard.msg um.
- Mit Hilfe des Windows Audiorecorder nimmt man den gewünschten Ansagetext auf und verwendet dann die Funktion 'Speichern unter…' um sie im folgenden Format abzuspeichern:
Format: CCITT u-law 8000 Hz; 8 Bit; Mono ; 7KB/s
Jetzt muss die Datei nur noch auf den eisfair-Server übertragen und wie oben beschrieben, im Verzeichnis ../messages abgelegt werden.
- Mit Hilfe des Programms Audacity nimmt man den gewünschten Ansagetext als Mono-Datei mit einer Frequenz von 8000 Hz auf und verwendet dann die Funktion 'Exportieren…' → 'WAV, AIFF and other uncompressed types' → 'Optionen…' um sie als 'AU (Sun/Next 8-bit u-law)'-Datei abzuspeichern.
Danach überträgt man die Datei auf den eisfair-Server und konvertiert sie mittels des folgenden Befehls in das msg-Format:
/usr/local/vbox/bin/autovbox -u -n "VBox-Ansage" < ./neue_ansage.au > /var/spool/vbox/USERNAME/messages/standard.msg.
Unabhängig von den beschriebenen Vorgehensweisen sollte man im Anschluss prüfen ob der neu erzeugte Ansagetext auch mit den korrekten Eigentums- und Zugriffsrechten ausgestattet ist. Gegebenenfalls korrigiert man diese dann mit folgenden Befehlen:
chown USERNAME: /var/spool/vbox/USERNAME/messages/standard.msg chmod 640 /var/spool/vbox/USERNAME/messages/standard.msg
Asterisk
Asterisk Webinterface startet nicht
Bitte mal auf der Kommandozeile folgenden Befehl eingeben:
/usr/local/asterisk_webinterface/bin/mini_httpd \ -C /usr/local/asterisk_webinterface/etc/httpd.conf \ -d /usr/local/asterisk_webinterface/htdocs \ -i /usr/local/asterisk_webinterface/httpd.pid
Kommt dann folgende oder ähnliche Ausgabe socket:
Address family not supported by protocol 27216:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:637:Expecting: CERTIFICATE 27216:error:140AD009:SSL routines:SSL_CTX_use_certificate_file:PEM lib:ssl_rsa.c:536:
Dann bitte das Zertifikat via Cert neu erzeugt. Dazu erstmal das Apachezertifikat sichern. Folgende Dateien mußt du sichern.
/usr/local/ssl/certs/apache.pem /usr/local/ssl/private/apache.key /usr/local/ssl/csr/apache.csr /usr/local/ssl/newcerts/apache.crt
und dann im Certs-Menu die Zertifikate neu erstellen. Dazu im Certs-Paket wie folgt vorgehen:
3: Manage certificates Parameters 1 - change/set key type: web = - change/set key name: apache 10 - create a new key or select an exiting one [apache] - NEW - done. Do you want to create a (n)ew key or select an (e)xisting key (n/e)? n A key /usr/local/ssl/private/apache.key already exists. Delete previous generated files (.key, .csr, .crt, .pem), proceed anyway (y/N): y
Dann noch die Punkte 11 bis 14 durcharbeiten. Das neu erstellte dann einfach nach /usr/local/asterisk_webinterface/httpd.pem kopieren.
Danach die gesicherten wieder zurückkopieren. So hat man für den Asterisk ein eigenes Zertifikat und das Apache-Zerti bleibt.