Asustor Proxmox (Sécurisation, Utilisateurs, Groupe | Script)

Drthrax74

Chevalier Jedi
1 Janvier 2021
456
107
83
Proxmox - Base d'utilisation

Présentation:
Ce tutorial à pour objectif :
- Créer un utilisateur pour se connecter sur le Serveur Linux via une clés SSH. (La modification de l'authentification SSH ne sera pas expliquer)
- Créer des Groupes prédéfini.
- Créer un Utilisateur Administrateurs PAM.
- L'ensemble des scripts peut être relancer. (Il faudra veiller à modifier l'ID de l'utilisateur !)


Etape 0: Proxmox fonctionnel
Etape 1: Se connecter en SSH sur le serveur
Bash:
ssh root@<IP Proxmox> -p 22

Etape 2 : Edition du Dépôt pour ceux qui ont pas Licence
Pour ceux qui n'ont pas de licence Proxmox .

Bash:
# Récupérer le nom de la Distribution (Bullseye, Buster ...)
RELEASE=$(cat /etc/apt/sources.list | cut -d "/" -f  4 |cut -d " " -f 2 | head -n 1)

# Suppression du dépôt payant Proxmox
rm /etc/apt/sources.list.d/pve-enterprise.list;

# Proxmox VE No-Subscription Repository
echo "deb http://download.proxmox.com/debian/pve $RELEASE pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list;

Etape 3: Mettre à jour Proxmox
Bash:
# Mise à jour de la liste des paquets
apt update;

# Installation de Sudo
apt install -y sudo;


Important
Une machine Linux a ses utilisateurs sur la machine (HOST) et Proxmox a ses utilisateurs.
Pour éviter toute erreur, le compte utilisateur Promox aura comme nom : <USER>@pam.

Etape 4: Création d'un Utilisateur sur Proxmox (Host)
Bash:
#########################################################################################################
# Nettoyage de la console #
###########################
clear;

#########################################################################################################
# Déclaration des variables #
#############################
# Nom d'utilisateur et mot de passe du compte:
export UTILISATEUR=SuperAdmin
export PASSWORD=MyPassw0rd2023@13
export USERID=1000

#########################################################################################################
# Création du compte #
######################
/usr/sbin/useradd \
--home-dir /home/$UTILISATEUR \
--base-dir /home/$UTILISATEUR \
--uid $USERID \
--no-user-group \
--shell /bin/bash \
--create-home $UTILISATEUR;

#########################################################################################################
# Définir le mot de passe du compte #
#####################################
(echo "$UTILISATEUR:$PASSWORD") | chpasswd;

#########################################################################################################
# Sudoers son utilisateur #
###########################
# echo "$UTILISATEUR ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/$UTILISATEUR;

#########################################################################################################
# Vérification #
################
id $UTILISATEUR;


Etape 5: Sécurisation de la connexion SSH (Importe Clé SSH Uniquement)

Modifier les variables d'environnement concernant les CLES SSH.
PUBLICKEY=""
PRIVATE=""

Bash:
#########################################################################################################
# Nettoyage de la console #
###########################
clear;

#########################################################################################################
# Déclaration des variables #
#############################
UTILISATEUR=$(id 1000 | cut -d "(" -f 2 |cut -d ")" -f 1)

#########################################################################################################
# Déclaration des Clés SSH #
############################
#
# Clé Publique
PUBLICKEY=""
#
# Clé privée (Enorme Pavé = normal)
PRIVATE=""

#########################################################################################################
# Création de l'architecture #
##############################
runuser -l $UTILISATEUR -c "rm -r ~/.ssh";
runuser -l $UTILISATEUR -c "mkdir ~/.ssh";
runuser -l $UTILISATEUR -c "touch ~/.ssh/authorized_keys";
runuser -l $UTILISATEUR -c "touch ~/.ssh/id_rsa";

#########################################################################################################
# Inscription des Clés #
#################
# Clé Publique
runuser -l $UTILISATEUR -c "echo '$PUBLICKEY' > /home/$UTILISATEUR/.ssh/authorized_keys"

# Clé Privée
runuser -l $UTILISATEUR -c "echo '$PRIVATE' > /home/$UTILISATEUR/.ssh/id_rsa"
#########################################################################################################

Etape 6: Création de l'utilisateur Proxmox (PAM !)
Mon script crée des groupes prédéfinis pour une simplification des permissions
Ensuite pour s'authentifier, il suffit d'aller sur la page de Proxmox de choisir comme Royaume: "Linux PAM standard authentication".

Bash:
#########################################################################################################
# Nettoyage de la console #
###########################
clear;

#########################################################################################################
# Déclaration des variables #
#############################
UTILISATEUR="BOB@pam"
MOTDEPASSE="LEPONGE"
EMAIL="BOB@LEPONGE.com"
PRENOM="BOB"
NOM="LEPONGE"

#########################################################################################################
# Nettoyage de Proxmox #
########################
pveum group del Administrateurs 2>/dev/null;
pveum group del Audit 2>/dev/null;
pveum group del Stockage 2>/dev/null;
pveum group del Utilisateurs 2>/dev/null;
pveum group del VMadmin  2>/dev/null;
pveum user delete $UTILISATEUR 2>/dev/null;

#########################################################################################################
# Gestion des Utilisateurs #
############################
#
# Groupes:
pveum group add Administrateurs -comment "Groupe des administrateurs"
pveum group add Audit -comment "Groupe des auditeurs"
pveum group add Stockage -comment "Groupe du stockage"
pveum group add Utilisateurs -comment "Groupe des utilisateurs"
pveum group add VMadmin -comment "Groupe des Admins des VM"
#
# Utilisateur:
pveum user add "$UTILISATEUR" -email "$EMAIL" -enable 1 -first "$PRENOM" -lastname "$NOM";
#
# Mot de passe:
(echo "$MOTDEPASSE"; echo "$MOTDEPASSE") |pveum passwd $UTILISATEUR
#
#########################################################################################################
# Edition des permissions du Groupe #
####################################
pveum acl modify / -group Administrateurs -role Administrator;
pveum acl modify / -group Audit -role PVEAuditor;
pveum acl modify / -group Stockage -role PVEDatastoreAdmin;
pveum acl modify / -group Utilisateurs -role PVEVMUser;
pveum acl modify / -group VMadmin -role PVEVMAdmin;

#########################################################################################################
# Ajout de l'Utilisateur dans le Groupe #
#########################################
pveum user modify "$UTILISATEUR" -group Administrateurs;

# pveum user modify "$UTILISATEUR" -group Utilisateurs;
# pveum user modify "$UTILISATEUR" -group Audit;
# pveum user modify "$UTILISATEUR" -group VMadmin;
# pveum user modify "$UTILISATEUR" -group Stockage;



Rôle par défaut:
GroupeDescription du Groupe
AdministratorA tous les privilèges
PVEAdminPeut effectuer la plupart des tâches, mais n'a pas le droit de modifier les paramètres système (Sys.PowerMgmt, Sys.Modify, Realm.Allocate)
PVEDatastoreAdminCréer et allouer un espace de sauvegarde et des modèles
PVEDatastoreUserAllouer de l'espace de sauvegarde et afficher le stockage
PVEPoolAdminAllouer des pools
PVESysAdminACL utilisateur, audit, console système et journaux systèmes
PVETemplateUserVoir et cloner les modèles (Template)
PVEUserAdminGestion des utilisateurs
PVEVMAdminAdministrer entièrement les machines virtuelles
PVEVMUserAfficher, sauvegarder, configurer CD-ROM, console VM, gestion de l'alimentation VM
PVEAuditorAccès en lecture seule
NoAccessAucun Accès

PVEPoolUser : Permet de voir les Pools
 
Dernière édition:
Hello,
Pour le script d'ajout d'utilisateur, j'ai décommenté la ligne qui l'ajoute au sudoers.
Mais ce faisant, avec un sudo -i, je passe en root sans taper de mot de passe. Ça m'embète un peu, alors j'ai modifié ainsi :
Bash:
echo "$UTILISATEUR ALL=(ALL:ALL) ALL" > /etc/sudoers.d/$UTILISATEUR;

Il faut alors taper son mot de passe utilisateur pour entrer en root.
Je préfère ce fonctionnement-là.
 
Salut @Drthrax74,
Je débute sur Proxmox sur un mini PC :
1693559022403.png

Ton super tuto, est-il uniquement pour proxmox sur ASUS ou je peux le suive avec ma configuration ?

Est-il aussi compatible avec la version 8.0.4 ?

Merci.