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."
|