Ajouter secure_ubuntu2204.sh
This commit is contained in:
		
							
								
								
									
										78
									
								
								secure_ubuntu2204.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								secure_ubuntu2204.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,78 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Variables
 | 
				
			||||||
 | 
					SSH_PORT=2222 # Choisissez un port SSH personnalisé si souhaité
 | 
				
			||||||
 | 
					USER_NAME="user" # Nom d'utilisateur non-root (à remplacer)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Mise à jour des paquets et des dépendances
 | 
				
			||||||
 | 
					echo "Mise à jour des paquets..."
 | 
				
			||||||
 | 
					apt update && apt upgrade -y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Création d'un nouvel utilisateur non-root
 | 
				
			||||||
 | 
					echo "Création d'un utilisateur non-root..."
 | 
				
			||||||
 | 
					adduser $USER_NAME
 | 
				
			||||||
 | 
					usermod -aG sudo $USER_NAME # Ajout de l'utilisateur au groupe sudo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Désactivation de l'accès SSH pour root et configuration d'un port personnalisé
 | 
				
			||||||
 | 
					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 reload sshd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Configuration de l'authentification par clé SSH
 | 
				
			||||||
 | 
					echo "Configuration de l'authentification par clé SSH..."
 | 
				
			||||||
 | 
					mkdir -p /home/$USER_NAME/.ssh
 | 
				
			||||||
 | 
					cp ~/.ssh/authorized_keys /home/$USER_NAME/.ssh/authorized_keys
 | 
				
			||||||
 | 
					chown -R $USER_NAME:$USER_NAME /home/$USER_NAME/.ssh
 | 
				
			||||||
 | 
					chmod 700 /home/$USER_NAME/.ssh
 | 
				
			||||||
 | 
					chmod 600 /home/$USER_NAME/.ssh/authorized_keys
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Installation et configuration d’UFW (Uncomplicated Firewall)
 | 
				
			||||||
 | 
					echo "Installation et configuration d'UFW..."
 | 
				
			||||||
 | 
					apt install ufw -y
 | 
				
			||||||
 | 
					ufw default deny incoming
 | 
				
			||||||
 | 
					ufw default allow outgoing
 | 
				
			||||||
 | 
					ufw allow $SSH_PORT/tcp # Autorise le port SSH personnalisé
 | 
				
			||||||
 | 
					ufw allow http
 | 
				
			||||||
 | 
					ufw allow https
 | 
				
			||||||
 | 
					ufw enable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Installation et configuration de Fail2ban
 | 
				
			||||||
 | 
					echo "Installation de Fail2ban..."
 | 
				
			||||||
 | 
					apt install fail2ban -y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Création d'un fichier de configuration pour protéger SSH
 | 
				
			||||||
 | 
					echo "Configuration de Fail2ban pour SSH..."
 | 
				
			||||||
 | 
					cat <<EOF > /etc/fail2ban/jail.local
 | 
				
			||||||
 | 
					[DEFAULT]
 | 
				
			||||||
 | 
					bantime = 10m
 | 
				
			||||||
 | 
					findtime = 10m
 | 
				
			||||||
 | 
					maxretry = 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[sshd]
 | 
				
			||||||
 | 
					enabled = true
 | 
				
			||||||
 | 
					port = $SSH_PORT
 | 
				
			||||||
 | 
					logpath = /var/log/auth.log
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Redémarrage de Fail2ban pour appliquer la configuration
 | 
				
			||||||
 | 
					systemctl restart fail2ban
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Désactivation de l’ICMP (ping) 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Suppression des services inutiles (optionnel)
 | 
				
			||||||
 | 
					echo "Suppression des services inutiles..."
 | 
				
			||||||
 | 
					apt purge telnet -y
 | 
				
			||||||
 | 
					apt purge rsh-client -y
 | 
				
			||||||
 | 
					apt purge rsh-redone-client -y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Hardening des permissions et des protections système
 | 
				
			||||||
 | 
					echo "Application de paramètres de sécurité supplémentaires..."
 | 
				
			||||||
 | 
					echo "umask 027" >> /etc/profile
 | 
				
			||||||
 | 
					echo "umask 027" >> /etc/bash.bashrc
 | 
				
			||||||
 | 
					chmod 700 /boot
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Configuration de sécurité terminée avec succès."
 | 
				
			||||||
		Reference in New Issue
	
	Block a user