Linux KNOWLEDGE by Spreech 

 home |
Too Cool for Internet Explorer

Auto BCC Postfix

Bloged in Server by manuel.schwab Freitag September 11, 2009

http://www.ithowto.ro/2008/11/howto-bcc-all-recieved-or-sent-mail-from-your-postfix-server/

Apache Rewrite Rule SSL

Bloged in Server by manuel.schwab Dienstag Juli 21, 2009

Folgende zwei Probleme hatte ich und wie folgt gelöst:

1. Anfragen an http://domain.tld/check* sollten auf https://www.domain.tld/check* weitergeleitet werden.

Hierfür eine entsprechende RewriteRule im vHost:

RewriteEngine On
RewriteCond %{REQUEST_URI} /check+[a-zA-Z_\.]
RewriteRule ^(.*) https://www.domain.tld%{REQUEST_URI} [L]

2. SSL Anfragen an https://domain.tld sollten auf https://www.domain.tld weitergeleitet werden.
Die entsprechende RewriteRule:

RewriteEngine On
RewriteCond %{SERVER_NAME} domain.tld
RewriteCond %{HTTPS} on
RewriteRule ^(.*) https://www.domain.tld%{REQUEST_URI} [L]

apache2 mod_auth und mod_access kombinieren

Bloged in Server by manuel.schwab Montag Juli 13, 2009

Eine Beispielkonfiguration für die Kombination von mod_auth und mod_access kann so aussehen:

Require valid-user
Order Deny,Allow
Deny from all
Allow from 123.123.123.123
Satisfy All
SSLRequireSSL
AuthType Basic
AuthName „Authentifizierung“
AuthUserFile /var/db/access/users

Hier wird nur einem gültigen Benutzer Zugriff gewährt welcher zudem gleichzeitig die Ip 123.123.123.123 haben muss.

Möchte man, dass ein Benutzer Zugriff erhält der entweder ein gültiger Benutzer ist oder die IP 123.123.123.123 hat, dann ersetzt man

Satisfy all

durch

Satisfy any

fetchmail mit Postfixadmin

Bloged in Problembehebung,Programme,Server by manuel.schwab Sonntag Mai 3, 2009

Postfixadmin bietet von Hause aus eine fetchmail Funktion um Nachrichten auch von anderen (externen) Accounts einzulesen.

Leider gibt es hierzu keine Doku und man muss sich durch „versuchen“ durchwühlen.
Das „versuchen“ habe ich hintermir, daher hier eine kurze Beschreibung.

Grundlage:
Postfixadmin version 2.2.1.1 (http://postfixadmin.sourceforge.net/)
Installationspfad: /var/www/pfa/
Virtueller User: vmail

Man installiert postfixadmin ganz normal – hierfür gibt es einige Dokus (z.B. http://wiki.rootforum.de/mailserver/postfix/postfix-admin)

Um die fetchmail Option nutzen zu können, muss zusätzlich dies erstmal in PFA aktiviert sein und auch fetchmail installiert sein:

/var/www/pfa/config.inc.php

$CONF[‚fetchmail‘] = ‚YES‘;

bzw.

aptitude install fetchmail

Danach

nano /etc/default/fetchmail

Hier ist wichtig, dass START_DAEMON auf no steht und nicht etwa auf true:

START_DAEMON=no

Um zu versichern, dass fetchmail nun nicht schon etwa läuft, fetchmail kurz stoppen:

/etc/init.d/fetchmail stop

Das wars zu Fetchmail allgemein.
Nun geht es darum, das postfixadmin Plugin entsprechend zu konfiguieren.
Was man lediglich anpassen muss ist die Datei fetchmail.pl:

nano /var/www/pfa/ADDITIONS/fetchmail.pl

Dort speziell muss vorallem das Home Dir der vmail User angegeben werden sowie die mysql settings:

# the home dir of vmail user:
$vmail_dir=“/var/vmail“;

# mysql settings
$database=“postfix“;
$hostname=“127.0.0.1″;
$user=“fetchmail“;
$password=“password“;
$dsn = „DBI:mysql:database=$database;host=$hostname“;

Bei mir hier insbesondere ist das Verzeichnis in welchem sich die Mails befinden /var/vmail .
Ebenso heißt bei mir die Datenbank „postfix“, der Datenbankbenutzer „fetchmail“ und das entsprechende Passwort ist „password“.

Generell muss man hier nichts weiter einstellen.

In manchen Fällen kann es aber durchaus hilfreich sein, wenn man noch das, was fetchmail so macht, loggt.

Hierfür erstellen wir zunächst eine entsprechende Datei:

touch /var/log/fetchmail

Schreibrechte auf die Datei sollte der User haben, welcher in postfix als virtual user angegeben ist.
Bei mir ist dies vmail, welcher der Gruppe mail angehört:

chown vmail:mail /var/log/fetchmail

Um nun auch zu erreichen, dass geloggt wird, muss man die Option

$ret=`/usr/bin/fetchmail`;

in der Datei

/var/www/pfa/ADDITIONS/fetchmail.pl

erneut anpassen.

Hierfür gibt es zwei Möglichkeiten:

$ret=`/usr/bin/fetchmail -L /var/log/fetchmail`;

Ändert man den Eintrag darauf, werden „normale“ Logfiles erstellt.

Um sehr ausführliche Logfiles zu erhalten, wählt man folgenden Eintrag:

$ret=`/usr/bin/fetchmail -v >>/var/log/fetchmail`;

Nun haben wir soweit alles vorbereitet.

In einem letzten Schritt müssen wir nun noch einen Cronjob einrichten, damit die Datei fetchmail.pl auch regelmäßig durchgeführt wird.

crontab -e

und folgender Eintrag am Ende einfügen:

*/5 * * * * vmail /var/www/pf/ADDITIONS/fetchmail.pl > /dev/null 2&>1

Wichtig hierbei ist, dass vorher die Rechte auf die Datei fetchmail.pl entsprechend gesetzt werden, dass der Benutzer vmail diese Datei auch ausführen darf.

Sollte obiges nicht klappen, so haben folgende Möglichkeiten teilweise auch funktioniert:

*/5 * * * * vmail perl /var/www/pf/ADDITIONS/fetchmail.pl > /dev/null 2&>1

*/5 * * * * sudo -H -u vmail /var/www/pfa/ADDITIONS/fetchmail.pl > /dev/null 2&>1

wobei bei der letzten Variante noch ein entsprechender Eintrag in der sudoers Datei gemacht werden muss.

Nun noch ein paar Worte zur Oberfläche von PFA und den entsprechenden Optionen:

Auth Type: password hat bei mir hier zu 100% funktioniert
Remote Folder: wenn ihr ein IMAP Postfach abrufen wollt, dann diese Option leerlassen. Wird die Option / angegeben, dann wird es nicht funktionieren. Wie es sich bei POP3 verhält kann ich leider nicht sagen da noch nicht getestet.
Wird also nichts angegeben, dann wird die INBOX abgerufen, also der normale Posteingang.
Hat man beispielsweise Unterordner erstellt, z.B. einen Ordner der sich PFA nennt, dann kann man diesen durch die Angabe von INBOX.PFA rüberholen.
Diese Angabe bezieht sich allerdings nur auf Quellserver, auf welchen Postfix / Dovecot läuft. Wie es sich bei anderen verhält kann ich nicht sagen – kenne keine andere Ordnerstruktur :-)
Poll:Sollte klar sein, was diese Option macht. Angabe des Intervalls in welchem nach neuen Mails geprüft werden soll. Hier allerdings Achtung: Lässt ihr den Cronjob nur alle 5 Minuten laufen (wie in dem Beispiel oben) und trägt hier aber „1“ ein, d.h. es soll jede Minute geprüft werden, dann wird das natürlich nicht klappen. Die Angabe unter Poll darf also maximal so klein sein wie das Cronintervall.
Fetch All: Wird die Option markiert, dann werden ALLE Mails des Quellservers abgerufen (genauer: alle Mails des Quellservers des angegebenen Ordners), d.h. es spielt keine Rolle ob diese neu (im Sinne von ungelesen) oder alt (im Sinne von gelesen) sind. Wichtig hierbei: sobald man fetchmail das erste Mal nutzt, werden alle ungelesenen Mails auf dem Quellserver als gelesen markiert. Also nicht wundern wenn ihr euch danach mit dem Webmailer einloggt und merkt dass ihr keine „neuen“ Mails mehr habt :-)
Wichtig auch noch, wenn die Option markiert wird: Es werden JEDES MAL wenn ihr Fetchmail nutzt, ALLE(!!) Mails geholt!
Nachdem ihr also Fetchmail 2x durchführt mit dieser Option werdet ihr alle Mails doppelt drin haben.

Es empfiehlt sich daher folgende Vorgehensweise:
– Option Fetch All beim ersten Mal aktivieren um ALLE Mails gefetched zu haben
– anschließend Fetch All deaktivieren so dass wirklich nur noch neue Mails rüberkommen.

Hierzu gilt es aber folgendes zu beachten:
Ist Fetch All deaktiviert, werden wirklich nur NEUE (im Sinne von ungelese) Mails rübergeholt.
Bekommt ihr also in das Quellpostfach eine neue Nachricht geschickt und lest diese über den Webmailer des Quellsystems z.B., dann wird diese NICHT gefetched.
Diese taucht dann quasi nie im Account auf, in welchen ihr fetchen wollt. Außer man aktiviert Fetch All wieder.

Die anderen Optionen sollten sich von selbst erklären denke ich.

Quelle / Hinweise u.a.
http://sourceforge.net/forum/forum.php?thread_id=1915508&forum_id=676076
http://github.com/albanpeignier/tryphon-puppet/blob/b691ed9a8a6d42e65d7e3cc29c002eafd90a0ce2/files/bin/fetchmail-all
https://mail.asamnet.de/postfixadmin/userdoc/sonst_dok/fetchmail_setup.html
http://www.lukas-world.de/fetchm.htm
http://www.linupedia.org/opensuse/Mailserver_mit_Postfix,_Fetchmail,_Dovecot

Speziell für postgresql user: http://johker.ibutho.de/tag/postgres/

Geschützt: Bash Skript zum vHost anlegen

Bloged in Befehle,Programme,Server by manuel.schwab Freitag Mai 1, 2009

Dieser Inhalt ist passwortgeschützt. Um ihn anzuschauen, gib dein Passwort bitte unten ein:

Bash FTP Download/Upload Skript

Bloged in Befehle,Programme,Server by manuel.schwab Freitag Mai 1, 2009

Hier ein kleines bash skript um Dateien von einem FTP Server herunterzuladen:

#!/bin/bash
ftp -n [SERVERNAME] << EOF user [USERNAME] [PASSWORT] bin prompt off lcd [LOCALDIR] mget * EOF exit 0

Mit Beispieldaten:
Man will alle Dateien vom server ftp.meinserver.de herunterladen; Username ftp; Passwort password; lokales Verzeichnis wo die Dateien hinsollen /home/backup/ (muss existieren).

#!/bin/bash
ftp -n ftp.meinserver.de << EOF user ftp password bin prompt off lcd /home/backup/ mget * EOF exit 0

Natürlich kann man ein solches Skript auch dazu verwenden, lokale Dateien auf einen FTP Server upzuloaden:

#!/bin/bash
ftp -n [SERVERNAME] << EOF user [USERNAME] [PASSWORT] bin prompt off lcd [LOCALDIR] mput * EOF exit 0

Wichtig:
Heruntergelanden bzw. Hochgeladen werden hier jeweils nur Dateien die sich im jeweiligen Verzeichnis befinden.
Verzeichnisse werden nicht hoch- / runtergeladen.

skript nach ssh login ausführen

Bloged in Server by manuel.schwab Freitag April 10, 2009

möchte man ein skript direkt nach einem ssh login ausführen lassen, so kann man dieses in die Datei

.bashrc

im jeweiligen Home Vezeichnis eintragen.

Bei root liegt diese Datei in

/root/

.bashrc für root

Bloged in Server by manuel.schwab Freitag April 10, 2009

Um eine .bashrc auch für root nutzen zu können muss man einen eintrag in

/etc/profile

machen welcher wie folgt aussieht:

if [ -r „${HOME}/.bashrc“ ]; then
source „${HOME}/.bashrc“
fi

Danach wird auch für root die .bashrc genutzt die man zuvor in

/root/

angelegt hat.

Postfix versteckende Mails löschen

Bloged in Server by manuel.schwab Freitag Februar 15, 2008

Es kann durchaus mal vorkommen, dass einem die Mailqueue überläuft oder eine Email stecken bleibt.

Wenn man sich nicht sicher ist, kann man via

# cd /var/spool/postfix
# du -sh *

prüfen ob in den Ordnern was drin ist.
Wichtig sind hierbei die Ordner.

„active/, deferred/, defer/

Falls diese etwas anzeigen, kann man:

rm -r active/* deferred/* defer/*

machen und dann sollte die Mailwarteschleife wieder leer sein.

proftpd Resuming im speziellen Verzeichnis erlauben

Bloged in Server by manuel.schwab Donnerstag Oktober 18, 2007

Um dem proftpd Server zu konfiguieren, dass in bestimmten Verzeichnissen resuming erlaubt ist, folgendes ans Ende der proftpd.conf schreiben:

[Directory /path/to]
AllowRetrieveRestart on
AllowStoreRestart on
[/Directory]

Powered by Wordpress, theme by Dimension 2k