Bonjour,
j'ai récémment pris une vm chez gandi, et voulant bien faire j'ai voulu commencer par mettre en place un parefeu. Mais voila, impossible de laisser ssh ouvert. Je précise que je n'ai qu'une adresse ipv6, du coup j'utilise ip6tables.

J'ai tenté de savoir si ssh écouter sur un autre port par défaut, mais la commande ss -ral|grep ssh me retourne :

tcp    LISTEN     0      128     *:ssh                   *:*                    
tcp    LISTEN     0      128    :::ssh                  :::*

si je met -n en argument, ssh est remplacé par 22.

voila mon script.

#!/bin/bash

# reset all rules
ip6tables -F

# Close all
ip6tables -P OUTPUT DROP
ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP

# do not close etablished connection
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH
ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT

ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A OUTPUT -i lo -j ACCEPT

Si quelqu'un a une idée je suis preneur.

Merci d'avance

7 réponses


carnival187
Auteur
Réponse acceptée

Il m'aura fallu 4 mois, mais j'ai fini par trouvé (plus efficace tu meurt...).

L'ordre n'a effectiivement pas d'importance, mais il en a pour le regles sur les CHAINES. donc soit mettre la regle ssh en premier, soit mettre -I (i majuscule) à la place de -A.

Un nouveau lien dans mes favoris : https://www.malekal.com/tutoriel-iptables/

Salut,
Ta règle ssh laisse le port ouvert: ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT.

Une bonne pratique qui évite les scans c'est de changer le port ssh dans /etc/ssh/sshd_config.

Sinon si tu connais les ip sources : ip6tables -A INPUT -s Ton:IP -p tcp --dport 22 -j ACCEPT

Pour voir les tentatives de connexion en temps réel : tail -f /var/log/auth.log.

Et tu ajoutes fail2ban avec Jail ssh.

re,
merci de prendre le temps de me répondre.
Tu me dis : "Ta règle ssh laisse le port ouvert", n'est-ce pas le but ? Et si c'est le cas, pourquoi ça me coupe l'acces à mon serveur?
Du coup jvais tenter de changer le port ssh a adapter ma config iptables en fonction.
Si je n'ai plus acces à ma machine, je ne peux plus voir les tentative en temps réel ?
Ma vm est bloquée pour l'instant, je vais d'autre tentative dès que possible.
Encore merci.

Bonjour, l´ordre des commandes est très important. il faut toujour commencer par les exceptions (ouverture de port) puis les generalites.

Dans ton cas il faut simplement inverser ton script (deplacer les drop a la fin)

Salut,

Ne change pas l'ordre des règles. Les règles suivantes sont la policy par défaut des chaines

ip6tables -P OUTPUT DROP
ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP

la dernière règle pour l'adresse de loopback est pas bonne, tu auras une erreur

ip6tables -A OUTPUT -o lo -j ACCEPT

Bonjour,
D'abord merci pour vos réponses (2 mois plus tard...). Du coup L'ordre n'a effectiivement pas d'importance. je ne désespere pas et continue à me renseigner.

Peut-être un début de piste : https://debian-handbook.info/browse/fr-FR/stable/sect.ipv6.html#sect.ipv6-tunneling

la suite bientot j'espere.

Toujours aucune solution?

Si puisqu'il a marqué son sujet comme résolu.