Actus et Aide Informatique

Serveur

Configuration de Serveurs VPS

Clé SSH Public / Privé avec Putty sous Windows

Vous pouvez vous authentifier en SSH à l’aide d’une combinaison de nom d’utilisateur et de mot de passe ou à l’aide d’une paire de clés publique et privée, c’est ce que nous allons voir ici. Une paire de clés SSH établit la confiance entre le client et le serveur, supprimant ainsi le besoin d’un mot de passe lors de l’authentification, tout en rendant l’ensemble plus sécurisé. Bien que cela ne soit pas obligatoire, la clé privée SSH peut être cryptée avec un mot de passe pour plus de sécurité, ce que je vous recommande.

Le client PuTTY sur Windows ne partage pas le même format de clé que le client OpenSSH. Par conséquent, il est nécessaire de créer une nouvelle clé publique et privée SSH à l’aide de l’outil PuTTYgen. PuTTYgen est inclus dans l’installation de PuTTY.

Conditions

  • Client PuTTY SSH pour Microsoft Windows
  • Serveur distant accessible via OpenSSH
  • Installez PuTTY et PuTTYgen
  • PuTTY et PuTTYgen sont nécessaires pour convertir les clés OpenSSH et pour se connecter au serveur via SSH. Ces deux outils peuvent être téléchargés individuellement ou, de préférence, en utilisant l’installateur Windows à partir de la page de téléchargement de PuTTY. Perso, moi je l’ai installé à partir de Ninite.

Logiciel PuTTY

Une fois le programme d’installation de PuTTY Windows téléchargé, double-cliquez sur l’exécutable dans votre dossier Téléchargement et suivez l’assistant d’installation. Les paramètres par défaut conviennent à la plupart des installations. PuTTY et PuTTYgen devraient maintenant être accessibles à partir de la liste des programmes Windows.

Créer de nouvelles clés publiques et privées

Lancez PuTTYgen à partir de la liste des programmes Windows et procédez comme suit.

  1. Sous Paramètres, augmentez le nombre de bits dans une clé générée: à une valeur minimale de 2048.
  2. Sous Actions / Générer une paire de clés publique / privée, cliquez sur Générer. Vous serez invité à déplacer le curseur de la souris dans la fenêtre PuTTY Key Generator comme un outil aléatoire pour générer la clé privée.
  3. Facultatif mais je recommande !! Une fois que les informations de clé apparaissent, entrez dans Key passphrase, un mot de passe
  4. Cliquez sur Enregistrer la clé privée sous Actions / Enregistrer la clé générée. Enregistrez la clé privée dans un endroit sûr et sous le nom que vous voulez.

Copier la clé publique sur le serveur

La case sous Clé / Clé publique à coller dans le fichier OpenSSH allowed_keys: contient la clé publique.

La clé publique OpenSSH se trouve dans la case  » Key / Public key for pasting into OpenSSH allowed_keys file « , elle commence toujours par ssh-rsa suivi d’une chaîne de caractères. Mettez en surbrillance la clé publique entière dans le générateur de clés PuTTY et copiez le texte.

Lancez PuTTY et connectez-vous au serveur distant avec vos informations d’identification utilisateur existantes.

Pour copier notre clé publique, on va devoir créer un répertoire .ssh s’il n’existe pas déjà, lui donner les droits nécessaires et on va utiliser Nano pour créer et / ou ouvrir le fichier allowed_keys. Dans votre répertoire utilisateur /home/vous :

mkdir .ssh

chmod 700 .ssh

cd .ssh

echo « votreclepubliquetelquevouslavezcopiéetsansespacealafin » >> authorized_keys

chmod 600 authorized_keys

Pour coller la clé publique à partir de Putty, vous pouvez soit utiliser la combinaison de touche Maj + Inser ou le clic droit de la souris. Vous pouvez maintenant vous déconner du serveur distant.

Se connecter au serveur avec une clé privée

Il est maintenant temps de tester l’authentification par clé SSH. L’outil PuTTYgen peut être fermé et on va pouvoir ouvrir PuTTY.

  • Entrez le nom d’hôte ou l’adresse IP du serveur distant sous Session.
  • Accédez à Connexion> SSH> Auth.
  • Cliquez sur Parcourir … sous Paramètres d’authentification / Fichier de clé privée pour l’authentification.
  • Recherchez votre clé privée votrenomdefichier.ppk et cliquez sur Ouvrir.
  • Enfin, cliquez à nouveau sur Ouvrir pour vous connecter au serveur distant avec l’authentification par paire de clés.

Utiliser les clés publiques et privées existantes


Si vous disposez d’une clé publique et privée OpenSSH existante, copiez votre clé privé sur votre bureau Windows ou dans un endroit sûre. Cela peut être fait en copiant et en collant le contenu du fichier ou en utilisant un client SCP tel que PSCP qui est fourni avec l’installation de PuTTY ou FileZilla.

Ensuite, lancez PuTTYgen à partir de la liste des programmes Windows.

Cliquez sur Conversions dans le menu PuTTY Key Generator et sélectionnez Import key.
Accédez à la clé privée OpenSSH et cliquez sur Ouvrir.
Sous Actions / Enregistrer la clé générée, sélectionnez Enregistrer la clé privée.
Choisissez une phrase secrète facultative pour protéger la clé privée.
Enregistrez la clé privée sur le bureau sous le nom id_rsa.ppk.

Si la clé publique est déjà ajoutée au fichier authorized_keys sur le serveur SSH distant, passez à la connexion au serveur avec la clé privée.

Sinon, passez à Copier la clé publique sur le serveur.

Créer un bureau Distant Ubuntu + LXDE + xRDP

Installation d’un bureau distant à partir d’un serveur One Provider pour une expérience de bureau distant léger et fluide. Le processus d’installation est simple. Il faut juste s’assurer d’avoir au moins Ubuntu 16, 18 ou 20 en tant qu’OS afin d’être sur que cela fonctionne.

Pour ma part j’ai fait le choix d’Ubuntu 20 et de Lxde. Après quelques recherches de tests comparatifs entre LXDE et XFCE, LXDE est plus léger alors que XFCE fournit un plus grand nombre de compatibilité.

Après que vous vous êtes connecté en SSH, effectué la commande suivante pour mettre à jour Ubuntu dans sa dernière version stable:

apt update && apt -y dist-upgrade

Quand c’est fait, installé le support xRDP avec une simple commande:

apt -y install xrdp

En assumant que tout c’est déroulé correctement, procédé à l’installation du bureau Lubuntu ( connu aussi sous le nom de LXDE ):

apt install lubuntu-desktop -y

Cela risque de prendre un certain temps parce que l’interface graphique comprends plusieurs méga-octets de données.

La prochaine étape sera de spécifier xRDP d’utiliser LXDE. On va devoir éditer le fichier /etc/xrdp/startwm.sh. Décommenter les 2 dernières lignes du fichier et ajouter la ligne suivante:

lxsession -s Lubuntu -e LXDE

Redémarrer xRDP pour que la nouvelle configuration soit prise en compte.

service xrdp restart

Tout devrait fonctionner maintenant ! Connectez vous à votre VPS ( ou serveur dédié ) avec le client RDP de votre choix. Perso, je me connecte avec mRemoteNG.

Je vous recommande les règles de base pour sécuriser votre serveur.

adduser tonpseudo

usermod -aG sudo tonpseudo

nano /etc/ssh/sshd_config

ssh port 11548

PermitRootLogin No

Avant de redémarrer Ssh, il faut autoriser le nouveau port à IpTables.

iptables -A INPUT -p tcp -i eth0 –dport 11548 -j ACCEPT

On active ou installe UFW pour faciliter la gestion du PareFeu.

apt install ufw

ufw allow 11548

ufw allow 3389

ufw deny 22

ufw enable

Voila on a fait le tour.

Installation Directadmin + OpenLiteSpeed + plusieurs versions de Php

Voilà, on arrête avec WHM / Cpanel et ses licences hors de prix pour passer à DirectAdmin, bien plus accessible financièrement, voir même sans surcoût chez plusieurs fournisseurs de serveurs virtuelles. Pour ceux qui ne connaisse pas, Directadmin existe depuis quasiment aussi longtemps que Cpanel, et offre des fonctions similaires dans une interface simple et agréable, vous pouvez le tester par ici si vous voulez:

Choix de la distribution, configuration:

Directadmin support plusieurs distributions Linux ( Centos 6, 7, 8 / Debian 8, 9, 10 / Cloud Linux / FreeBsd ). Pour ma part, je fais le choix de CentOs 7, pour plusieurs raisons. Premièrement a l’instar de Cpanel déjà qui ce base sur CentOs, je continue donc sur une base que je connais et ensuite parce que Centos 8 à encore quelques petits bugs. Les autres distributions semblent elles subir quelques défauts d’intégrations ( notamment au niveau du Firewall CSF ), à vérifier ceci dit.

De plus, Directadmin possède une compatibilité avec le serveur Web OpenLiteSpeed ( version gratuite de LiteSpeed ) ce qui donne accès à lsphp, idéal pour alléger les demandes en mémoire de mon serveur VPS. En plus, le combo Direct Admin / OpenLiteSpeed, c’est ça compatibilité total avec le .htaccess d’Apache, là ou de base c’est une fonctionnalité réservé à LiteSpeed, la version Pro ).

Et la dernière raison est d’ordre financière donc, plusieurs hébergeurs de VPS intègre sans surcoût la licence DirectAdmin. Je vais faire une petite liste, que vous pourrez retrouver ici.

Pré requis:

  • 1 serveur dédié ou virtuel avec au minimum 1GO de mémoire et 2GO d’espace disque de disponible
  • Accès Ssh, Root
  • 1 adresse IP fixe
  • Licence DirectAdmin
  • Un peu de temps de libre ^^

Préparation Serveur:

Ici je n’occupe pas des partitions, on laisse celle par défaut fourni par l’hébergeur. DirectAdmin recommande un partitionnement de base, c’est à dire:

/boot 500MB

swap si – de 2GO RAM: 2X la RAM, si 2GO-8GO: égale a la quantité de RAM, si + de 8GO RAM: au moins 4GO de swap

/ le reste de votre espace disque

Connexion en SSH. On vérifie que le hostname pointe correctement

hostname

Si ce n’est pas le cas, vous pouvez le modifier maintenant et le revérifier à nouveau.

hostnamectl set-hostname nomdhote.votredomaine.com

hostnamectl status

On mets a jour le serveur et on fait plein de yes, lol, uniquement si on est d’accord bien sur. Bien vérifier que toutes les installations se sont bien faite sinon vous ne pourrez pas installer DirectAdmin.

yum clean all

yum install wget tar gcc gcc-c++ flex bison make bind bind-libs bind-utils openssl openssl-devel perl quota libaio \

libcom_err-devel libcurl-devel gd zlib-devel zip unzip libcap-devel cronie bzip2 cyrus-sasl-devel perl-ExtUtils-Embed \

autoconf automake libtool which patch mailx bzip2-devel lsof glibc-headers kernel-devel expat-devel \

psmisc net-tools systemd-devel libdb-devel perl-DBI perl-Perl4-CoreLibs perl-libwww-perl xfsprogs rsyslog logrotate crontabs file kernel-headers

On va sécuriser SSH en ajoutant un nouvel utilisateur avec accès Root. Fonctionnant de manière différente par rapport a Debian / Ubuntu, CentOs attribue les privilèges Root en plaçant l’utilisateur dans le groupe Wheel. Modification du Port SSH, on enlève l’accès à l’utilisateur Root puis on rédémarre.

adduser tonpseudo

passwd tonpseudo

sudo usermod -aG wheel tonpseudo

nano /etc/ssh/sshd_config

ssh 11111

permitrootlogin no

systemctl restart sshd

On ajoute une autorisation de notre nouveau port SSH à notre parefeu.

iptables -A INPUT -p tcp -i eth0 –dport 1111 -j ACCEPT

iptables -F

iptables -X

Si ça fonctionne, on peut maintenant ajouter cette règle définitivement.

firewall-cmd –zone=public –add-port=1111/tcp –permanent

firewall-cmd –reload

Installation DirectAdmin:

Nous allons maintenant lancer l’installation du panneau de contrôle. Il vous faut être en root.

su root

bash <(curl -Ss https://www.directadmin.com/setup.sh) auto

L’installation va prendre un moment ( 10 minute dans mon cas ), il faudra peut être entrer les informations suivantes: Cliend Id, Licence Id, Adresse IP ( pour ma part le serveur a été reconnu automatiquement par les serveurs de DirectAdmin ).

Une fois que le message Install Complete apparaît, vous pouvez accéder à votre interface par le biais de http://votreadresseip:2222. Sur votre session SSH est apparu un peu plus haut vos identifiants de connexion, il faut bien en prendre note. Vous pouvez également les retrouver dans…

A ce stade vous pouvez utiliser Directadmin et le reste est facultatif mais… si vous voulez vraiment sécuriser votre serveur, je vous recommande de rester avec moi. Durant l’installation le firewall CSF a déjà été installé avec plusieurs règles de sécurité. Nous allons améliorer tout ça.

1 – Sécuriser PHP en désactivant certaines fonctions.

cd /usr/local/directadmin/custombuild

./build update

./build secure_php

2 – Vérifier qu’on est bien à jour, ça va prendre du temps !

./build all -d

systemctl restart httpd.service

3 – Désactiver l’accès distant à MySQL

nano /etc/my.cnf

bind-address = 127.0.0.1

systemcrl restart mysqld

4 – Activation de la récursion locale des DNS et on bloque celle qui sont distante, votre fichier named.conf, dans la partie { Options } devrait ressembler à ça:

nano /etc/named.conf

allow-query { any; };

allow-transfer { none; };

allow-recursion { localhost; };

recursion yes;

5

Installation OpenLiteSpeed

Ici c’est totalement facultatif, mais comme l’hébergeur que je suis en train de concevoir est focalisé sur WordPress cela va me permettre de tirer les meilleurs performances possibles de mon VPS grâce a LSPHP et LSCACHE. On en profite également pour installer plusieurs versions de PHP, donnant ainsi le choix à l’utilisateur finale si son script n’est pas compatible avec la version par défaut ( dans notre cas la 7.3 ).

./build set webserver openlitespeed

./build set mod_ruid2 no

./build set php1_mode lsphp

./build set php1_release 7.3

./build set php2_mode lsphp

./build set php2_release 7.4

./build set php3_mode lsphp

./build set php3_release 7.2

./build set php4_mode lsphp

./build set php4_mode 5.6

./build openlitespeed

./build php n

./build rewrite_confs

Pour que Directadmin redémarre automatiquement OpenLiteSpeed afin de prendre en compte les modifications du fichier .htaccess

echo ‘*/3 * * * * root if ! find /home/*/domains/*/*_html/ -maxdepth 2 -type f -newer /usr/local/lsws/cgid -name « .htaccess » -exec false {} +; then /usr/local/lsws/bin/lswsctrl restart; fi‘ > /etc/cron.d/openlitespeed_htaccess_scan

Continuer à sécuriser le serveur

Installation de xcf version gratuite,

Installation d’un certificat SSL Letsencrypt sur le hostname

cd /usr/local/directadmin/scripts

./letsencrypt.sh request_single ton.hostname.com 4096

Le serveur devrait redémarrer en moins d’une minute et ça devrait être actif si tout c’est bien passé.

Tuto écrit à l’arrache et toujours en cours, y a des trucs que je dois peaufiner là dedans… comme par exemple écrire dans un français correct sans faute d’orthographe, ajouter des étapes et ce serait pas du luxe de rajouter quelques images ici et là.

Hetzner, Proxmox HA / Ceph + PfSense

Tuto qui sert surtout de pense bête pour la mise en place d’un système de stockage redondant ( Cloud ) en utilisant un ensemble de logiciels Open Source afin d’avoir un meilleur contrôle des coûts… et en même temps si ça peut servir à quelqu’un d’autre pour faire joujou tant mieux ^^

Prérequis:

  • 3 serveurs
  • 2 disques par serveur
  • 1 carte réseau physique / serveur
  • 1 adresse IP fixe / serveur

Pourquoi Hetzner ?

Après avoir fait un certain temps sur des serveurs Kimsufi puis avec Oneprovider, il est temps de passer chez Hetzner. La principale fonctionnalité recherchée est la possibilité de trafic interne entre serveur. Les prix eux restent dans le même d’idée que les 2 autres. Bien qu’ici les serveurs se situeront en Allemagne au lieu de la France ( pour ceux qui souhaitent y installer des sites, niveau référencement ce ne sera pas forcèment la meilleure solution ).

Installation de Proxmox VE

Hetzner ne propose pas d’image d’installation Pré configuré pour Proxmox, on va donc le faire avec nos petites mains, en démarrant à partir de l’interface Robot d’Hetzner et choisir le mode Rescue.

Connexion en ssh

Vérifier que votre nom d’hôte est résolvable, hostname –ip-address, si ce n’est pas le cas faire la modif dans /etc/hosts

On tape installimage

Choisir Debian 10 ( Buster ).

On monte les 2 disques durs /dev/sda, dev/sdb

on mets le RAID à 0 ( SWRAID 0 ), on ne veut pas de RAID car un disque sera utilisé pour le Système, VM, ISO et l’autre pour Ceph

Hostname ( votreserveur.votredomaine.com )

Création de partition

  • swap swap 16G ( il est recommandé d’avoir un swap d’une taille égale à votre mémoire vive )
  • /boot ext3 512M
  • /home ext3 all

On sauvegarde la configuration et après que l’installation soit complète, on redémarre, reboot

La prochaine étape sera d’adapter les souces APT:

echo « deb http://download.proxmox.com/debian/pve buster pve-no-subscription » > /etc/apt/sources.list.d/pve-install-repo.list

Ajouter la clé:

wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg

On va mettre à jour les listes de Paquet, garder les dernières versions de tout les paquets et le noyau Debian.

apt-get update

apt-get upgrade

apt-get dist-upgrade

Puisque Proxmox apporte ses propres firmware, ceux existant doivent être supprimé en premier.

aptitude -q -y purge firmware-bnx2x firmware-realtek firmware-linux firmware-linux-free firmware-linux-nonfree

Après ça, on peut commencer à installer Proxmox.

apt-get install proxmox-ve postfix open-iscsi

Lors de la config Postfix

choisir Internet

system mail name = proxmox.votredomaine.com

postmaster mail recipient = votrenom

le reste par défaut

Mailbox size limit = 0

Internet Protocols = all

La paquet os-prober scans toutes les partitions de votre hôte incluant celle de vos VMs pour créer des entrées dual-boot GRUB. Si vous n’avez pas installé Proxmox VE en dual boot dernière un autre OS vous pouvez supprimer en toute sécurité os-prober, ce qui est notre cas.

apt remove os-prober

Maintenant que l’installation est finis, vous pouvez maintenant vous connecter à l’interface Web Admin ( https://votreadresseip:8006 ), en utilisant le compte root et le mot de passe Linux root en sélectionnant  » PAM Authentication ) lors de la connexion.

Nous allons sécurisé un peu notre serveur.

Sécurisé SSH

  • adduser tonnom
  • usermod -aG sudo tonnom
  • nano /etc/ssh/sshd_config
  • Port 11234 ( on change le port SSH )
  • PermitRootLogin no
  • /etc/init.d/ssh restart
  • install fail2ban
  • nano /etc/fail2ban/jail.local

[DEFAULT]

bantime = 84600

findtime = 600

maxretry = 3

destemail = tomtom@example.com

sendername = Fail2ban

action = %(action_mwl)s

[sshd]

enabled = true

port = 21153

puis systemctl restart fail2ban

Désactivation de Rpcbind

Les services ouverts Portmapper peuvent être abusé pour des attaques de type DDoS contre des systèmes tierces et donc pour des raisons de sécurité / abus, nous allons désactiver Rpcbind, nullement nécessaire dans notre cas. Attention tout de même si vous souhaitez monter une partition réseau NFS, vous en aurez besoin. Chez Hetzner vous serez automatiquement contacté dans les 24 heures par le Bureau Fédéral Allemand pour la Sécurité de l’Information ( BSI ) si Portmapper reste accessible à tous. Donc on le désinstalle.

systemctl disable rpcbind.target

systemctl disable rpcbind.socket

systemctl disable rpcbind.service

systemctl stop rpcbind.target

systemctl stop rpcbind.socket

systemctl stop rpcbind.service

puis reboot. Vérifier que le service à bien était désactivé en vous connectant en SSH à partir d’une autre machine, puis effectué la commande suivante:

rpcinfo -T udp -p 1.1.1.1 ( l’adresse ip du serveur dont vous souhaitez effectuer les tests de port )

Configuration Réseau

Configurer PfSense

Tuto largement inspiré des liens suivants, que je ne peux que vous conseillez… Tuto toujours en cours.