Blog

  • Comment configurer nftables pour un serveur web

    Dans cet article, nous allons voir comment installer et configurer nftables sur une distribution Linux Debian 12 pour sécuriser un serveur web en autorisant uniquement les ports 443 (HTTPS) et 22 (SSH).

    Installation de nftables

    Sur Debian 12, nftables est installé par défaut. Si ce n’est pas le cas, vous pouvez l’installer avec la commande suivante :

    sudo apt update && sudo apt install nftables -y

    Ensuite, assurez-vous que le service nftables est activé au démarrage :

    sudo systemctl enable nftables

    Et démarrez le service :

    sudo systemctl start nftables

    Configuration de nftables

    Nous allons maintenant créer une configuration de base qui :

    • Bloque tout le trafic entrant par défaut
    • Autorise les connexions SSH (port 22)
    • Autorise les connexions HTTPS (port 443)
    • Autorise le trafic sortant

    Ouvrez le fichier de configuration principal :

    sudo nano /etc/nftables.conf

    Remplacez le contenu par :

        
    #!/usr/sbin/nft -f

    table inet filter {
    chain input {
    type filter hook input priority 0;
    policy drop;

    # Autoriser les connexions déjà établies
    ct state established,related accept;

    # Autoriser le trafic en provenance de localhost
    iif lo accept;

    # Autoriser SSH (port 22)
    tcp dport 22 accept;

    # Autoriser HTTPS (port 443)
    tcp dport 443 accept;
    }

    chain forward {
    type filter hook forward priority 0;
    policy drop;
    }

    chain output {
    type filter hook output priority 0;
    policy accept;
    }
    }

    Explication des commandes

    • table inet filter : Crée une table nommée « filter » pour IPv4 et IPv6.
    • chain input : Définition des règles pour le trafic entrant.
    • policy drop : Par défaut, tout le trafic entrant est bloqué.
    • ct state established,related accept : Autorise les connexions déjà établies.
    • iif lo accept : Autorise le trafic provenant de l’interface loopback.
    • tcp dport 22 accept : Autorise les connexions entrantes sur le port 22 (SSH).
    • tcp dport 443 accept : Autorise les connexions entrantes sur le port 443 (HTTPS).
    • chain forward : Bloque le trafic redirigé par la machine.
    • chain output : Autorise tout le trafic sortant.

    Application des règles

    Pour appliquer les règles définies, rechargez nftables :

    sudo systemctl restart nftables

    Vérifiez que les règles sont bien en place :

    sudo nft list ruleset

    Conclusion

    Vous avez maintenant un pare-feu fonctionnel avec nftables qui protège votre serveur en autorisant uniquement SSH et HTTPS. Cette configuration peut être adaptée en fonction de vos besoins.

  • Comment configurer Oxidized pour l’externalisation de fichier de configuration

    Oxidized est un outil open-source permettant de récupérer les configurations des équipements réseaux tels que les switches, routeurs et pare-feux. Dans cet article, nous allons installer Oxidized et configurer le serveur pour récupérer les configurations de deux switches Cisco en utilisant un fichier `router.db` pour spécifier les IP des équipements.

    • Switch 1 : 192.168.10.1
    • Switch 2 : 192.168.10.2

    Prérequis

    • Un serveur Linux
    • Accès SSH aux switches Cisco
    • Installation de Ruby et Git
    • Accès à un répertoire où les configurations seront stockées

    Étapes d’installation

    1. Installation des dépendances

    Avant d’installer Oxidized, il nous faut installer Ruby et Git. Exécutez les commandes suivantes :

    sudo apt update
    sudo apt install -y ruby git build-essential libsqlite3-dev libssl-dev
    

    2. Installation d’Oxidized

    Clonez le dépôt Oxidized depuis GitHub et installez-le :

    git clone https://github.com/ytti/oxidized.git
    cd oxidized
    gem install oxidized
    

    3. Configuration d’Oxidized

    Nous allons maintenant configurer Oxidized pour qu’il puisse se connecter à vos switches Cisco en utilisant un fichier `router.db` pour stocker les informations des équipements. Créez un fichier de configuration dans le répertoire `~/.config/oxidized/` (si ce répertoire n’existe pas, créez-le) :

    mkdir -p ~/.config/oxidized
    nano ~/.config/oxidized/config
    

    Ajoutez la configuration suivante pour définir le modèle et le répertoire de stockage des configurations :

    ---
    username: votre_utilisateur_ssh
    password: votre_mot_de_passe_ssh
    model: cisco
    interval: 3600
    use_syslog: false
    log: ~/.config/oxidized/logs
    output: ~/.config/oxidized/configs
    

    Ensuite, créez le fichier `router.db` pour stocker les informations des switches. Ce fichier doit être situé dans le répertoire `~/.config/oxidized/` :

    nano ~/.config/oxidized/router.db
    

    Dans ce fichier, ajoutez les IP des switches Cisco :

    192.168.10.1:ios
    192.168.10.2:ios
    

    4. Lancement d’Oxidized

    Une fois la configuration terminée, vous pouvez démarrer Oxidized avec la commande suivante :

    oxidized
    

    Oxidized lira le fichier `router.db`, se connectera aux switches et récupérera leurs configurations à intervalles réguliers, les enregistrant dans le répertoire `~/.config/oxidized/configs`.

    Vérification des configurations récupérées

    Les configurations des switches seront stockées sous forme de fichiers dans le répertoire spécifié. Vous pouvez consulter ces fichiers pour voir les configurations récupérées.

    ls ~/.config/oxidized/configs
    

    Chaque fichier sera nommé avec le nom que vous avez spécifié dans le fichier `router.db`, comme `your_switch_1` et `your_switch_2`.

    Conclusion

    Vous avez maintenant installé et configuré un serveur Oxidized pour récupérer automatiquement les configurations de vos switches Cisco à partir du fichier `router.db`. Ce processus vous permet de centraliser et automatiser la sauvegarde des configurations de vos équipements réseau. Vous pouvez également personnaliser les paramètres d’Oxidized pour ajouter plus de switches ou ajuster la fréquence des sauvegardes.