indymedia spiegeln mit diym_php
Die Software mit der die Seite ompf betrieben wird (Artikel: https://de.indymedia.org/node/79303 , direkter Link http://hq73inugsyl5pzhnbm2uonuq6h2veztdhicvoiefhlofrzbbwa57xsad.onion), und in der Vergangenheit auch gei-ge.de (siehe:http://dvqlamnbbzli62qfyt5faspxunueqdxc4csrslhcp2z3haiflnrn6dqd.onion/tu...), wurde aktualisiert. Das Softwarerelease wird im diesem Artikel etwas detallierter hier besprochen : http://hq73inugsyl5pzhnbm2uonuq6h2veztdhicvoiefhlofrzbbwa57xsad.onion/no..., in diesem Tutorial sollen lediglich die Installationsanweisungen nochmal veröffentlicht werden.
Nach einer erfolgreichen Installation hat mensch eine Seite wie eben ompf, die aber natürlich auf alle möglichen Arten an die persönlichen Vorlieben und Voraussetzungen angepasst werden kann.
Installation:
- Archiv herunterladen von http://hq73inugsyl5pzhnbm2uonuq6h2veztdhicvoiefhlofrzbbwa57xsad.onion/so...
- Prüfsummendatei herunterladen von http://hq73inugsyl5pzhnbm2uonuq6h2veztdhicvoiefhlofrzbbwa57xsad.onion/so...
- Signatur herunterladen von http://hq73inugsyl5pzhnbm2uonuq6h2veztdhicvoiefhlofrzbbwa57xsad.onion/so...
- öffentlichen Schlüssel herunterladen von http://hq73inugsyl5pzhnbm2uonuq6h2veztdhicvoiefhlofrzbbwa57xsad.onion/so... und importieren mit gpg --import diym_php_dev_pubkey.asc
- überprüfen ob die Prüfsummendatei korrekt ist: sha512sum -c ./diymedia_v0.6.zip.sha512. Dieser Befehl muss "ok" ausgeben, ansonsten ist wahrscheinlich der Download nicht korrekt abgelaufen.
- die Signatur überprüfen: gpg --verify ./diymedia_v0.6.zip.sig ./diymedia_v0.6.zip Dieser Befehl muss ebenfalls eine postive Rückmeldung ausgeben (Good signature from ...).
- das Archiv entpacken : unzip ./diymedia_v0.6.zip
- in das erzeugte Verzeichnis wechseln : cd ./diymedia/
- das Installskript starten : ./install.sh --full und sich durch die Abfragen klicken (als root, ansonsten sudo ./install.sh)
- Einstellungen anpassen über die Datei /etc/opt/diym_php/conf.inc.php
- Das Spiegeln von Artikeln aktivieren über : rm /var/opt/diym_php/files/no_sync.txt
- Testweise den eigenen Server aufrufen um zu sehen das die Seite funktioniert
Mit den Standardeinstellungen sind die ersten Artikel von anderen diym Servern sind nach etwa 90 Minuten sichtbar, die ersten Artikel von de.indymedia nach circa einem Tag.
Nach ein paar Tagen werden alle ca. 90.000 Artikel gespiegelt sein, nach ein oder zwei Wochen sind auch alle Dateien heruntergeladen (wenn gar keine Artikel erscheinen, wurde entweder Schritt 11 ausgelassen oder die cronjobs starten aus irgendwelchen Gründen nicht. In diesem Fall können die entsprechenden Skripte von Hand gestartet werden (im Verzeichnis /opt/diym_php/bin/). Das sollte allerdings nicht als Dauerlösung benutzt werden).Installation von Hand
Wer die ganze Installation lieber von Hand erledigen will (oder muss), folgt der Anleitung oben bis Schritt 8, und danach folgende Schritten (die Anleitung findet ihr auch unter /doc/installation_von_hand.md im Archiv):
Die folgenden Befehle sind für ein halbwegs modernes Linuxsystem, in den folgenden Beispielen wird von Debian ausgegangen, was auch empfohlen wird.
Wenn der Paketmanager apt nicht zur Verfügung steht, müssen die Befehle zur Installation von Software auf den Paketmanager des Systems angepasst werden.
Es muss php Version 7.0 oder höher zur Verfügung stehen (bzw. installiert werden können).
Es wird empfohlen keine Desktopsysteme wie Ubuntu oder Mint zu verwenden um die Angriffsoberfläche zu verkleinern und die Wahrscheinlichkeit von Identitätsleaks zu vermindern.
Es muss Zugang zu einem Terminal auf dem Rechner bestehen, entweder lokal oder über Netz (ssh).
Zur Installation von Software müssen root Rechte besessen werden (Anmeldung als root oder sudo vor den jeweiligen Befehlen).
Die Beispielbefehle werden auf dem System "server" als user "root" ausgeführt, im Verzeichnis "/root/diymedia" (also dort wo ihr das Archiv entpackt habt). Der eigentliche Befehl ist das was hinter dem "root@server:/root/diymedia# " kommt.
System aktualisieren
root@server:/root/diymedia# apt update && apt upgrade -y
Abhängigkeiten installieren
root@server:/root/diymedia# apt install -y nginx tor privoxy php php-fpm php-gd php-mbstring php-json lynx wget jq curl
Die benötigten Verzeichnisse erstellen:
root@server:/root/diymedia# mkdir -p /etc/opt/diym_php /opt/diym_php/php /opt/diym_php/bin /opt/diym_php/doc /var/opt/diym_php/tmp
root@server:/root/diymedia# mkdir -p /var/opt/diym_php/templates /var/opt/diym_php/files/indysync /var/opt/diym_php/log
root@server:/root/diymedia# mkdir -p /var/opt/diym_php/files/shadow /var/opt/diym_php/files/updated /var/opt/diym_php/files/listupdates
root@server:/root/diymedia# mkdir -p /var/opt/diym_php/captcha /srv/diym_php/webroot/node /srv/diym_php/webroot/tag/all
root@server:/root/diymedia# mkdir -p /srv/diym_php/webroot/region /srv/diym_php/webroot/user /srv/diym_php/webroot/indy
root@server:/root/diymedia# mkdir -p /srv/diym_php/webroot/local /srv/diym_php/webroot/mod /srv/diym_php/webroot/diym
root@server:/root/diymedia# mkdir -p /srv/diym_php/webroot/garbage /srv/diym_php/webroot/pub /srv/diym_php/webroot/images
root@server:/root/diymedia# mkdir -p /srv/diym_php/webroot/css /srv/diym_php/webroot/tmp /srv/diym_php/webroot/filesTor hidden service einrichten
Die Datei torrc ergänzen:
root@server:/root/diymedia# echo 'HiddenServiceDir /var/lib/tor/diym_php/' >> /etc/tor/torrc
root@server:/root/diymedia# echo 'HiddenServicePort 80 127.0.0.1:80' >> /etc/tor/torrcAchtung: diese Befehle setzen voraus dass es noch keinen hidden service namens "diym_php" gibt, und dass der Standardport 80 auf local noch frei ist (d.h. dass kein anderer webserver diesen Port auf 127.0.0.1 bereits belegen darf). Ansonsten muss ein anderer Name und/oder ein anderer Port gewählt werden (ein geänderter Port muss ebenfalls in den Konfigurationsdateien für nginx geändert werden).
Tor neu starten:
root@server:/root/diymedia# service tor reload
Die Adresse der neuen onion Seite anschauen und kopieren:
root@server:/root/diymedia# cat /var/lib/tor/diym_php/hostname
Konfigurationsdateien anpassen
nginx
Den string "someonionaddressesplaceholder.onion" durch die onion-Adresse ersetzen in den Dateien ./conf/diym_php.conf und ./conf/diym_php_static.conf, zB mit
root@server:/root/diymedia# sed -i -e "s/someonionaddressesplaceholder.onion/$new_onion/g" ./conf/diym_php.conf
root@server:/root/diymedia# sed -i -e "s/someonionaddressesplaceholder.onion/$new_onion/g" ./conf/diym_php_static.confBei diesem Befehl $new_onion mit der onion-Adresse ersetzen wie zB:
root@server:/root/diymedia# sed -i -e "s/someonionaddressesplaceholder.onion/hq73inugsyl5pzhnbm2uonuq6h2veztdhicvoiefhlofrzbbwa57xsad.onion/g" ./conf/diym_php.conf
root@server:/root/diymedia# sed -i -e "s/someonionaddressesplaceholder.onion/hq73inugsyl5pzhnbm2uonuq6h2veztdhicvoiefhlofrzbbwa57xsad.onion/g" ./conf/diym_php_static.confAlternativ können die Dateien auch mit einem Editor bearbeitet werden:
root@server:/root/diymedia# nano ./conf/diym_php_static.conf
root@server:/root/diymedia# nano ./conf/diym_php.confDer Befehl "nano" öffnet einen Editor mit dem die Konfigurationsdateien anpepasst werden können.
Die php Version abfragen:
root@server:/root/diymedia# php -v | head -n 1
Dieser Befehl wird auf den meisten Systemen 7.3 oder 7.4 ausgeben, auf einigen moderneren auch 8.1 oder 8.2.
In der Datei ./conf/diym_php.conf 'phpX.X' mit der richtigen php Version ersetzen, zB. 'php7.4':
root@server:/root/diymedia# sed -i -e "s|/var/run/php/phpX.X|/var/run/php/php7.4|g" ./conf/diym_php.conf
php
Datei php.ini finden:
root@server:/root/diymedia# find /etc/php/$php_version/fpm/php.ini
Bei diesem Befehl $php_version mit der zuvor festgestellten Versionsnummer ersetzen, wie zB.
root@server:/root/diymedia# find /etc/php/7.4/fpm/php.ini
Im weiteren wird in diesem Beispiel die oben genannte Datei verwendet (also Version 7.4)
Die entsprechende Datei modifizieren:
root@server:/root/diymedia# sed -i '/cgi.fix_pathinfo/Id' /etc/php/7.4/fpm/php.ini
root@server:/root/diymedia# sed -i '/upload_max_filesize/Id' /etc/php/7.4/fpm/php.ini
root@server:/root/diymedia# sed -i '/post_max_size/Id' /etc/php/7.4/fpm/php.ini
root@server:/root/diymedia# echo "cgi.fix_pathinfo=0" >> /etc/php/7.4/fpm/php.ini
root@server:/root/diymedia# echo "upload_max_filesize = 40M" >> /etc/php/7.4/fpm/php.ini
root@server:/root/diymedia# echo "post_max_size = 40M" >> /etc/php/7.4/fpm/php.iniphp neu starten:
root@server:/root/diymedia# service php7.4-fpm restart
diym_php
Den string "someonionaddressesplaceholder.onion" durch die bereits verwendete onion Adresse ersetzen in der Datei ./conf/conf.inc.php, zB mit
root@server:/root/diymedia# sed -i -e "s/someonionaddressesplaceholder.onion/$new_onion/g" ./conf/conf.inc.php
Bei diesem Befehl $new_onion mit der onion-Adresse ersetzen wie zB:
root@server:/root/diymedia# sed -i -e "s/someonionaddressesplaceholder.onion/hq73inugsyl5pzhnbm2uonuq6h2veztdhicvoiefhlofrzbbwa57xsad.onion/g" ./conf/conf.inc.php
Alternativ kann die Datei auch mit einem Editor bearbeitet werden:
root@server:/root/diymedia# nano ./conf/conf.inc.php
Bei diesem Schritt können auch weitere Anpassungen der Konfiguration von diym_php vorgenommen werden.
privoxy
Die config Datei von privoxy sichern:
root@server:/root/diymedia# cp /etc/privoxy/config ./conf/privoxy_config.bck
Konfigurationsdateien verteilen
nginx
root@server:/root/diymedia# cp ./conf/diym_php.conf /etc/nginx/sites-available/
root@server:/root/diymedia# cp ./conf/diym_php_static.conf /etc/nginx/sites-available/
root@server:/root/diymedia# cp ./conf/diym_php.conf /etc/opt/diym_php/
root@server:/root/diymedia# cp ./conf/diym_php_static.conf /etc/opt/diym_php/privoxy
root@server:/root/diymedia# cp ./conf/privoxy_config /etc/privoxy/config
diym_php
root@server:/root/diymedia# cp ./conf/*.inc.php /etc/opt/diym_php/
andere Dateien kopieren
root@server:/root/diymedia# cp ./php/* /opt/diym_php/php/
root@server:/root/diymedia# cp -r ./files/* /var/opt/diym_php/files/
root@server:/root/diymedia# cp ./doc/* /opt/diym_php/doc/
root@server:/root/diymedia# cp ./*.md /opt/diym_php/doc/
root@server:/root/diymedia# cp -r ./webroot /srv/diym_php/
root@server:/root/diymedia# cp ./command/* /opt/diym_php/bin/
root@server:/root/diymedia# cp ./templates/* /var/opt/diym_php/templatesLog- und Arbeitsdateien anlegen
root@server:/root/diymedia# touch /var/opt/diym_php/log/error /var/opt/diym_php/log/notice /var/opt/diym_php/log/published /var/opt/diym_php/log/user
root@server:/root/diymedia# touch /var/opt/diym_php/log/deletion /var/opt/diym_php/files/indysync/published.txt /var/opt/diym_php/log/sync
root@server:/root/diymedia# touch /var/opt/diym_php/files/indysync/reported.txt /var/opt/diym_php/files/indysync/released.txt /var/opt/diym_php/files/indysync/undelete.txtwebserver als Besitzer der neuen Dateien festlegen
root@server:/root/diymedia# chown -R www-data.www-data /var/opt/diym_php
root@server:/root/diymedia# chown -R www-data.www-data /srv/diym_phpcronjobs einrichten
root@server:/root/diymedia# crontab -u www-data ./conf/crontab
Synchronisation starten
root@server:/root/diymedia# rm /var/opt/diym_php/files/no_sync.txt
Die Seite aktiv schalten:
root@server:/root/diymedia# ln -s /etc/nginx/sites-available/diym_php.conf /etc/nginx/sites-enabled/
Den webserver neu starten:
root@server:/root/diymedia# service nginx restart
Den Server testen
Die entsprechende onion-Addresse im Torbrowserbundle aufrufen, oder auf dem Server:
root@server:/root/diymedia# wget http://127.0.0.1