Skip to content

Hvad er en IRC-Bouncer? Læs mere herom samt hvordan du installerer ZNC

Hvad er IRC??

Hvis du ikke ved hvad IRC er, har jeg udgivet en artikel der forklarer hvad IRC er – Du kan læse den HER

Hvad er en Bouncer så?

En bouncer er et stykke software, der fungerer som mellemmand mellem dig og et irc-netværk. Den opretter forbindelse til et netværk som en normal klient, og i stedet for at oprette forbindelse direkte til et irc-netværk, opretter du forbindelse til bounceren. Den vil så vise dig alle de beskeder den modtog medens du var afbrudt. På denne måde er dit brugernavn altid til stede i dine kanaler, og du kan se hvad der blev talt om mens du var væk.

Hvad er ZNC ?

ZNC er en nyere irc bouncer, som desværre ikke bliver opdateret så meget mere. Men den virker altid som den skal!

Hvad vil vi komme omkring i denne guide?

  • Installere ZNC på Ubuntu 20.04 / 22.04 / 24.04 LTS
  • Installere ZNC-Webinterfacet på en et Subdomain (via Nginx) f.eks znc.mitdomain.dk
  • Installere et SSL certificat via Let’s Encrypt i ZNC
  • Auto start ved reboot eller crash

Hvad skal du bruge for at komme igang ?

  • Du skal bruge en form for server – Det kan være VPS eller en dedikeret server. Her kan jeg varmt anbefale Hetzner.de cloud server (VPS)
  • Et domæne
  • Adgang til dine DNS indstilliger
  • En Ubuntu 20.04 LTS / 22.04 LTS / 24.04 LTS server
  • Sudo eller root adgang
  • Installeret “cmake”
  • Let’s Encrypt SSL Installeret – Hvis du skal have hjælpe til dette, har jeg skrevet en guide om netop dette: LINK
  • Nginx Web Server

OBS

  • Alle steder der står “znc.mitdomian.dk” skal selvfølgelig skiftes ud med dit eget domæne
  • Denne guide bruger Nginx webserver!

Forbedredelser:

Inden vi går i gang skal vi først have oprettet en A-Record (IPv4) samt AAAA-Record (IPv6) hvis din server undersøtter det!

A-Record (IPv4) samt AAAA-Record (IPv6) skal pege på din server. f.eks: znc.mitdomain.dk -> din server ip

Disse rettelser skal du gøre hos din DNS / domæne udbyder!

OBS: Det kan tage 1-12 timer før DNS ændringer bliver registreret globalt

Lad os komme i gang!

1. Som altid – vær sikker på din server er tilstrækkeligt sikret samt opdateret

2. Login på din server med en sudo eller root bruger

3. Installere cmake som du skal bruge for at installere ZNC – Det gør du med følgende kommando:

				
					sudo apt install cmake
				
			

4. Opret nu en ny bruger som znc bliver kørt fra – Det kan du gøre med denne kommando:

				
					sudo adduser irc
				
			

5. Du kan evt. give den nye bruger (irc) sudo adgang med:

^^ Jeg anbefaler dette!

				
					usermod -aG sudo irc
				
			

6. Skift nu til vores nyoprettet bruger (irc)

				
					sudo su irc
				
			

7. Skift nu til hjemme mappen for den nyoprettet bruger

				
					cd ~
				
			

8. Download den nyeste version af ZNC som i skrivende stund er: 1.10.1 – Det gør du med denne kommando:

				
					wget https://znc.in/releases/znc-latest.tar.gz
				
			

9. Pak filerne ud med denne kommando:

				
					tar -xzvf znc-*.tar.gz
				
			

Kør nu følgende kommandoer for at installere installere ZNC

				
					cd znc-1.8.2

mkdir build

cd build

cmake .. -DCMAKE_INSTALL_PREFIX="$HOME/znc" <<- Dette vil installere ZNC i din irc brugers hjemmemappe (/home/irc/znc)

make

make install
				
			

Opret config filen til ZNC

Når du har installeret ZNC som forklaret ovenfor, skal du lave en config fil til ZNC. Det gør du med denne kommando:

				
					/home/irc/znc/bin/znc --makeconf
				
			

Jeg har valgt disse test indstillinger, du skal selvfølglig vælge din egne!

  • Listen on port (1025 to 65534) – 7777
  • Listen using SSL (yes/no) – yes
  • Listen using both IPv4 and IPv6 – yes (Hvis din server understøtter det)

— Admin user settings —

  • Username (alphanumeric) – Admin
  • Enter password – myadminpassword
  • Confirm password – myadminpassword
  • Nick – Admin
  • Alternate nick – Admin^
  • Ident – Admin
  • Real name (optional) – Admin
  • Bind host (optional) – Tryk Enter
  • Set up a network? – no
  • Launch ZNC now? – no

Min config ser ca. sådan ud!

znc1

Hvis du vil installere ZNC webinterfacet på et sub domæne og uden port nummer – F.eks https://znc.mitdomain.dk og ikke https://znc.mitdomain.dk:7777 – skal du gå videre, – ellers spring dette punkt over. – (Dette punkt kræver Nginx webserver)

Lad os komme videre.

Du skal forsat være logget ind på din “irc” bruger som vi lavede tidligere

Åben nu vores nyoprettet config:

				
					nano /home/irc/.znc/configs/znc.conf
				
			

og sæt følgende ind i toppen af filen! Gem nu filen med CTRL + X -> Y > Enter

				
					AnonIPLimit = 10
AuthOnlyViaModule = false
ConfigWriteDelay = 0
ConnectDelay = 5
HideVersion = false
LoadModule = webadmin
MaxBufferSize = 500
PidFile = /home/irc/znc/znc.pid
ProtectWebSessions = true
SSLCertFile = /home/irc/.znc/znc.pem
SSLKeyFile = /home/irc/.znc/znc.pem
SSLDHParamFile = /home/irc/.znc/znc.pem
SSLCiphers = EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocols = -SSLv2 -SSLv3 -TLSv1 +TLSv1.1 +TLSv1.2
ServerThrottle = 30
Skin = _default_
StatusPrefix = *
Version = 1.10.1
        AllowIRC = false
        AllowWeb = true
        Port = 7777
        IPv4 = true
        IPv6 = true
        SSL = false
        AllowIRC = true
        AllowWeb = false
        Port = 7788
        IPv4 = true
        IPv6 = true
        SSL = true
				
			

Teksten der er i config filen skal overskrives, undtagen “user” informationen. Du kan også ændre port nummeret. Dog er det ikke sikkert vores guide vil virke efterfølgende hvis du gør dette – det vil ca. se sådan ud

znc2

Opret en nginx config.

OBS! De næste kommandoer skal køres som root eller med sudo rettigheder

Gå til nginx sites-enabled mappen med denne komando:

				
					cd /etc/nginx/sites-enabled/
				
			

Opret nu en ny fil med denne kommando:

				
					sudo nano znc.mitdomain.dk.conf
				
			

Gem nu filen med CTRL + X -> Y > Enter

				
					server {
    listen      443 ssl http2;
    server_name znc.mitdomain.dk;
    access_log  /var/log/nginx/znc.log combined;
    location / {
        proxy_pass http://127.0.0.1:7777;
        proxy_set_header      Host             $host;
        proxy_set_header      X-Real-IP        $remote_addr;
        proxy_set_header      X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header      X-Client-Verify  SUCCESS;
        proxy_set_header      X-Client-DN      $ssl_client_s_dn;
        proxy_set_header      X-SSL-Subject    $ssl_client_s_dn;
        proxy_set_header      X-SSL-Issuer     $ssl_client_i_dn;
        proxy_read_timeout    1800;
        proxy_connect_timeout 1800;
    }
}
				
			

Letsencrypt forberedelser

For at oprette et gratis SSL certifikat, skal vi bruge letsencrypt. Hvis du ikke har helt styr på det, – kan du følge DENNE GUIDE

Når vi har installeret letsencrypt, er der nogle ting vi skal have lavet inden vi forsætter.

Det er bla.a at domænet “znc.mitdomain.dk” samt vores bouncer (/home/irc/.znc/znc.pem) automatisk bliver fornyet af letsencrypt

Det gøres som følgende: 

Kør nu disse kommandoer

				
					cd /etc/letsencrypt/renewal-hooks/deploy

touch update-znc.pem

chmod +x update-znc.pem

nano update-znc.pem
				
			

Set følgene tekst ind i filen!

				
					#!/bin/bash
YOURDOMAIN="znc.mitdomain.dk"
[[ $RENEWED_LINEAGE != "/etc/letsencrypt/live/$YOURDOMAIN" ]] && exit 0
echo "Updating certs"
cat /etc/letsencrypt/live/$YOURDOMAIN/{privkey,fullchain}.pem > /home/irc/.znc/znc.pem
				
			

Kør nu følgene kommando:

				
					sudo certbot --nginx
				
			

Vælg nu hvilken domæne du vil ud stede et SSH-certifikat for. – I mit tilfælde nummer 20.

Der vil nu blevet oprettet et SSL-certifikat til mit domæne “znc.mitdomain.dk”, hvis alt går efter hensigten

znc3

Opret Systemd Service

Vi skal nu have lavet et script der auto starter ZNC ved reboot eller crash!

Bemærk: Dette skal gøres med SUDO eller ROOT

Opret denne fil med nano:

				
					sudo nano /etc/systemd/system/znc.service
				
			

Indset følgene tekst i filen

				
					[Unit]
Description=ZNC - IRC Bouncer
Requires=nss-user-lookup.target
After=network-online.target nss-user-lookup.target

[Service]
User=irc
ExecStart=/home/irc/znc/bin/znc --foreground
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
KillSignal=SIGINT
SuccessExitStatus=2

[Install]
WantedBy=multi-user.target
				
			

Gem nu filen med CTRL + X -> Y > Enter

Dernæst skal du have aktiveret ovenstående service! Det gør du med disse kommandoer:

				
					sudo systemctl daemon-reload
sudo systemctl enable znc
sudo systemctl start znc
				
			

Hvis du vil stoppe ZNC og fjerne det fra autostart kan du skrive følgende

				
					sudo systemctl stop znc
sudo systemctl disable znc
				
			

UFW (Uncomplicated Firewall)

Hvis du bruger UFW (Uncomplicated Firewall) på din ubuntu server kan du åbne portene som ZNC bruger – Bemærk kommandoerne skal køres med root eller med sudo

				
					sudo ufw allow 7788
sudo ufw allow 7777
				
			

Du kan dog have valgt nogle andre porte.

Til sidst

  • Du har nu installeret znc på din server under **/home/irc/znc/** samt dine znc config filer ligger i denne mappe **/home/irc/.znc/**
  • Din IRC client kan nu logge din nye bouncer på følgene adresse: znc.mitdomain.dk:7788 (MED SSL)
  • Du kan tilgå dit ZNC webinterface på https://znc.mitdomain.dk
  • Siden / bouncer er beskyttet med et lets encrypt certificat der bliver auto fornyet
  • ZNC vil genstarte ved reboot samt ved crash
  • Du har åbnet porte til znc
  • Done :)

Hvis du har spørgsmål eller problemer, er du velkommen til at smide en kommentar :)

Bedøm dette indlæg:

Hvor nyttigt var dette indlæg?

Vælg din bedømmelse

Gennemsnitlig bedømmelse? 0 / 5. Antal bedømmelser: 0

Ingen bedømmelser endnu! Vær den første til at bedømme dette indlæg.

Del dette indlæg:

Kommentarer:

No comment yet, add your voice below!


Add a Comment

Tak, fordi du overvejer at poste en kommentar. Husk, at alle kommentarer modereres i henhold til vores kommentarpolitik som du finder HER

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

Share to...