web-dev-qa-db-ja.com

これらのファイアウォールルールでSSHを使用できないのはなぜですか? [WINDOWSホスト]

現在、Windows10ホストでSSH経由でLinuxMintゲストに接続しようとしています。より良い言い方をすれば、私は特定のファイアウォールルールを念頭に置いてゲストに正常に接続しようとしています。

Virtual Boxを使用して、LinuxMint仮想マシンのホストオンリーアダプターを有効にしました。

特定のすべての許可ルールを使用してファイアウォールを介してポート22を通過するすべてのトラフィックを許可すると、WindowsホストからSSHを使用してゲストマシンに正常に接続できます。

ただし、Linuxゲストにのみ SSH用のmyIPを受け入れてもらいたい。言い換えれば、ポート22のIPのみを受け入れるようにしたい(それが理にかなっている場合)。

これらのルールを使用してLinuxファイアウォールを構成し、できませんでした接続に成功した後:

GUEST IP 22/tcp ALLOW IN Host IP 22/tcp

Host IP 22/tcp ALLOW OUT GUEST IP 22/tcp

注:「ゲストIP」および「ホストIP」という用語は、コンテキストが与えられた場合の連想IPアドレスの単純なプレースホルダーです。この場合、GUEST IPは、eth1インターフェースからのホストオンリーアダプターのIPアドレスです。言うまでもなく、ホストIPは、Windows 10ホストで見つかったホストIPアドレスを表します。

私はそれが機能するようにできることをしましたが、正直なところ、私が求めているものをこの時点で取得する方法がわかりません。

私の現在の設定:

  • MobaXtremSSHクライアントとFreeSSHdSSHサーバーを備えたWindows10(ホスト)
  • Linux Mint 17(ゲスト)(openSSHクライアントとサーバー付き)
  • Windowsファイアウォールにまったく触れなかった
  • 現在、Linuxファイアウォールは削除するように設定されていますが、前述のルールに追加されています

Linux/Unixベースのシステムでの私の経験は、シェルの使用、SSH、ファイアウォールの構成と同様に、非常に制限されていることをお知らせしたいと思います。 。

私は文字通り、前述のSSHソフトウェアを1日前にインストールしました。

TL; DRLinuxゲストがホストコンピューターからのSSHトラフィックのみを受け入れるように構成されているようにします。これはIP経由で行われると思いますが、その方法がわかりません。上記のファイアウォールルールをLinuxゲストに追加した後、接続は成功しなくなり、すべての試行がタイムアウトしました。

追加情報:-私はこれらの森の首の周りでポートフォワーディングについて言及しているのを見ました。私はそれを試しましたが、うまくいきませんでした。ホストオンリーアダプターでどのように動作させることができたかを見て、そのソリューションがなくても問題ないと思いました。

余談ですが、SSHを使用してLinuxゲスト経由でWindowsホストに接続することは可能ですか? Linuxターミナルからやってみましたが、許可がないと言われ続けました。

説明や追加情報が必要な場合は、お気軽にお問い合わせください。

前もって感謝します!

— T.R.G.

4
ThatRandomGuy

TCP接続には、送信元と宛先の2つのポートがあります。発信SSH接続の場合、宛先ポートは22ですが、送信元ポートはランダムに選択です。 (BGPなど、同一の送信元ポートと宛先ポートを使用するプロトコルはごくわずかです。)

したがって、次のようにルールを緩和する必要があります。

allow incoming from hostIP (any)/tcp to guestIP 22/tcp
allow outgoing from guestIP 22/tcp to hostIP (any)/tcp

guestホストへの接続が心配な場合は、statefulファイアウォール(送信パケットを許可する)を使用している限り、2番目のルールを削除できます。既存の接続に属する)。

Iptablesでは、機能するルールセットは次のようになります。

-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j REJECT

# (Well, *I think* this should work.)
-A OUTPUT -p icmp -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -j REJECT

正直にであるため、「ICMPを許可する」が含まれています)

4
user1686