Skip to content

SpacyXyt/installation-gnuworld

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 

Repository files navigation

doc.md# Installation et Configuration GnuWorld Documentation sur l'installation et la configuration de GnuWorld sous 24.04.3 LTS.

⚠️ Cette doc fait suite à Installation-Serveur-IRCU2

1. Prérequis

  • Un acces root
  • Ubuntu 24.02.3 LTS
root@mail:~$ apt update
root@mail:~$ apt upgrade
root@mail:~$ apt-get install -y byacc flex screen make cmake zip perl automake git wget ufw net-tools gcc oidentd libpqxx-dev tcl-dev build-essential

2. Configuration du pare-feu avec UFW

⚠️ IMPORTANT

Cette partie n'est pas obligatoire, elle fait suite au tuto sur les firewalls (le tuto arrive bientôt).

Avant d'activer le pare-feu, assurez-vous d'avoir ouvert tous les ports nécessaires. Une mauvaise configuration peut bloquer l'accès à votre serveur.

Ports à ouvrir

Voici la liste des ports à configurer selon vos besoins :

Port Protocole Utilisation
6667 - 7000 TCP/UDP Plage de ports pour les services spécifiques (ex : IRC, jeux, etc.).
4400 TCP/UDP Port personnalisé (à adapter selon votre configuration)
113 TCP Service Ident (utilisé pour l'authentification sur certains protocoles).
53 TCP/UDP DNS (résolution de noms de domaine).
443 TCP HTTPS (connexions sécurisées pour les sites web).
80 TCP HTTP (trafic web non sécurisé).
22 TCP SSH (accès sécurisé à distance). À adapter si modifié dans /etc/ssh/sshd_config.
25 TCP SMTP (envoi d'emails non sécurisé). À remplacer par 465 ou 587 si possible.
110 TCP POP3 (réception d'emails non sécurisé).
465 TCP Secure SMTP (SMTP sécurisé avec SSL).
587 TCP TLS SMTP (SMTP sécurisé avec TLS).

Remarques importantes

  1. SMTP sécurisé :
  • Si vous utilisez Secure SSL SMTP ou TLS SMTP, vous n'avez pas besoin d'ouvrir le port 25 (SMTP non sécurisé).
  • Privilégiez les ports 465 (SSL) ou 587 (TLS) pour une sécurité optimale.
  1. SSH (Port 22) :
  • Par défaut, SSH utilise le port 22. Si vous modifiez ce port dans /etc/ssh/sshd_config, assurez-vous d'ouvrir le nouveau port dans UFW, sinon vous perdrez l'accès à distance.
  1. CService-Web :
  • Si vous n'installez pas CService-Web, certains ports (comme 4400) peuvent ne pas être nécessaires.

Étapes de configuration avec UFW

1. Ouvrir les ports :

sudo ufw allow 22/tcp       # SSH
sudo ufw allow 80/tcp       # HTTP
sudo ufw allow 443/tcp      # HTTPS
sudo ufw allow 53/tcp      # DNS
sudo ufw allow 53/udp      # DNS
sudo ufw allow 113/tcp      # Ident
sudo ufw allow 465/tcp      # Secure SMTP
sudo ufw allow 587/tcp      # TLS SMTP
sudo ufw allow 110/tcp      # POP3
sudo ufw allow 6667:7000/tcp # Plage de ports
sudo ufw allow 6667:7000/udp
sudo ufw allow 4400/tcp     # Port personnalisé

2. Vérifier les règles :

sudo ufw status verbose

3. Activer le pare-feu (une fois tous les ports ouverts) :

sudo ufw enable

Dépannage

  • Erreur de connexion SSH ? Vérifiez que le port SSH est bien ouvert et correspond à celui configuré dans /etc/ssh/sshd_config. Courage !
  • Problème avec les emails ? Assurez-vous que les ports 465 ou 587 sont ouverts si vous utilisez SMTP sécurisé.

❓ Besoin d'aide ?

Si vous avez des questions ou des doutes sur la configuration, n'hésitez pas à demander avant d'activer le pare-feu.

3 Installation de Postgresql

Avant de continuer, GnuWorld necessite une base de donnée Postgresql pour fonctionner nous allons alors l'installer.

⚠️Revenir en sudo avant de continuer

  1. Installer PostgreSQL
root@mail:~$ sudo apt update
root@mail:~$ sudo apt install postgresql postgresql-contrib
  1. Démarrer et activer le service
root@mail:~$ sudo systemctl start postgresql
root@mail:~$ sudo systemctl enable postgresql
  1. Se connecter à PostgreSQL
root@mail:~$ sudo -u postgres psql

Une fois connecté dans l'interface psql, exécutez ces commandes :

-- Créer l'utilisateur gnuworld avec un mot de passe (remplacez 'votremotdepasse')
CREATE USER gnuworld WITH PASSWORD 'votremotdepasse';

-- Donner tous les privilèges (création de bases, connexion, etc.)
ALTER USER gnuworld WITH SUPERUSER CREATEDB CREATEROLE LOGIN;

-- Vérifier la création
\du

Pour quitter psql :

\q

4. Installation de GnuWorld

Création du nouvelle utilisateur afin de jail le service (Spécifier le mot de passe souhaiter)

root@mail:~$ adduser gnuworld

Entrer dans l'utilisateur nouvellement crée

root@mail:~$ su - gnuworld

Installer le tar du repo github de GnuWorld

gnuworld@ircd:~$ wget https://raw.githubusercontent.com/SpacyXyt/installation-gnuworld/refs/heads/Release/gnuworld-2025.zip

Extraire le tar installer depuis le repo

gnuworld@mail:~$ unzip gnuworld-2025.zip

Acceder au dossier de GnuWorld

gnuworld@mail:~$ cd gnuworld-2025

Passer le binaire 'configure' en executable

gnuworld@mail:~/gnuworld$ chmod +x configure

Configuration du projet GnuWorld pour la compilation

gnuworld@mail:~/gnuworld$ ./configure --enable-modules=ccontrol,cservice,openchanfix --with-pgsql-home=/usr/local/pgsql --with-extra-includes=/usr/include/postgresql/

4.1 Compilation de GnuWorld

Compilation du projet

gnuworld@mail:~/gnuworld$ make

Installation du projet nouvellement compiler

gnuworld@mail:~/gnuworld$ make install

4.2 Création des bases de données

NOTE: Maintenant nous allons crée le SQL et importer les fichiers sql dans la DB!

NOTE: Dans cette étape nous serons toujours dans le dossier: /home/gnuworld/gnuworld maintenant nous allons rentrer dans le dossier DOC.

Revenir a la racine de l'utilisateur

gnuworld@mail:/gnuworld$ cd

Rentrer dans le dossier gnuworld/doc (ou ./gnuworld/doc)

gnuworld@mail:/gnuworld$ cd gnuworld-2025/doc

Passer le script 'do-db.sh' en executable

gnuworld@mail:/gnuworld/doc$ chmod +x do-db.sh

Vous pouvez maintenant l'executer

gnuworld@mail:/gnuworld/doc$ ./do-db.sh

Une fois le script fini revenir dans le gnuworld

gnuworld@mail:/gnuworld/doc$ cd ..

5. Configuration de Ircd

Nous allons avant de configurer le serveur gnuworld devoir ajouter une section dans le fichier ircd.conf

⚠️ Pour continuer dans ce tuto verifier que vous avez bien suivit le tuto: Installation-Serveur-IRCU2

Retourner en root

root@ircd:~$

Passer en utilisateur ircd

ircd@ircd:~$ su - ircd

Aller dans le repertoire contenant le ircd (lib)

ircd@ircd:~$ cd ircd/lib/

Ouvrir alors le fichier de config ircd.conf

ircd@ircd:~$ nano ircd.conf

Grace au raccourci ctrl + w, rechercher alors '[crule]' juste au dessus de la ligne '# [crule]' ajouter:

Connect {
 name = "service.[pays].votre.domaine"; # example: service.frankfurt.irc.devlynx.fr
 host = "votre.interface"; # Si vous avez un domaine renseignez le, sinon renseigner votre ip publique ex: irc.devlynx.fr |or| 8.8.8.8
 password = "un_mot_de_passe_sur"; # Ici renseigner un mot de passe solide, sinon n'importe qui pourra connecter son serveur à votre service
 port = 4400; # Ici renseigner un port unique pas encore utiliser par un autre service ou une autre section 'connect'
 class = "Server";
 hub;
};

5.1 Relancer le serveur irc

Une fois le serveur avec la nouvelle config, il faut le relancer.

5.1.1. Arreter le serveur qui tourne

Trouver le pid du serveur ircd

ircd@mail:~$ ps x

Vous verrez alors:

ircd@mail:~$ ps x
PID TTY      STAT   TIME COMMAND
368324 ?        Ss     0:10 /home/ircd/ircd/bin/ircd -f /home/ircd/ircd/lib/ircd.conf

Vous pouvez alors kill le process:

⚠️ Le PID est a changer !

ircd@mail:~$ kill 368324

5.1.2. Relancer le serveur

Retourner dans le dossier bin

ircd@mail:~$ cd ../ircd/bin/

Lancer le serveur

ircd@mail:~/ircd/bin$ ./ircd -f ../lib/ircd.conf

6. Configuration de Gnuworld

Nous allons maintenant editer la config de GnuWorld (Seul les parametres essentiellle seront vu)

Entrer dans le dossier 'bin' du projet

gnuworld@ircd:/gnuworld$ cd bin

Ouvrir le premier fichier config de Gnuworld ('GNUWorld.conf')

Vous pouvez l'ouvrire avec l'editeur de texte de votre choix (un tuto sur nano et vim arrive bientôt)

gnuworld@ircd:/gnuworld/bin$ nano GNUWorld.conf

Vous verrez alors les parametres suivant:

uplink = 192.168.181.111
port = 4400
password = 54321
name = services.undernet.org
description = UnderNet Services
numeric = 51

uplink: Ici vous renseignerez l'ip de votre serveur sur lequel vous avez installer le serveur ircu du tuto: Installation Serveur IRCU2.

NOTE: Si vous renseignez l'ip publique penser bien à autoriser le port dans le firewall (cours sur le firewall bientôt)

port: Ici vous renseignerez le port configurer precedement dans le ircd.conf

password: Ici vous renseignerez le mot de passe définit precedement dans le ircd.conf

name: Ici vous renseignerez le nom que portera votre serveur gnuworld sur le réseau irc

⚠️ Attention celui-ci doit etre unique deux serveur ne peuvent pas avoir le meme nom sur un même réseau irc, sinon vous aurez un conflit lors du lancement de celui-ci..

description: Une description que portera votre serveur

numeric: Le champ numeric est un nombre decimal compris entre 1 et 1023.

⚠️ Il doit etre unique sur le réseau !

7. Lancement du serveur GnuWorld

Maintenant que le serveur est configurer nous allons le lancer

Lancer le serveur

gnuworld@ircd:/gnuworld/bin$ ./gnuworld -f GNUWorld.conf -c

8. Configuration de cservice et ccontrol

Nous allons maintenant ajouter les modules pour pouvoir inviter le X dans notre channel IRC

Dans le 'GNUWorld.conf' nous allons décommenter les deux modules:

gnuworld@ircd:/gnuworld/bin$ nano GNUWorld.conf

Nous décommenterons alors c'est deux lignes (retirer simplement le # devant les lignes) :

#module = libcservice.la cservice.conf
#module = libccontrol.la ccontrol.conf

25% du travaille viens d'etre terminer, nous devons maintenant modifier les fichiers "cservice.conf" et "ccontrol.conf".

Cservice

Allons d'habord editer le cservice.conf:

gnuworld@ircd:/gnuworld/bin$ nano cservice.conf

Nous allons alors devoir renseigner les identifiant de la base de donnée:

sql_user = gnuworld
sql_pass = ''

Si la base de donnée n'est pas sur le meme serveur penser aussi à modifier l'host:

sql_host = 127.0.0.1
sql_port = 5432

Si vous souhaitez pouvoir vous connecter rapidement après que le serveur ce lanceras ca ce passera ici:

# temp en seconde
login_delay = 10

Ccontrol

Cela va etre identique à l'étape précèdente

Allons d'habord editer le ccontrol.conf:

gnuworld@ircd:/gnuworld/bin$ nano ccontrol.conf

Nous editerons ainsi le user, et la password.

⚠️ Encore une fois Si la base de donnée n'est pas sur le meme serveur penser aussi à modifier l'host.

# database specifications (DO NOT TOUCH THIS)
sql_host = 127.0.0.1
sql_port = 5432

# sql_db = Name of the database.

sql_db = ccontrol

#if you dont need to edit this
sql_user = gnuworld
sql_pass = ''

Vous pouvez alors relancer le serveur Gnuworld, le X devrais alors se connecter au channel par défault (modifiable dans ccontrol.conf). Pour plus d'info sur le X un tuto arriveras bientot.

9. Pour finir

Note personnelle

Cette documentation est une documentation non officielle

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published