Skip to content

Crée un routeur sous Linux

Configuration des deux interfaces

L'objectif est de crée un routeur sous une distribution Linux qui a déja internet est qui est dans un réseau local. Configuration des deux interfaces :

Nous travaillerons ici sur l'interface "eth0" qui sera orientée vers le réseau simulant une réseau externe "WAN" en 192.168.1.0/24 et une seconde interface "eth1" qui sera vers notre "LAN" en 192.168.10.0/24.

Aprés vous être assuré que votre machine dispose bien de deux interfaces, il faut se rendre dans le fichier "/etc/network/interfaces" pour configurer nos interfaces réseaux :

capture_d'écran_2025-02-03_181028.png

On peut faire la commande suivante

sudo systemctl restart networking 

on peut ensuite vérifier via la commande

ip a

activer le port forwarding :

Est sous la forme d'un option dans le fichier "/etc/sysctl.conf", on devra y chercher la ligne suivante afin de la dé-commenter : capture_d'écran_2025-02-03_181312.png

On doit ensuite activer le NAT :

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Nous pourrons vérifier notre iptables en faisant la commande suivante :

iptables -L -t nat

Si on a d'autre rêgle iptables qui rentre en conflit on peut filtrer par adress ip :

sudo iptables -t nat -A POSTROUTING -s 192.10.253.0/24 -o ens18 -j MASQUERADE

On peut ensuite sauvegarder la config via cette ligne :

iptables-save > /etc/iptables_rules.save On se rend ensuite à nouveau dans notre fichier de configuration réseau "/etc/network/interfaces" et on ajoute cette ligne à la fin de la configuration de notre interface eth0 : post-up iptables-restore < /etc/iptables_rules.save

Script Ansible

Tip

Ne contient pas la configuration des carte réseau

---
- name: Configure iptables-masquerade.service
  hosts: oracle
  become: yes
  vars:
    email_recipient: "user.name@albt.org"
    smtp_host: "vega.albt.org"
    smtp_port: 26
  tasks:
    - block:
      - name: Crée le service iptables-masquerade.service
        copy:
          dest: /etc/systemd/system/iptables-masquerade.service
          content: |
            [Unit]
            Description=Appliquer la règle iptables de masquerade
            After=network.target
            [Service]
            Type=oneshot
            ExecStart=/sbin/iptables -t nat -A POSTROUTING -s 10.0.250.0/24 -o ens18 -j MASQUERADE
            [Install]
            WantedBy=multi-user.target
        notify:
          - Reload systemd
          - Enable and start iptables-masquerade service
      - name: Activer le mode route dans /etc/sysctl.conf
        lineinfile:
          dest: /etc/sysctl.conf
          line: "net.ipv4.ip_forward=1"
          state: present
        notify:
          - Reload sysctl
      rescue:
        - name: Envoyer une alerte par mail en cas d'erreur
          mail:
            host: "{{ smtp_host }}"
            port: "{{ smtp_port }}"
            to: "{{ email_recipient }}"
            subject: "Échec du job de maintenance Ollama sur {{ inventory_hostname }}"
            body: |
              Le job de maintenance orcle sur le serveur {{ inventory_hostname }} a rencontré une erreur.
              Tâche échouée : {{ ansible_failed_task.name }}
              Résultat de l'échec : {{ ansible_failed_result }}
  handlers:
    - name: Reload systemd
      command: systemctl daemon-reload
    - name: Enable and start iptables-masquerade service
      command: systemctl enable --now iptables-masquerade.service
    - name: Reload sysctl
      command: sysctl -p /etc/sysctl.conf