Freitag, 20. November 2009
[*]
Mittwoch, 24. Juni 2009
[*]

ssh-Begrenzung – diesmal aber wirklich

dentaku, 15:27

Hier hatte ich schonmal versucht, mit iptables und dem recent-Modul, die lästigen ssh-Scanner vom tatsächlichen sshd fernzuhalten. Leider hat das nie wirklich toll geklappt (die “Angreifer” wurden zwar ausgesperrt, es gelang aber nie, die Sperre automatisch aufzuheben).

Nach zwei bis drei erfolgreichen DoS-Attacken auf unser Firmennetz habe ich mir die Liste der iptables-Module nochmal genauer durchgesehen, ob da nicht was passendes dabei ist — und siehe da; das hashlimit-Modul kann eine Regel auf eine Höchstzahl von Treffern pro Zeiteinheit beschränken. Das liest sich dann so:

#
# keep established connections open
#
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# enable ssh:
#
# throttle to 2 (3) connections per minute for outsourcing and internet
iptables -N ssh
iptables -A ssh -m hashlimit --hashlimit 2/minute --hashlimit-burst 3 \
         --hashlimit-mode srcip --hashlimit-name ssh --j ACCEPT
iptables -A ssh -j LOG --log-level info --log-prefix "SSH scan blocked: "
iptables -A ssh -j REJECT
iptables -A INPUT -p tcp --destination-port 22 --syn -j ssh
iptables -A FORWARD -p tcp --destination-port 22 --syn -j ssh

Das syn-Paket (also der Verbindungsaufbau) wird höchstens zweimal pro Minute durchgelassen, bestehende Verbindungen sind erlaubt. So funktioniert es.

Mittwoch, 4. Februar 2009
[*]

Echte Helden
(Die wunderbare Welt von Isotopp)
[...] Cornelius hat damals jedenfalls die ersten Unix-Kisten eingeschleppt. Natürlich gab es so etwas damals nicht fertig, sonst hätte ihn das wohl auch nicht interessiert. In seinem Fall waren das stattdessen Commodore 900 mit Coherent 0.7.1 Special Binary Prerelease, Prototypen von Rechnern, die Commodore nie gebaut hat, weil sie selbst für Commo zu Scheiße waren. Das war mein erstes Unix. [...]
aus Delicious/steinhobelgruen

Tags , ,   Kommentare  0
Montag, 13. Oktober 2008
[*]

OpenSCEP
OpenSCEP is an open source implementation of the SCEP protocol used by Cisco routers for certificate enrollment to build VPNs. It implements most of the draft specification, include as reference in the distribution.
aus Delicious/steinhobelgruen

Tags , , , , , , ,   Kommentare  0
Sonntag, 28. September 2008
[*]
[*]
Dienstag, 13. Mai 2008
[*]

Kein ssh für Dich, Du hattest schon genug

dentaku, 10:50

Ich benutze logcheck. Das warnt mich bei ungewöhnlichen Aktivitäten in den Logs der Server. Leider kommt es dabei häufig vor, daß man die eigentlichen Fehler garnicht finden kann, weil man sich durch endlose Wüsten von fehlgeschlagenen ssh-Logins blättern muß:

... failed password for invalid user ...

Das nervt. Haben die Scriptkiddies nichts besseres zu tun als Shellaccounts mit schlechten Paßwörtern zu suchen? Nach ein wenig herumsichen bin ich aber hier (wenn auch nicht im Artikel sondern in den Kommentaren) auf eine einfache Lösung gestoßen:

iptables -N ssh
iptables -A ssh -m state --state ESTABLISHED -j ACCEPT
iptables -A ssh -m recent --update --seconds 300 --hitcount 5 -j REJECT
iptables -A ssh -m recent --set -j ACCEPT
iptables -A INPUT -p tcp --destination-port 22 -j ssh
iptables -A FORWARD -p tcp --destination-port 22 -j ssh

Jetzt kann jeder Client pro 5 Minuten nur noch 5 ssh-Verbindungen öffnen, was in der Regel reichen sollte (man kann das ja auch noch etwas tunen…), danach wird die Verbindung verweigert. Test:

dentaku@charon:~$ ssh trenger@svn.advanced-solutions.de uname -a
Linux kampenwand 2.6.15 #1 SMP Thu Jun 8 18:38:40 CEST 2006 i686 GNU/Linux
dentaku@charon:~$ ssh trenger@svn.advanced-solutions.de uname -a
Linux kampenwand 2.6.15 #1 SMP Thu Jun 8 18:38:40 CEST 2006 i686 GNU/Linux
dentaku@charon:~$ ssh trenger@svn.advanced-solutions.de uname -a
Linux kampenwand 2.6.15 #1 SMP Thu Jun 8 18:38:40 CEST 2006 i686 GNU/Linux
dentaku@charon:~$ ssh trenger@svn.advanced-solutions.de uname -a
Linux kampenwand 2.6.15 #1 SMP Thu Jun 8 18:38:40 CEST 2006 i686 GNU/Linux
dentaku@charon:~$ ssh trenger@svn.advanced-solutions.de uname -a
Linux kampenwand 2.6.15 #1 SMP Thu Jun 8 18:38:40 CEST 2006 i686 GNU/Linux
dentaku@charon:~$ ssh trenger@svn.advanced-solutions.de uname -a
ssh: connect to host svn.advanced-solutions.de port 22: Connection refused
dentaku@charon:~$
Freitag, 28. März 2008
[*]

Die Wiederauferstehung des Spartacus

dentaku, 09:51

Vor Jahren, da lebte ich noch bei meinen Eltern, hatte ich im Keller einen Linux-Server. Das war ein (gebraucht gekaufter) PC mit 486DX2/66-Prozessor und 24MB RAM und VESA-Localbus-Architektur. Da es ein Server war steckte die Grafikkarte trotzdem im ISA-Bus und der VL-Bus war dem SCSI-Hostadapter vorbehalten. Das kleine Ding hatte eine Menge Aufgaben: per ISDN stellte es den Internetzugang (über T-Online) zur Verfügung (das Haus war 10Base2-Verkabelt), diente als HTTP-Cacheproxy (mit Squid 1.1.17) und Fileserver, erledigte den Mail- und Newsverkehr (sendmail 8.8.5), war Anrufbeantworter (vbox) und empfing Faxe (mit einem V.34-Modem). Eine msql-Datenbank mit ein paar cgi-Skripten auf einem Apache (1.1, glaube ich) diente als Liste aller auf Video aufgenommener Filme, außerdem war noch der wegen seiner Lautstärke und des Ozongeruchs in den Keller verbannte Laserdrucker dran angeschlossen…

Einen erheblichen Teil dieser Aufgaben haben heutzutage dieser gemietete Rootserver hier und ein DSL/VoIP/WLAN-Router übernommen, die Fileserver-Aufgabe übernahm aber bisher immer mein Arbeitsplatzrechner so nebenbei. Der blieb deshalb meistens angeschaltet und brauchte viel Strom. Doch damit ist jetzt Schluß:

spartacus.wazong.lan

Dieses kleine Kästchen (ganz links) ist eigentlich eine NAS-”Appliance” (also ein Einzweckcomputer mit Betriebssystem im Flashspeicher), die sich “Network Storage Link for USB2.0″ (kurz: NSLU2) nennt, und die genau das tut, was der Name sagt. Das Eingebettete Betriebssystem ist aber Linux-basiert und die Architektur offiziel unterstützt, und deshalb kann man stattdessen einfach eine normale Linux-Distribution aufspielen, dann hat man einen kleinen Server mit 266MHz IXP-422-Pozessor und 32MiB RAM (also besser als der alte spartacus). Man nehme also (z.B.) Debian für ARM-Prozessoren und ab da wird’s interessant:

spartacus:~# uname -a
Linux spartacus 2.6.18-6-ixp4xx #1 Tue Feb 12 00:57:53 UTC 2008 armv5tel GNU/Linux
spartacus:~#

Im Moment laufen schon DHCP- und DNS-Server sowie NFS-Fileserver (mit der großen USB-Platte, die danebensteht — der dritte Kasten ist ein Lautsprecher und hat nichts damit zu tun) drauf. Mal sehen, was der kleine noch alles kann.

Sonntag, 2. Dezember 2007
[*]

Neu hier: OpenID

dentaku, 19:50

OpenID

OpenID ist ein SingleSignOn-System (hauptsächlich für webbasierte Dienste), daß eine geniale Lösung für die Probleme bietet, die aus der Abhängigkeit von einer zentralen Stelle entstehen: es arbeitet verteilt. Als Identität braucht man eigentlich nur eine Adresse (in URL-Form), von der aus man auf eine Identität bei einem OpenID-Provider (Identity Provider) verweist. Nur dort meldet man sich noch an, weitere Dienste machen die Anmeldung dann mit dem IdP aus (und auch die Freigabe und Übertragung von Metadaten wie Name, eMail-Adresse und Geburtsdatum).

Da das alles auf einem offenen Protokoll basiert gibt es einen Haufen Identity Provider — und man kann sich auch selbst einen aufsetzen (das habe ich natürlich sofort gemacht…). Und sollte der ausgewählte IdP mal verschwinden (oder unsympatisch werden), dann kann man seine Identität zu einem anderen deligieren.

Das sind genug Gründe um dieses Verfahren zu unterstützen. Ich will deshalb alle Dienste auf wazong.de nach und nach mit einer OpenID-Anmeldung ausrüsten. Die Wordpress-Installation für dieses Blog hat jetzt schon das WP-OpenID-Plugin von Will Norris. Wer mit einer OpenID-fähigen URL kommentiert, der kann sich die Eingaben für Name und eMail-Adresse sparen.

Eigenartig ist nur, daß ausgerechnet mein eigener IdP und das Wordpress-Plugin noch nicht ordentlich miteinander reden. Da ist noch Debugging angesagt.

Freitag, 2. November 2007
[*]

Vorratsdatenspeicherung. Wie geht das eigentlich?

dentaku, 20:41

Über die juristischen Aspekte der Vorratsdatenspeicherung wurde ja schon regelmäßig an verschiedenen Stellen geschrieben. Wer da noch irgendwelche Informationen braucht, der soll mal da nachlesen.

Ich bin aber nun einmal kein Jurist sondern Techniker, und ich mache mir deshalb ganz andere Gedanken. Deshalb blende ich mal die Frage des Sinns und der Rechtmäßigkeit aus und beschäftige mich nur mit der technischen Machbarkeit.

Welche Daten sollen wir Sammeln:

Nachdem erst Horrormeldungen über die Protokollierung jeder TCP/IP-Verbindung (oder sogar jedes Pakets) kursierten, hat man sich inzwischen auf eine Interpretation geeinigt, in der die gesammelten Daten sehr den ohnehin vorhandenen Logfiles ähneln. Von den Protokollpflichtigen Diensten betreibe ich auf meinem Server nur eMail. Da entstehen bei Versand und Empfang etwa diese Daten (die Mail geht von diesem Wordpress-Blog an mich selbst):

Nov  2 17:00:52 charon postfix/pickup[12229]: DEDF9FC443A: uid=33 from=<www-data>
Nov  2 17:00:52 charon postfix/cleanup[14398]: DEDF9FC443A:
   message-id=<1e8ccd8056aded93f095b735e2d1373f@wazong.de>
Nov  2 17:00:52 charon postfix/qmgr[30704]: DEDF9FC443A:
   from=<www-data@wazong.de>, size=1154, nrcpt=1 (queue active)
Nov  2 17:00:52 charon postfix/local[14502]: DEDF9FC443A:
   to=<dentaku@wazong.de>, relay=local, delay=0,
   status=sent (delivered to command: procmail -a "$EXTENSION")
Nov  2 17:00:52 charon postfix/qmgr[30704]: DEDF9FC443A: removed

Beim Abruf diese:

Nov  2 16:08:54 charon imaplogin: LOGIN, user=dentaku,
   ip=[::ffff:90.186.88.15], protocol=IMAP
[...]
Nov  2 16:45:17 charon imaplogin: LOGOUT, user=dentaku,
   ip=[::ffff:90.186.88.15], headers=20200, body=2439620

Vergleichen wir das mal mit dem Gesetzesentwurf, wie er auf vorratsdatenspeicherung.de steht:

Anbieter von Diensten der elektronischen Post (E-Mail) speichern

  1. bei Versendung einer Nachricht die Kennung des elektronischen Postfachs und die Internetprotokoll-Adresse des Absenders sowie die Kennung des elektronischen Postfachs jedes Empfängers der Nachricht,
  2. bei Eingang einer Nachricht in einem elektronischen Postfach die Kennung des elektronischen Postfachs des Absenders und des Empfängers der Nachricht sowie die Internetprotokoll-Adresse der absendenden Telekommunikationsanlage,
  3. bei Zugriff auf das elektronische Postfach dessen Kennung und die Internetprotokoll-Adresse des Abrufenden,
  4. die Zeitpunkte der in den Nummern 1 bis 3 genannten Nutzungen des Dienstes nach Datum und Uhrzeit unter Angabe der zugrunde liegenden Zeitzone.

Ja, alles da.

Die Schwierigkeit wäre also eher entweder ein einheitliches Logformat einzuführen (lustig in diesem Zusammenhang, daß ausgerechnet der Webtraffic, für den es mit CLF einen Quasistandard gäbe, nicht bevorratsspeichert werden soll) oder für jedes Logformat einen Parser zu schreiben, der die gewünschten Daten extrahiert.

Platz:

Diverse Artikel haben ja schon größere Bedenken über die Menge der gespeicherten Daten geäußert. Diese Bedenken teile ich nur bedingt: natürlich kostet das alles Geld, die Preise für Speichermedien fallen aber so schnell, daß das keinen Provider in die Pleite treiben wird (kommt schon Leute, wohin speichert denn flickr die ganzen Bilder, selbst für unbezahlte Accounts?). Außerdem speichern die meisten Dienste die Daten ohnehin schon durch die ganz normalen Logfiles (siehe oben). Problematisch wird die Datenmenge erst bei der Auswertung (immer wieder lesenswert dazu: dieses Interview).

Wie kommen die Daten jetzt zu den Strafverfolgern:

Jetzt sind die Daten also vorgehalten, wie kommen die berechtigten Behörden denn jetzt dran? Dafür muß eine neue Serversoftware erstellt werden, an die auf alle Fälle hohe Sicherheitsanforderungen bestehen:

Einerseits darf natürlich nicht irgendein unberechtigter die Daten abrufen, es wird also eine X509/TLS-artige Schlüsselinfrastruktur benötigt. Damit kann sich die Behörde gegenüber dem Logfilesammler (auf Wunsch auch umgekehrt) ausweisen, und die Möglichkeit zur verschlüsselten Übertragung gibt’s bei vielen Implementationen auch gleich noch dazu.

Andererseits soll der Serverbetreiber natürlich möglichst auch nicht merken, daß die Daten eingesehen werden (denn er steckt ja vielleicht mit den bösen Buben unter einer Decke). An dieser Stelle wird es kompliziert, denn wenn auf der Vorratsdatenspeicherungsschnittstelle sonst nie was passiert, dann sieht der Administrator den Zugriff allein schon an den Datenvolumenauswertungen (insbesondere dann, wenn diese auf IP-Port-Basis aufgebrochen sind):

MRTG

Da hilft es nur, die Daten ganz langsam herunterzuladen — aber was ist “langsam” genau?

Besser ist es, ständig (oder unregelmäßig) auf allen (oder zufälligen) angebundenen Servern Datenverkehr erzeugen, so wie es z.B. TOR macht, das ist aber durch hohe Übertragungskosten recht teuer.

Software:

Was wäre sonst noch zu wünschen?

Da die Logfiles doch eine beträchtliche Datenmenge beinhalten, die in dieser Form nur aufwendig durchsucht werden kann sollten die gewonnenen Daten in einer relationalen Datenbank mit guter Indexmöglichkeit abgelegt werden (sonst sieht der Betreiber die Abfrage an der Prozessorlast statt am Datenverkehr). Das erleichtert auch die Löschunggenau der Daten, deren Aufbewahrungspflicht abgelaufen ist.

Damit die neue Schnittstelle zur Abfrage nicht mit anderen Diensten kollidiert, sollte ihr am besten von der IANA offiziell einen Port zugewiesen werden (vgl. OpenVPN, die früher einfach Port 5000 benutzt haben — jetzt gehört ihnen “hochoffiziell” Port 1194).

Aus den Problemen mit ELSTER sollte unser Land gelernt haben, daß es nicht gut ist, (Pflicht-)Software nur für ein Betriebssystem bereitzustellen. Wo man einer (achtung, Klischee) Werbeagentur mit reiner Maclandschaft vielleicht noch zumuten kann, sich für die elektronische Umsatzsteuervoranmeldung halt doch einen Windows-PC anzuschaffen, da ist die gesetzliche Zwangsumstellung aller Mail-, RADIUS-, VoIP- und …-Server auf eine einheitliche Plattform (z.B. Windows Server 2008, nur 64bit?) schlicht nicht durchführbar (wobei ich keine Prognosen darüber wage, ob es nicht trotzdem versucht wird). Anderenfalls würden sich die Provider der bösen Buben vielleicht durch möglichst exotische Betriebssysteme aus der Vorratsdatenspeicherungspflicht herausstehlen (z.B. MPE/iX?).

Abhilfe schafft hier nur der Vertrieb im Sourcecode (die Unterstützung von POSIX- und win32-API sollte hier fas alles abdecken) oder ein offengelegtes Protokoll, so daß verschiedene Implementationen von dritten erstellt werden können. In diesen beiden Fällen läßt es sich aber kaum zu verhindern, daß der behördliche Zugriff in der einen oder anderen Version aufgezeichnet wird — ein Dilemma, für das es keinen Ausweg gibt…

Die technisch saubere Lösung:

Es sei denn man dreht die Zugriffsrichtung um und überträgt die Daten ständig sobald sie anfallen. Dieser Trick löst elegant sowohl die Probleme des Speicherplatzes als auch des Mitlesens bei Zugriffen durch die Strafverfolgungsbehörden. Diese Variante fordert allerding uneingeschränktes Vertrauen in die Behörde, die sich dann im Besitz der Daten befindet (wobei der Unterschied zwischen Daten, die sich schon dort befinden und Daten, die bei Bedarf jederzeit abgerufen werden können eigentlich in der Praxis kaum ins Gewicht fällt).

Wir verlassen an dieser Stelle allerdings auch wieder die technischen Aspekte, drum höre ich hier auf.

Mittwoch, 1. August 2007
[*]

Hotlink

dentaku, 09:41

Wegen der stark ansteigenden Neigung, meine Bilder in irgendwelchen Foren einfach einzubinden, habe ich jetzt Maßnahmen ergriffen (naja, eigentlich nur eine):

Dieses Stück Apache-Magie ersetzt die Bilder, wenn der Referrer von “außen” kommt:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://((charon|www)\.)?wazong.de(/)?.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://images\.google\..*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://213\.239\.206\.203(/)?.*$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|bmp)$ http://wazong.de/images/logo-big.png [R,NC]

Jeder darf meine Bilder jederzeit unter Nennung der Herkunft für nichtkommerzielle Zwecke nutzen, soll sie sich dafür aber bitte kopieren. Danke.

Mittwoch, 7. Februar 2007
[*]

Mein Videorekorder geht wieder

dentaku, 18:12

Gestern habe ich meinen Videorekorder repariert. Ich habe nämlich diese Woche “Sturmfreie Bude”, und da mache ich jeden Tag Party komme ich endlich zu den Dingen, für die mir die Zeit fehlt, wenn Frau und Kind den ihnen jeweils zustehenden Anteil an meiner Freizeit für sich beanspruchen.

Die Lösung des Problems mag für den, der analoges Fernsehen gewohnt ist ungewöhnlich klingen, denn nach längerer Suche durch C++-Sourcecode

stellte ich fest, daß ich die NetworkIDs für einen Teil meiner Multiplexe falsch eingetragen hatte.

DVB-C macht Fernsehen komplizierter als man denkt.

Samstag, 28. Januar 2006
[*]

Neuer Indianer

dentaku, 09:14

Was macht man um sich zu entspannen? Richtig, man macht was kaputt, damit man es wieder zusammensetzen muß. Die neue Version des PHPWiki und Jinzora kamen sich irgendwie mit ihrem Sessionmanagement ins Gehege, und meine Logfiles waren voller Fehlermeldungen

PHP Warning:
Unknown():
A session is active. You cannot change the session module's ini
 settings at this time.
in Unknown on line 0

Da wollte ich ein neues PHP installieren, aber der Apache war zu alt und das IMAP-Modul tat nicht richtig (so daß twig nicht mehr richtig funktionierte), und alles war irgendwie chaotisch. Da dachte ich mir “Wenn schon, denn schon” und wechselte gleich auf Apache2 mit PHP5. Hoffentlich funktioniert jezt noch alles…

Dienstag, 29. November 2005
[*]

Alles neu macht der … äh November

dentaku, 16:04

Wie man spontan sehen kann, hat sich das Design der Seite geändert — ist auch noch nicht ganz fertig: im IE sieht’s noch schlimm aus — aber (wer benutzt den schon?), und die Bildchen sind auch nich nicht ganz vollständig.

WazongLayoutAlt_thumb.jpg

(so sah das vorher aus)

Der Grund war nicht (nur), daß ich der alten Gestaltung überdrüssig war, sondern auch die Installation einer neuen Version der PHPWiki-Engine (1.3.11p1). Die kann jetzt nämlich eine Menge neue Dinge, unter anderem Seitenberechtigungen. Das selbstgebaute Wazong-Theme, das auf dem mitgelieferten MacOSX-Theme basierte, konnte ich so nicht übernehmen, und für den Neubau habe ich mir als Grundlage das neue Crao-Theme rausgesucht (wer sich einen eigenen Account geben läßt, kann alle Themes ausprobieren). Sobald ich mich da durchgearbeitet habe, hoffe ich auch die Kommentarfunktion richtig in den Griff zu bekommen…

Sonntag, 13. November 2005
[*]

Myth

dentaku, 23:34

Ich war jetzt ein paar Tage abgetaucht, denn ich habe mir einen neuen sehr kleinen Computer (bei Comp Creation) gekauft, und der mußte erstmal konfiguriert werden.
Das Ding ist völlig Lüfterlos und soll im Wohnzimmer bei der Stereoanlage stehen, und es soll MythTV drauf laufen (das hatte ich vor meinem Umzug nach Stuttgart schonmal auf meinem Arbeitsplatzrechner laufen, aber da mußte ich mich dann immer ins Arbeitszimmer setzen um die Aufnahmen ansehen zu können).
Hier werde ich über meine Fortschritte berichten.

Mittwoch, 9. November 2005
[*]

Toaster für alle!

dentaku, 00:18

Gute Nachrichten über das kleine F.. Die lange vermissten fliegenden Toaster sind zurück zu Windows gekommen (schlimm genug, wenn man damit arbyten muß). Eine Mac Version gibt es bei Uneasy Silence auch, und die Unix/Linux-Gemeinde mit X11 konnte ja schon länger auf XScreenSaver zurückgreifen — auch wenn die fliegenden Toaster dort Triebwerke statt Flügel haben.

FlyingToasters2.jpg x11_flyingtoasters.jpg