website-astro/src/content/articles/fr/configuration-serveur.md
2025-01-29 10:38:42 +01:00

4.5 KiB

title subtitle lang slug excerpt tags type createdAt
Paramétrer un serveur pour héberger des trucs Guide personnel. fr configuration-serveur Envie de mettre un site en ligne ? D'héberger vos propres outils plutôt que de payer des abonnements ? Bah lezgongue
Dev
Backend
articles 2025-01-28T22:20:00.000Z

Mon mémo perso.

Cet article est l'extension d'un fichier « pense-bête » que j'utilise depuis toujours quand je créé un nouveau serveur, généralement un VPS, généralment sous debian (ou fedora).

Notez bien que je ne suis ni administrateur système ni expert en sécurité.

Conf serveur

Actions immédiates

Se connecter en root via ssh puis…

Paramétrer les locales

Parfois il manque la configuration des locales et ça cause des erreurs.

# affiche la conf actuelle
locale

# debian
nano /etc/default/locale
# fedora
nano /etc/locale.conf

# compléter ces lignes si besoin
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8

Mettre à jour le système

# debian
apt update
apt dist-upgrade
# fedora
dnf check-update
dnf upgrade

Nouvel utilisateur

  • Ajouter et renseigner un nouvel utilisateur.
  • Ajouter l'utilisateur aux "sudoers".
  • Ajouter sa clé ssh à l'utilisateur.
adduser USERNAME

# debian
usermod -aG sudo USERNAME
# fedora
usermod -aG wheel USERNAME

# si pas encore de clé ssh EN LOCAL
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "mail@domain.tld"
# copier la clé publique
cat ~/.ssh/id_ed25519.pub

# sur le serveur
su USERNAME
mkdir ~/.ssh
# coller la clé publique
nano authorized_keys

bash alias

Ajoute un alias ll pour un ls plus explicite.

alias ll='ls -lah'

SSH

configure sshd_config

# Changer le port est recommandé mais pas obligatoire
Port 10485

# Désactive la connexion par mot de passe
AuthenticationMethods publickey

# Désactive la connexion via root
PermitRootLogin No

# modifier/adapter ces options si besoin
LoginGraceTime 120
StrictModes yes
PubkeyAuthentication yes
AuthorizedKeysFile /home/%u/.ssh/authorized_keys
PermitEmptyPasswords no
ChallengeResponseAuthentication no
X11Forwarding no
UseDNS no
MaxStartups 10:30:60
PermitTunnel no

Tester maintenant dans un autre terminal si la connexion ssh avec le nouvel utilisateur fonctionne.

Si oui : redémarrer !

Pare-feu

  • Installer
  • Paramétrer
  • Activer

Debian

ufw

ufw default deny incoming
ufw default allow outgoing
ufw allow ssh # ou ufw allow PORT
ufw allow http # ufw allow 80
ufw allow https # ufw allow 443
ufw enable

Fedora

Firewalld

dnf install firewalld
systemctl unmask firewalld
systemctl start firewalld
systemctl enable firewalld
firewall-cmd --zone=public --add-service=ssh
firewall-cmd --zone=public --add-service=http
firewall-cmd --zone=public --add-service=https
firewall-cmd --runtime-to-permanent
firewall-cmd --reload

Crowdsec

Crowdsec est un système de sécurité qui détecte et bloque les connexions malveillantes.

  • Installer crowdsec.
  • Installer un "bouncer"
  • Activer des scenarios
curl -s https://install.crowdsec.net | sudo sh

# debian
apt install crowdsec
apt install crowdsec-firewall-bouncer-iptables
# fedora
dnf install crowdsec
dnf install crowdsec-firewall-bouncer-nftables

Conf web

Partie encore en cours de rédaction.

Serveur web

Coolify

Documentation.

curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash

OpenLiteSpeed

Documentation.

Récupérer le mot de passe admin cat /usr/local/lsws/adminpasswd

Outils