Filtrage iptables par MAC

Bonjour,
En tant que voyageur, je suis amené à changer d’IP. Gérant quelques serveurs que je protège par un firewall filtrant les accès SSH par les IP, je suis amené à tomber le firewall ou y paramétrer ma nouvelle IP durant mon déplacement.
Ce serait donc plus pratique pour moi de filtrer par adresse MAC. J’ai déjà fait quelques tentatives sans succès.
La commande de base serait:

iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT

Encore faut-il donner la bonne adresse MAC. Me connectant à travers un routeur, dois je indiquer celle de mon routeur (ce qui serait intuile pour ce que je veux faire) ou de mon ordi ?

Pour avoir celle de mon ordi j’ai utilisé ipconfig qui mentionne un champ « ether » avec 6 hexadécimaux séparés par des « : ». Est-ce bien l’adresse MAC de l’interface avec lequel je conecte mon PC ?

J’ai tenté de trouver la MAC vue par un serveur en y lançant les commandes suivantes:

ping mon.ip.globale
arp -a

Mais arp ne mentionne pas mon IP.

Quelqu’un a-t-il déjà utilisé ce type de filtrage ? Est-ce réaliste ?

Mauvaise pioche. :laughing: Le MAC c’est on ne peut plus local.

Par définition, l’adresses MAC ne sert que que en fin de course, lorsque vous êtes quasiment arrivé à destination. Si on fait une analogie douteuse l’adresse IP pourrait être 12 bis impasse des Corbeaux, mais le facteur va mettre tout le courrier dans la boîte aux lettres à cette adresse et donc en pratique souvent déléguer au concierge la distribution finale. C’est le concierge qui va mettre le courrier de monsieur Martin du 3ième bâtiment cour dans la bonne boîte aux lettres, c’est lui qui connaît les « adresses MAC », pas le facteur.

local, voir le concierge.
Une solution plus réaliste serait de se baser sur des adresses IPV6 et de revenir à l’essence même d’un adressage IP point à point 'sans traduction NAT, un seul réseau, un appareil == une adresse IPv6 ).
En poussant à l’extrême ce concept, on pourrait imaginer que les adresses IP soient attribuées en fonction de la position géographique de l’équipement. (un point d’accès Wifi par exemple, se voit attribuer une plage d’IP pour les appareils pris en charge, il attribue une IP à chaque demande acceptée ).
Le problème fondamental d’un tel modèle est que cela permettrait un flicage immédiat des objets connectés.
Pour en revenir à votre problématique, il faudrait pouvoir associer une IPv6 fixe à l’ordinateur que vous utilisez en déplacement.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« Un ordinateur c’est comme un frigo : on le branche et ça marche. »
Laurent Serano Directeur informatique, réunion Délégués du Personnel 2010

Merci pour ces éclaircissements. Je comprends maintenant pourquoi ça ne fonctionnait pas.

Quels sont les moyens d’associer une IPV6 à mon PC ?

La seule façon que je connais de faire ça est un VPN. C’est ce que j’ai actuellement sur le PC qui m’a servi à publier cette réponse.
L’IPv6, c’est génial, mais ce n’est pas miraculeux, le réseau doit quand même savoir quelle route utiliser pour joindre une adresse. Du coup, tu ne peux pas avoir la même adresse IP si tu changes de routeur. Pour filer l’analogie de @littlejohn75, c’est comme si on ne mettais ton nom et une adresse fixe et que le facteur devait trouver de lui-même où tu te trouves au moment de recevoir le courrier (chez toi, à ton travail, en vacances). En fait, le VPN, ce serait un peu comme si ton concierge recevait ton courrier et venait te le livrer où tu te trouves.

Si je comprends bien, je devrais installer openvpn sur un de mes serveurs, déclarer mes portables comme clients de ce serveur et par la suite faire tous les accès via ce serveur ?

Une fois installé tout ça, ce serait transparent ? Lorsque je lancerais ssh ou firefox sur mes portables ça passerait toujours systématiquement par mon serveur VPN, avec son IP ? Faudrait alors paramétrer les firewalls de mes serveurs pour seulement laisser passer l’ip de mon serveur VPN ?

Oui, ou alors, tu fais comme moi et tu intègres directement ton serveur dans le VPN, soit via les firewalls s’il gèrent ça, soit sur le serveur directement.
Sinon, tu peux interdire l’authentification par mot de passe sur ton serveur SSH et limiter le nombre de connexion possible par unité de temps afin de limiter la vitesse d’attaque par force brute. Je te conseille aussi de refuser les connexions en tant que root.

On peut gérer un VPN uniquement par les firewalls mais aussi par le serveur ? Autrement dit un VPN peut être défini à chaque noeud ou sur une passerelle ? Je crois que je ne comprends pas bien ce qu’est un VPN. Peux tu m’indiquer une doc technique correcte sur le sujet ?

Ou alors tu utilise une connexion SSH utilisant des certificats avec une passphrase. Quelque soit l’endroit, sans certificat adéquat la connexion est refusée. ensuite c’est le login / password habituel.
du coup pas besoin de VPN.

1 J'aime

Voilà, c’est ça, utilise des paramètres sécurisés sur ton serveur SSH au lieu de rajouter des sécurités qui peuvent te bloquer un accès désiré. La base de la base, c’est refuser l’authentification par mot de passe et refuser les connexions en tant que root. Après, tu peux juste ajouter une règle de pare-feu pour limiter le nombre de tentative de connexion, mais je ne sais pas quel pare-feu tu utilises.

J’ai déjà l’authentification par clé SSH (sans MP), refus des connexions en tant que root, fail2ban qui gère les tentatives de connexions ratées. Je surprotège peut-être un peu mes serveurs, donc, avec en plus un parefeu fait maison qui limite les accès par IP…
Mais j’aila réponse à ce post, à savoir qu’on ne peut filtrer par MAC sur le réseau global.

C’est en soit un risque car si on te pique la clé/certificat sans que tu ne t’en rende compte, la partie certificat n’a plus rien d’utile. Le MP en prime assure qu’un voleur de clef ne peut s 'en servir.
Et sauf erreur de ma part, faire du brut force sur le MP d’un certrificat , ca ne marche pas très bien.

C’est vrai, mais entrer un MP à chaque accès SSH que je fais est un genre d’insulte à ma feignantise…
Quels sont les moyens réels de me piquer la clé, hormis de s’emparer de mon ordi de force ?

C’est pour ça qu’il faut protéger ta clef avec un mot de passe.

ssh-agent est ton ami.

Il n’y a pas de problème à avoir une clé privée sans mot de passe (c’est même parfois indispensable pour des scripts de maintenance/sauvegarde) si elle est conservée en lieu sûr. Autrement dit cela dépend tu niveau de sécurité de la machine où se trouve ta clé privée.

2 J'aime