Löwenzahn dominiert Drachenwiese
… Tapetenwechsel …
Fröhliche Finsternis
Das beliebteste Büro am 19.03.2015 hatte eindeutig Dr. Q.
dnsblock: /etc/hosts auf Drogen
Ich habe mich mal damit beschäftigt, wie man den abgehenden Datenverkehr auf einem Linux Desktop besser kontrollieren kann. Auf Layer 3 (iptables) kann man dem nicht mehr Herr werden. Das IP Adressmanagement ist dank Clouds hochdynamisch. Heute hat der Service Provider seinen Dienst bei Azure und morgen ist er bei Amazon. Häufig bleibt nur der DNS Name unverändert. Und genau da will ich auch ansetzen.
Etliche Leute blocken Tracker und Adserver mit der Datei /etc/hosts. Zum Beispiel:
# /etc/hosts
127.0.0.1 trackserver35.example.net
127.0.0.1 trackserver36.example.net
127.0.0.1 trackserver37.example.net
Man kann sich vorstellen, dass die Datei schnell riesig wird und schwer zu pflegen ist. In Browsern wie dem Firefox kann man sich ebenfalls ganz gut geißeln. Z.B.: mit den Plugins:
- NoScript
- RequestPolicy
- Cookie Monster
- Certificate Patrol
Allerdings drückt das schon schwer auf die Geschwindigkeit des Feuerfuchses.
dnsblock ist ein NSS Modul und funktioniert wie die /etc/hosts Datei, nur mit regulären Ausdrücken. Das obige Beispiel reduziert sich zu einer Zeile.
# /etc/dnsblock
127.0.0.1 ^trackserver\d+\.
Weiteres Beispiel: Du bist nicht bei Facebook und es stört Dich, dass Dein Webbrowser auf jeder Newsseite Facebook kontaktiert, da diese den Like Button eingebaut haben? Dank Cookies, Referrern, usw. entstehen so richtig umfangreiche Nutzerprofile und das magst Du nicht? STOP
# /etc/dnsblock
127.0.0.1 ^facebook\.com$
127.0.0.1 \.facebook\.com$
Die Installation unter Debian/Ubuntu ist einfach. Beispiel:
git clone https://github.com/torrentkino/dnsblock.git
cd dnsblock
make debian
sudo dpkg -i ../../dnsblock_0.01_amd64.deb
sudo cp /usr/share/dnsblock/dnsblock.example /etc/dnsblock
Jetzt noch /etc/nsswitch.conf anpassen und dnsblock vor dns eintragen. Beispiel:
hosts: files dnsblock dns
Nun ist es so, dass auch mein Gehalt von dieser Art des Trackings und von Online Werbung abhängig ist. Letzten Endes muss man abwägen zwischen den Interessen seiner Lieblingsnewsseiten und den ausufernden Datensammlungen von Drittanbietern, den kürzeren Akkulaufzeiten und der ständigen Malwaregefahr, die von achtlosen Werbeagenturen ausgeht…
Sonderfall Chromium
Chromium macht DNS am Betriebssystem vorbei. Es bringt einen eigenen DNS Resolver mit, den man aber ausschalten kann, damit z.B. dnsblock greift. Einfach chrome://flags/ ansurfen und
Enable experimental asynchronous DNS client.
auf Disabled setzen.
mutt: Autoencrypt ohne Gnade
- Ziel: Jede Email per Default verschlüsseln!
- Problem: Welche PGP Schlüssel habe ich überhaupt?
Die muttrc kann man grundsätzlich wie folgt erweitern:
send-hook . unset crypt_autoencrypt
group -group pgp-users -addr aaa@bbb.de
group -group pgp-users -addr www@xxx.de
send-hook "%C pgp-users" set crypt_autoencrypt
Ein bisschen Perl holt sich die möglichen Ziele direkt bei GnuPG ab. Am besten den Output in eine eigene Datei stecken und anschließend in die muttrc einbinden.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/perl -w
use strict;
sub load( $ ) {
my $pgpcmd = shift;
my $public = 0;
my @group;
open PIPE, "$pgpcmd |" or die;
while( <PIPE> ) {
s/\n//;
if( $_ =~ m/^pub/ ) {
my @pub = split /:/, $_;
# Public key with encryption capability
if( $pub[11] =~ m/E/ ) {
$public = 1;
} else {
$public = 0;
}
}
next if( $public == 0 );
if( $_ =~ m/^uid/ ) {
my @uid = split /:/, $_;
my $mail = $uid[9];
if( $mail =~ m/\S+\@\S+/ ) {
$mail =~ s/.*<(\S+\@\S+)>.*/$1/;
push @group, $mail;
}
}
}
close PIPE or die;
return \@group;
}
sub result( $ ) {
my $group = shift;
foreach my $mail ( sort @{ $group } ) {
print "group -group pgp-users -addr $mail\n";
}
print <<EOF
send-hook . unset crypt_autoencrypt
send-hook "%C pgp-users" set crypt_autoencrypt
EOF
;
}
sub main() {
my $pgpgroup = load( "gpg2 --batch --with-colons --list-keys" );
result( $pgpgroup );
}
main();
Demnächst kriege ich wohl Rückmeldungen über verlorene Schlüssel oder auf dem Telefon unlesbare Mails. Aber hey, wer seinen Key veröffentlicht, der will das so. :)