84 lines
2.8 KiB
Bash
84 lines
2.8 KiB
Bash
|
#!/bin/bash
|
|||
|
|
|||
|
# Variables
|
|||
|
SSH_PORT=2222 # Port SSH personnalisé
|
|||
|
USER_NAME="user" # Nom d'utilisateur non-root pour l'administration
|
|||
|
PROXMOX_IP="192.168.1.100" # Remplacez par l'adresse IP de votre serveur
|
|||
|
|
|||
|
# Mise à jour des paquets et des dépôts
|
|||
|
echo "Mise à jour des paquets..."
|
|||
|
apt update && apt upgrade -y
|
|||
|
|
|||
|
# Désactivation de l’abonnement Proxmox (évite les erreurs d'absence d'abonnement)
|
|||
|
echo "Suppression du message d'erreur d'abonnement Proxmox..."
|
|||
|
sed -i "s/^deb/#deb/g" /etc/apt/sources.list.d/pve-enterprise.list
|
|||
|
echo "deb http://download.proxmox.com/debian/pve $(lsb_release -sc) pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
|
|||
|
apt update
|
|||
|
|
|||
|
# Création d'un utilisateur non-root pour l'administration
|
|||
|
echo "Création d'un utilisateur administrateur non-root..."
|
|||
|
adduser $USER_NAME
|
|||
|
usermod -aG sudo $USER_NAME
|
|||
|
|
|||
|
# Configuration du SSH : modification du port et interdiction de l’accès root
|
|||
|
echo "Configuration du SSH..."
|
|||
|
sed -i "s/#Port 22/Port $SSH_PORT/" /etc/ssh/sshd_config
|
|||
|
sed -i "s/PermitRootLogin yes/PermitRootLogin no/" /etc/ssh/sshd_config
|
|||
|
systemctl restart sshd
|
|||
|
|
|||
|
# Configuration du pare-feu Proxmox
|
|||
|
echo "Activation du pare-feu Proxmox..."
|
|||
|
pve-firewall enable
|
|||
|
|
|||
|
# Activation de l’authentification à deux facteurs (TFA) pour Proxmox GUI
|
|||
|
echo "Configuration de l'authentification à deux facteurs..."
|
|||
|
echo "Veuillez configurer manuellement l'authentification à deux facteurs pour les utilisateurs dans l'interface Proxmox GUI."
|
|||
|
|
|||
|
# Installation et configuration de Fail2ban pour Proxmox
|
|||
|
echo "Installation de Fail2ban..."
|
|||
|
apt install fail2ban -y
|
|||
|
|
|||
|
echo "Configuration de Fail2ban pour SSH..."
|
|||
|
cat <<EOF > /etc/fail2ban/jail.local
|
|||
|
[DEFAULT]
|
|||
|
bantime = 1h
|
|||
|
findtime = 10m
|
|||
|
maxretry = 5
|
|||
|
|
|||
|
[sshd]
|
|||
|
enabled = true
|
|||
|
port = $SSH_PORT
|
|||
|
logpath = /var/log/auth.log
|
|||
|
EOF
|
|||
|
|
|||
|
systemctl restart fail2ban
|
|||
|
|
|||
|
# Désactivation de l'ICMP pour réduire les risques de scan de réseau
|
|||
|
echo "Désactivation de l'ICMP..."
|
|||
|
echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf
|
|||
|
sysctl -p
|
|||
|
|
|||
|
# Optimisation du réseau pour Proxmox
|
|||
|
echo "Optimisation des paramètres réseau pour Proxmox..."
|
|||
|
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
|
|||
|
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
|
|||
|
sysctl -p
|
|||
|
|
|||
|
# Configuration de l’accès NTP pour assurer une bonne synchronisation de l’heure
|
|||
|
echo "Configuration du service NTP..."
|
|||
|
apt install ntp -y
|
|||
|
systemctl enable ntp
|
|||
|
systemctl start ntp
|
|||
|
|
|||
|
# Création d'un alias pour le mot de passe de l'utilisateur root (optionnel)
|
|||
|
echo "Modification de l'authentification root sur Proxmox..."
|
|||
|
cat <<EOF >> /etc/pve/priv/realm.cfg
|
|||
|
pam:root
|
|||
|
comment Proxmox root user
|
|||
|
EOF
|
|||
|
|
|||
|
# Affichage de l'adresse d'accès à Proxmox
|
|||
|
echo "L'installation et la configuration de Proxmox sont terminées."
|
|||
|
echo "Accédez à l'interface Proxmox via https://$PROXMOX_IP:8006/"
|
|||
|
echo "Le SSH est configuré sur le port $SSH_PORT."
|