Samstag, 18. September 2010

Tor für Ubuntu und Firefox

OS: Ubuntu 10.4
Privoxy 3.0.15
ProfileSwitcher 1.0.7
TorButton 1.2.5
Tor v0.2.1.26
Vidalia 0.2.10

Bei Tor handelt es sich um ein Netzwerk, welches die Analyse von Netzwerkverkehr verhindern soll, die technischen Basics werden auf der Wikipedia Seite ganz gut erklärt. Tor macht das surfen zwar etwas langsamer, dafür hinterlässt man ziemlich wenig Spuren. Zu beachten wäre noch, daß der erste und  dritte (letzte) Torserver (die zwar allesamt zufällig ausgewählt werden und gezielte Observierung dadurch schwierig wird) sehr wohl die Möglichkeit hat die übertragenen Daten mitzusniffen, daher auch hier Obacht junger Padawan, wenn möglich immer schön verschlüsselt unterwegs sein (Tor macht dich für das eigenliche Ziel deines Requests unkenntlich, Verschlüsseln schützt die Daten von localhost zum ersten Torserver und vom letzen Torserver zum Ziel, zwischen den Torservern wird ansich sowieso verschlüsselt, aber sicher ist sicher).

Tor ist leider nicht mehr in den Standardrepositories, darum muß man sie in System -> Systemverwaltung -> Software-Paktetquellen -> Andere Software hinzufügen:

deb http://deb.torproject.org/torproject.org lucid main
deb-src http://deb.torproject.org/torproject.org lucid main

Dann holt man sich den entsprechenden Schlüssel über die Kommandozeile:

gpg --keyserver keys.gnupg.net --recv 886DDD89
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade

Nun kann man das Teil installieren:

sudo apt-get install tor tor-geoipdb

Nun installieren wir Privoxy, ein wenig Info ist über diesen Proxy auf Wikipedia zu finden.

sudo apt-get install privoxy

Da muß noch ein bisschen nachkonfiguriert werden, man öffnet in einem Texteditor /etc/privoxy/config und fügt irgendwo im File:

forward-socks4a / localhost:9050 .

als neue Zeile hinzu, zu beachten ist der '.' am Ende, ohne ihn läuft der Proxy nicht ordnungsgemäß.

Nun kann man Tor mal probehalber starten:

sudo /etc/init.d/tor start
sudo /etc/init.d/privoxy start

Um zu überprüfen ob er auch läuft tippt man

netstat -a | grep 9050

auf der Commandline ein, das Ergebnis soll in etwa so aussehen (kann etwas abweichen, wichtig ist tcp, localhost, 9050 und LISTEN):

tcp 0 0 localhost.localdom:9050 *:* LISTEN

Bei diesem Befehl nicht ungeduldig werden, es kann etwas dauern bis das gewünschte Ergebnis aufgelistet wird. Normalerweise wünscht man sich dann eine GUI, um nicht ständig die Commandline bearbeiten zu müssen, diese bekommt man so:

sudo apt-get install vidalia

Nun sollte unter dem Ubuntumenüpunkt Internet das Tool Vidalia (Wikipediaeintrag) zu finden sein.
Wenn man verhindern will das sich Tor beim Anmelden an den Rechner selbstständig startet, entfernt man den Eintrag aus den Scripten:

sudo update-rc.d -f tor remove
sudo update-rc.d -f privoxy remove

Ein kleines Startscript mit dem Namen privoxyStart für den Privoxy Server wird angelegt und zB unter dem Home Verzeichnis gespeichert:
#!/bin/sh
# Startscript für Privioxy Server
exec gksu /etc/init.d/privoxy start
Dem Script muss man "Ausführen" Rechte geben, am einfachsten erledigt man das im Nautilus (Standard-Dateibrowser in GNOME) über Eigenschaften des Files.
Nun fügt man noch zwei Pfade bei den Einstellungen von Vidalia ein, unter "Tor starten, wenn Vidalia startet" fügt man ein:

/usr/sbin/tor

und unter "Proxy starten, wenn Tor startet" der Pfad zum Startscript:

$HOME/privoxyStart

Somit wäre der erste Teil erledigt, Tor läuft auf dem Rechner, ist über eine GUI steuerbar. Nun rüstet man den Firefox so auf, das wann immer man es will problemlos über das Tor Netzwerk gesurft werden kann. Dazulegt man ein Profil an, das standardmäßig mit Tor ins Netz geht:
Zuerst installiert man das Add-On ProfileSwitcher und richtet ein Profil ein (Datei -> Profilmanager öffnen), zB mit Namen "TorButton". Dieses Profil stellt auch sicher das die Daten streng getrennt werden. Man kann es dann unter Datei -> Anderes Profil laden ansprechen. Es ist zu beachten, daß wenn man in das frische Profile einsteigt, man auch hier das Add-On installiert, da man sonst zB nach einem Neustart nicht in das default Profil zurückwechseln kann.
Nun installiert man im neu erstellten Profil (nicht im default Profil) das Firefox Plugin Torbutton. Die Eigenschaften konfiguriert man im Firefox über Extras -> Add-ons -> Erweiterungen -> Torbutton -> Einstellungen.

Folgende Einstellungen sind ratsam:



Man startet nun am besten den ganzen Rechner neu (um hängengebliebene Prozesse usw. ohne langes Suchen los zu werden), startet danach über Vidalia Tor neu, startet Firefox mit dem eingerichteten Torprofil und überprüft mit dieser Testseite ob man nun auch wirklich mit Tor unterwegs ist. Und mit dieser Testseite kann man betrachten, was der gegenüberliegende Part an Informationen auslesen kann... im Prinzip nur gefakte Daten und die Url des dritten Torservers. :D
Wenn das funkt, kann man nun jederzeit mit relativ wenig Aufwand über das Tornetzwerk das Inet erkunden, einfach über Vidalia Tor starten und Profil wechseln.

Links:
help.ubuntu.com Tor Anleitung
awxcnx.de Privacy Handbuch
Netzwelt Artikel

Freitag, 17. September 2010

Upgrade von GRUB zu GRUB2

OS: Ubuntu 10.04
Kernel: Linux 2.6.32-25-generic

Wenn man sein Ubuntu immer nur upgraded und nie neu installiert, bleibt die GRUB Version erhalten und man kann sein Dateisystem nicht auf ext4 heben. Die gute Nachricht ist, das man GRUB relativ leicht auf GRUB2 heben kann. Dabei ist jedoch zu beachten das es sehr stark von der verwendeten Ubuntu Version abhängt, wie man das nun bewerkstelligen kann.
Da hier tief ins System eingegriffen wird, ist anzuraten vorher von allem Wichtigem eine Sicherung anzulegen.
Hervorzuheben ist, das bei einem Dualbootsystem eine andere Vorgangsweise notwendig ist, hierzu geben die unten angelegten Links ausführlich Auskunft.
Die hier beschriebene Vorgangsweise hat für mich funktioniert, aber garantieren daß bei jeder Systemkonstellation so hinhaut, kann ich natürlich nicht.

Zuerst stellt man mal fest, welche Version von GRUB man verwendet:

grub --version

Funktioniert dieser Befehl nicht ist das schon ein Hinweis darauf, das man unter Umständen schon GRUB2 verwendet. Sichergehen kann man dann mit diesem Befehl:

sudo hexdump -v -s 0x80 -n 2 -e '2/1 "%x" "\n"' /dev/sdXY

sdXY ersetzt man dann durch die verwendete Partition.
Der Output lässt sich dann folgendermaßen interpretieren:

5272 --> GRUB (Legacy)
aa75 --> GRUB (Legacy)
48b4 --> GRUB 2 (Version 1.96)
7c3c --> GRUB 2 (Version 1.97 oder höher)
488 --> Grub 2 core.img

Über den Synaptic-Paketmanager holt man sich danach die Pakete
grub-common
grub-pc

Dabei wird das Paket grub gleichzeitig entfernt, dem kann man zustimmen, hatte bei mir keine negativen Auswirkungen.

Bei der Installation von grub-pc taucht ein Konfigurationsfenster, das man mit ok wegklicken kann, nachdem man sich versichert hat, das das Häkchen bei "Chainload from menu.lst?" gesetzt ist.

Bevor man nun Neustartet öffnet man "/boot/grub/menu.lst" mit Schreibrechten und versichert sich, das in der /boot/grub/menu.lst folgende Passage so aussieht:

## ## End Default Options ##

title Chainload into GRUB 2
uuid (hd0,0)
kernel /boot/grub/core.img

Dort wo uuid steht, könnte unter Umständen (bei mir wars so) "root" stehen, das ersetzt man einfach durch "uuid", danach kann man Neustarten.
Nach dem Neustart führt man folgenden Befehl aus:
sudo upgrade-from-grub-legacy
Da wird man gefragt, welche Partion nun auf GRUB2 gehoben werden soll, vorsichtshalber hab ich (wie im Dialog davor angeraten) alle möglichen genommen, rein um auf Nummer sicher zu gehen.

Nun kann man mit dem Anfangs beschriebenen Befehl wieder überprüfen, welcher GRUB Version aktiv ist.

Links:
ubuntuusers.de GRUB Umgebung analysieren
ubuntuusers.de GRUB 2 Installation

Mittwoch, 15. September 2010

RootKit Tools für Ubuntu

OS: Ubuntu 10.04

Ein Tool zur Rootkitüberprüfung ist rkhunter, das ganz einfach über die Software-Verwaltung zu installieren ist und über die Commandoline bedient wird:

sudo rkhunter --update
sudo rkhunter --check

Ein weiteres Tool ist chkrootkit, ebenfalls in der Software-Verwaltung zu finden:

sudo chkrootkit

Garantie hat man natürlich keine, daß über diese Tools alles entdeckt wird, aber ist mal besser als nichts.

SuperCookies entfernen

OS: Ubuntu 10.04
Firefox 3.6.9
BleachBit 0.7.3-1

Ganz im Gegensatz meines letzten Eintrags, wo ich mehr Aufzeichnungen über meine Aktivitäten haben wollte, geht es in diesem darum, wie man verhindert, daß Dritte Informationen über mich sammeln.
Still und heimlich haben SuperCookies das Netz erobert und herkömmliche Browser haben keine Möglichkeit diese vom Rechner zu werfen. Mühsam per Hand zu löschen tut sich kaum wer an, darum sind die meisten Rechner davon befallen. Eine Möglichkeit diese loszuwerden ist das Firefox-Add On Better Privacy, das diese Dinger aufspürt und einfaches Löschen möglich macht.

Weiters empfiehlt es sich das Add-On AdBlock-Plus zu installieren um zB Google-Analytics zu blocken. Das kann manuell geschehen, indem man eine eigene Filterregel hinzufügt:
Extras -> Adblock Plus - Einstellungen -> Filter -> Filterabonnement hinzufügen
Dort fügt man die Zeile:
google-analytics.com
hinzu.
Oder man verwendet eine automatisch aktualisierende Block-Liste, hier empfiehlt sich "EasyPrivacy".
Extras -> Adblock Plus - Einstellungen ->Filter -> Filterabonnement hinzufügen
Dort fügt man die Zeile:
https://easylist-downloads.adblockplus.org/easyprivacy.txt
ein.

BleachBit:

Ein weiteres nützliches Tool, wenn auch nicht rein nur aus Sicherheisaspekten, stellt BleachBit dar, mit dem man bequem unnützes Zeug aufspüren und löschen kann. Es ist ebenfalls im Standardrepository von Ubuntu enthalten. Auch dazu gibt es einen ubuntuusers.de Artikel.

Hierzu gibt es auch ein kleines Einführungsvideo der Entwickler:



Links:
ubuntuusers.de Sicherheitswiki

Dienstag, 14. September 2010

Activity Journal für Ubuntu

OS: Ubuntu 10.04
gnome-activity-journal 0.3.4.1+bzr20100619


Man sieht ein paar Folgen einer Serie, macht dann was für Uni oder Job, irgenwann Tage später will man die Serie weiterschauen, doch bei welcher Staffel war man, frage nicht die Folge... . Die Orte Aufzeichnung reicht da oft bei weitem nicht aus, geht sie doch nur ein paar Dateizugriffe zurück.
Diese Problematik bewog dazu mich umzuschauen ob es nicht ein Tool gibt das es erspart haufenweise Folgen anzuspielen, nur um zu sehen ob man sie nicht schon gesehen hat.
Und tatsächlich wurde man fündig, das "Tagebuch über Aktivitäten", damit hat sich das Problem halbwegs erledigt.

Nach Ausführung dieser Befehle kann man unter Zubehör bequem darauf zugreifen:

sudo add-apt-repository ppa:zeitgeist/ppa
sudo apt-get update
sudo apt-get install gnome-activity-journal


Ausgegraben in ubuntujunkie.tumblr.com, dort gibt es auch noch Tips für einige andere Tools, die schwer zu empfehlen sind.

Links:
Ubuntuusers Artikel über Zeitgeist
Seite über Gnome Activity Journal
Seite über Zeitgeist

Sonntag, 12. September 2010

Blockierliste Transmission

Wenn man in Transmission die Blockierliste aktualisiert wird eine Kopie von der bluetack level1 Blockerliste von einem Transmission Mirror Server geladen, die dort 2x täglich aktualisiert wird.
Die Blockierliste für Transmission wird im $HOME/.config/transmission/blocklists als .bin abgespeichert.

Will man nun eine andere (meist als .dat oder .txt erhältlich) hinzufügen, kopiert man sie in diesen Folder und startet Transmission erneut. Es wird beim Start automatisch in eine .bin erstellt, die Transmisson schneller parsen kann, die .dat Datei bleibt dabei erhalten.

Erhältich sind diese Blockierlisten zum Beispiel auf blocklistpro.com und tbg.iblocklist.com.

Links:
Transmission-Wiki Blockierliste

Dienstag, 7. September 2010

JUnit Tests mit Spring, EasyMock

Spring 3.0.2.RELEASE
EasyMock 3.0

Verwendet man in seinem Projekt Spring-Annotations wie @Autowired kann man in das Problem reinrutschen, das JUnit Tests schwer aufzubauen sind. Darum hilft man sich mit Mock Objekten, die dem Test vorgaukeln, daß ein benötigtes Objekt tatsächlich vorhanden ist.

Ausgangslage ist ein SupportBean, das zu instanzieren einen riesen Aufwand bedeuten würde oder überhaupt unmöglich ist (denken wir uns mal).

@Component
public class SupportBean {
 public String getDoSomething() {
  return doSomething();
 }
}

Diese Klasse können wir also nicht instanzieren. Unsere zu testende Klasse bedient sich der Springannotation Autowired:

@Component
public class ToTestBean {
 @Autowired private SupportBean supportBean; 
 public String toTestMethod() {
  return this.supportBean.getDoSomething() + " <--- so ist es";
 }
}  

Um zu testen wollen wir ein Mockobjekt erzeugen, das wenn es die Methode doSomething() ausführt, den String "Ich bin ein Mock" zurückgibt, das schreiben wir direkt in die Testmethode, in freier Natur ist man wahrscheinlich mit einer setUp() Methode besser bedient. Um die EasyMock Methoden verwenden zu können importieren wir diese statisch.

import static org.easymock.EasyMock.*;

import org.easymock.EasyMock;
import org.springframework.test.util.ReflectionTestUtils;

@Test
public void testToTestBean() {
 ToTestBean toTestBean = new ToTestBean();
 SupportBean fakeSupportBean = createMock(SupportBean.class);
 expect(fakeSupportBean.getDoSomething).andReturn("Ich bin ein Mock");
 replay(fakeSupportBean);
 ReflectionTestUtils.setField(toTestBean, "supportBean", fakeSupportBean); 
 assertTrue("Ich bin ein Mock <-- so ist es".equal(toTestBean.toTestMethod()));
}

Im Prinzip sagt man den Mock was er antworten soll, wenn er aufgefordert wird eine Methode auszuführen, mit replay aktiviert man ihn sozusagen. Mit der setField() Methode gibt man an in welches Zielobjekt (1.Parameter), man welches Feld (2.Parameter) durch welchen Mock (3.Parameter) ersetzen will.

Voila, schon funken Tests, die sonst ummöglich oder nur mit haufenweise Aufwand baubar wären.

Links:
Springhomepage
EasyMock 3.0 Schnelleinstieg

Montag, 6. September 2010

Javascript File hosten

Da auf Blogspot das direkte Einbinden von Javascript ziemliche Probleme macht, bietet es sich an, diese extern zu hosten. Eine einfache Möglichkeit ist dabei yourjavascript.com, hat auf Anhieb geklappt. Man lädt einfach sein .js File hoch und bekommt über die Mailadresse, die man angegeben hat den Link zu diesem.

Diesen Link bindet man dann einfach im Post ein, hier als Beispiel:




Sonntag, 5. September 2010

Javascript Source für den TextToHtmlTable Converter

Hier der Source für den TextToHtmlTable Converter, kann jeder verwenden wie er ihn braucht:


Ist denk ich nicht schwer zu verstehen, für die 'textarea' mit dem 'name' textToConvert wird als onclick Event einfach 'convert' gesetzt, das Ausgabefeld ist ebenfalls eine 'textarea' und erhält den 'name' 'convertedText'. Der Seperator ist einfach ein Textfeld mit 'name='seperator''. Leider arbeitet das Teil zur Darstellung des Sources nicht einwandfrei, so wird in Zeile 12 ein nonBreakingSpace im letzten String nicht angezeigt...
Ich hoffe ich kann das in den nächsten Tagen fixen, warum Blogspot da hin und wieder so seltsame Ergebnisse erzeugt ist mir ein Rätsel, scheint etwas mit internen Umwandlungen beim Abspeichern von Änderungen zu tun zu haben. Bei erstmaligen Speichern funkts halbwegs (aber nicht einwandfrei), bei jedem Drüberspeichern wirds schlimmer, muß also den Source jedesmal neu einfügen wenn ich den Post verändere, da sonst die nochmalige interne Anpassung des Textes durch das Blogspotteil den Source unkenntlich macht.

Samstag, 4. September 2010

Text in eine Html Tabelle umwandeln


Anläßlich dieses Eintrages machte ich mich im Netz auf die Suche, wie man Text angenehm in eine HTML Tabelle umwandeln kann, wobei jede Zeile eine Tabellen Zeile sein soll und in den Zeilen die Spalten mit einem Seperator getrennt sind. Ich wurde nicht fündig, drum habe ich mir schnell selber einen ziemlich primitiven in JavaScript gebastelt, vielleicht kanns ja wer brauchen.

Funktionsweise:
In das Feld 'Eingabe' kopiert man seinen Text, zum Beispiel:
Ctrl-a;Cursor zum Anfang der Zeile
Ctrl-e;Cursor zum Ende der Zeile
Ctrl-b;Ein Zeichen zurückgehen
Alt-b;Ein Wort zurückgehen
Als Seperator trägt man nun ';' ein, er zeigt wo man die Spaltentrennung haben möchte.
Dann klickt man auf Umwandeln, dadurch erhält man im Feld 'Ausgabe' diesen Text als HTML-Tabelle, die man nun einfach in irgendeiner HTML-Seite einbauen kann.

Seperator: 
Eingabe:


Ausgabe:


Falls es Probleme oder Verbesserungsvorschläge gibt, einfach einen Kommentar hinterlassen.
Hier gehts zum Source.

Bash Shortcuts

Eine kleine Auflistung nützlicher Bashbefehle:

(2T meint 2x die TAB-Taste drücken)


Ctrl-a  Cursor zum Anfang der Zeile 
Ctrl-e  Cursor zum Ende der Zeile 
Ctrl-b  Ein Zeichen zurückgehen 
Alt-b  Ein Wort zurückgehen 
Ctrl-f  Ein Zeichen vorwärts gehen 
Alt-f  Ein Wort vorwärts gehen 
Ctrl-c  Den letzten Befehl abbrechen 
Ctrl-u  Lösche vom Cursor bis zum Anfang der Zeile 
Ctrl-k  Lösche vom Cursor bis zum Ende der Zeile 
Ctrl-w  Lösche vom Cursor bis zum Anfang des Wortes 
Ctrl-l  Löscht den Schirm und setzt die aktuelle Zeile an den Beginn 
Alt-r  Rückgängig machen aller Änderungen in der Zeile 
Ctrl-r  Stufenweise Suche in der Historie 
Alt-p  Suche in der Historie 
!!  Ausführen des letzten Eintrags in der Historie 
!abc  Ausführen des letzten Eintrags in der Historie, der mit \'abc\' beginnt 
!abc:p  Ausgabe des letzten Eintrags in der Historie, der mit \'abc\' beginnt 
!n  Ausführen des nten Eintrags in der Historie 
!$  Platzhalter für das letzte Argument des letzten Befehls 
!^  Platzhalter für das erste Argument des letzten Befehls 
^abc^xyz  Austauschen des ersten Auftretens von \'abc\' durch \'xyz\' im letzten abgesetzten Befehl und dessen Ausführung 
2T  Zeige alle möglichen Befehle 
abc 2T  Zeige alle möglichen Befehle, die mit \'abc\' beginnen 
$ 2T  Zeige alle Sys Variablen 


Alle Befehle wurden mit dem GNOME-Terminal 2.29.6 ausprobiert.

Links:
Sammlung von Shortcuts, wobei jedoch nicht alle im GNOME-Terminal funkten
Blogeintrag zu diesem Thema