web-dev-qa-db-fra.com

Ajouter une règle dans iptables dans debian pour ouvrir un nouveau port

J'essaie d'ouvrir le port 3306 dans iptables dans mon système Debian pour permettre l'accès au serveur MySQL. Pour lequel j'ai entré cette commande:

root@debian:/# Sudo iptables -A INPUT -p tcp --dport 3306 ACCEPT
root@debian:/# iptables-save

J'ai entré la nouvelle connexion et elle a été enregistrée dans iptables car je peux voir la nouvelle règle dans la liste iptables générée par la commande iptables-save.

Cependant, ce système Debian est exécuté sur un VM sous Windows7 et je ne parviens pas à établir une connexion telnet de Windows à ce port. Je ne sais pas exactement où je suis censé rechercher la solution à ce problème.

24
EternallyCurious

À propos de votre ligne de commande:

root@debian:/# Sudo iptables -A INPUT -p tcp --dport 3306 --jump ACCEPT
root@debian:/# iptables-save
  • Vous êtes déjà authentifié en tant que root alors Sudo y est redondant.

  • Vous manquez le -j ou --jump juste avant le paramètre ACCEPT (ce n’était qu’une faute de frappe et vous l’insérez correctement).

à propos de votre question:

Si vous insérez correctement la règle iptables telle que vous l'avez indiquée dans la question, le problème est peut-être lié à l'hyperviseur (fournisseur de machine virtuelle) que vous utilisez.

Si vous fournissez le nom de l'hyperviseur (VirtualBox, VMWare?), Je peux vous guider, mais voici quelques suggestions que vous pouvez essayer en premier:

vérifiez les paramètres de votre réseau vmachine et:

  • s'il est défini sur NAT, vous ne pourrez pas vous connecter depuis votre ordinateur de base à vmachine.

  • s'il est paramétré sur Hébergé, vous devez d'abord configurer ses paramètres réseau. Il consiste généralement à leur fournir une adresse IP comprise entre 192.168.56.0/24, car il s'agit de la valeur par défaut utilisée par les hyperviseurs.

  • s'il est défini sur Bridge, identique à Hosted, mais vous pouvez le configurer chaque fois que la plage IP est logique pour votre configuration.

J'espère que cela t'aides.

45
diosney

(Je suppose que vous avez conclu que c’est un problème iptables en supprimant complètement le pare-feu (iptables -P INPUT ACCEPT; iptables -P OUTPUT ACCEPT; iptables -F) et vous avez confirmé que vous pouvez vous connecter au serveur MySQL à partir de votre ordinateur Windows? )

Une règle précédente de la table INPUT est probablement le rejet ou la suppression du paquet. Vous pouvez contourner ce problème en insérant la nouvelle règle en haut, bien que vous souhaitiez peut-être revoir vos règles existantes pour voir si c'est judicieux:

iptables -I INPUT 1 -p tcp --dport 3306 -j ACCEPT

Notez que iptables-save ne sauvegardera pas la nouvelle règle de manière persistante (c.-à-d. Lors des redémarrages) - vous devrez trouver quelque chose d'autre pour cela. Mon chemin habituel est de stocker la sortie iptables-save dans un fichier (/etc/network/iptables.rules ou similaire), puis de la charger avec une instruction de pré-installation dans/etc/network/interfaces).

9
user3392484