顧客から、安全なFTPサーバー(openSSHまたはFreeSSHdを使用したSFTP)をセットアップするように求められました。
この新しいサーバーは、ポート22のみを許可するように構成されたファイアウォールを通過します。
奇妙に聞こえるかもしれませんが、セキュリティ上の理由から、ファイアウォールの他のポートを開かないことを好みます。
彼らは、サーバーがサーバー自体だけでなくクライアントにもポート22を使用できるかどうかを尋ねています。
サーバーはWindows Server 2008 64を実行しています(freeSSH/OpenSSHを使用)
クライアントはWindowsを実行していますXP(PuTTY/winscpを使用)
通常使用する大きなポートプールの代わりにポート22を使用できますか? (接続とデータ転送の両方に)
そうでない場合、別のポートを使用するようにSFTPサーバーを構成するにはどうすればよいですか?
それを設定する特定のコマンドまたはfreeSSH/openSSHのマニュアルはありますか?
別のオペレーティングシステムでも、後で直面する可能性のある他の問題が発生する可能性はありますか?
簡単に言えば、これは多大な努力なしには実行できません。
Windowsでは、一時的なポート範囲に少なくとも250個のポートが必要です。範囲に22を含めるには、おそらく重要なシステムサービスのリッスンポートを含めます(Windowsが範囲を1024未満で開始することを許可した場合、これは疑わしいです)。
Windowsは、NATによる発信ポートの変更をサポートしていないようです。
私の知る限り、WindowsでのSSH実装では、クライアントポートを明示的に設定することはできません。
オプションは次のとおりです。
トラフィックを操作するサーバーの前にデバイスを導入します。
パッチを多用した独自のSSHクライアントアプリケーションを構築します。
要件がばかげていることをクライアントに納得させます。
イモ、この全体はある種の誤解です。そのため、私はこれに答えるのをためらいます。しかし、大丈夫です。
通常、TCP/IPアプリケーションの送信元ポートは指定しません。送信元ポートは、99.9%の場合、ローカルオペレーティングシステムによって自動的に割り当てられます。
また、多くの場合、送信元ポートはTCP/IP接続に関する唯一の情報です。したがって、修正することはできません。そうしないと、ローカルマシンからサーバーへの複数の接続を開くことができません。
ローカルポートを修正できた場合(そして、それを許可するSSH/SFTPクライアントを認識していない場合)でも、サーバー側でこれを構成することはできません。サーバーは、クライアントが使用するローカルポートを制御できません。
回避策や代替方法はあるかもしれませんが、実際にこれを実行する理由を説明していないので、私はあなたに何も与えることができません。
私はこのように何時間も続けることができますが、私が思っていないように、私が実際にあなたを理解している、またはあなたやあなたのクライアントがあなた/彼らが望むものを理解していることは無意味です
クライアントは明らかに、SFTPが通常のFTPのようであり、制御とデータ接続が別々であるという前提の下で動作しています。 SFTPの場合、これは当てはまりません。SFTPサーバーではポート22のみが必要であり、すべてがその1つのポートで多重化されます。
SFTPとFTPは、ユースケースに関してのみ類似しています。ネットワーキングに関しては、それらは完全に異なる設計です。
ただし、FTPSもあることを指摘する必要があります。これは、通常のFTPに似ていますが、暗号化が強化されています。
両端のポート22のクライアント要件は、FTPからのアクティブ/パッシブ操作全体に起因する可能性が高く、SFTPには関係ありません。