どこからでも自宅のマシンにアクセスするためのSSHポートフォワード


24

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

この全体のプロセスを理解したいですport forwarding

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

私が持っているもの:

私の家に座っているfreebsdサーバー。
ネットギアルーター

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

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

私が持っているubuntuマシンからこのfreebsdボックスにアクセスしたいのです。

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

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

ネットギアポート転送


これがsuperuser質問であれば移行してください。
ハリ

もう少し説明が必要です。Windowsマシンがインターネット上のどこかにあり、すでにインターネットにアクセスしている場合、なぜインターネットにアクセスするために自宅のFreeBSDボックスに接続したいのですか?
オールドタイマー

@OldTimer:あなたの質問/懸念がどの程度関連しているかわかりません。
ハリ

使用もうもうのIPv6アドレス、NATなし、口論;-)
ステファン・ヒメネス

1
待つ!私はちょうど言ったことを / - :
ステファン・ヒメネス

回答:


47

生の事実から始めましょう:

  1. 次のものがあります。A-FreeBSDボックス、B-ルータ、およびC-インターネットにアクセスできるマシン。これはどのように見えるかです:

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

    ルーターの通常の動作に注意してください。LAN上のマシンからインターネットへの接続許可します(簡単に言えば)。のであればA、インターネットにアクセスすることを望んでいる(またはLAN上の他のマシン)、それが(ちょうど基本的な理解と設定の話を、再び)許可されます。

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

    また、デフォルトでは以下は許可されていません

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

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

  2. ポートフォワーディングにより、3番目のスキーマを実行できます。これは、2)からの接続がLAN上のどのマシンに行くべきをルーターに伝えることにあります。これはポート番号に基づいて行われます。そのため、ポート転送と呼ばれます。インターネットから特定のポートに来るすべての接続がLAN上の特定のマシンに行くようにルーターに指示することにより、それを設定します。machineに転送されるポート22の例を次に示します。CA

    .------.     .-------.                        .-----.
    |  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と呼ばれるサービスを使用できます。これにより、ルーターはIPを追跡し、ドメイン名を提供する特別なDNSサーバーに定期的に情報を送信します。かなりの数の無料のダイナミックDNSプロバイダーがあります。多くのルーターには、簡単に接続できる構成オプションが付属しています。

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


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

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

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

    • すべてのユーザーアカウントに強力なパスワードがあることを確認し、

    • SSH経由のルートアクセスを許可しない(いつでも通常のユーザーとしてログインするsuか、またはsudoその後ログインできます)。

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

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

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

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


10
アスキーの良さに
賛成...-jasonwryan

詳細な説明をありがとう。これを少しダイジェストしてコメントします。
ハリ

私はあなたの主張を完全に理解しました。私の質問は、ネットギアルーターを構成しました(正しいか間違っている-わかりません)。次に何をする必要がありますか?
ハリ

2
外部SSHアクセスに関する私の編集(下)をご覧ください。
rozcietrzewiacz

情報のおかげで。あなたが伝えようとしているものを手に入れました。私の質問は、インターネット上の誰でも(アクセスできる人が)freebsdボックスでブラウザを実行できるようにするために何をする必要があるかです。どうすれば設定できますか?
ハリ

3

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

リソース:


ありがとう。ネットギアルーターで一部を実行しました:この方法でポートフォワーディングを設定しました:service:HTTP port:80 server ip:192.168.1.16-ここで、このIPはfreebsdボックスのIPです。次に何をすべきですか?
ハリ

あなたの場所の外からテストをセットアップし、私は個人的に私の電話をラップトップに向けて、私のIPアドレスにsshしてみます。私はあなたがあなたの外部IPアドレスを知っていると仮定しています。または、Webサーバーにアクセスしてみてください。
マークD

SSHは私の外部IPでは機能しません。freebsdサーバーで何かする必要がありますか?
ハリ

内部ネットワークからSSHできますか?
マークD

はい。私はそれを行うことができます
ハリ

1

これはルーターで実行できます。一部のルーターでは、この機能はVirtual Server

下の画像の部分にポート転送の2つの例があります。1つはWeb、もう1つはSSHです。最初の場合、WAN IP上のリクエスト、つまりポート80を備えたルーターのIPはLAN IP(192.168.2.4この場合)に転送され
ます。この機能を使用すると、世界中のどこからでもLANで実行されているPCすなわち、それらのサービスはLANに限定されません
ルーター上のポート転送または仮想サーバー

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.