Entries tagged as ssl
Spurenarm kommunizieren
Tuesday, July 31. 2012
Die Zeit hat einen "digitalen Briefkasten" für Hinweisgeber entwickelt und online gestellt, auf Neudeutsch nennt man das Whistleblower. Quellenschutz im Zeitalter der Vorratsdatenspeicherung. Programmiert in Python, opensource und zum Download.
Aus dem overview zum Projekt:
briefkasten is a reasonably secure web application for submitting content anonymously. It allows to upload attachments which are then sanitized of a number of meta-data which could compromise the submitters identity. Next, the sanitized files are encrypted via GPG and sent via email to a pre-configured list of recipients. The original (potentially 'dirty') files are then deleted from the file system of the server. Thus, neither should admins with access to the server be able to access any submissions, nor should any of the recipients have access to the unsanitized raw material.
Upon successful upload the submitter receives a unique URL with a token that he or she can use to access any replies the recipients may post.
Die Intention der Redaktion ist natürlich, an gute Info zu kommen und guten Geschichten auf die Spur. Was mit den gespendeten Daten geschieht.
Lesenswert sind aber auch die Verhaltensregeln für Tippgeber:
- nicht vom Firmenrechner oder zuhause, sondern aus einem Internetcafe oder Bibliothek
- Daten nicht auf einen eigenen Rechner ziehen sondern via DVD, Stick oder mp3-Player transportieren
- bei den weitergegebenen Daten darauf achten, dass der Kreis der Eingeweihten nicht zu klein ist (und der Rückschluss auf die Quelle deshalb zu einfach.) Notfalls dafür sorgen, dass der Kreis größer wird
- Telefonate allenfalls über anonyme Prepaidkarte in gebraucht gekauftem Handy. (Polen oder Technik-Trödel.)
- email über fake accounts bei Freemailern, und diesen Account nie in der Firma oder zuhause aufrufen, sondern auch nur im Internetcafe.
- Mails mit PGP verschlüsseln.
- Tor allein genügt nicht.
- Geduld und kaltes Blut.
Und vorsichtig mit den Gewohnheiten sein, nicht immer in's selbe Cafe gehen und nicht immer zur gleichen Zeit. Denn totz aller Umsicht und dem Entfernen der Metadaten aus bestimmten Dateitypen: die Zeiten der Übermittlung bleiben sichtbar...
command line - Schnipsel
Sunday, April 15. 2012
Kleinigkeiten, die ich immer wieder nachsuchen muss:
Recursively rename all files containing "dings" into "bums"
for i in `find .` ; do mv $i `echo $i | sed 's/dings/bums/'` ; done
Recursively list all files '.forward' containing string 'bin'
find -type f -name '.forward' -exec grep -H -n 'bin' {} \;
in eine Logdatei protokollieren, was ein Programm so treibt:
strace -e trace=open -o logfile.log ./xyz
umount /dev/sdc1 scheitert, weil irgendeine Datei offen ist, wer hat sie?
fuser -m /dev/sdc1
Recursively chmod only directories
find . -type d -exec chmod 755 {} \;
Recursively chmod only files
find . -type f -exec chmod 644 {} \;
Recursively chmod only files with extension .php
find . -type f -name '*.php' -exec chmod 644 {} \;
Recursively find all files > some size
find . -type f -size +10000000k -exec ls -lh {} \;
Recursively find all files > some size named like something and delete
find . -type f -size +100000k -name access.log -exec rm -i {} \;
Password generator
openssl rand -base64 32|head -c 12;echo
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
alle an einem best Datum geaenderten Dateien auflisten:
ls -AlturR --time-style=long-iso | grep ^.*2004\-03\-19.2.* >/home/dp/katalog_040319_2x:xx:xx.txt
Haeufigkeit bestimmter Eintraege in messages nach Tagen sortiert ausgeben
grep DPT=1434 /var/log/messages >/var/log/SQL.slammer.txt
for i in 24 25 26 27 28; do j=`grep Jan\ $i SQL.slammer.txt -c`;echo $i, $j;done
user passwd fuer geschuetztes web-verzeichnis mit .htaccess anlegen
htpasswd -b /usr/local/httpd/.htpasswd user pass
haessliches XML lesbar formatieren
xmllint –format ugly.xml –output pretty.xml
KDE clipboard history aus cli löschen
qdbus org.kde.klipper /klipper clearClipboardHistory
die eigene Certificate Authority mit XCA
Saturday, February 18. 2012
Für eine Gruppe Rechnern in einem Intranet sollen für https Zertifikate erstellt werden. Alle Systeme sind unter mehr als einer Domain erreichbar, die Zertifikate sollen jeweils für alle Namen gültig sein. 'Echte', also von einer in den Browsern vorinstallierten CA signierte Zertifikate scheiden aus Kostengründen aus, Um nicht für jeden einzelnen Rechner eine Ausnahme in den Browsern speichern zu müssen setze ich eine eigen CA auf und signiere die einzelnen Zertifikate mit diesem CA-Zertifikat. Es reicht dann, dieses eine Zertifikat in den browsern zu importieren und alle damit signierten Zertifikate werden grün.
Man kann das natuerlich 'händisch' mit openssl allein machen, aber die Verwaltung wird leicht unübersichtlich. Ich habe XCA genommen, ein 'x509 Certification Authority management tool based on QT4', dass ich auf debian squeeze / KDE mit apt-get install xca installierte.
XCA hat Reiter für Schlüssel, Unterschriftsanfragen, Zertifikate, Rücknahmelisten und Vorlagen. Diese Vorlagen sind XCA-spezifisch, man kann sie neu erstellen aber auch bestehende Zertifikate oder Unterschriftsanfrage in eine Vorlage exportieren. Das ist in der Praxis eine ziemliche Hilfe und erspart Abtippen, für eine neues Request wählt man dann einfach im Reiter Herkunft unten das passende Template und traegt dessen Werte mit Übernehmen ein, anschliessend ändert man nur das, was wirklich neu muss.
Bei der Erstellung des CA-Zertifikates muss man darauf achten, im Reiter Erweiterungen in den Grundbeschränkungen als Typ Zertifikats Authorität einzustellen, Kritisch markieren, im Reiter Key Usage müssen links Certificate Sign und CRL Sign markiert sein, im Reiter Netscape markiert man SSL CA, S/MIME CA und Object Signing CA.
Bei den Zertifikaten für mehr als einen Domainnamen ist das entscheidende Feld im Reiter Erweiterungen die Zeile subject alternative name, hier auf Bearbeiten klicken und in dem Formular links oben DNS und rechts daneben den ersten Namen, mit Hinzufügen eintragen. Das wiederholt man nun der Reihe nach für jeden Namen, für den das Zertifikat gelten soll, auch für den schon auf dem vorigen reiter eingetragenen common name. Es ist wohl so, dass, wenn das Feld subject alternative name im Zertifikat gesetzt ist, nur die dort eingetragenen Werte gelten. Bei Key Usage muss man noch darauf achten, dass im rechten Feld auch TLS Web Server Authentication markiert ist, sonst bekommt man (in FireFox, der da auskunftsfreudiger ist als etwa Chrome) den Fehler SEC_ERROR_INADEQUATE_CERT_TYPE."The rule is that IF a server cert contains an extended Key Usage extension, then it MUST include the extended usage for server authentication."
bekommt man den Fehler sec_error_unknown_issuer zu sehen, muss man an die erzeugten Zertifikate das Zertifikat der signierenden CA anhängen, für server, die alles in einer datei wollen (so Courier) etwa per
cat domain.tld.{key,crt} my-own-CA.crt >domain.tld.pem
Bei Webmin zb geht beides, man kann eine wie oben erzeugte combo als keyfile in /etc/webmin/miniserv.conf eintragen, oder dort nur den key selbst und die Zertifikate als certfile= und extracas=
Courier imapd-ssl: Maximum connection limit reached
Monday, July 11. 2011
Leider habe ich nicht zurückverfolgen können, was eigentlich den Auslöser davon darstellte, gefühlt schien das K9 - Mail meines android zu spinnen: neu angelegte Unterordner auf dem imap-Server wurden da nicht angezeigt und beim Abruf neuer Nachrichten gab es oft reihenweise Fehlermeldungen (ssl-handshake fail). Alle Versuche, K9 mit veränderten Einstellungen zu heilen, schlugen fehl.
Bis ich mir dann mal die Zeit nahm, auf den Server zu schauen und dort im mail.log viele Fehlermeldungen wie diese fand:
imapd-ssl: Maximum connection limit reached for (und die IP)
Wobei an dem Server nicht eben viele Clienten hingen, sondern genau zwei: ein Thunderbird und eben K9 auf dem Androiden. Die in den Fehlermeldungen gelisteten IPs liessen sich ohne Zweifel und Ausnahme auf das Android-Telefon zurückführen.
Google lieferte mir einen vergleichbaren Problembericht von jmd., dermit Thunderbird und einem OSX Mail auch diesen Fehler sah und ihn dort auf Mail zurückführte, wie bei mir tauchte die IP des Rechners mit Thunderbird nie auf. Auch dort kam nicht heraus, warum eine anfangs funktionierende Einrichtung dann diese Fehler warf, aber eine Abhilfe habe ich gefunden.
In /etc/imapd-ssl habe ich diese beiden Einträge angefügt:
MAXDAEMONS=280
MAXPERIP=40
noch ein /etc/init.d/courier-imap-ssl restart und seither ist Ruhe und K9 kommt auch wieder klar.
Zertifikate für apache, courier, webmin, postfix, dovecot, nrpe einbinden
Wednesday, February 9. 2011
In einem früheren Eintrag hatte ich startssl als Quelle für kostenlose Zertifikate für Server angesprochen, die kostenlosen Class 1 - Zertifikate gelten immer für eine Subdomain und die Domain selbst. Also zB. www.domain.tld und domain.tld. Hier mein Waschzettel, um das Zertifikat für den Webserver der Domain, Courier (pop3s, imaps) und für die Serververwaltungen Webmin und ISPConfig2 einzubinden.
# Verzeichnis für die eigenen Certs anlegen mkdir -p /etc/ssl/certs/startssl/ chmod 700 /etc/ssl/certs/startssl/ # den eigenen key und das von startssl signierte zertifikat hier speichern # darauf achten bzw. kontrollieren, dass jede dieser Dateien mit einem \n endet domain.tld.key domain.tld.crt chmod 600 domain.tld.key # die certs von startssl herunterladen wget https://www.startssl.com/certs/ca.pem wget https://www.startssl.com/certs/sub.class1.server.ca.pem # umbenennen ordnet mv ca.pem startssl.ca.crt mv sub.class1.server.ca.pem startssl.sub.class1.server.ca.crt # die ganze Kette zusammenkopieren cat startssl.sub.class1.server.ca.crt startssl.ca.crt >startssl.chain.class1.server.crt cat domain.tld.{key,crt} startssl.chain.class1.server.crt >domain.tld.pem chmod 600 domain.tld.pem # fuer imap-ssl und pop-ssl eintragen # in den beiden .cnf den Pfad zum domain.tld.pem einzutragen funktioniert nicht, # courier erwartet das Zertifikat in oder unter /etc/courier # was dagegen klappt ist ein symlink von dem Zertifikat nach imapd.pem bzw pop3d.pem mv /etc/courier/imapd.pem /etc/courier/imapd.pem.bkp mv /etc/courier/pop3d.pem /etc/courier/pop3d.pem.bkp ln -s /etc/ssl/certs/startssl/domain.tld.pem /etc/courier/imapd.pem ln -s /etc/ssl/certs/startssl/domain.tld.pem /etc/courier/pop3d.pem # neu starten /etc/init.d/courier-imap-ssl stop /etc/init.d/courier-imap-ssl start /etc/init.d/courier-pop-ssl stop /etc/init.d/courier-pop-ssl start # fuer webmin eintragen nano /etc/webmin/miniserv.conf # dort den eintrag keyfile auskommentieren und stattdessen eintragen: keyfile=/etc/ssl/certs/startssl/domain.tld.pem # und neu starten /etc/init.d/webmin restart # für ispConfig auf domain.tld:81 einbinden nano /root/ispconfig/httpd/conf/httpd.conf # dort auskommentieren ##SSLCertificateFile /root/ispconfig/httpd/conf/ssl.crt/server.crt ##SSLCertificateKeyFile /root/ispconfig/httpd/conf/ssl.key/server.key ggf. auch #SSLCertificateChainFile und #SSLCACertificateFile # und stattdessen eintragen: SSLCertificateFile /etc/ssl/certs/startssl/domain.tld.net.crt SSLCertificateKeyFile /etc/ssl/private/domain.tld.net.key SSLCertificateChainFile /etc/ssl/certs/startssl/startssl.chain.class1.server.crt
# neu starten /etc/init.d/ispconfig_server restart # für den Apache des betreffenden vhosts in dessen conf gleichermassen eintragen SSLEngine on SSLCertificateFile /etc/ssl/certs/startssl/domain.tld.net.crt SSLCertificateKeyFile /etc/ssl/private/domain.tld.net.key SSLCertificateChainFile /etc/ssl/certs/startssl/startssl.sub.class1.server.ca.crt # neu starten /etc/init.d/apache2 restart # für postfix mkdir -p /etc/postfix/ssl/startssl_cert ln -s /etc/ssl/certs/startssl/domain.tld.crt /etc/postfix/ssl/startssl_cert/domain.tld.crt ln -s /etc/ssl/certs/startssl/domain.tld.key /etc/postfix/ssl/startssl_cert/domain.tld.key # 1 Zeile! ln -s /etc/ssl/certs/startssl/startssl.chain.class1.server.crt /etc/postfix/ssl/startssl_cert/startssl.chain.class1.server.crt # postfix' main.cf editieren und darin einfügen bzw. anpassen: nano /etc/postfix/main.cf #TLS Support ## smtpd smtpd_tls_auth_only = no smtpd_use_tls = yes # eigener Key smtpd_tls_key_file = /etc/postfix/ssl/startssl_cert/domain.tld.key # eigenes Certificate smtpd_tls_cert_file = /etc/postfix/ssl/startssl_cert/domain.tld.crt # public der Certificate Authority smtpd_tls_CAfile = /etc/postfix/ssl/startssl_cert/startssl.chain.class1.server.crt smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom ##smtp smtp_use_tls = yes smtp_tls_note_starttls_offer = yes update: # fuer dovecot (2.x): nano /etc/dovecot/local.conf ssl_cert = </etc/ssl/certs/startssl/domain.tld.crt ssl_key = </etc/ssl/certs/startssl/domain.tld.key ssl_ca = </etc/ssl/certs/startssl/startssl.chain.class1.server.crt #fuer nrpe, bei mir icinga-nrpe-server nano /etc/icinga-nrpe/nrpe.cfg cert_file=/etc/ssl/certs/startssl/domain.tld.crt cacert_file=/etc/ssl/certs/startssl/startssl.chain.class1.server.crt privatekey_file=/etc/ssl/certs/startssl/domain.tld.key
Alternative Anleitung mit Beispielen für nginx, Lighttpd, Postfix, Dovecot, eJabberd, vsftpd