Zum Inhalt

Jahr: 2013

Passwörter zwischen Firefox und Chrome synchronisieren

Mit KeePass und einem Addon pro Browser ist es möglich, von Firefox und Chrome auf dieselben Passwörter zuzugreifen. Allerdings ist der initiale Aufwand recht hoch und es ist dann bei der Nutzung nicht ganz so bequem, wie die jeweils eingebaute Passwortverwaltung. Allerdings kann man mit dieser Lösung z.B. auch die Passwörter via BoxCryptor und Dropbox, Google Drive, usw. auf verschiedenen Systemen nutzen.

Was wird gebraucht?

  1. KeePass 2: http://keepass.info/download.html
  2. KeePassHttp Plugin: https://github.com/pfn/keepasshttp
  3. Chrome Extension chromeIPass: https://chrome.google.com/webstore/detail/chromeipass/ompiailgknfdndiefoaoiligalphfdae
  4. Firefox Addon(s):
    PassIFox: https://addons.mozilla.org/de/firefox/addon/passifox/
    oder KeeFox: http://keefox.org/ (mein Favorit)

Als erstes wird natürlich KeePass 2 installiert und das KeePassHttp Plugin. Dann eine neue Datenbank erstellen, speichern und geöffnet lassen. Wenn nun in Chrome oder Firefox die Extension/das Addon installiert werden, wird via KeePassHttp eine Verbindung vom Browser zu KeePass hergestellt. Falls unter Firefox PassIFox benutzt wird, muss unter Firefox die Einstellung „Passwörter speichern“ aktiviert sein, bei KeeFox nicht.

Passwörter speichern

Aber nun zur schwierigeren Aufgabe: Passwörter aus Firefox oder Chrome in KeePass importieren

Update vom 03.08.2013: Scheinbar lassen sich die Passwortmanager der Browser einfacher aushebeln, als gedacht. Vor allem bei Chrome lassen sich scheinbar sehr einfach die Passwörter auslesen: http://raidersec.blogspot.in/2013/06/how-browsers-store-your-passwords-and.html (Quelle: heise.de)

Android Handy vor dem Verkauf sicher löschen

Auf jeglichen Smartphones sammeln sich mit der Zeit viele, viele vertrauliche Daten an, die vor dem Verkauf des Handys gelöscht werden sollten. Meiner Ansicht nach gibt es drei verschiedene Möglichkeiten, mit unterschiedlicher Sicherheit und unterschiedlichem Aufwand:

  1. Daten per USB löschen: Einfach das Handy mit dem PC verbinden und dann die relevanten Verzeichnisse löschen. Damit erwischt man Ordner, die Fotos enthalten (z.B. DCIM und Pictures), als auch offensichtliche Verzeichnisse von Apps (Facebook oder WhatsApp). 
  2. Daten mehrfach per USB löschen: Im Endeffekt wie die erste Möglichkeit, aber man löscht nicht einfach via Explorer, sondern mit Tools, die Daten mehrfach überschreiben, z.B. Secure Eraser. Aber auch hier muss man die Verzeichnisse kennen, die sensible Daten erhalten.
  3. Verschlüsselung: Seit Android 4.0 ICS gibt es die Möglichkeit, alle Daten auf dem Handy zu verschlüssen: Einstellungen – Sicherheit – Telefon verschlüsseln.

Ich denke, Möglichkeit 3 mit anschließendem Factory Reset (Auf Werkszustand zurücksetzen), macht es einer dritten Person doch recht schwer, die Daten vom Handy wiederherzustellen.

Citrix und RDP: Mausverzögerung

Wenn man eine RDP Verbindung zu einem Windows 7 via Citrix herstellt, bewegt sich der Mauszeiger sehr verzögert. Abhilfe schafft hier, das Design des Mauszeigers in der Systemsteuerung auf dem Windows 7 Client System umzustellen auf eine nicht Aero Variante:

Langsam:

rdp_mouse_slow

Schnell:

rdp_mouse_fast

Es gibt auch die Möglichkeit, das ganze via AutoHotkey Script umzustellen: Programmatically Changing Windows Mouse Cursors (Link zum Download am Ende des Artikels, oder direkt hier)

WordPress gegen unerlaubten Zugriff absichern

Mir ist in den Apache Logs aufgefallen, dass in letzter Zeit mehr und mehr Zugriffe aufs Login Formular von WordPress erfolgen. Nach etwas Recherche bin ich über das Plugin Limit Login Attempts gestolpert. Damit lassen sich die per default unendlich erlaubten Loginversuche bei WordPress beschränken. Nach einigen Tagen laufzeit sieht das Log des Plugins dann so aus:

Limit Login Attempts

Dabei ist schon irgendwie auffällig, dass der Login nur als „admin“ versucht wird, also dem default User, den jede WordPress Installation eigentlich hat. Im Umkehrschluss ist es also eine gute Idee, den default User „admin“ nach der Installation zu löschen und durch einen anderen User mit Adminrechten zu ersetzen. Ein möglichst gutes Passwort gehört natürlich auch dazu.

SSD: Ruhezustand deaktivieren und Auslagerungsdatei verschieben? Sinnvoll?

In meinem MSI GE60 steckt ein SSD Laufwerk (Crucial m4 SSD 256GB) und wegen diversen Anleitungen und Hinweisen habe ich den Ruhezustand unter Windows 7 deaktiviert und auch die Auslagerungsdatei auf die normale Festplatte verschoben. Aber macht das überhaupt Sinn bzw. ist es wirklich ein so großes Risiko, beides auf der SSD zu nutzen? Scheinbar gibts auch gegenteilige Meinungen: Auslagerungsdatei auf SSD (c’t) und eine gute Erklärung aus dem PCGH Forum.

Ich habe nämlich das Problem, dass Windows nach dem Aufwachen aus dem Energiesparmodus/Standby ab und an keine Verbindung mehr zum WLAN herstellen kann, nach dem Ruhezustand tritt das Problem nicht auf.

FRITZ!Box 6320 Update auf FRITZ!OS 05.51

In der letzten Nacht ist tatsächlich von Unitymedia ein Update für die FRITZ!Box 6320 auf Version 05.51 verteilt worden:

fritzbox6320-05.51

Quelle: Facebook

Damit sollen nun u.a die WLAN Probleme behoben sein, wegen denen ich vor einiger Zeit noch einen TL-WR841ND als WLAN Accesspoint hinter die FRITZ!Box gehängt hatte. Ich werde das WLAN der FRITZ!Box 6320 jetzt also mal wieder ausprobieren und evtl. sind die Probleme ja wirklich beseitigt, und ich kann wieder auf den anderen WLAN Accesspoint verzichten. Aber mal abwarten…

Update vom 17.05.2013: Ich habe das WLAN der FRITZ!Box 6320 wieder deaktiviert und nutze lieber meinen TP-Link Accesspoint. Das Update der FRITZ!Box hat das WLAN zwar verbessert, aber es kann weiterhin nicht mit dem TL-WR841ND mithalten. Die Reichweite ist deutlich geringer und falls ein Upload/Download die Bandbreite auslastet, können andere Geräte im WLAN kaum noch Seiten aufrufen. Was allerdings nach dem Update auf 05.51 nicht mehr auftritt, sind die sporadischen WLAN Abbrüche. Jedenfalls bei meiner  FRITZ!Box.

Unitymedia: Gmail, IMAP und IPv6

Seit einigen Tagen kann ich nicht mehr mit Thunderbird via IMAP auf meine Gmail Konten zugreifen; es passiert einfach nichts, nicht mal eine Fehlermeldung à la „Passwort falsch“ oder sowas in der Art wird angezeigt. Scheinbar liegts an IPv6. Man bekommt ja bei Unitymedia als Neukunde keinen IPv4 Anschluss mehr, sondern nur noch IPv6 (IPv4 über DS-Lite). Damit verteilt dann die FRITZ!Box 6320 von Unitymedia auch IPv6 Adressen an die Systeme im LAN, sofern dort IPv6 aktiviert ist.

IPv6:
um-gmail-ipv6

IPv4:
um-gmail-ipv4

Mit deaktiviertem IPv6 klappt der Zugriff dann auf Gmail via IMAP auch.

disable-ipv6-win7

Spindown bei Festplatten verhindern

In meinem Notebook MSI GE60 ist eine Western Digital WD10JPVT Blue als Festplatte verbaut, die leider das tolle Feature besitzt, bereits nach ca. 3 Sekunden einen Spindown durchzuführen. Wenn danach dann wieder auf die Festplatte zugegriffen wird, gibts eine kurze Verzögerung, die nicht wirklich lange dauert, aber bemerkbar ist und nervt. Vom Hersteller Western Digitial gibt es für das Problem leider keine Lösung bzw. ich habe keine gefunden.

Mit ein paar Zeilen Java läßt sich das Problem umgehen: Es werden alle x Sekunden ein paar Zeichen Text in eine Datei geschrieben, die nach x Durchläufen gelöscht und neu erstellt wird. Das kostet kaum Performance, sorgt aber für minimale Last auf der Festplatte.

package de.denniswilmsmann.preventspindown;

import java.awt.AWTException;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.net.URISyntaxException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

/*
 * $Log: $
 */

/**
 * <br/>Created: 18.04.2013
 * <br/>Author: Dennis Wilmsmann
 * <br/>Last committed $Date: $
 * @author  $Author: $
 * @version $Revision: $
 */
public class PreventSpindown {

    private static final String PREFIX = "preventspindown_";
    private static PreventSpinDownThread t;
    private static int secondsPerLine = 5;
    private static int linesPerFile = 10;
    private static TrayIcon icon;
    private static Image stopImage;
    private static Image runImage;
    private static String running = "Prevent Spindown - Running";
    private static String stopped = "Prevent Spindown - Stopped";

    /**
     * @param args String[]
     * @throws URISyntaxException
     * @throws IOException
     * @throws AWTException
     */
    public static void main(String[] args) throws URISyntaxException, IOException, AWTException {
        // check command line params
        if (args != null) {
            for (String arg : args) {
                if (arg.startsWith("secondsPerLine")) {
                    secondsPerLine = Integer.parseInt(arg.split("=")[1]);
                } else if (arg.startsWith("linesPerFile")) {
                    linesPerFile = Integer.parseInt(arg.split("=")[1]);
                }
            }
        }

        // at least 1 line per second and 1 line per file
        secondsPerLine = Math.max(1, secondsPerLine);
        linesPerFile = Math.max(1, linesPerFile);

        SystemTray tray = SystemTray.getSystemTray();
        Toolkit toolkit = Toolkit.getDefaultToolkit();

        stopImage = toolkit.getImage("drive.png");
        runImage = toolkit.getImage("drive-green.png");

        PopupMenu menu = new PopupMenu();

        MenuItem startItem = new MenuItem("Start");
        startItem.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (t == null || !t.isRunning()) {
                    t = new PreventSpinDownThread(secondsPerLine, linesPerFile);
                    t.start();
                    icon.setImage(runImage);
                    icon.setToolTip(running);
                }
            }
        });
        menu.add(startItem);

        MenuItem stopItem = new MenuItem("Stop");
        stopItem.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (t != null) {
                    t.setRunning(false);
                    icon.setImage(stopImage);
                    icon.setToolTip(stopped);
                }
            }
        });
        menu.add(stopItem);

        MenuItem closeItem = new MenuItem("Close");
        closeItem.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
        menu.add(closeItem);
        icon = new TrayIcon(stopImage, stopped, menu);
        icon.setImageAutoSize(true);

        tray.add(icon);
    }

    public static class PreventSpinDownThread extends Thread {

        private final SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd_HHmmss");
        private int secondsPerLine = 5;
        private int linesPerFile = 10;
        private boolean running = true;

        public void setRunning(boolean running) {
            this.running = running;
        }

        public PreventSpinDownThread(int secondsPerLine, int linesPerFile) {
            this.secondsPerLine = secondsPerLine;
            this.linesPerFile = linesPerFile;
        }

        @Override
        public void run() {
            // remove old files first
            File tmp = new File("");
            File folder = new File(tmp.getAbsolutePath());
            if (folder.isDirectory()) {
                for (File f : folder.listFiles()) {
                    if (f.getName().startsWith(PREFIX) && f.getName().contains("txt")) {
                        System.out.println("remove old file " + f.getAbsolutePath());
                        f.delete();
                    }

                }
            }

            System.out.println("write a new line each " + secondsPerLine + " seconds");
            System.out.println("write a new file each " + linesPerFile + " lines");

            int count = 0;
            File newTextFile = null;
            String filename = null;

            try {
                while (running) {
                    if (newTextFile == null) {
                        filename = PREFIX + df.format(new Date()) + ".txt";
                        newTextFile = new File(filename);
                        System.out.println("create new file " + newTextFile.getAbsolutePath());
                        newTextFile.deleteOnExit();
                    }
                    FileWriter fileWriter = new FileWriter(newTextFile, true);

                    String random = UUID.randomUUID().toString();
                    System.out.println(random);

                    fileWriter.write(random);
                    fileWriter.write("\n");
                    fileWriter.close();
                    count++;

                    icon.setToolTip(PreventSpindown.running + " " + count + "/" + linesPerFile + "\n" + filename);

                    Thread.sleep(1000 * secondsPerLine);

                    if (count >= linesPerFile) {
                        count = 0;
                        System.out.println("remove old file " + newTextFile.getAbsolutePath());
                        newTextFile.delete();
                        newTextFile = null;
                    }
                }
                // delete file after stop
                newTextFile.delete();
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        public boolean isRunning() {
            return running;
        }
    }
}

Update vom 18.04.2013: Die Konsole wird per default nicht mehr angezeigt und dafür gibts ein kleines Icon im Systray, um per Rechtsklick zu starten bzw. zu stoppen.

psd1

psd3

psd2

Ich habe mal alles zusammen in ein ausführbares JAR File gepackt mit dazugehöriger start.bat Datei für Windows. Das sollte eigentlich auf jedem System laufen, auf dem Java 6 (oder aktueller) installiert ist: preventspindown.zip

Das ZIP File irgendwo entpacken und via start.bat starten. Wie oft eine neue Zeile geschrieben werden soll und wann eine neue Datei erstellt wird, wird über die Parameter secondsPerLine (default=5) und linesPerFile (default=10) gesteuert. Einfach nach den eigenen Wünschen in der start.bat anpassen.

Wenn in der start.bat wieder mit java.exe anstatt javaw.exe gestartet wird, erscheint auch wieder die Konsole:

preventspindown

Gleichmäßige Schriftgröße in WordPress Kommentaren

Mein momentanes WordPress Theme rückt Kommentare unter den Beiträgen zwar schön ein, verkleinert aber auch nach jeder Ebene die Schriftgröße etwas. Aber der 2. oder 3. Ebene wird die Schrift dann irgendwie zu klein:

Zu kleine Schriftarten

Mit etwas CSS läßt sich aber eine gleichmäßige Schriftgröße erzwingen (style.css):

.commentlist li, #commentform input, #commentform textarea {
 font-size: 1em; 
}
.commentlist cite, .commentlist cite a {
 font-size: 1em; 
}

Gleichmäßige Schriftgröße

Quelle: WordPress/Mandigo/User tips and tricks