Server hat noch keinen Namen

Es handelt sich um eine Ersatzmaschine für den ausgefallenen Entwicklungsserver bei S4F.

Die Maschine soll vor allem den Freenet-Node und I2P-Router übernehmen.

Ubuntu 6.06 LTS

Folgende Änderungen waren notwendig:

Sichern des default-Kernels in /boot/

Abschalten von named

apt-get install sysv-rc-conf
sysv-rc-conf
Abdrehen von bind9, clamav, courier
Es muss anbleiben: spamassassin
Anmerkung: Ich hasse das. Da packt man eine kleine Software auf die Kiste und dann kommt aller möglicher Mist mit auf die Maschine. Ich habe nichts gegen Spamassassin, aber wenn ich diesen nicht abschalten kann weil dann eMail nicht mehr geht, dann ist das Schrott. Ja, ich könnte es abdrehen. Aber leider ist das alles so tief im System verbuddeld, dass ich dann so gut wie alles Killen muss was ich eigentlich installieren ließ, damit ich weniger Arbeit habe.

Installieren von openntpd und konfigurieren

apt-get install openntod
vi /etc/openntpd/ntpd.conf
servers de.pool.ntp.org
servers europa.pool.ntp.org

Korrigieren des Environments

vi ~/.profile
export LC_ALL=C

Exim4 den Rüssel abdrehen

EXIM ist wohl der allermieseste MTA auf diesem Planeten (sorry!)
dpkg-reconfigure exim4-config
Alles Default, außer:
E-Mail-Konfigurationsart: internet site; mail is sent and received directly using SMTP
IP-Adressen, auf welchen Exim eingehende SMTP-Verbindungen beantwortet: 127.0.0.1
Leider kann ich diesen Mist nicht deinstallieren, weil Confixx (die ich wegen einiger Kunden benötige) natürlich auf der schlechtesten aller MTAs basierend aufgebaut wurde. Wie kann man überhaupt so einen unglaublich schlecht dokumentierten MTA wie Exim verwenden? (Ja, es gibt Millionen Bytes Doku, aber diese wurde anscheinend geschrieben für Leute, die wissen wollen, wie toll doch die Exim-Entwickler waren, statt für Admins, die einfach nur schnell mal das erreichen wollen, was sie möchten).
Anmerkung: Warum eigentlich gibt es keinen vernünftigen MTA? Sendmail ist eine einzige Katastrophe (aber die beste Variante da es ein uralter MTA und somit hinreichend bekannt ist), Postfix ist auch absoluter Hyperschrott (er ist in weitem Rahmen nicht kontrollierbar, beispielsweise wie stellt man die Queue so ein, dass sie unzustellbare eMail erst in 2 Jahren zurückweist? Bei Sendmail geht das, Postfix gängelt da den Admin) und der absolute Über-Abschuss ist Exim (weil Sendmail zu kompliziert zu konfigurieren war hat man Exim geschaffen, damit die Konfiguration noch komplizierter werden konnte).

Qmail ist leider auch nicht verwendbar (da es seinen vollständig eigenen Weg geht, was einerseits richtig ist, aber leider nicht interoperabel, außerdem ist Qmail inzwischen einfach nicht mehr aktuell genug). Somit bleibt .. nichts.

Die einzigen zwei die ich akzeptiere sind deshalb Sendmail (weil bekannt) und Postfix (weil trotz seiner extremen Limitierungen vom Design her richtungsweisend und wohl am effektivsten dokumentiert). Am liebsten wäre mir Qmail, aber das würde bedeuten, man muss alles selber machen, da QMail nirgends mitgeliefert wird.

Noch etwas: Aus mir unerfindlichen Gründen wurde das Maildir-Format für die Speicherung von eMail auf der Kiste konfiguriert. Dieses Format ist mehr als vollkommen unbrauchbar. Beispielsweise wenn man mal etwas mehr SPAM bekommt so wie bei mir, dann sind die 23 Mio Inodes die das Filesystem hat rucki-zucki aufgebraucht. Nix mit einfacher Rotation und Kompression per BZIP auf 1:30 oder mehr. Da ich die Seitenbedingungen nicht überblicken kann die Confixx usw. auf dem System notwendig macht, kann ich diesen Mist leider auch derzeit nicht abschalten. Man müsste so eine Kiste von Grund auf neu brauchbar aufsetzen um all den Schrott loszuwerden - leider habe ich dafür keinerlei Zeit.

Confixx entschärfen

Wegen seiner Lücken ist es vernünftig, Confixx hinter einen Basic-Auth-Schutz zu verbergen. Und wenn man dabei ist nimmt man das unvernünftige HTTP-Protokoll weg so dass nur noch HTTPS verbleibt. Ganz am Anfang setzt man aber noch das Admin-Passwort:

/usr/local/confixx/reset_admin_pw.pl
ln -s /home/tino/etc/apache.conf /etc/apache2/sites-enabled/ZZZ-tino.conf
ln -s /home/tino/etc/apache.conf /etc/apache2/sites-enabled/000-tino.conf

Die /home/tino/etc/apache.conf/apache.conf sieht so aus:
ServerAdmin webmaster@20k.de

<Directory "/var/www/confixx/html">

AuthUserFile /home/tino/etc/passwd
#AuthGroupFile /home/tino/etc/group
AuthType Basic
AuthName "Unauthorized access prohibited by international law."

Require valid-user
Satisfy any

Order allow,deny
#Allow from 127.0.0.1
Deny from all

</Directory>

<VirtualHost @@@@IP@@@@:80>
ServerName @@@@IP@@@@
ServerAlias @@@@FQDN@@@@ *.@@@@FQDN@@@@

DocumentRoot /var/www/apache2-default/

RewriteEngine on
RewriteMap lowercase int:tolower
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteRule ^/(.*)$     https://%1/$1   [L,R]

</VirtualHost>

@@@@IP@@@@ und @@@@FQDN@@@@ müssen durch die IP bzw. den FQDN (hostname -f) des Hosts ersetzt werden. Ich habe diese entfernt um Angriffsvektoren zu vermeiden.

Anmerkung:

Die Benutzeroberfläche von Confixx Professional hat sich gegenüber den alten Versionen noch weiter verschlechtert:
  • Standard-Klicks (z. B. links oben) führen auf irgendwelche Abwege ohne jeden Sinn (hier: Die Herstellerhomepage, es ist OK wenn es die unter Links gibt, aber sonst wo hat das nichts in einer UI verloren).
  • Die Version des installierten Confixx ist immer noch nicht herausfindbar da es nirgendwo angezeigt wird (man findet heraus wofür die Lizenz gilt, aber nicht welch Version gerade läuft oder wie man sie updaten kann).
  • Dafür telefoniert Confixx inzwischen in noch weit unverschämterem Maß nach Hause als früher.
  • Es ist für mich z. B. auch vollständig unverständlich, warum jetzt plötzlich JavaScript vorausgesetzt wird, so dass kleinere Programmierfehler der Confixx-Autoren (die Unfähigkeit dieser Leute ist inzwischen im Internet geradezu legendär) gleich bis auf den administrierenden Rechner durchschlagen.
  • Noch unverständlicher ist aber, dass man jetzt beim Anlegen einer Liste von 100 Domains 200 Klicks durchführen muss (früher war das 1 Klick).
Wie gut, dass ich es nicht brauche, sondern nur meine Kunden. Ich kann Confixx ja aus einer gesicherten VM heraus benutzen.

Es gibt auch etwas Gutes, denn endlich kann Confixx mit dem Admin-Login auch die User und Reseller verwalten. Das war allerdings mehr als lange überfällig.

Confixx defekt

Confixx ist defekt. Es kann an der Installation der Version liegen die hier vorliegt. Der 2. User der angelegt wird ist "web0". Dieser Benutzer kann hinterher nicht mehr weiter verwaltet werden da er dem Administrator vorbehalten ist.

Wenn bereits größere ISPs Probleme mit dieser unverantwortlichen Software haben, zeigt das, wie schlecht diese entwickelt wurde. Zu einer Software, die so verbreitet ist wie Confixx, gehört zwingend eine anständige Qualitätskontrolle, die bei Confixx wiederholt grob fahrlässig vernachlässigt wird.

Nur ein Beispiel (sofort beim ersten Mal in den Source guckend aufgefallen) findet man so:
grep functionschonmal /var/www/confixx/html/*
Solch grundlegende Entgleisungen in einem kommerziellen Produkt das sicherheitstechisch in vorderster Front arbeiten soll sind einfach unglaublich. Eine derartige Qualitätssicherung ist jenseits von mangelhaft und grenzt schon an vorsätzliche Gefährdung. Nebenbei: Confixx läuft "natürlich" weder im Safe Mode noch ignoriert es Variablen in den Query-Parametern. Es wurde in Confixx also nicht einmal auf die grundlegendsten Sicherheitsstandards geachtet.

Ubuntu Quirx wegwerfen

Ich weiß nicht was das soll. Ruft man "visudo" auf, wird "mcedit" verwendet. Killt man "mc", dann wird "joe" verwendet. Erst wenn man auch "joe" löscht, dann wird "vi" verwendet. Kleine Preisfrage:

Warum heißt visudo visudo und nicht mceditsudo oder joesudo?

Ich erwarte, dass bei "visudo" auch "vi" verwendet wird, oder VISUAL oder EDITOR, aber wenn die nicht gesetzt sind, eben "vi", und nichts anderes. Was dieser neumodische Murx soll verstehe ich nicht, aber ich muss dem wohl nachgehen, wieso solche Dinge so hirnverbrannt installiert wurden (der Hammer ist, dass in mcedit die F-Tasten nicht gehen. Wie soll denn jemand, außer er hat Erfahrung, wissen, dass man ESC-0 statt F10 drücken muss? Dasselbe gilt für joe, der immerhin auch mit Emacs-Sequenzen beendet werden kann.)

Weitere Packages notwendig (Entwicklung usw.)

apt-get lynx
apt-get sqlite sqlite3
apt-get make
apt-get gcc
apt-get install libc-dev glibc-doc manpages-dev
apt-get install libgdbm-dev
apt-get install gawk
apt-get install libssl-dev
apt-get install emacs
apt-get install sun-java5-bin sun-java5-jdk
apt-get install php5-gd libgd-tools

vi /etc/apache2/conf.d/charset
und UTF-8 abschalten damit die Content-negotiation funktioniert

Confixx hat so wanhnwitzig viele Include-Pfade, dass diese nicht mehr in 8 MB passen:
vi /etc/php5/apache2/php.ini
max_execution_time = 300
memory_limit = 128M
session.gc_maxlifetime = 14400
:wq
/etc/init.d/apache2 restart