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 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 eller 22.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:
4. Opret nu en ny bruger som znc bliver kørt fra – Det kan du gøre med denne kommando:
5. Du kan evt. give den nye bruger (irc) sudo adgang med:
^^ Jeg anbefaler dette!
6. Skift nu til vores nyoprettet bruger (irc)
7. Skift nu til hjemme mappen for den nyoprettet bruger
OBS: Du skal ikke bruge sudo eller root når du kører kommandoerne i punkt 8-14
8. Download den nyeste version af ZNC som i skrivende stund er: 1.8.2 – Det gør du med denne kommando:
9. Pak filerne ud med denne kommando:
Kør nu følgende kommandoer for at installere installere ZNC
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:
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:
og sæt følgende ind i toppen af filen! Gem nu filen med CTRL + X -> Y > Enter
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:
Opret nu en ny fil med denne kommando:
Gem nu filen med CTRL + X -> Y > Enter
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
Set følgene tekst ind i filen!
Kør nu følgene kommando:
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:
Indset følgene tekst i filen
Gem nu filen med CTRL + X -> Y > Enter
Dernæst skal du have aktiveret ovenstående service! Det gør du med disse kommandoer:
Hvis du vil stoppe ZNC og fjerne det fra autostart kan du skrive følgende
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
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 🙂
På FutureNode kommer der på et tidspunkt en del 2, der vil forklare hvordan du grundlæggende bruger ZNC