Okt 16 2009

einrichtung und absicherung eines 1blu vservers (debian lenny)

um das ganze hier auch noch einmal für mich selbst als nachschlagewerk zu nutzen, folgen jetzt einige punkte die beim einrichten eines vservers von 1blu zu beachten sind … natürlich nur aus meiner speziellen sicht.

  • kommt es beim aufruf von aptitude/dpkg zu locale warnungen (weil der client zB. ein Ubuntu ist) hilft ein dpkg-reconfigure locales.
    für mich wichtig waren dann de_DE.ISO-8859-1, de_DE.UTF-8 und de_DE.ISO-8859-15@euro. aber da muss jeder selbst wissen, was er braucht
  • ich bin ein fan davon alles unnötige zu deinstallieren, in meinem fall war das folgendes:
    aptitude purge bind9 bind9utils cyrus-admin-2.2 cyrus-common-2.2 cyrus-doc-2.2 cyrus-imapd-2.2 cyrus-pop3d-2.2 emacs emacs22 emacs22-bin-common joe libapache2-mod-perl2 mc nscd php5-sybase php5-snmp php5-recode php5-pgsql php5-odbc php5-ldap phpmyadmin portmap proftpd proftpd-basic proftpd-mod-ldap proftpd-mod-mysql proftpd-mod-pgsql samba-common smbfs squirrelmail talkd unixodbc wwwconfig-common xaw3dg xinetd
  • der per default installierte sendmail ist nicht mein fall, also wird ein exim installiert aptitude install exim4 und damit auch keine leichen mehr im keller liegen alles deinstallieren was zu sendmail gehört dpkg -l |grep sendmail |awk '{ print $2 }'|xargs -r aptitude purge
  • der mysql muss abgesichert werden mittels pwgen ein neues passwort erzeugen1 und mittels mysql -e "update mysql.user set Password=PASSWORD('NEUES_PASSWORT') where User='root';";mysql -e "flush privileges" das neue passwort vergeben. damit das arbeiten jetzt aber auch noch bequem ist eine .my.cnf im userhome anlegen und hier dann die passenden daten speichern.
    [mysql]
    user = root
    password = NEUES_PASSWORT

    das ganze kann natürlich ebenfalls noch für mysqldump, mysqladmin hinterlegt werden!

jetzt steht ein basissystem mit dem man arbeiten kann, vielleicht sollte nicht vergessen werden ein neues root password zu vergeben, da ansonsten das default passwort (das erste was man für sein kundenkonto angelegt hat) genutzt wird…

  1. pwgen -s 20 1 []

Aug 4 2009

bash output pipe über fifo

ich hatte das problem das der output eines sql kommandos weiterverarbeitet werden sollte. es bei dem sonst üblichen weg aber ein kleines problem gegeben hat.
for DOM in $(mysql ---skip-column-names -batch -e "SELECT domain_id, domain FROM domains" $MYSQLDB);do
echo "$DOM"
done

das ganze könnte so schön einfach sein, wenn die ausgabe nicht (warum auch immer) richtig verarbeitet werden würde, jedoch ist die ausgabe mittels TAB getrennt und scheinbar kann hier das ganze dann nicht richtig verarbeitet werden, weil durch das tab immer ein neuer eintrag entsteht, es also einmal den domainnamen und einmal die domain_id gibt in der schleife und nicht beides hintereinander.
jetzt könnte man mittels concat oder ähnlichem arbeiten, aber es gibt ja noch die möglichkeit mittels while read.
leider kann man dann nicht den output direkt verarbeiten sondern müsste mittels tee oder über ein temp file arbeiten. nach einigem suchen im netz habe ich dann die möglichkeit entdeckt das man ja auch direkt ein fifo nutzen könnte um die ein und ausgabe zu verarbeiten. das ganze nennt sich process substitution und ist im advanced bash guide (unter anderem) zu finden.

so ist es (mir) also möglich die ausgabe eines mysql outputs via while read zu verarbeiten …

while read DOM
do
echo $DOM
done < <(mysql ---skip-column-names -batch -e "SELECT domain_id, domain FROM domains" $MYSQLDB)

… wichtig hierbei ist das es ein leerzeichen zwischen den beiden < < gibt. dann klappt es auch mit der ausgabe und weiterverarbeitung. wieder einmal ein beispiel das man so ziemlich viel in der bash machen kann ohne scriptsprache wie perl oder php oder python zu bemühen. love it!


Okt 25 2007

vexim mit dovecot

vexim ist ein ziemlich gutes mail system mit mysql backend. bedingt durch die einschränkungen die man mit mysql hat, ist es sehr zu empfehlen wenn ein admin die möglichkeit sucht seinen usern freiheit in der mailkonfiguration zu geben und ihnen keinen shell zugriff geben will bzw. nicht jede änderung händisch einpflegen will.
Continue reading