- 50 Gründe warum man sich kein iPhone zulegen sollte
(Vergleich mit einem Windows Mobile MDA, ein Nokia Smartphone kommt aber auf das Gleiche raus) - Mobical
(fast beliebige Telefone via SyncML abgleichen) - Crackberries: Warum Pushmail Unternehmen lähmt
(Artikel aus dem Managermagazin)
Tuesday, November 11. 2008
Linkdump
Wednesday, October 29. 2008
Cyrus und Sieve kaputt?
Diesen Artikel möchte ich für Google archivieren, nur falls mal wieder nach der beliebten Fehlermeldung:
sieveshell "unable to connect to server" gegoogelt wird. (Google ist voll davon).
Ich habe hier ein Etch-System, auf welchem seit Sarge ein Cyrus IMAP Server seine Dienste verrichtet. Und zwar klaglos ohne Probleme und völlig unauffällig. Sieve ist auch eingerichtet und funktioniert seitdem auch völlig problemlos.
Bis ich gestern neue Regeln hinzufügen wollte. Traditionell mach ich das mittels sieveshell -u <user> localhost
Die Anmeldung ging immer schief. Es war nicht möglich sich mit dem Sieve-Service zu verbinden. Was passierte war folgendes:
cb@localhost:$ sieveshell -u cb localhost
connecting to localhost
unable to connect to server at /usr/bin/sieveshell line 174.
Der Service lief natürlich, wie man folgendermaßen sehen konnte:
cb@localhost:~$ nc localhost sieve
"IMPLEMENTATION" "Cyrus timsieved v2.1.18-IPv6-Debian-2.1.18-5.1"
"SIEVE" "fileinto reject envelope vacation imapflags notify subaddress relational regex"
OK
logout
OK "Logout Complete"
Seltsam, seltsam. Es sah alles ok aus. Ein Blick in das Perl-Script sieveshell hat auch nicht weitergeholfen, das sah normal aus. Nach ewigem Suchen, fand ich dann diese Info in der Dokumentation:
Wem fällt was auf?
Richtig, die Zeile "SASL" "ANONYMOUS PLAIN KERBEROS_V4 GSSAPI" tauchte lokal überhaupt nicht auf. Das bedeutete, wenn ich das richtig interpretiere, dass es keine Möglichkeit gab sich gegenüber dem Server zu authentifizieren. Das ist ja erstmal verwunderlich, denn der normale IMAP Login funktionierte tadellos und in der Konfigurationsdatei gibt es nicht wirklich viele Einstellungen zum Thema Sieve.
Irgendwann nachdem ich zunächst erfolglos mit den Anmelde- und Sasloptionen gespielt habe, fiel mir dann auf, dass das Paket libsasl2-modules nicht installiert war. Nachdem das nachgeholt war, funktionierte plötzlich auch der Sieve-Login wieder und die Telnet Ausgabe sah nun wie gewünscht aus:
cb@localhost$ nc localhost sieve
"IMPLEMENTATION" "Cyrus timsieved v2.1.18-IPv6-Debian-2.1.18-5.1"
"SASL" "PLAIN NTLM LOGIN DIGEST-MD5 CRAM-MD5"
"SIEVE" "fileinto reject envelope vacation imapflags notify subaddress relational regex"
OK
logout
OK "Logout Complete"
Ach und laßt Euch von der Fehlermeldung
timsieved: could not getenv(CYRUS_SERVICE); exiting
nicht in die Irre führen. Diese kommt immer, wenn man versucht timsieved von Hand zu starten und nicht aus einem Cyrus-Prozess heraus. Diese Fehlermeldung hat mich nämlich auch ganz schön in die Irre geführt.
Sehr subtiles kleines Problem. Und ich verstehe aktuell immernoch nicht, warum man sich am IMAP-Server anmelden konnte, aber nicht bei Sieve.
sieveshell "unable to connect to server" gegoogelt wird. (Google ist voll davon).
Ich habe hier ein Etch-System, auf welchem seit Sarge ein Cyrus IMAP Server seine Dienste verrichtet. Und zwar klaglos ohne Probleme und völlig unauffällig. Sieve ist auch eingerichtet und funktioniert seitdem auch völlig problemlos.
Bis ich gestern neue Regeln hinzufügen wollte. Traditionell mach ich das mittels sieveshell -u <user> localhost
Die Anmeldung ging immer schief. Es war nicht möglich sich mit dem Sieve-Service zu verbinden. Was passierte war folgendes:
cb@localhost:$ sieveshell -u cb localhost
connecting to localhost
unable to connect to server at /usr/bin/sieveshell line 174.
Der Service lief natürlich, wie man folgendermaßen sehen konnte:
cb@localhost:~$ nc localhost sieve
"IMPLEMENTATION" "Cyrus timsieved v2.1.18-IPv6-Debian-2.1.18-5.1"
"SIEVE" "fileinto reject envelope vacation imapflags notify subaddress relational regex"
OK
logout
OK "Logout Complete"
Seltsam, seltsam. Es sah alles ok aus. Ein Blick in das Perl-Script sieveshell hat auch nicht weitergeholfen, das sah normal aus. Nach ewigem Suchen, fand ich dann diese Info in der Dokumentation:
2. From your normal account, telnet to the sieve port on the server
you're setting up:
telnet foobar sieve
If your server is running, you'll get a message similar to the
following one:
Trying 128.2.10.192...
Connected to foobar.andrew.cmu.edu.
Escape character is '^]'.
"IMPLEMENTATION" "Cyrus timsieved v1.1.0"
"SASL" "ANONYMOUS PLAIN KERBEROS_V4 GSSAPI"
"SIEVE" "fileinto reject envelope vacation imapflags notify
subaddress regex"
OK
Any message other than one similar to the one above means there is
a problem. Make sure all of authentication methods you wish to
support are listed. This list should be identical to the one
listed by "imapd" earlier. Next terminate the connection, by
typing "logout".
Wem fällt was auf?
Richtig, die Zeile "SASL" "ANONYMOUS PLAIN KERBEROS_V4 GSSAPI" tauchte lokal überhaupt nicht auf. Das bedeutete, wenn ich das richtig interpretiere, dass es keine Möglichkeit gab sich gegenüber dem Server zu authentifizieren. Das ist ja erstmal verwunderlich, denn der normale IMAP Login funktionierte tadellos und in der Konfigurationsdatei gibt es nicht wirklich viele Einstellungen zum Thema Sieve.
Irgendwann nachdem ich zunächst erfolglos mit den Anmelde- und Sasloptionen gespielt habe, fiel mir dann auf, dass das Paket libsasl2-modules nicht installiert war. Nachdem das nachgeholt war, funktionierte plötzlich auch der Sieve-Login wieder und die Telnet Ausgabe sah nun wie gewünscht aus:
cb@localhost$ nc localhost sieve
"IMPLEMENTATION" "Cyrus timsieved v2.1.18-IPv6-Debian-2.1.18-5.1"
"SASL" "PLAIN NTLM LOGIN DIGEST-MD5 CRAM-MD5"
"SIEVE" "fileinto reject envelope vacation imapflags notify subaddress relational regex"
OK
logout
OK "Logout Complete"
Ach und laßt Euch von der Fehlermeldung
timsieved: could not getenv(CYRUS_SERVICE); exiting
nicht in die Irre führen. Diese kommt immer, wenn man versucht timsieved von Hand zu starten und nicht aus einem Cyrus-Prozess heraus. Diese Fehlermeldung hat mich nämlich auch ganz schön in die Irre geführt.
Sehr subtiles kleines Problem. Und ich verstehe aktuell immernoch nicht, warum man sich am IMAP-Server anmelden konnte, aber nicht bei Sieve.
Monday, October 20. 2008
Abmahnwelle die nächste? - "Subscribe to Comments" deaktiviert.
Aus gegebenem Anlass hab ich die Funktion "Subscribe to Comments" erstmal deaktiviert.
Wird vielleicht wieder aktiviert, wenn Serendipity 1.4 rauskommt und ich nicht vergesse, es einzuschalten.
via strcat, kris, zugschlus und alle anderen Blogs, die ich vergessen habe zu erwähnen...
Wird vielleicht wieder aktiviert, wenn Serendipity 1.4 rauskommt und ich nicht vergesse, es einzuschalten.
via strcat, kris, zugschlus und alle anderen Blogs, die ich vergessen habe zu erwähnen...
Tuesday, October 7. 2008
Geek Spielzeug
Ich glaube, die Produkte von Synology könnten mir gefallen. Insbesondere das DS207+ ist schick, das kann man scheinbar auch mit eigener Software erweitern. Eine schöne Beschreibung gibt es hier.
So ein Storage Gerät, dass gleichzeitig noch Server spielen kann ist schon sehr faszinierend. Schön wäre nur, wenn die Dinger gleich einen passenden AV-Adapter dran hätten, so dass man sie bei Bedarf gleich mit einem Fernseher verbinden könnte...
So ein Storage Gerät, dass gleichzeitig noch Server spielen kann ist schon sehr faszinierend. Schön wäre nur, wenn die Dinger gleich einen passenden AV-Adapter dran hätten, so dass man sie bei Bedarf gleich mit einem Fernseher verbinden könnte...
Sunday, October 5. 2008
Netfilter Präsentationen
Ein paar recht interessante Päsentationen zum Thema Netfilter: http://nfws.inl.fr/en/?p=171
Vor allem recht interessant wenn man größere Setups betrieben möchte...
Sunday, May 4. 2008
Alternative zu Siteminder ?
Welcher Admin kennt das nicht ? Man hat einen Stall von Webapplikationen und würde gerne die dazu gehörigen User nicht
nur zentral verwalten (z.B. mit einem LDAP Server), sondern auch eine applikations- bzw. serverübergreifend authentifizieren.
Das hat nicht nur den Vorteil das sich ein User nur einmal für alle Applikationen einloggen muss, sondern vermeidet auch
das Passwörter über alle beteiligen Server fließen.
Single Sign On (SSO) - manche große Konzerne setzen dafür ziemlich propietäre Software wie z.B. Siteminder - ein Produkt, das wie ich gehört habe wohl seit Jahren total verbugged ist, vom Hersteller auch mit teuren Supportverträgen nur schlecht supported wird, mit Linux-Systemen (besonders 64 Bit) nur schlecht harmoniert und sehr übel zu administrieren ist.
Heute bin ich zufällig bei Freshmeat über "mod_auth_pubtkt" gestolpert - möglicherweise eine leichtgewichtige Alternative zu den "Enterprise Lösungen"
Kennt das jemand, kann man damit was anfangen ?
Welche Erfahrungen habt ihr damit ?
Wenn ich mal wieder etwas Zeit habe, werde ich mir das mal anschauen...
nur zentral verwalten (z.B. mit einem LDAP Server), sondern auch eine applikations- bzw. serverübergreifend authentifizieren.
Das hat nicht nur den Vorteil das sich ein User nur einmal für alle Applikationen einloggen muss, sondern vermeidet auch
das Passwörter über alle beteiligen Server fließen.
Single Sign On (SSO) - manche große Konzerne setzen dafür ziemlich propietäre Software wie z.B. Siteminder - ein Produkt, das wie ich gehört habe wohl seit Jahren total verbugged ist, vom Hersteller auch mit teuren Supportverträgen nur schlecht supported wird, mit Linux-Systemen (besonders 64 Bit) nur schlecht harmoniert und sehr übel zu administrieren ist.
Heute bin ich zufällig bei Freshmeat über "mod_auth_pubtkt" gestolpert - möglicherweise eine leichtgewichtige Alternative zu den "Enterprise Lösungen"
mod_auth_pubtkt is an Apache module that authenticates a user based on a cookie with a ticket that has been issued by a central login server and digitally signed using either RSA or DSA. This means that only the trusted login server has the private key required to generate tickets, while web servers only need the corresponding public key to verify them.
Whenever mod_auth_pubtkt encounters a request without a valid ticket/cookie, it redirects the user to a pre-configured login URL, passing the originally requested URL as a GET parameter. The login server can then prompt the user for credentials, verify them using any authentication backend it chooses, and upon success, generate a login ticket (signed with its private key), return it in a cookie to the client, and finally redirect the user back to the originally requested URL.
Tickets may contain a list of "tokens", and each resource (directory etc.) can be made to require a specific token, thus giving a simple but effective form of authorization (the login server can assign different tokens to different users, e.g. based on group membership).
If the cookie is scoped to the entire domain, all web servers with mod_auth_pubtkt in the domain and configured with the same public key will accept the ticket and not require any further authentication from the client until the ticket expires.
Note that a rogue server could steal a valid ticket provided by a client (or it could be sniffed by an adversary if using plain HTTP); however, the client IP address can be included in the ticket, making it harder for other people to use.
Kennt das jemand, kann man damit was anfangen ?
Welche Erfahrungen habt ihr damit ?
Wenn ich mal wieder etwas Zeit habe, werde ich mir das mal anschauen...
Saturday, January 5. 2008
Das Cut & Paste Profile
Wenn man als Admin oft auf vielen verschiedenen Unixsystemen zu Gange ist und auf diesen Systemen sogar noch sehr oft die SystemUser wechselt gibt es oft eine Menge Gründe die gegen das Konfigurieren eigener Einstellungen sprechen:
Viele Admins beschränken daher nur auf die Funktionalität die man bei einer typischen Shell-Sitzung antrifft und setzen die unabdingbaren Einstellungen (wie z.B. eine passende TERM-Variable) bei jeder Session neu.
Eine Lösung für dieses Problem ist, sich die passenden Kommandos in eine Datei zu schreiben und den Inhalt bei Bedarf in das gerade geöffnete Shellfenster per Cut & Paste zu übertragen.
Bei mir sieht diese Datei wie folgt aus (ich administriere einige Solaris und Linux Systeme):
Mann kann den Inhalt der Profil Datei mit dem Werkzeug "xsel" (z.B. verfügbar als Paket
"xsel" in Debian) automatisiert in den den Buffer befördern:
--- ~/.Xresources
# execute 'xrdb -merge ~/.Xresources' to activate
XTerm*.Translations: #override \
Ctrl<p><key>X: insert-selection(SECONDARY)
---Auf diese Weise kann man durch die Tastenkomination "Ctrl + x" jederzeit das Profil
schnell in eine Shellsession pasten. Schon nach kurzer Zeit geht dieses Vorgehen ins Rückenmark
über ....
Alternativ kann man den Cut&Paste des Remoteprofils auch in Screen verdrahten - dies ist vor allem nützlich wenn Screen auf dem Rechner läuft von dem man sich auf den zu administrierenden Kisten einloggt (z.B. ein kassischer Jumphost). Mit folgender Anweisung kann man dann Cut&Paste des Profils relativ bequem im aktuellen Screen mit "STRG+a x" (Profil in den Screenbuffer saugen) und "STRG+a X" (Screenbuffer ins Terminal kippen) durchführen.
-- ~/.screenrc
bind x readbuf ~/.remote-profile
bind X paste .
--
- die Policy verbietet es (wenn verschiedene Admins auf dem System administrieren, sich aber die selben User teilen)
- man arbeitet nur temporär auf dem System um ein Problem zu beheben
- manche Benutzer werden von mehreren Personen gleichzeitig verwendet
(z.B. ein DB2 Instanzuser) - es ist mühsam das Profil regelmäßig auf einigen hundert Systemen zu aktualisieren
- durch eigene Profile können Daemons die den selben Systemuser verwenden unter Umständen negativ beeinflusst werden
(z.B. bei Verwendung LC_* oder LANG-Umgebungsvariablen werden beim Durchstarten des Prozesses diese Variablen an den gestarteteten Prozess vererbt)
Viele Admins beschränken daher nur auf die Funktionalität die man bei einer typischen Shell-Sitzung antrifft und setzen die unabdingbaren Einstellungen (wie z.B. eine passende TERM-Variable) bei jeder Session neu.
Eine Lösung für dieses Problem ist, sich die passenden Kommandos in eine Datei zu schreiben und den Inhalt bei Bedarf in das gerade geöffnete Shellfenster per Cut & Paste zu übertragen.
Bei mir sieht diese Datei wie folgt aus (ich administriere einige Solaris und Linux Systeme):
--- ~/.remote-profile
[ "$BASH_VERSION" = "" ] && bash
export PS1='$(EXC=$?;if [ $EXC != 0 ] ;then echo \[\e[31m\]ERR "$EXC : " ; fi)\[\e]0;\w\a\]\[\e[32m\]\u@\H(\t) \[\e[33m\]\w\[\e[0m\] \n\$ \[\e]2;\u@\H \w\a'
alias DATE='date "+%Y-%m-%d_%H-%M-%S"';
if(uname |grep -v Linux);then
alias screen="SHELL=/usr/bin/bash TERM=vt100 screen"; alias less="less -n"
alias gdiff="/usr/local/bin/diff";
export TERM=vt220; alias bps="/usr/ucb/ps"; alias ggrep="/usr/local/bin/grep"; stty erase ^?
export EXINIT="set autoindent showmode showmatch ignorecase flash notimeout"
fi
type -p less >/dev/null 2>&1 && export PAGER=less
lspath(){
CURR="`/usr/*bin/nslookup $(uname -n) 2>/dev/null|awk '/'$(uname -n)'/{print $2}'`"
if ( echo $1|egrep "^/" >/dev/null 2>&1); then
echo -e "\n '${LOGNAME}@${CURR}:$1\n"
else
echo -e "\n '${LOGNAME}@${CURR}:${PWD}/$1\n"
fi
}
type vim >/dev/null 2>&1 && alias vi="vim"
alias l="ls -la"; alias ll="ls -l" ; alias lf="ls -Fa"; alias sl="ls"; alias lt="ls -latr";
---
Nun ist es schon etwas mühsam, bei jedem Login ein File zu öffnen und dessen Inhalt via Cut & Paste in die neue Shell zu übertragen. Eine ganz relativ elegante Lösung für dieses Problem bieten die verschiedenen "Selection Buffer" des X11 Servers. Da der "SECONDARY" Selection Buffer eigentlich nur selten in Verwendung ist, kann man diesen als dauerhaften Zwischenspeicher für das Profil verwenden.[ "$BASH_VERSION" = "" ] && bash
export PS1='$(EXC=$?;if [ $EXC != 0 ] ;then echo \[\e[31m\]ERR "$EXC : " ; fi)\[\e]0;\w\a\]\[\e[32m\]\u@\H(\t) \[\e[33m\]\w\[\e[0m\] \n\$ \[\e]2;\u@\H \w\a'
alias DATE='date "+%Y-%m-%d_%H-%M-%S"';
if(uname |grep -v Linux);then
alias screen="SHELL=/usr/bin/bash TERM=vt100 screen"; alias less="less -n"
alias gdiff="/usr/local/bin/diff";
export TERM=vt220; alias bps="/usr/ucb/ps"; alias ggrep="/usr/local/bin/grep"; stty erase ^?
export EXINIT="set autoindent showmode showmatch ignorecase flash notimeout"
fi
type -p less >/dev/null 2>&1 && export PAGER=less
lspath(){
CURR="`/usr/*bin/nslookup $(uname -n) 2>/dev/null|awk '/'$(uname -n)'/{print $2}'`"
if ( echo $1|egrep "^/" >/dev/null 2>&1); then
echo -e "\n '${LOGNAME}@${CURR}:$1\n"
else
echo -e "\n '${LOGNAME}@${CURR}:${PWD}/$1\n"
fi
}
type vim >/dev/null 2>&1 && alias vi="vim"
alias l="ls -la"; alias ll="ls -l" ; alias lf="ls -Fa"; alias sl="ls"; alias lt="ls -latr";
---
Mann kann den Inhalt der Profil Datei mit dem Werkzeug "xsel" (z.B. verfügbar als Paket
"xsel" in Debian) automatisiert in den den Buffer befördern:
--- z.B. in ~/.xinitrc
cat ~/.remote-profile|xsel -s -i
---
Nun benötigt man nur noch eine elegante Möglichkeit den Inhalt des "SECONDARY" Selection Buffer in eine laufend Shell-Session zu befördern. Elegant geht dies z.B. mit folgender Einstellung für das Standard XTerm:cat ~/.remote-profile|xsel -s -i
---
--- ~/.Xresources
# execute 'xrdb -merge ~/.Xresources' to activate
XTerm*.Translations: #override \
Ctrl<p><key>X: insert-selection(SECONDARY)
---
schnell in eine Shellsession pasten. Schon nach kurzer Zeit geht dieses Vorgehen ins Rückenmark
über ....
Alternativ kann man den Cut&Paste des Remoteprofils auch in Screen verdrahten - dies ist vor allem nützlich wenn Screen auf dem Rechner läuft von dem man sich auf den zu administrierenden Kisten einloggt (z.B. ein kassischer Jumphost). Mit folgender Anweisung kann man dann Cut&Paste des Profils relativ bequem im aktuellen Screen mit "STRG+a x" (Profil in den Screenbuffer saugen) und "STRG+a X" (Screenbuffer ins Terminal kippen) durchführen.
-- ~/.screenrc
bind x readbuf ~/.remote-profile
bind X paste .
--
Apropos: Verbatim-Blöcke in Serendipity sucken echt - irgendwas ist immer verhuntzt
Ständig muss man im HTML-Source nachbessern. (Christian : Hast du einen Tipp ?)
Posted by mschoechlin
in Admin, opensource, Tipps And Tricks
at
07:52
| Comments (2)
| Trackbacks (0)
Friday, January 4. 2008
Bash Prompt auf Drogen
Mancher Oldschool-Unixer wird mich für diesen Happy-Epileppi Prompt hassen ![]()
CODE:export PS1='$(EXC=$?;if [ $EXC == 0 ] ;then echo \[\e[32m\]OK 0; else echo \[\e[31m\]ERR $EXC; fi)\[\e]0;\w\a\] \[\e[32m\]: \u@\h( ) \[\e[33m\]\w\[\e[0m\] \n\$ '
Ich find´s praktisch, das Workingdir, die Uhrzeit und den Returncode des letzten Kommandos immer im Blick zu haben...
UPDATE - mit Titel f�r das X11-Fenster:
CODE:export PS1='$(EXC=$?;if [ $EXC != 0 ] ;then echo \[\e[31m\]ERR "$EXC : " ; fi)\[\e]0;\w\a\]\[\e[32m\]\u@\H( ) \[\e[33m\]\w\[\e[0m\] \n\$ \033]0;\u@\H\007'
UPDATE II - mit Titel für das X11-Fenster:
(diese Version schrottet nicht die Readline, wenn die Kommandozeile mal etwas länger wird)
CODE:export PS1='$(EXC=$?;if [ $EXC != 0 ] ;then echo \[\e[31m\]ERR "$EXC : " ; fi)\[\e]0;\w\a\]\[\e[32m\]\u@\H(\D{%Y-%m-%d} ) \[\e[33m\]\w\[\e[0m\] \n\$ \[\e]2;\u@\H \w\a\]'
Posted by mschoechlin
in Admin, misc, Nerd, Tipps And Tricks
at
14:33
| Comments (2)
| Trackbacks (0)
Monday, December 10. 2007
Das Modul für verwendete Hardware rausfinden
Man hat eine LiveCd und möchte wissen, welches Kernelmodul für eth0 zuständig ist?
~$ basename $(readlink /sys/class/net/eth0/device/driver)
pcnet32
Funktioniert natürlich auch mit Festplatten und anderen Geräten
~$ basename $(readlink /sys/class/net/eth0/device/driver)
pcnet32
Funktioniert natürlich auch mit Festplatten und anderen Geräten
(Page 1 of 1, totaling 9 entries)
