Table of Contents

Serveur VPS S

I Connexion au panel lws

Ouverture du port 2123 (pour ssh/sftp normalement sur le port 22)

II login root

À éviter bien sûr par la suite!

ssh root@180.149.197.101

II.1 Changement du password de root (par Mmm....!!)

root@vps108450:~# passwd
New password: 
Retype new password: 
passwd: password updated successfully
root@vps108450:~# 

II.2 Création d'un utilisateur marcel (passwd Mmm....!!)

root@vps108450:~# adduser marcel
info: Adding user `marcel' ...
info: Selecting UID/GID from range 1000 to 59999 ...
info: Adding new group `marcel' (1001) ...
info: Adding new user `marcel' (1001) with group `marcel (1001)' ...
info: Creating home directory `/home/marcel' ...
info: Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for marcel
Enter the new value, or press ENTER for the default
	Full Name []: Marcel 
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
info: Adding new user `marcel' to supplemental / extra groups `users' ...
info: Adding user `marcel' to group `users' ...
root@vps108450:~# 

Ajout de marcel au groupe sudoer

root@vps108450:~# usermod -aG sudo  marcel
root@vps108450:~# 

II.3 Configuration de ssh sur le port 2123

sudo vi /etc/ssh/sshd_config  (et non  ssh_config)

# port 22

remplacé par

port 2123

Mais cela ne marche plus sur ubuntu 24 qui utilise systemd pour lancer le démon

root@vps108450:~# sudo systemctl edit ssh.socket

Les lignes:

#[Socket]
#ListenStream= 22

Sont remplacées par (la ligne = [rien] semble nécessaire):

[Socket]
ListenStream=
ListenStream= 2123

Relance des démons et redémarrage de ssh (rebout nécessaire ? non semble-t-il)

root@vps108450:~# sudo systemctl daemon-reload
root@vps108450:~# systemctl restart ssh
root@vps108450:~#

Vérification (OK port 2123)

root@vps108450:~# sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/usr/lib/systemd/system/ssh.service; disabled; preset: enabled)
    Drop-In: /run/systemd/system/service.d
             └─zzz-lxc-service.conf
     Active: active (running) since Sun 2024-12-08 15:08:35 CET; 3min 23s ago
TriggeredBy: ● ssh.socket
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 4095 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 4097 (sshd)
      Tasks: 1 (limit: 787)
     Memory: 1.2M ()
        CPU: 35ms
     CGroup: /system.slice/ssh.service
             └─4097 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

déc. 08 15:08:35 vps108450 systemd[1]: Starting ssh.service - OpenBSD Secure Shell serv>
déc. 08 15:08:35 vps108450 sshd[4097]: Server listening on 0.0.0.0 port 2123.
déc. 08 15:08:35 vps108450 sshd[4097]: Server listening on :: port 2123.
déc. 08 15:08:35 vps108450 systemd[1]: Started ssh.service - OpenBSD Secure Shell serve>
root@vps108450:~# 

OK … logout

II.3 Configuration initiale firewall

root@marcel:~# ufw default allow outgoing
Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)
root@marcel:~# ufw default deny incoming
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)
root@marcel:~# ufw allow 2123/tcp comment 'marcel ports for ssh and sftp'
Rules updated
Rules updated (v6)
root@marcel:~# ufw limit 2123/tcp comment 'port rate limit'
Rules updated
Rules updated (v6)
root@marcel:~# ufw allow 80/tcp comment 'accept Apache HTTP (always redirected)'
Rules updated
Rules updated (v6)
root@marcel:~# ufw allow 443/tcp comment 'accept Apache https'
Rules updated
Rules updated (v6)
root@marcel:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
root@marcel:~# 

i.e. quatre règles:

ufw default allow outgoing
ufw allow 2123/tcp comment 'marcel ports for ssh and sftp'
ufw limit 2123/tcp comment 'port rate limit'
ufw allow 80/tcp comment 'accept Apache HTTP (always redirected)'
ufw allow 443/tcp comment 'accept Apache https'

III (re)connexion "as" login marcel

N.B. -YC déporte le display (aka -X en sécurisé, -C active la compression)

ssh -YC -p2123 marcel@180.149.197.101

III.1 Installer synaptic

Gestionnaire de paquets (pour se simplifier (la vie)

marcel@vps108450:~$ sudo apt install synaptic

III.2 Lancer synaptic (pas en root)

Modifier .Xauthority pour contourner l'affaire Wayland

marcel@vps108450:~$ sudo xauth add $(xauth -f ~marcel/.Xauthority list|tail -1)

puis

marcel@vps108450:~$ sudo synaptic

III.3 Installer déjà quelques paquets

Faire les mises à jour éventuelles (mark all upgrades)

Installer ufw (firewall)

Installer apache2 (serveur www) et pour dokuwiki libapache2-mod-geoip lipapache2-mod-php php-xml libGD imagemagick

Installer sqlite3 et phpliteadmin (base de données et utilitaire)

III.4 installer snap

Pour firefox au cas où… et surtout pour certbot.

marcel@vps108450:~$ sudo apt install snapd

Tester l'installation…

marcel@vps108450:~$ sudo snap install hello-world
2024-12-08T15:30:25+01:00 INFO Waiting for automatic snapd restart...
2024-12-08T15:30:26+01:00 INFO Waiting for automatic snapd restart...
hello-world 6.4 from Canonical✓ installed
marcel@vps108450:~$ hello-world 
Hello World!
marcel@vps108450:~$ 

Installer firefox

marcel@vps108450:~$ sudo snap install firefox
firefox 133.0-2 from Mozilla✓ installed
marcel@vps108450:~$ 

Attention: firefox installé avec SNAP nécessite dans .bashrc

export XAUTHORITY=$HOME/.Xauthority

Installer certbot (certificats)

marcel@vps108450:~$ sudo snap install --classic certbot
certbot 3.0.1 from Certbot Project (certbot-eff✓) installed
marcel@vps108450:~$ 

Attention: ne pas oublier de créer le lien ad hoc:

marcel@vps108450:~$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

OK logout

IV DNS serveur marcel

Créer une entrée dns de type A marcel.mmmarcel.org sur le paneau LWS

A marcel 180.149.197.101 6h

(attendre la propagation des DNS)

Se connecter à marcel

ssh -YC -p2123 marcel@marcel.mmmarcel.org
The authenticity of host '[marcel.mmmarcel.org]:2123 ([180.149.197.101]:2123)' can't be established.
ED25519 key fingerprint is SHA256:zd/IcTbd5R/U4yp7iXKtkJlcl3Y0ZIv1QSG4Q3aSnkg.
This host key is known by the following other names/addresses:
    ~/.ssh/known_hosts:26: 180.149.197.101
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[marcel.mmmarcel.org]:2123' (ED25519) to the list of known hosts.
marcel@marcel.mmmarcel.org's password: 
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 5.10.70 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro
Last login: Sun Dec  8 15:16:03 2024 from 83.202.188.128
marcel@vps108450:~$

Changer le hostname du serveur (permanent)

sudo hostnamectl set-hostname marcel

Rajouter l'enregistrement ad hoc dans /etc/hosts

127.0.0.1 marcel

logout et se reconnecter;.

ssh -YC -p2123 marcel@marcel.mmmarcel.org
marcel@marcel.mmmarcel.org's password: 
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 5.10.70 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro
Last login: Sun Dec  8 15:39:15 2024 from 83.202.188.128
marcel@marcel:~$ 

C'est mieux…

V Downgrade default php from 8.3 to 8.1

En fait Dokuwiki n'est garanti que pour php 8.1 (Dolibarr 8.2 ?) le défaut est 8.3 on passe tout en 8.1

add repository et get paquets

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

if add-apt-repository is not found, run the command below and retry

sudo apt-get install software-properties-common

Installer (via synaptic)

php 8.1 et paquets nécessaires

php8.1 php8.1-intl mbstring sqlite3 php8.1xml php8.1cli php8.1common php8.1curl php8.1fpm php8.1gd php8.1imagick php8.1opcache php8.1readline php8.1zip php8.1mysql

Mise à jour de php.ini pour 8.1 (limites et pdo)

/etc/php/8.1/apache2/php.ini

uncomment

extension=pdo_sqlite

adjust sizes post_max_size = 512M (std 8) memory_limit = 1024M (std 128) ⇒ plutôt 512 ???

Stopper puis redemarrer Apache et installer (8.1 en defaut)

marcel@marcel:~$ sudo service apache2 stop
marcel@marcel:~$ sudo update-alternatives --config php
Il existe 2 choix pour l'alternative php (qui fournit /usr/bin/php).

  Sélection   Chemin           Priorité  État
------------------------------------------------------------
* 0            /usr/bin/php8.3   83        mode automatique
  1            /usr/bin/php8.1   81        mode manuel
  2            /usr/bin/php8.3   83        mode manuel

Appuyez sur <enter> pour conserver le choix actuel [*], ou tapez le numéro de sélection : 1
update-alternatives: utilisation de « /usr/bin/php8.1 » pour fournir « /usr/bin/php » (php) en mode manuel
marcel@marcel:~$ sudo a2dismod php8.3
Module php8.3 disabled.
To activate the new configuration, you need to run:
  systemctl restart apache2

Enable the right module

marcel@marcel:~$ sudo a2enmod php8.1
Considering dependency mpm_prefork for php8.1:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.1:
Enabling module php8.1.
To activate the new configuration, you need to run:
  systemctl restart apache2
marcel@marcel:~$ sudo systemctl restart apache2

OK

Installer Dolibarr (pour map-marcel)

Installer Mariadb (mysql)

Synaptic

mariadb server

Test et création utilisateur

marcel@marcel:~$ sudo systemctl enable --now mysql.service
marcel@marcel:~$ sudo mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 32
Server version: 10.11.8-MariaDB-0ubuntu0.24.04.1 Ubuntu 24.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> grant all privileges on *.* to root@'localhost' identified by 'Mmmarcel00!!' with grant option;
Query OK, 0 rows affected (0,002 sec)

MariaDB [(none)]> \q
Bye
marcel@marcel:~$ 

Installer Dolibarr

Derniere version sur https://sourceforge.net/projects/dolibarr/files/

dolibarr-20.0.2.tgz (attention: prefer tar version to deb package)

missing php8.1-imap (synaptic)

root@marcel:#  cd /var/www/html 
root@marcel:#  tar xvf dolibarr-20.0.2.tgz 
root@marcel:#  mv dolibarr-19.0.2  dolibarr
root@marcel:#  chmod -R 755 /var/www/html/dolibarr
root@marcel:#  chown -R www-data:www-data /var/www/html/dolibarr

fichier de conf pour install

root@marcel:#  cd dolibarr ; touch htdocs/conf/conf.php ; chown www-data htdocs/conf/conf.php

documents dans /var/lib/dolibarr/documents (hum..)

mkdir -p /var/lib/dolibarr/documents ; chown www-data /var/lib/dolibarr/documents

Serveur (pour by passer le wiki)

ln -s  /var/www/html/dolibarr/    /var/www/html/map-marcel/dolibarr

Lancement de l'installation https://www.map-marcel.fr/dolibarr/htdocs/install/

Configuration Fichier de configuration
Enregistrement du fichier de configuration ../conf/conf.php	Ok
Rechargement des paramètres depuis le fichier de configuration.	Ok
Utilisateur de création : marcel	Ok
Connexion au serveur (Utilisateur marcel) : localhost	Ok
Connexion à la base (Utilisateur marcel) : dolibarr
Database Base de données
Connexion au serveur : localhost	Ok
Version de la base	10.11.8-MariaDB-0ubuntu0.24.04.1
Nom de la base de données	dolibarr
Création des tables et des clés primaires	Ok
Création des clés étrangères et des index	Ok
Création des fonctions	Ok
Chargement des données de référence	Ok
Effectuez un ping «+1» anonyme sur le serveur de la fondation Dolibarr (une seule fois après l’installation) pour permettre à la fondation de compter le nombre d’installations de Dolibarr.

---


Database Identifiant de l'utilisateur administrateur de Dolibarr
Dernière étape : Définissez ici le nom d'utilisateur et le mot de passe que vous souhaitez utiliser pour vous connecter à Dolibarr. Ne perdez pas cette information, car il s’agit du compte principal pour administrer tous les comptes d’utilisateurs autres / supplémentaires.

Identifiant :	marcel
Mot de passe :	M...!
Ressaisir le mot de passe :M...!

Finalisation

touch /var/lib/dolibarr/documents/install.lock; chmod go-w /var/lib/dolibarr/documents;

Conf Apache

Dans /etc/apache2/conf-available

# Apache config file for Dolibarr
<IfModule mod_alias.c>
Alias /dolibarr /var/www/html/dolibarr/htdocs
</IfModule>

# You can also use dolibarr as a VirtualHost
# <VirtualHost *:*>
#     ServerName mydolibarrhostname.com
#     ServerAdmin root@example.com
#     DocumentRoot /usr/share/dolibarr/
#     ErrorLog logs/ldap.example.com-error.log
#     CustomLog logs/ldap.example.com-access.log common
#
#       <IfVersion >= 2.3>
#       Require all granted
#       </IfVersion>
#       <IfVersion < 2.3>
#       Order allow,deny
#       Allow from all
#       </IfVersion>
#
# </VirtualHost>

# Directory for web pages
<Directory /var/www/html/dolibarr/htdocs>
        <IfVersion >= 2.3>
        Require all granted
        </IfVersion>
        <IfVersion < 2.3>
        Order allow,deny
        Allow from all
        </IfVersion>

    DirectoryIndex index.php
    Options +FollowSymLinks +Indexes

    ErrorDocument 401 /dolibarr/public/error-401.php
    ErrorDocument 404 /dolibarr/public/error-404.php
</Directory>

Puis:

root@marcel:# a2enconf dolibarr
root@marcel:# systemctl reload apache2

YES