Hostsharing-Mini-FAQ ==================== ver.0.3 30.11.2002 Hinweis: ======== Diese Informationen sind NICHT von mir geprüft worden. Alle Informationen sind aus der Maillingliste @support oder aus meinem Wissen. Hier wurden nur Informationen abgelegt die mir beim "durchblättern" des Archivs aufgefallen sind. Daher ist diese FAQ nicht als vollständig anzusehen. (ist ein FAQ jemals vollständig? ;-) ) Ich habe diese Informationen ursprünglich für mich als "Nachschlagewerk" gesammelt, aber ich denke jeder kann die eine oder andere Information gut gebrauchen. Informationen sollen/wollen frei sein. ;) Mein persönlicher Dank geht an alle bei Hostsharing und den Schreibern in der Support Maillinglist. Und achtet nicht auf Schreibfehler, ich habe nicht danach gesucht oder darauf geachtet. *g* Ich hoffe ich verletze keine Copyrights oder ähnliches, wenn jemand Teile seines Postings hier findet und dies nicht will, dann bitte mir bescheid sagen. Aber ich denke das dürfte nicht der Fall sein, schliesslich sind alle Infos auch im offenen Archiv verstreut. Dies ist nur ein kleines Destilat des Archivs. Fehler, Hinweise, Infos, Bemerkungen können gerne an mich gemailt werden: bis00@hostsharing.de Viel Spass und Erfolg Björn Isenbügel P.S.: Dieses Mini-FAQ wird natürlich weiterhin wachsen. Abzurufen ist das File auch unter http://bis00.hostsharing.net/minifaq History: -------- 0.1 - erste Version (wer hätte das gedacht) 0.2 - div. Verbesserungen von Purodha eingearbeitet - Danke 0.3 - procmail Info hinzugefügt ### Los geht's ################################################################ Neben diesen Informationen gibt es auch noch infos unter Hostsharing.de, Bereich Technik - Beschreibung und FAQ!! Rubriken: --------- 1. Web/HTTP Informationen - Web-Redirect via .htaccess - Keine automatischen Index Seiten generieren - Eigene 404-Fehler oder andere XXX-Fehler Seiten - 2 oder mehr Domains als "eine" zusammenführen 2. Mail Informationen - Zugangsdaten für Mail Accounts einer Domain - Maximale Größe von Mails - Generelles Info zu Mail Accounts und den Beschränkungen - Mailverteiler via virtusertable - Kommentarzeilen in der virtusertable - Mailresponder - erweiterte info 3. Crontab Handling - Aufbau von crontab Einträgen - Fehlermeldungen von Crontab bekommen - Sichern der Crontab - Löschen der Crontab - Einrichten einer gesicherten Crontab aus einer Datei - Einrichten eines "no-crontab" Users 4. Allgemeines Handling und Verwaltung - Hostsharing Handbuch - Log Dateien resetten - Dateien mit 0 bytes anlegen/initialisieren - Weitere Optionen zu einem Paket dazubestellen - Subdomain generieren und einem User zuordnen - Eine Domain mit multiplen Usern einrichten - Backup für Verzeichnisse deaktivieren - Aufbewahrung der Logs - Diskspace fuer alle User anschauen als Paket Admin - Userdateien löschen als Paket Admin - User loeschen - Diskspace des gesamten Pakets abrufen - Domain Statistiken den Usern zur Verfügung stellen - Kompletter Beispiel-Ablauf einer Domain Einrichtung 5. procmail - .procmailrc Beispiel Konfiguration für POP3 mit spamassassin ################################################################################## 1. Web/HTTP Informationen: ========================== Web-Redirect via .htaccess -------------------------- Durch folgenden Eintrag in der .htaccess DateiZwird der Redirect ausgelöst: RewriteEngine on RewriteRule ^.*$ http://www.irgend-was.de$1 [QSA,R,L] Dabei passt sich der Hostname auch im Browser an. Möglich wäre auch eine index.html mit einem "header" PHP Statement. Keine automatischen Index Seiten generieren: -------------------------------------------- In der .htaccess Datei folgenden Eintrag aufnehmen: Options -Indexes (nur bei AllowOverride auf Options) Ist nun keine Index HTML Seite im Verzeichnis, wird KEINE automatische Verzeichnis Übersicht generiert. Eigene 404-Fehler oder andere XXX-Fehler Seiten: ------------------------------------------------ In der .htaccess Datei folgenden Eintrag aufnehmen: ErrorDocument 404 /error/server_error.html (nur bei Allowoverride auf FileInfo) 2 oder mehr Domains als "eine" zusammenführen: ---------------------------------------------- Angenommen, es handelt sich um irgend-was.de und irgend-was.com, und nun soll unter irgend-was.com irgend-was.de erreichbar sein (mit einem www Verzeichnis) und alle Mails sollen von irgend-was.com an irgend-was.de 1-zu-1 weitergereicht und dort verteilt werden, so müssen folgende Dinge konfiguriert werden: 1.) In der irgend-was.com/etc/virtusertable folgendes eintragen: @irgend-was.com @irgend-was.de 2.) In der irgend-was.com/subs/www/.htaccess folgendes eintragen: RewriteEngine on RewriteRule ^.*$ http://www.irgend-was.de$1 [QSA,R,L] oder: Redirect / http://www.irgendwas.de/ ################################################################################## 2. Mail Informationen: ====================== Zugangsdaten für Mail Accounts einer Domain: -------------------------------------------- Benutzername = xyz- Paßwort = smtp = eigener Provider oder "mail..de" POP3 = pop3..de Maximale Größe von Mails: ------------------------- Maximum Größe für Mails derzeit: 8 MB Generelles Info zu Mail Accounts und den Beschränkungen: -------------------------------------------------------- Beispiel DW/MA/DE Paket mit 32 POP3/IMAP Accounts 128 E-Mail-Weiterleitungen unbegrenzte Anzahl E-Mail-Adressen In den virtusertable Dateien dürfen maximal 128 Einträge vorhanden sein. Die dortigen Einträge können auf die maximal 32 POP/IMAP Accounts verteilt werden. Die unbegrenzte Anzahl an e-Mail Adressen müssen mittels der Catch-All Regel und einem Script abgefangen und behandelt werden. (siehe Punkt: Mailresponder - erweitert) Mailverteiler via virtusertable: -------------------------------- Ziel: Eine "virtuelle" Adresse an mehrer User verteilen: Dazu in der virtusertable folgendes eintragen: virtuelleadresse@xyz.de user00-xyz,user00-abc,user00-def Kommentarzeilen in der virtusertable: ------------------------------------- Mit einem '#' am Anfang der Zeile kann ein Kommentar definiert werden. z.B.: # Dies sind die Standard Mail accounts webmaster@.de xyz00- postmaster@.de xyz00- # die restlichen accounts..... ... Mailresponder - erweiterte info: -------------------------------- Direkt aus @support genommen, besere Formulierung habe ichnicht gefunden *grins*: > > Bisher habe ich das wie folgt gelöst: Eine Mail an info@emailabruf.de > (emailabruf.de ist virtuelle Maildomain) wird weitergeleitet an eine > lokale Adresse, meinetwegen an abruf-info@, diese Adresse wiederum wird > an ein Perl-Script weitergereicht, das dann die Infos von der Platte > holt und die Antwortmail zusammenbaut und abschickt. Ich habe also je > einen Eintrag in der virtusermaps (@emailabruf.de --> lokal) und einen > in der aliases (lokal --> Script). Da ich in der virtusertable kein > Programm zum Mailhandling angeben kann, brauche ich Einträge in beiden > Dateien. wie ich schon vermutet hatte: du kannst das alles an ein Skript weiterleiten, dass dann den eigentlichen Empfänger aus dem Header abfragt. Ich habe sowas schonmal testweise für meine Subdomains bei is4u.de gemacht (ca. 6000 VirtuserTable-Einträge wären auch etwas heftig, wenn es jeder nutzen würde). Da es nur wenige wenige nutzen mache ich aber momentan noch Einträge in die virtusertables. Wenn du das Skript über einen User statt einem reinen Alias laufen lässt, also in dessen ~/.procmailrc einträgst, dann läuft es auch unter einem richtigen User, wenn du es über einen Alias laufen lässt, als noname (was dir Probleme beim Zugriff auf deine Dateien beschaffen würde). ################################################################################## 3. Crontab Handling: ==================== Aufbau von crontab Einträgen: ----------------------------- Eine cron Zeile ist wie folgt aufgebaut: Minuten Stunden Tage Monate Wochentage User Befehl Minuten | 0-59 und * für alle Minuten Stunden | 0-23 und * für alle Stunden Tage | 1-31 und * für jeden Tag Monate | 1-12 und * für jeden Monat Wochentage | 0-7 und * für jeden Wochentag (0 und 7 für Sonntag) Ein Komma ( , ) lässt mehrere Zeitangaben zu. Jeden Tag um 12 und 15 Uhr ...: 0 12,15 * * * ... Ein Bindestrich ( - ) gibt einen Zeitraum an. Jeden Tag von 12-24 Uhr (jede Stunde) ...: 0 12-24 * * * ... Ein Schrägstrich ( / ) teilt einen Zeitraum ein. Zwischen 6 und 23 Uhr alle 15 Minuten ...: */15 6-23 * * * ... Hier ein Beispiel: Ich habe ein kleines Skript geschrieben, welches mir jeden morgen die Speicherbelegung meines Paketes und der User anzeigt, um rechtzeitig reagieren zu können sollte die Quota überschritten werden. So kann ich frühzeitig abklären was los ist und ob ich noch Speicher orden muss. Der Cron Eintrag sieht wie folgt aus: 0 7 * * * ~/admin/du_pack_info.sh Das Skript wir jeden Tag um 7 Uhr ausgeführt und sendet mir eine Mail mit den ausgaben von "du-pac" und "du -h". Fehlermeldungen von Crontab bekommen: ------------------------------------- In die crontab oben folgende Zeile einfügen: MAILTO="xyz00@hostsharing.net" Dann bekommt xyz00 jeglichen Meldungen, welche ggf. bei Cronjobs auftreten. Für Fehlermeldungen muß der Error-Output auf Standard Output mittels "&2>1" gelenkt/gepiped werden. Sichern der Crontab: -------------------- Kommando: crontab -l >DATEI ist die Datei in welcher die Crontab Einträge gesichert werden. Für die Datei irgendwas sinnvolles nehmen, z.B. ~/etc/crontab.sav oder so. Löschen der Crontab: -------------------- Kommando: crontab -r Einrichten einer gesicherten Crontab aus einer Datei: ----------------------------------------------------- Kommando: crontab DATEI Einrichten eines "no-crontab" Users: ------------------------------------ Ein Shell Skript erstellen,welches unter der Crontab des Paket Admins läuft, und die Crontab des betreffenden Users löscht. Das Skript muß sich mittels "su" auf den User Ummelden, da nur root crontab -u ohne Passwort anmelden kann. ################################################################################## 4. Allgemeines Handling und Verwaltung: ======================================= Hostsharing Handbuch: --------------------- http://mi.hostsharing.de/HostsharingManual.pdf Log Dateien resetten: --------------------- Diverese Logdateien dürfen nicht gelöscht werden, sonst gibt es Zugriffsprobleme. Um ein Log zu resetten kann man folgenden Befehl nutzen: echo 0> DATEI z.b.: echo 0> web.err Dateien mit 0 bytes anlegen/initialisieren: ------------------------------------------- Mit dem "touch" Befehl kann man Dateien anlegen die 0 bytes enthalten, oder auch das Datum und Uhrzeit auf die aktuellen Daten setzen. touch DATEI Weitere Optionen zu einem Paket dazubestellen: ---------------------------------------------- Eine E-Mail an "bestellung@hostsharing.de" senden und ggf. auf die Rueckfrage (zur Sicherheit, dass nicht jemand unter falschem Absender die Mail verschickt hat) positiv antworten bzw. die Bestellung bestätigen. Subdomain generieren und einem User zuordnen: --------------------------------------------- Als User/Domainadmin folgende Kommandos nutzen: su -p xyz00- mkdir ~xyz00-/subs/..de exit cd /home/doms/.de/subs ln-sub ..de Der Paketadmin hat es einfacher, er kann folgendes Kommando nutzen: ln-sub -a ..de Eine Domain mit multiplen Usern einrichten: ------------------------------------------- User A ist Domainadmin und darf alles User B darf nur mit FTP auf z.b. das www Verzeichnis zugreifen, ohne eigenes Home Verzeichnis Lösung: Mittls ln-sub den User B auf das Verzeichnis legen. Als Admin kommt man dann zwar per FTP nicht mehr rein, aber per Shell und su immer noch. Backup für Verzeichnisse deaktivieren: -------------------------------------- Eine Datei namens "nobackup" im /etc Verzeichnis des Pakets erstellen (~xyz00/etc/nobackup) und dort eine Liste von Pfaden eintragen, für die kein Backup erstellt werden sollen. Die Pfad Einträge müssen dabei mit dem Paket Namen beginnen. z.B: xyz00/tmp xyz00/doms/irgendwas.de/tmp Diese Information wird derzeit aber nur für die "stündlichen" Replikations-Backups ausgewertet. Aufbewahrung der Logs: ---------------------- 48 Tage. Das Löschen ist nicht notwendig. Das Skript zum Splitten der logs liegt unter: /usr/local/sbin/split-weblogs Diskspace fuer alle User anschauen als Paket Admin: --------------------------------------------------- cd ~/users for NAME in *; do su -p -c "du -s $NAME" $USER-$NAME; done Für einen einzelnen User müsste folgendes gehen: su -p -c "du -s " xyz00- Userdateien löschen als Paket Admin: ------------------------------------ su -p xyz00- cd rm User loeschen: -------------- In der passwd Datei im Paket Verzeichnis /etc (~/etc/passwd) die betreffende Zeile des Users löschen. Sollte man aus versehen den User löschen, gibt es einen gewissen Zeitraum noch ein Backup. Desweiteren bleibt die Mailbox des Users erhalten. User mit einer zugeordneten aktiven Domain werden/können nicht gelöscht werden! Diskspace des gesamten Pakets abrufen: -------------------------------------- Als Paketadmin "xyz00" das folgende Kommando nutzen: du-pac Domain Statistiken den Usern zur Verfügung stellen: --------------------------------------------------- Frage: Wie kann ich aus dem PaketAdmin-Verzeichnis ~/var die logfiles nach ~/users/USER/var/log kopieren? Lösung, folgendes Skript: #!/bin/sh source /usr/local/lib/hostsharing/dom PAC=${1:-$USER} function mvLogs() { aLogs=$1 aOwner=$2 aFiles=`ls $aLogs 2>/dev/null` if [ -n "$aFiles" ]; then if [ "$aOwner" != "$PAC" ]; then su -p $aOwner -c "cp $aLogs ~$aOwner/var" else cp $aLogs ~$aOwner/var fi mv $aLogs ~/backup fi } for DOM in `doms_by_owner "$PAC.*"`; do dom_get $DOM mvLogs "/home/pacs/$PAC/var/web-$DOM-*-*.log.gz" $DOM_OWNER mvLogs "/home/pacs/$PAC/var/web-*.$DOM-*-*.log.gz" $DOM_OWNER done --- Skript ende --- Die Logs werden ebenfalls nach ~/backup gemoved. Das Skript muss als Paket-Admin ohne Parameter oder als root mit Parameter aufgerufen werden (z.B. jeden morgen mittels Crontab). Kompletter Beispiel-Ablauf einer Domain Einrichtung: ---------------------------------------------------- Dies ist ein Beispiel Vorgang, basierend auf meinen Methoden: 1.) Domainadmin erstellen ## to-do ## 2.) dom-order ausfüllen ## to-do ## 3.) Accounts erstellen ## to-do ## 4.) Mail einrichten ## to-do ## 5.) sonstige Konfiguration (MySQL, Quota) ## to-do ## (Alles noch auf ## to-do ##, da ich noch auf meiner erste Domain warte. ;) *g* ) ################################################################################## 5. procmail ============ .procmailrc Beispiel Konfiguration für POP3 mit spamassassin ------------------------------------------------------------ Die Beispiel Datei ist unter folgender URL zu finden: http://minifaq.b-i-services.de/procmailrc.txt ############### ENDE DES HOSTSHARING-MINI-FAQ ####################################