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
- 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-essentialCette 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.
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
- 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.
- 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.
- CService-Web :
- Si vous n'installez pas CService-Web, certains ports (comme 4400) peuvent ne pas être nécessaires.
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ésudo ufw status verbosesudo ufw enable- 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é.
Si vous avez des questions ou des doutes sur la configuration, n'hésitez pas à demander avant d'activer le pare-feu.
Avant de continuer, GnuWorld necessite une base de donnée Postgresql pour fonctionner nous allons alors l'installer.
- Installer PostgreSQL
root@mail:~$ sudo apt update
root@mail:~$ sudo apt install postgresql postgresql-contrib
- Démarrer et activer le service
root@mail:~$ sudo systemctl start postgresql
root@mail:~$ sudo systemctl enable postgresql
- Se connecter à PostgreSQL
root@mail:~$ sudo -u postgres psqlUne 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
\duPour quitter psql :
\qCréation du nouvelle utilisateur afin de jail le service (Spécifier le mot de passe souhaiter)
root@mail:~$ adduser gnuworldEntrer dans l'utilisateur nouvellement crée
root@mail:~$ su - gnuworldInstaller le tar du repo github de GnuWorld
gnuworld@ircd:~$ wget https://raw.githubusercontent.com/SpacyXyt/installation-gnuworld/refs/heads/Release/gnuworld-2025.zipExtraire le tar installer depuis le repo
gnuworld@mail:~$ unzip gnuworld-2025.zipAcceder au dossier de GnuWorld
gnuworld@mail:~$ cd gnuworld-2025Passer le binaire 'configure' en executable
gnuworld@mail:~/gnuworld$ chmod +x configureConfiguration 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/Compilation du projet
gnuworld@mail:~/gnuworld$ makeInstallation du projet nouvellement compiler
gnuworld@mail:~/gnuworld$ make installNOTE: 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$ cdRentrer dans le dossier gnuworld/doc (ou ./gnuworld/doc)
gnuworld@mail:/gnuworld$ cd gnuworld-2025/docPasser le script 'do-db.sh' en executable
gnuworld@mail:/gnuworld/doc$ chmod +x do-db.shVous pouvez maintenant l'executer
gnuworld@mail:/gnuworld/doc$ ./do-db.shUne fois le script fini revenir dans le gnuworld
gnuworld@mail:/gnuworld/doc$ cd ..Nous allons avant de configurer le serveur gnuworld devoir ajouter une section dans le fichier ircd.conf
Retourner en root
root@ircd:~$Passer en utilisateur ircd
ircd@ircd:~$ su - ircdAller dans le repertoire contenant le ircd (lib)
ircd@ircd:~$ cd ircd/lib/Ouvrir alors le fichier de config ircd.conf
ircd@ircd:~$ nano ircd.confGrace 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;
};Une fois le serveur avec la nouvelle config, il faut le relancer.
Trouver le pid du serveur ircd
ircd@mail:~$ ps xVous 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.confVous pouvez alors kill le process:
ircd@mail:~$ kill 368324Retourner dans le dossier bin
ircd@mail:~$ cd ../ircd/bin/Lancer le serveur
ircd@mail:~/ircd/bin$ ./ircd -f ../lib/ircd.confNous allons maintenant editer la config de GnuWorld (Seul les parametres essentiellle seront vu)
Entrer dans le dossier 'bin' du projet
gnuworld@ircd:/gnuworld$ cd binOuvrir 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.confVous verrez alors les parametres suivant:
uplink = 192.168.181.111
port = 4400
password = 54321
name = services.undernet.org
description = UnderNet Services
numeric = 51uplink: 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
description: Une description que portera votre serveur
numeric: Le champ numeric est un nombre decimal compris entre 1 et 1023.
Maintenant que le serveur est configurer nous allons le lancer
Lancer le serveur
gnuworld@ircd:/gnuworld/bin$ ./gnuworld -f GNUWorld.conf -cNous 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.confNous décommenterons alors c'est deux lignes (retirer simplement le # devant les lignes) :
#module = libcservice.la cservice.conf
#module = libccontrol.la ccontrol.conf25% du travaille viens d'etre terminer, nous devons maintenant modifier les fichiers "cservice.conf" et "ccontrol.conf".
Allons d'habord editer le cservice.conf:
gnuworld@ircd:/gnuworld/bin$ nano cservice.confNous 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
Cela va etre identique à l'étape précèdente
Allons d'habord editer le ccontrol.conf:
gnuworld@ircd:/gnuworld/bin$ nano ccontrol.confNous editerons ainsi le user, et la password.
# 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.
Cette documentation est une documentation non officielle