Unter Linux gibt es das schön Tool tcpdump
Hier nun den Fall um DNS Anfragen aufzuzeichnen
tcpdump -vvv -s 0 -l -n port 53 | grep \>
Unter Linux gibt es das schön Tool tcpdump
Hier nun den Fall um DNS Anfragen aufzuzeichnen
tcpdump -vvv -s 0 -l -n port 53 | grep \>
zum Validieren von TLSA Records gibt es mehrere Tools.
Aus Holland: ldns-dane
Dies ist aus dem Paket ldns-utils zu haben. Voraussetzung eine Version >=1.6.16. Bei Debian aktuell nur über Backports erhältlich, oder natürlich selbst kompilieren.
apt-get install ldns-utils
Verwendung:
ldns-dane verify example.com 443
Korrekte Ausgabe:
192.168.0.12 dane-validated successfully
Tool 2: posttls-finger aus dem Postfix Paket
posttls-finger -c -L verbose,summary example.org
Bei Problemen kann noch der Timeout mit -t und -T erhöht werden.
Aus der Manpage:
-t timeout (default: 30)
The TCP connection timeout to use. This is also the timeout for reading the remote server's 220 banner.
-T timeout (default: 30)
The SMTP/LMTP command timeout for EHLO/LHLO, STARTTLS and QUIT.
Ausgabe:
:~ > posttls-finger -c -L verbose,summary example.org posttls-finger: initializing the client-side TLS engine posttls-finger: using DANE RR: _25._tcp.mta4.example.org IN TLSA 2 0 2 20:2F:CF:F5:3E:65:DE:B4:C2:AB:C3:EC:6D:8F:DC:FA:5C:B7:84:A9:77:38:0E:81:D5:EF:9A:B6:F0:86:E4:93:CB:85:C6:81:22:6C:14:ED:40:A7:96:7F:EA:BC:B7:82:6F:CE:59:71:F2:9A:B1:88:FF:C6:2C:FD:F9:BF:C9:86 posttls-finger: Failed to establish session to example.org via mta4.example.org: connect to mta4.example.org[192.168.0.138]:25: Connection refused posttls-finger: using DANE RR: _25._tcp.mta3.example.org IN TLSA 2 0 2 20:2F:CF:F5:3E:65:DE:B4:C2:AB:C3:EC:6D:8F:DC:FA:5C:B7:84:A9:77:38:0E:81:D5:EF:9A:B6:F0:86:E4:93:CB:85:C6:81:22:6C:14:ED:40:A7:96:7F:EA:BC:B7:82:6F:CE:59:71:F2:9A:B1:88:FF:C6:2C:FD:F9:BF:C9:86 posttls-finger: setting up TLS connection to mta3.example.org[192.168.0.137]:25 posttls-finger: mta3.example.org[192.168.0.137]:25: TLS cipher list "aNULL:-aNULL:ALL:!EXPORT:!LOW:+RC4:@STRENGTH:!aNULL" posttls-finger: mta3.example.org[192.168.0.137]:25: depth=1 matched trust anchor certificate sha512 digest 20:2F:CF:F5:3E:65:DE:B4:C2:AB:C3:EC:6D:8F:DC:FA:5C:B7:84:A9:77:38:0E:81:D5:EF:9A:B6:F0:86:E4:93:CB:85:C6:81:22:6C:14:ED:40:A7:96:7F:EA:BC:B7:82:6F:CE:59:71:F2:9A:B1:88:FF:C6:2C:FD:F9:BF:C9:86 posttls-finger: mta3.example.org[192.168.0.137]:25: depth=0 trust-anchor certificate posttls-finger: mta3.example.org[192.168.0.137]:25: depth=1 verify=1 subject=/C=DE/ST=noWhere/L=noWhere/O=Internet Widgits Pty Ltd/OU=example.org/CN=example.org/emailAddress=ssl@example.org posttls-finger: mta3.example.org[192.168.0.137]:25: depth=0 verify=1 subject=/C=DE/ST=noWhere/L=noWhere/O=mta3.example.org/OU=mta3.example.org/CN=mta3.example.org/emailAddress=ssl@example.org posttls-finger: mta3.example.org[192.168.0.137]:25 Matched CommonName mta3.example.org posttls-finger: mta3.example.org[192.168.0.137]:25: subject_CN=mta3.example.org, issuer_CN=example.org, fingerprint=30:49:FB:D2:F3:D4:B3:D1:B5:32:C2:4B:1C:E7:D1:6A:AC:63:C7:D7, pkey_fingerprint=DF:48:73:8C:0B:E2:4B:30:50:EE:4D:AF:9F:A4:2F:1C:98:A4:BF:8F posttls-finger: Verified TLS connection established to mta3.example.org[192.168.0.137]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Ohne TLS:
Aufbau der Verbindung:
telnet mx.example.com 25 oder netcat mx.example.com 25
man wird nett begrüßt mit
220 mx.example.com ESMTP
Dann senden wir ein „EHLO unserhosname“ o.ä.
EHLO test.example.com
Wir bekommen eine Antwort mit den unterstützten Befehlen:
250-mx.example.com
250-PIPELINING
250-SIZE 102400000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
Hier sieht man das der Server nur PLAIN und LOGIN unterstützt, nur Klartext verfahren. ALSO: Ohne TLS nur Test-Logins verwenden!
Hier gibt es nun zwei Möglichkeiten: PLAIN oder LOGIN
Bsp. PLAIN:
AUTH LOGIN
es kommt eine Antwort in Base64 Kodierung: 334 VXNlcm5hbWU6
Er möchte gerne den Benutzernamen wissen, den müssen wir ebenfalls Base64 kodiert übertragen.
Vorgehensweise:
perl -MMIME::Base64 -e 'print encode_base64("username");'
echo -n "username" | openssl enc -base64
python -c "import base64;print base64.encodestring('username')"
usw.
Hier als Beispiel der Nutzer test
dGVzdA==
als nächstes wird das Passwort verlangt: 334 UGFzc3dvcmQ6
für unseren Testaccount ebenfalls test:
dGVzdA==
dann folgt eine Bestätigung vom Mailserver:
235 Authentication succeeded
Bsp. LOGIN:
das gleiche wie bei PLAIN jedoch wird der Benutzername und das Kennwort in einem Schritt übertragen:
perl -MMIME::Base64 -e 'print encode_base64("\000username\000passwort");'
echo -en "\000username\000passwort" | openssl enc -base64
python -c "import base64;print base64.encodestring('\000username\000passwort')"
usw.
auch hier folgt dann eine Bestätigung vom Mailserver:
235 Authentication succeeded
Mit TLS
Das Gespräch mit dem Mailserver hat den gleichen Inhalt, jedoch wird die Verbindung anders hergestellt:
openssl s_client -host mx.example.com -port 25 -starttls smtp andere ports ansonsten über openssl s_client -host mx.example.com -port 465 openssl s_client -host mx.example.com -port 993
als Ausgabe sind nun noch ein paar TLS Infos zu sehen.
der rest wie oben 😉
figlet:
Paket heißt wie das tool
apt-get install figlet
Ausgabe:

Möglichkeiten:
-f gebe eine Font Datei an
-d Font Ordner ändern
-c auf der Konsole zentrieren
-l links ausgerichtet
-r rechts ausgerichtet
-t breite auf Konsolen breite setzen.
-w spezielle Ausgabe breite
Fonts gibt es hier: http://www.figlet.org/fontdb.cgi
weiteres via man
Shutter:
apt-get install shutter
geht unter ubuntu / debian am besten mit
aptitude download PAKETNAME
KVM ist ne feine Sache, hier die häufigsten Kommandos:
weiteres: virsh bei ubuntuusers: http://wiki.ubuntuusers.de/virsh
VMs auflisten:
virsh list --all
vm definieren
virsh define /pfad/zur/datei.xml.org (am besten /etc/libvirt/qemu/srvname.xml.org)
vm automatisch starten
virsh autostart vmname
vm killen
virsh destroy vmname
vm undefinieren
virsh undefine vmname
vm starten und Konsolen Ausgabe anzeigen
virsh start --console vmname
später auf die Konsole zugreifen
virsh console vmname
aus der Konsole ausbrechen
Strg + 5
last verbrauch:
virt-top
start stop etc.
virsh start vmnane
virsh reboot vmname
virsh shutdown vmname
wenn shutdown nicht will dann hart mit
virsh destroy vmname
LVs anlegen
lvcreate -n /dev/vg0/ROOT-LV -L 6GB vg0
lvcreate -n /dev/vg0/SWAP-LV -L 2GB vg0
mkfs.ext4 -L ROOT-LV /dev/vg0/ROOT-LV
mkswap -L SWAP-LV-swap /dev/vg0/SWAP-LV
Konfiguration editieren
virsh edit vmname
unter den Tastatur Einstellungen -> Tastenkürzel vergeben und dann die folgenden Funktionen ausführen
banshee --next
banshee --previous
banshee --stop
banshee --toggle-playing