Overvejelser vedrørende server
Der er flere måde du kan oprette en Ubuntu server og installere en webserver der går online på Tor Netværket som et Onion Site.

Dette er min fysiske Ubuntu server som kører på en brugt, ældre Lenovo T460 med 8 GB RAM og 128 GB harddisk.

Dette er Boxes med virtuelle maskiner som kører på min Ubuntu laptop. Den virtuelle maskine øverst til venstre som hedder “Guide Onion Site” er den virtuelle maskine som jeg vil benytte til at skrive denne guide med. Hvis du benytter en Windows computer eller Mac, så kan du benytte VirtualBox til at oprette en virtuel Ubuntu server. Ulempen ved at benytte en virtuel maskine er at både den fysiske og virtuelle maskine skal køre for at dit Onion Site er online. En brugt, ældre laptop (fysisk maskine) er nemmere at have stående et eller andet sted, og holde dit Onion Site online.
En server med eller uden desktop (grafisk brugerflade)
Installationen sker i to trin. Første trin er at installere en lokal webserver. Andet trin er at få denne lokale webserver online på Tor Netværket. Undervejs i installationen af den lokale webserver og et evt. CMS er det nødvendigt at kunne tilgå webserveren i en browser. Det kan enten ske ved at benytte en Ubuntu med desktop som server og benytte den installerede browser eller en Ubuntu uden desktop og tilgå webserveren ved at åbne webserverens lokale IP adresse fra en anden computer på det samme lokale netværk.
Personlig foretrækker jeg at benytte en laptop med Ubuntu med desktop, fordi jeg så har en Ubuntu server med tastatur, mus og skærm samt grafisk brugerflade. En stand alone løsning der er nem at tilgå fysisk og flytte fysisk til en anden lokation med en anden internetforbindelse.
Installationsguide i to trin: A. Webserver B. Tor Node
I denne følgende installationsguide vil jeg benytte forskellige farver til at vise hvilken betydning teksten i guiden har.
Rettighedsniveauer: $ User niveau # Root niveau
♦ Instruktioner, forklaringer og kommentarer til installationen.
♦ Kommandoer der skal afvikles i et terminalvindue eller lignende.
♦ Parameter som skal vælges. Fx [password] eller [database]. Firkant parenteserne [] skal også fjernes.
A. Installation af lokal webserver.
1. Åben et terminalvindue og ophøj dig selv til root. For at indsætte en kopieret tekst, fx en kommando, i et terminalvindue kan du trykke Ctrl Shift V i stedet for Ctrl V.
$ sudo -s
#

Du har nu root (#) rettigheder og kan installere pakker, ændre rettigheder/ejer af filer og mapper, og tilgå hele serverens indhold. Som bruger ($) kan du kun arbejde med indholdet i din egen brugermappe.
2. Installer webserver som er en Apache. Svar J for Ja til at fortsætte installationen undervej. Denne gang og fremover under andre installationer.
# apt install apache2
3. Åben localhost i en browser på Ubuntu serveren og tjek om du får dette resultat. Hvis du gør det, så er din webserver installeret og kører som den skal.

4. Aktiver mod_rewrite.
# a2enmod rewrite
5. Genstart webserveren.
# systemctl restart apache2
6. Installer PHP. PHP benyttes blandt andet af WordPress og NextCloud, da de begge er skrevet i PHP.
# apt install lsb-release ca-certificates apt-transport-https software-properties-common -y
# add-apt-repository ppa:ondrej/php
Tryk Enter når følgende tekst kommer “Tryk [ENTER] for at fortsætte eller Ctrl-C for at annullere” under afviklingen af ovenstående kommando.
# apt install php
7. Installer PHP pakker som benyttes af WordPress og NextCloud.
# apt install php-cli php-common php-imap php-redis php-xml php-zip php-mbstring php-gd php-curl
8. Gå til webserverens mappe. Det er i denne mappe at fx WordPress eller NextCloud installationsfil skal udpakkes for at kunne blive afviklet af webserveren.
# cd /var/www/html

Hvis du kører kommando ls, så vil du se at mappen indeholder filen index.html som er den side som du ser i browseren som localhost. Denne fil skal vi have erstattet af index.php med en test kode som indhold.
9. Slet index.html.
# rm index.html
10. Opret index.php.
# nano index.php
Indsæt denne kode i nano (tekst editor) i terminalvinduet.
<?php
phpinfo();
?>
Gem ændring med Ctrl O og Enter, og afslut nano med Ctrl X. ^ står for Ctrl i kommando listen i bunden af nano.
11. Genindlæs siden localhost i browseren og tjek om du får følgende resultat (det er index.php som indlæses nu, ikke index.html). Hvis du gør det, så er PHP installeret og kører som det skal.

12. Nu skal vi installere en SQL database, en MariaDB, som fx WordPress og NextCloud benytter sig af. Dernæst skal vi oprette en database og en bruger af denne database. Derfor skal du på forhånd vælge dig et database navn og en bruger med brugernavn og adgangskode.
13. Installer MariaDB.
# apt install mariadb-server
14. Opsætning af MariaDB.
# mysql_secure_installation
På følgende spørgsmål under opsætningen kan du svare:
Enter current password for root (enter for none): Enter
Switch to unix_socket authentication [Y/n]: n
Change the root password? [Y/n]: n
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
15. Installer pakken der forbinder PHP og SQL (MariaDB).
# apt install php-mysql
16. Log ind i MariaDB og opret en database og bruger med rettigheder til denne database med SQL kommandoer. Når det sker vil du arbejde i en anderledes prompt. Nemlig MariaDB [(none)]>
I de følgende SQL kommandoer hvor der indgår “, fx i “[brugernavn]“, der skal du fjerne det kopierede ” og skrive ” igen. Desværre omskriver WordPress ” til et ” med en anden ASCII værdi, som ikke virker efter hensigten når det afvikles i et terminalvindue. Hvis du glemmer det vil du få en ERROR 1064 (42000) eller lignende.
# mysql

Opret en database:
> CREATE DATABASE [database];
Vis databaser (min database hedder wpdatabase):
> SHOW DATABASES;

Opret bruger:
> CREATE USER “[brugernavn]“@localhost IDENTIFIED BY “[adgangskode]“;
Giv den nye bruger rettigheder til den nye database:
> GRANT ALL PRIVILEGES ON [database].* TO “[brugernavn]“@localhost;
Vis ny brugers rettigheder (fx wordpress rettigheder til wpdatabase):
> SHOW GRANTS FOR “[brugernavn]“@localhost;

Log ud af MariaDB:
> QUIT

Du er nu logget ud af MariaDB og er tilbage til den normale prompt.
17. Sæt rettigheder og ejer af filer og mapper i webserverens mappe (/var/www/html). Disse to kommandoer skal du benytte dig af igen, når du har downloadet fx WordPress og har udpakket ZIP filen. Da du downloader som root vil både ZIP fil og den udpakkede ZIP fil være ejet af root. Den skal være ejet af brugeren www-data for at webserveren kan benytte sig af dem og redigere i fx wp-config.php under installationen af WordPress.
# cd /var/www
# chown -R www-data:www-data html
# chmod -R 755 html
18. Installation og opsætning af WordPress.
Den seneste version af WordPress kan du download således:
# cd /var/www/html
# wget https://wordpress.org/latest.zip
Og du kan udpakke ZIP filen således:
# unzip latest.zip
WordPress filer og mapper bliver alle udpakket i undermappen wordpress. Derfor skal de flyttes til webserverens hovedmappe (/var/www/html) og mappen wordpress skal slettes.
# cd /var/www/html/wordpress
# mv * ..
# cd ..
# rm -r wordpress
Hvis du undre dig over at der ikke er en .htaccess fil, så bliver den oprettet under opsætningen af WordPress i browseren. Du kan også se punktum-filer med kommandoen ls -a

Her har jeg downloadet WordPress, udpakket ZIP fil, flytte filer og mapper fra wordpress, slettet mappen wordpress og ændret rettigheder og ejer for hele WordPress installationen. Med ls -la kan du også se punktum-filer samt rettigheder og ejer til filer og mapper.

19. Når jeg genindlæser localhost i browseren får jeg så WordPress installation.

For at gennemføre WordPress installationen skal du vælge en titel til webstedet og en WordPress bruger med brugernavn og adgangskode. Som e-mail (det kræver WordPress) kan du bruge x@x.net. Under databasens localhost skal du bruger localhost.
Når WordPress er installeret og sat op med de få grundlæggende plug in og forside og blog indstillinger fra adressen localhost, så kan Tor Noden installeres og konfigureres som et Onion Site hvorefter WordPress fra WordPress kan flyttes fra at køre som localhost lokalt i browseren til at køre fra Tor Nodens fra dens Onion adresse.
20. Grundlæggende opsætning af WordPress fra localhost.
Websted: localhost Websteds administration: localhost/wp-login.php
Grundlæggende plug in:


Opret siderne Velkommen og Blog:

Gå ind under Indstillinger > Læsning > Din forside viser i WordPress og sæt følgende op og klik dernæst Gem ændringer:

Nu er du klar til at gå videre til at få webstedet online som et Onion Site. Resten af redigeringen og opsætningen af WordPress kan ske via Onion adressen. Som webstedet ser ud nu er det ufærdigt for at sige det mildt, men det kan du arbejde med via Onion adressen i Tor Browseren.

B. Installation af Tor Node og opsætning af Onion Site.
1. Først skal vi tilføj Tor repository til serveren, så Tor Noden kan installeres og holdes updateret. I denne guide benyttes repository til CPU arkitektur amd64 og Ubuntu version noble (24.04).
Kilden til denne del af guiden (Ubuntu er baseret på Debian) er: Why and how can I enable Tor Package Repository in Debian? (punkt 1 og 2)
Tjek hvilken CPU arkitektur din server har således:
# dpkg –print-architecture

Tjek hvilke Ubuntu version du kører således:
# lsb_release -c

Tilføj repository:
# apt install apt-transport-https (pakken er typisk allerede installeret)
# nano /etc/apt/sources.list.d/tor.list
Tilføj følgende to linjer i repository tor.list i nano (tekst editor), gem tor.list (Ctrl O Enter) og luk nano (Ctrl X):
deb [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] https://deb.torproject.org/torproject.org noble main
deb-src [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] https://deb.torproject.org/torproject.org noble main

2. Installer GnuPG (GPG – open source udgaven af PGP), tilføje GPG nøglen for Tor Noden, opdater og installer Tor Noden.
Kilden til denne del af guiden (Ubuntu er baseret på Debian) er: Why and how can I enable Tor Package Repository in Debian? (punkt 3, 4 og 5)
# apt install gnupg (pakken er typisk allerede installeret)
# wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg –dearmor | tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/null
# apt update
# apt install tor deb.torproject.org-keyring
3. Konfigurer Tor Noden til et Onion Site.
Kilden til denne del af guiden er: Set up Your Onion Service (step 2, 3 og 4)
Fjern # foran følgende seks linjer i Tor Nodens konfigurationsfilen. I konfigurationsfilen betyder # at den efterfølgende tekst tages som en kommentar. I nano kan du søge efter en tekst med Ctrl W, indtast søgetekst og Enter.
# nano /etc/tor/torrc (torrc er Tor Nodens konfigurationsfil)
De seks linjer:
#DirPort 9030 # what port to advertise for directory connections
#ORPort 9001
#RelayBandwidthRate 100 KB # Throttle traffic to 100KB/s (800Kbps)
#RelayBandwidthBurst 200 KB # But allow bursts up to 200KB/s (1600Kbps)
#HiddenServiceDir /var/lib/tor/hidden_service/
#HiddenServicePort 80 127.0.0.1:80
Genstart Tor Noden for at genindlæse dens konfigurationsfil.
# systemctl restart tor
Nu går Tor Noden online i Tor Netværket som et Onion Site i løbet af få minutter og får en Onion adresse. Når mappen hidden_service er at finde i /var/lib/tor med ls /var/lib/tor, så er dit Onion Site online.

Kør følgende kommando for at få oplyst din Onion adresse:
# cat /var/lib/tor/hidden_service/hostname

I dette tilfælde er den:
fozcoebmzfcnce2y72yf65dyf2yeq7n5ihwqi6p6aih4daeuvdp3zjid.onion
I mappen /var/lib/tor/keys finder du dit Onion Site krypteringsnøgler, hvis du vil inkludere dem i din backup af dit Onion Site sammen med indholdet af /var/lib/tor/hidden_service.

4. Sidste skridt er at flytte din WordPress installation fra localhost til din Onion adresse i WordPress.
WordPress kontrolpanel: Indstillinger > Generelt

Udskift localhost i http://localhost under WordPress-adresse (URL) og Webstedsadresse (URL) med din Onion adresse.

I det øjeblik du klikker Gem ændring i bunden af Generelt, så går din WordPress installation offline på adressen localhost og online på din Onion adresse, fordi Firefox browseren forsøger at åbne en Onion adresse. For at åbne en Onion adresse skal du benytte Tor Browseren.

Dit websted er nu online på Tor Netværket på din Onion adresse og hvis du tilføjer /wp-login.php i enden på din Onion adresse på kan du logge ind med din WordPress bruger og begynde at forme dit nye websted.

Hvis du har brug for en måde at formidle dit nye Onion Sites adresse på, så læs mit blogindlæg Nem deling af Onion adresse.