Mix Installation für FreeBSD im Jail

From JonDonym Wiki
Revision as of 14:11, 12 March 2010 by Geko (Talk | contribs)
Jump to: navigation, search

File:En.png File:De.png

Contents

Installation der Mix-Serversoftware für FreeBSD/Jail

Diese Anleitung beschreibt die Installation des Mix-Servers und zusätzlich nötiger Software für FreeBSD in einem Jail. Wir empfehlen, die zusätzlich nötige Software aus den Ports zu installieren. Der Mehraufwand für das Kompilieren ist gering. Die Ports werden aber gelegentlich schneller aktualisiert als die Packages.

Die Software für den Mix-Server wird als Quellcode bereitgestellt.

Voraussetzungen

Um die Mix-Sourcen zu kompilieren, werden die Bibliotheken OpenSSL (mindestens v.0.9.7) und Xerces-C++ benötigt. Außerdem braucht man einen C++ compiler, automake und subversion. Wir empfehlen, subversion mit deaktiviertem BDB zu kompilieren.

cd /usr/ports/security/openssl && make install clean
cd /usr/ports/textproc/xerces-c2-devel && make install clean
cd /usr/ports/devel/automake19 && make install clean
cd /usr/ports/devel/subversion && make install WITHOUT_BDB=YES && make clean

Für Premium-Mixe werden zusätzlich ein PostgreSQL-Datenbank-Server, der passende Client und die C-Bibliotheken für PostgreSQL Clients benötigt.

cd /usr/ports/databases/postgresql84-client && make install clean
cd /usr/ports/databases/postgresql84-server && make install clean
cd /usr/ports/databases/postgresql-libpq++ && make install clean 

Kompilieren des Quellcodes

Als erstes ist die aktuelle Stable-Version vom Repository auszuchecken. Wir empfehlen, das Verzeichnis /home/mix zu nutzen.

mkdir /home/mix
cd /home/mix
svn checkout https://svn.jondos.de/svn/proxytest/proxytest/branches/stable

Danach ist die Software zu kompilieren und zu installieren:

cd /home/mix/stable
./configure --enable-new-channel-encryption --enable-new-flow-control
make
make install

Zusätzliche Features freischalten

In Abhängigkeit von den benötigten Funktionen können oder müssen einige zusätzliche Features aktiviert werden

 ./configure --enable-new-channel-encryption --enable-new-flow-control --enable-payment .... ....


Für Premiumdienste ist folgendes Feature unbedingt nötig:

  • --enable-payment Payment-Support aktivieren.


Monitoring des Mix:

  • --enable-server_monitoring Bei Aktivierung dieser Funktion stellt der Mix einen Monitoring Port bereit (üblicherweise Port 8080). Über diesen Port kann man XML-Daten abfragen, die Auskunft über den Status des Mixes und der Kaskade geben. Ein Plug-In zur Einbindung in Nagios findet man in den Sourcen im Verzeichnis misc/nagios.


Logging Features für besondere Situationen:

  • --enable-crime-detection Lawful Inspection freischalten. Die Parameter, welche Daten protokolliert werden sollen, können in der Mix-Konfiguration angegeben werden. Aktivieren sie dieses Feature nur, wenn sie durch autorisierte Behörden dazu gezwungen sind. Nur alle Mixe einer Kaskade gemeinsam können den Zusammenhang von aufgerufenem Dienst und Nutzer herstellen.
  • --enable-dataretentionlog Vorratsdatenspeicherung aktivieren. Aktivieren sie dieses Feature nur, wenn sie wirklich der Meinung sind, im Rahmen der Vorratsdatenspeicherung loggen zu müssen. Die JonDos GmbH rät allen Betreibern, keine Daten im Rahmen der VDS zu erheben.


Weitere Features:

  • --enable-bandwidth-limitation Begrenzung der Bandbreite einer Kaskade, kann nur durch den letzten Mix einer Kaksade realisiert werden.

System User Account für den Mix Server anlegen

Es ist keine gute Idee, den Mix mit root-Rechten laufen zu lassen. Legen sie einen System User an, wir empfahlen den Naman mix. Dieser Account ist in der Mix-Konfiguration anzugeben. Der Mix-Server wird nach dem Start zu dieser UID wechseln.

Anlegen eines System User Account mit useradd:

adduser --quiet --system --disabled-password --shell=/bin/false --group mix

Verzeichnis für Logdaten anlegen

Das Verzeichnis der Logdaten und der Name der Logdateien kann in der Mix-Konfiguration angegeben werden. Auch die maximale Größe der Logdateien kann in der Konfiguration angegeben werden. Es ist keine zusätzliche Rotation der Logdateien nötig. Der Mix kümmert sich selbst darum.

Anlegen des Logverzeichnisses:

mkdir /var/log/mix
chown mix:adm /var/log/mix
chmod 0750 /var/log/mix

Start des Mix-Servers

Es ist eine Konfiguration für den Mix zu erstellen. Üblicherweise wird diese Konfiguration im Verzeichnis /etc/mix unter dem Namen config.xml gespeichert. Anschließend startet man den Mix-Server mit:

limit descriptors 32768
mix -c /path/to/config.xml

Nach dem Start wird der Mix-Server zu der UID wechseln, die in der Mixconfig-Datei angegeben wurde.

Update der Mix-Software

Wie andere Software auch wird der Mix gelegentlich aktualisiert. Neue Features kommen hinzu, Bugs werden beseitigt. Updates werden auf der JonDos Operator Mailingliste angekündigt. Um die Software zu aktualisieren sind folgende Schritte nötig:

cd /home/mix/stable
make distclean
svn update
./configure --enable-new-channel-encryption --enable-new-flow-control --enable-server_monitoring --enable-payment .... ....
make
make install

Danach kann der Mix neu gestartet werden.

Installation des Squid-Proxies (nur für Exit-Mixe)

Für Exit-Mixe ist der Squid Proxy nötig. Es ist NICHT squid3 zu installieren, sondern die letzte, stabile Version der Reihe 2.7. Für Testzwecke kann außerdem lynx isntalliert werden. Das Perl Template Toolkit kann man nutzen, um die Konfigurations-Templates für Squid anzupassen. Alternativ erledigt man dies per Hand.

cd /usr/ports/www/lynx && make install clean
cd /ports/www/p5-Template-Toolkit && make install clean
cd /usr/ports/www/squid && make install clean
options for Squid are: SQUID_AUFS / SQUID_COSS / SQUID_LARGEFILE

Es ist in der Datei /etc/rc.conf eine Zeile hinzuzufügen, damit der Squid-Proxy beim Hochfahren des Jails automatisch startet.

squid_enable="YES"

Nach der Installtion sollte ein Backup der Original-Konfiguration angelegt werden.

cd /usr/local/etc/squid/
mv squid.conf squid.conf.orig

Die Konfiguration ist durch eine optimierte Konfigurtaionsdatei zu ersetzen, außerdem ist die JonDonym Blockliste zu installieren. Die beiden nötigen Dateien finden Sie im Unterverzeichnis misc/FreeBSD der Sourcen. Es liegen zwei unterschiedliche Konfigurationen für kostenfreie und Premium-Exit-Mixe vor. Wählen sie die passende Konfiguration aus. Das Beispiel nutzt die Konfiguration für kostenfreie Dienste. Die Template-Variablen [% extIP %] sind durch die externe IP-Adresse des Jails zu ersetzen. Man kann dafür das Tool tpage nutzen oder es per Hand erledigen. Im Beispiel wird als externe IP-Adresse 123.123.123.123 genutzt.

cd /home/mix/stable/misc/FreeBSD
tpage --define extIP=123.123.123.123 squid.conf.free.template > /usr/local/etc/squid/squid.conf
cp squid-block.acl /usr/local/etc/squid/

Danach sind die Cache-Verzeichnisse neu anzulegen....

squid -z -d -3

... der Squid-Proxy kann gestartet werden...

/usr/local/etc/rc.d/squid start

... und ein kleiner Test, ob alles funktioniert.

http_proxy=http://127.0.0.1:3128; lynx http://anonymous-proxy-servers.net

Update der Squid-Blockliste

Von Zeit zu Zeit wird die Blockliste aktualisiert. Betreiber von Webdiensten bitten JonDonym bei mehrfachem Missbrauch des Dienstes, den Zugriff auf ihre Webseite zu unterbinden. Sie werden über die JonDos Operator Mailingliste über Aktualisierungen informiert.

cd /home/mix/stable
svn update
cp -f misc/FreeBSD/squid-block.acl /usr/local/etc/squid/squid-block.acl
/usr/local/etc/rc.d/squid restart

Installation des Dante SOCKS Proxies (nur für Premium-Exit-Mixe)

Für Premium-Exit-Mixe ist zusätzlich ein Dante SOCKS Proxy nötig. Dante kann aus den Ports installiert werden.

cd /usr/ports/net/dante && make install clean

Es ist in der Datei /etc/rc.conf eine Zeile hinzuzufügen, damit der Dante SOCKS Proxy beim Hochfahren des Jails automatisch startet.

sockd_enable=“YES“

Nach der Installation ist ein Backup der Original-Konfiguration anzulegen.

cd /usr/local/etc/
mv sockd.conf sockd.conf.orig

JonDos stellt eine optimierte Konfiguration sockd.conf bereit. Sie beinhaltet auch die JonDonym Blockliste und blockiert aus Spamgründen Port 25. Das Template für die Konfiguration finden sie im Unterverzeichnis misc/FreeBSD. Es sind alle Template-Variablen [% extIP %] mit der externen IP-Adresse des Jails zu ersetzen. Man kann das Tool tpage aus dem Perl Template Toolkit dafür nutzen oder es per Hand erledigen.

cd /home/mix/stable/misc/FreeBSD
tpage --define extIP=123.123.123.123 sockd.conf.template > /usr/local/etc/sockd.conf

Abschließend ist der Dante SOCKS Proxy neu zu starten.

/usr/local/etc/rc.d/sockd start

Update der JonDonym Blockliste

Ist ein Update der JonDonym Blockliste nötig, muss die Konfiguration sockd.conf neu erstellt werden.

cd /home/mix/stable
svn update
cd misc/FreeBSD
tpage --define extIP=123.123.123.123 sockd.conf.template > /usr/local/etc/sockd.conf
/usr/local/etc/rc.d/sockd restart
Personal tools