web-dev-qa-db-ja.com

どこからでも私の自宅のマシンにアクセスするためのsshポート転送

私はこの質問から来ています: https://superuser.com/questions/359799/how-to-make-freebsd-box-accessible-from-internet

port forwardingのこのプロセス全体を理解したいと思います。

私はたくさんのことを読みましたが、ポート転送自体の非常に基本的な概念を理解できていません。

私が持っているもの:

私の家に座っているfreebsdサーバー。
netgearルーター

これは私が達成しようとしていることです:

インターネット経由でWindowsマシンからfreebsdサーバーにアクセスし、Webブラウザーを開いてインターネットにアクセスできるようにします。

私も持っているUbuntuマシンからこのfreebsdボックスにアクセスしたいと思います。

誰かが私を助けてくれるならそれは素晴らしいことです。

これが、ポート転送のために行ったnetgearルーターのセットアップです。

netgear port forwarding

26
hari

私は生の事実から始めます:

  1. A-FreeBSDボックス、B-ルーター、C-インターネットにアクセスできるマシン。これは次のようになります。

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
    \_________ ________/
              v
               `- this is your LAN
    

    ルーターがどのように動作するかに注意してください通常:接続を許可しますfrom LAN上のマシンtoインターネット(簡単に言えば)。したがって、A(またはLAN上の他のマシン)がインターネットにアクセスしたい場合は、許可されます(ここでも、基本的な理解と構成について話しているだけです)。

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
          `-->----'  `--->--->---^  
    

    そして、以下はnotがデフォルトで許可されています:

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
          `--<----'  `---<--- - - - - --<---<-----'
    

    (つまり、ルーターprotects LAN上のマシンがインターネットからアクセスされないようにします。)ルーターはLANの中で見られる唯一の部分であることに注意してくださいfromインターネット1)

  2. 3番目のスキーマの実行を可能にするのはポート転送です。これは、ルーターにwhatCからの接続を伝えることで構成されます。2) LAN上のwhichマシンに移動する必要があります。これはポート番号に基づいて行われます。これがポート転送と呼ばれる理由です。インターネットから特定のポートに着信するすべての接続がLAN上の特定のマシンに行くようにルーターに指示することにより、それを構成します。マシンAに転送されたポート22の例を次に示します。

    .------.     .-------.                        .-----.
    |  A   | ==  |   B   |  - - ( Internet ) - -  |  C  |
    |      |     |       |                        '-----'
    '-|22|-'     ',--|22|'                          |
        `--<-22---'    `---<---- - - - - - --<-22---'
    
  3. このようなインターネット経由の接続は、IPアドレスに基づいて行われます。したがって、上記の例のもう少し正確な表現は次のようになります。

    .------.      .-------.                                .-----.
    |  A   |  ==  |   B   | - - - - - ( Internet ) - - - - |  C  |
    |      |      |       |                                '-----'
    '-|22|-'      ',--|22|'                                   |
        `--<-A:22--'    `--<-YourIP:22 - - - - --<-YourIP:22--'
    

    静的 IPを使用したインターネット接続がない場合は、ISPによってルーターに現在割り当てられているIPを何らかの方法で把握する必要があります。そうしないと、Cは、ルーター(さらにA)にアクセスするために接続する必要があるIPを認識しません。これを簡単に解決するには、動的DNSというサービスを使用できます。これにより、ルーターは定期的に特別なDNSサーバーに情報を送信し、IPを追跡してドメイン名を提供します。無料のダイナミックDNSプロバイダーはかなりたくさんあります。多くのルーターには、簡単に接続できる構成オプションが付属しています。

1) これもまた、単純化です。インターネットから見た実際のデバイスはモデムです。これは、ルーターと統合することができますが、別のボックスにすることもできます。
2) またはインターネットに接続できる他のマシン。


今あなたが望むもののために:

  1. 単にsshがインターネットからマシンにアクセスできるようにすることは悪い考えです。 crackersによって設定された数千のボットがあり、SSHポートが開いているマシンをインターネットで検索します。彼らは通常、できるだけ多くのIPのデフォルトSSHポートを「ノック」し、どこかで実行されているSSHデーモンを見つけたら、マシンへのbruteforceアクセスを取得しようとします。これは潜在的な侵入のリスクだけでなく、マシンがブルートフォースされている間にネットワークが遅くなるリスクもあります。

  2. 本当にそのようなアクセスが必要な場合は、少なくとも

    • すべてのユーザーアカウントにstrongパスワードがあることを確認します。

    • sSH経由のrootアクセスを禁止します(通常のユーザーとしてログインすれば、いつでもsuまたはSudoとしてログインできます)。

    • sSHサーバーが実行されるデフォルトのポートを変更します。

    • 多数のSSHログイン試行を拒否するメカニズムを導入します(後続の試行の待機時間が増えます-これが正確にどのように呼び出されたかを覚えていません-少し前にFreeBSDで有効にしていたので、とても簡単だったと思います-試してくださいSSHのセキュリティ保護についてFreeBSDフォーラムなどを検索すると、見つけることができます。)

    • 可能であれば、近い将来マシンにアクセスすることがわかっている場合にのみsshデーモンを実行して、後でそれをオフにしてください。

  3. システムログを確認することに慣れます。不審なことに気づき始めたら、IPテーブルポートノッキングなどのセキュリティメカニズムを追加してください。

51
rozcietrzewiacz

これを行うにはいくつかの方法があります。最も簡単な方法は、DMZと呼ばれるものを設定することです。ただし、より安全な方法は、ルーターでポート22にサーバーのIPへの静的ルートを設定することです。

リソース:

3
Mark D

これはルーターで行うことができます。一部のルーターでは、この機能はVirtual Serverと呼ばれています

下の画像部分に、ポート転送の2つの例があります。 1つはWebで、もう1つはSSHです。最初のケースでは、WAN IP上の要求、つまりポート80のルーターのIPがLAN IPに転送されます(この場合は192.168.2.4))
この機能を使用すると、LANで実行されているPC /サーバーで実行されているサービスを世界中のどこからでも取得できます。つまり、これらのサービスはLANに限定されません
Port forwarding or Virtual server on a router

1
Edward Torvalds