web-dev-qa-db-ja.com

debianのiptablesにルールを追加して新しいポートを開く

Debianシステムのiptablesでポート3306を開いて、MySQLサーバーへのアクセスを許可しようとしています。私はこのコマンドを入力しました:

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

新しい接続を入力すると、iptables-saveコマンドで生成されたiptablesリストに新しいルールが表示されるため、iptablesに保存されました。

ただし、このdebianシステムはWindows7上でVMで実行されているため、Windowsからこのポートにtelnetで接続できません。

24

コマンドラインについて:

root@debian:/# Sudo iptables -A INPUT -p tcp --dport 3306 --jump ACCEPT
root@debian:/# iptables-save
  • あなたはすでにrootとして認証されているので、Sudoはそこで冗長です。

  • ACCEPTパラメータの直前に-jまたは--jumpがありません(これはタイプミスであり、正しく挿入しているためです)。

質問について:

iptablesルールを質問で指摘したとおりに正しく挿入している場合、問題は使用しているハイパーバイザー(仮想マシンプロバイダー)に関連している可能性があります。

ハイパーバイザー名(VirtualBox、VMWare?)を提供する場合、これについてさらにガイドできますが、最初に試すことができるいくつかの提案があります。

vmachineのネットワーク設定を確認し、次のことを行います。

  • nATに設定されている場合、ベースマシンからvmachineに接続できません。

  • hostedに設定されている場合、最初にネットワーク設定を構成する必要があります。通常、ハイパーバイザーがこれに使用するデフォルトであるため、192.168.56.0/24の範囲のIPを提供する必要があります。

  • hostedと同じようにBridgeに設定されている場合、IP範囲が構成に適している場合はいつでも構成できます。

お役に立てれば。

45
diosney

(ファイアウォールを完全に削除することでiptablesの問題であると結論付けたと仮定し(iptables -P INPUT ACCEPT; iptables -P OUTPUT ACCEPT; iptables -F)、WindowsボックスからMySQLサーバーに接続できることを確認しましたか? )

INPUTテーブルの以前のルールは、おそらくパケットの拒否またはドロップです。新しいルールを上部に挿入することで回避できますが、既存のルールを確認して、それが適切かどうかを確認することもできます。

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

Iptables-saveは新しいルールを永続的に保存しないことに注意してください(つまり、再起動後)-そのためには何か他のものを見つけ出す必要があります。私の通常のルートは、iptables-saveの出力をファイル(/etc/network/iptables.rulesなど)に保存してから、/ etc/network/interfacesにpre-upステートメントをロードします。

9
user3392484