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!
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
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
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 :)
No comment yet, add your voice below!