Serveur Debian

Administration con centré . com !

Serveur Debian

Debian :

                apt update && apt upgrade -y
                apt update && apt full-upgrade -y
                apt autoremove -y
                apt clean
                timedatectl set-timezone Europe/Paris
                timedatectl status
                #Désinstaller les paquets liés au bureau 
                apt purge gnome* gnome-shell* gdm3 # Debian avec GNOME 
                apt purge xfce4* lightdm # KDE/Plasma 
                apt purge task-gnome-desktop task-xfce-desktop task-kde-desktop # les méta-paquets du “tasksel”
                apt autoremove --purge
                apt clean

                nano /etc/default/grub
                GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" >> text   # démarrera en console (TTY).



apt install sudo curl git unzip ufw htop net-tools -y # # Outils de base

sudo → permet d’exécuter des commandes avec les droits root sans passer en root complet.
curl → outil pour télécharger ou envoyer des requêtes HTTP (API, scripts).
git → gestionnaire de version (cloner ton code, déployer).
unzip → décompression de fichiers .zip.
ufw (Uncomplicated Firewall) → pare-feu simple à configurer.
htop → monitoring interactif CPU/RAM/processus.
net-tools → utilitaires réseau anciens mais encore utiles (ifconfig, netstat).
-y → répond “oui” automatiquement aux confirmations d’installation.

apt install build-essential pkg-config -y   # Compilations & perf
build-essential → paquet qui installe gcc, g++, make et outils nécessaires pour compiler des logiciels.
pkg-config → utilitaire pour trouver les chemins et options de compilation des bibliothèques (utile si tu compiles OpenSwoole, extensions PHP, etc.).

timedatectl set-timezone Europe/Paris # Fuseau horaire et synchronisation de l’horloge
apt install ntp -y # NTP (Network Time Protocol) pour synchroniser automatiquement l’horloge du serveur avec des serveurs de temps


              
cd ~ - cd $HOME - pwd

IP Static pour un serveur local

              ip -4 addr
              ip route
              nslookup google.com

              systemctl status networking
              ping -c 4 google.com
              chmod -R
              su -  #connexion a l'utilisateur système root cela évite de se tapé a chaque début de ligne !

              
                          
Edition du fichier
            cp /etc/network/interfaces /etc/network/interfaces-old # sauvegarde du fichier
            nano /etc/network/interfaces
            
              #iface enp0s3 inet dhcp
              iface enp0s3 inet static
              address 192.168.1.250/24
              dns-nameservers 212.27.40.240 212.27.40.241
              post-up iptables-restore < /etc/iptables.up.rules
              post-up ip6tables-restore < /etc/ip6tables.up.rules
            
            systemctl restart networking
            systemctl status networking
            reboot
          

Bienvenue !

message statique simple de bienvenue, Histoire d'identifier que c'est le bon serveur!!


textfancy.com
patorjk.com
        ______                                                                    __               ________                     __     
        /      \                                                                  |  \             |        \                   |  \    
        |  ▓▓▓▓▓▓\ ______   ______  __     __  ______  __    __  ______        ____| ▓▓ ______       \▓▓▓▓▓▓▓▓ ______   _______ _| ▓▓_   
        | ▓▓___\▓▓/      \ /      \|  \   /  \/      \|  \  |  \/      \      /      ▓▓/      \        | ▓▓   /      \ /       \   ▓▓ \  
        \▓▓    \|  ▓▓▓▓▓▓\  ▓▓▓▓▓▓\\▓▓\ /  ▓▓  ▓▓▓▓▓▓\ ▓▓  | ▓▓  ▓▓▓▓▓▓\    |  ▓▓▓▓▓▓▓  ▓▓▓▓▓▓\       | ▓▓  |  ▓▓▓▓▓▓\  ▓▓▓▓▓▓▓\▓▓▓▓▓▓  
        _\▓▓▓▓▓▓\ ▓▓    ▓▓ ▓▓   \▓▓ \▓▓\  ▓▓| ▓▓    ▓▓ ▓▓  | ▓▓ ▓▓   \▓▓    | ▓▓  | ▓▓ ▓▓    ▓▓       | ▓▓  | ▓▓    ▓▓\▓▓    \  | ▓▓ __ 
        |  \__| ▓▓ ▓▓▓▓▓▓▓▓ ▓▓        \▓▓ ▓▓ | ▓▓▓▓▓▓▓▓ ▓▓__/ ▓▓ ▓▓          | ▓▓__| ▓▓ ▓▓▓▓▓▓▓▓       | ▓▓  | ▓▓▓▓▓▓▓▓_\▓▓▓▓▓▓\ | ▓▓|  \
        \▓▓    ▓▓\▓▓     \ ▓▓         \▓▓▓   \▓▓     \\▓▓    ▓▓ ▓▓           \▓▓    ▓▓\▓▓     \       | ▓▓   \▓▓     \       ▓▓  \▓▓  ▓▓
        \▓▓▓▓▓▓  \▓▓▓▓▓▓▓\▓▓          \▓     \▓▓▓▓▓▓▓ \▓▓▓▓▓▓ \▓▓            \▓▓▓▓▓▓▓ \▓▓▓▓▓▓▓        \▓▓    \▓▓▓▓▓▓▓\▓▓▓▓▓▓▓    \▓▓▓▓ 
          nano /etc/motd
        
messages dynamiques : /etc/update-motd.d/ messages de session utilisateur : dans /etc/profile ou .bashrc ou .profile echo "Bienvenue sur le serveur !"

Fish Shell

Console ludique en couleur

apt update
      apt install fish
      chsh -s /usr/bin/fish
      fish
      fishshell.com

Explorez votre arborescence Linux avec tree

apt update
    apt-get install tree
    tree
    tree -d
    tree -a -u -g

Protéger son serveur ?

La sécurisation d'un serveur est une tâche cruciale

  • Pare-feu (accès non autorisés): UFW
  • Tentatives intrusion (activités malveillantes bannit les adresses IP) : Fail2Ban
  • Antivirus (logiciels et fichier malveillants) : ClamAV
  • Surveillance (état de santé du serveur) : Nagios, Zabbix ou Prometheus
  • Sécurisation des accès : SSH & Port
  • Mises à jour (correctifs de sécurité)
  • Sécurité des applications web (injections SQL...) : ModSecurity

Firewall Un pare-feu ? UFW (pare-feu)

UFW, est un utilitaire conçu pour simplifier la gestion du pare-feu intégré à Debian. Plutôt que de recourir à des commandes complexes pour modifier directement les iptables, UFW permet de gérer les règles du pare-feu de manière intuitive et simplifiée.

UFW protège votre serveur des accès non autorisés en filtrant les connexions réseau.
WAF protège vos applications web des attaques courantes comme les injections SQL, les XSS, et les attaques de force brute.

	  
	  
	 

        ss -ap  #afficher sockets réseau actives
        apt install net-tools
		apt-get install ufw -y
		
		ufw allow ssh

     
        ufw allow 2222/tcp    			  # changé le port SSH (ex : 2222) :
		
		
		ufw allow OpenSSH                 #pour ne pas te faire verrouiller hors du serveur
        #ufw allow ssh               #Autorise les connexions entrantes sur le port SSH (port 22 par défaut)
        #ufw delete allow 22          
		 ufw delete 3
		  ufw reset                  #réinitialiser entièrement

        ufw default allow outgoing   # Politique par défaut pour autoriser toutes les connexions sortantes
        ufw default deny incoming    # Politique par défaut pour refuser toutes les connexions entrantes
        ufw app list                 # Liste toutes les applications disponibles

        ufw status numbered          # Affiche l'état actuel de UFW avec les règles numérotées
        ufw status verbose			 # Vérifie que tout est OK


        ufw enable                   # Active le pare-feu UFW
        ufw disable                  # Désactive complètement UFW
		systemctl start ufw          # le service peut tourner sans filtrer quoi que ce soit)
        systemctl restart ufw
        systemctl stop ufw

        ufw allow 80/tcp   # HTTP
        ufw allow 443/tcp  # HTTPS
        ufw allow 21/tcp
        ufw allow 20/tcp
        ufw allow 49156/tcp

#  Ports réellement à l’écoute 
ss -tuln  
netstat -tuln




      

Installation de Fail2ban



     # cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local   # jail.conf (c'est écrasé à chaque mise à jour).
     # nano /etc/fail2ban/jail.local  #Créer la config personnalisée


rm -rf /etc/fail2ban
apt-get purge --auto-remove fail2ban -y

apt-get install fail2ban -y
systemctl restart fail2ban
systemctl status fail2ban


apt-get update && apt-get install fail2ban -y
systemctl restart fail2ban
systemctl enable fail2ban
systemctl status fail2ban


Crée une config propre par servive

nano /etc/fail2ban/jail.d/ssh.conf
[sshd]
enabled = true
port = 22
logpath = /var/log/auth.log
maxretry = 5
findtime = 600
bantime = 3600
ignoreip = 127.0.0.1 192.168.1.0/24  86.202.148.239


fail2ban-client status sshd
	  
	  


Fail2ban & UFW


      nano /var/run/fail2ban/fail2ban.sock








Désinstallation complète de Fail2Ban  & les fichiers résiduels (au cas où)
apt-get purge --auto-remove fail2ban -y
rm -rf /etc/fail2ban
rm -rf /etc/fail2ban
rm -rf /var/log/fail2ban.log

cat /etc/fail2ban/jail.d/ssh.conf
[sshd]
enabled = true
port = 22
logpath = /var/log/auth.log
maxretry = 5
findtime = 600
bantime = 3600
ignoreip = 127.0.0.1 192.168.1.42


      
        [DEFAULT]
        banaction = ufw
        bantime  = 10h    # 10 heures de 
        findtime  = 10m
        maxretry = 5

        [ufw]
        enabled = true
        port = all
        filter = ufw
        logpath = /var/log/ufw.log
        maxretry = 3

        [sshd]
        enabled = true
        port = ssh
        filter = sshd
        logpath = /var/log/auth.log
        maxretry = 5

      
      systemctl restart fail2ban
      systemctl restart ufw
      systemctl stop postgresql
      systemctl stop ufw
      systemctl start fail2ban
      systemctl start ufw

Commande	Sert à…	Niveau
systemctl status fail2ban			Vérifie que le service tourne	OS
fail2ban-client status				Vérifie que Fail2Ban fonctionne bien	App
fail2ban-client status sshd			Voit les détails de la jail sshd	Fine


      systemctl status fail2ban
      fail2ban-client status
      apt remove --purge fail2ban
      tail -f  /var/log/fail2ban.log

      systemctl start fail2ban
      systemctl status fail2ban


      systemctl restart fail2ban
      ls -l /var/run/fail2ban
      mkdir -p /var/run/fail2ban
      chown -R root:root /var/run/fail2ban
      chmod 755 /var/run/fail2ban
      journalctl -xeu fail2ban
      ls -l /var/run/fail2ban/fail2ban.sock
      apt remove --purge fail2ban
      apt install fail2ban
      rm -rf /etc/fail2ban




Console de surveillance : Htop

Console de surveillance avec graphiques représentant l'activité des processeurs et la consommation totale de mémoire

  apt-get install htop
  htop
  [F2] accéder aux options
  
tail -f /var/log/fail2ban.log tail -f /var/log/monit.log tail -f /var/log/vsftpd.log # Vide fichier de log cat /dev/null > /var/log/vsftpd.log truncate -s 0 /var/log/vsftpd.log echo "" > /var/log/vsftpd.log