web-dev-qa-db-ja.com

ルーターの背後にあるマシンにsshする最も安全な方法は何ですか?

ルータの背後にあるマシンのポート22から22に転送することを考えていますが、安全ですか?誰もがポート22で私のパブリックIPに接続を試み、その後、無期限にユーザーとパスワードを推測することができます。

良い考えのようには思えません。助言がありますか?それはどのように正しく行われますか?

6
so_user

SSHサーバーを攻撃しようとする自動化されたボットはたくさんありますが、いくつかの予防策を講じれば、SSHを非常に安全にすることができます。

  1. パスワードベースのログインを完全に無効にし、公開鍵と秘密鍵のペアを唯一のログイン方法にします。 このページ は、パスワードログインを無効にする方法に関する情報を提供します これ は、キーペアの設定方法を示しています。キーをブルートフォースすることは基本的に不可能であるため、この手順だけでSSHのセキュリティが大幅に向上します。唯一の欠点は、ログインする必要があるすべてのコンピューターにキーをコピーする必要があることです。
  2. レート制限を設定する-不正なパスワードを一定回数試行した後、IPアドレスをブロックします。これを行うには多くの方法があります。私は fail2ban を使用していますが、Googleを検索すると、多くの代替案が見つかります。 IPをブロックしないと、ボットが文字通り何時間もパスワードを推測してしまうため、これは重要です。キーベースのログインを使用している場合は、おそらく成功することはありませんが、大量のジャンクSSHトラフィックを生成することで帯域幅のかなりの部分を使用します(ログもいっぱいになります)。
  3. 特定のIPアドレスからのみこのサーバーにアクセスすることがわかっている場合は、 これらのIPアドレスのみを許可し、他のすべてのIPアドレスをブロックできます
  4. rootとしてのログインを無効にする -ボットの大多数はrootユーザー名をターゲットにしようとします。
  5. 不正アクセスがないか、ログインログを時々確認してください。

これらの手順を実行すると、インターネットへのSSHを開く準備が整います。キーを安全に保ち、サーバーパッケージを最新の状態に保つ限り、SSHセキュリティに問題はありません。

編集:アクセスする必要があるマシンが2つあるがパブリックIPアドレスが1つしかない場合は、2つのオプションがあります。1つのマシンへのポート転送を設定できます。2つ目のマシンにアクセスする必要がある場合は、最初のマシンにログインします。 1つ目は、1つ目から2つ目のプライベートIPアドレスにSSHで接続します。

他のオプションは、2番目のマシンのSSHポートを22から別のもの(たとえば、2222)に変更することです。次に、ポート22を最初のマシンに転送し、2222を2番目のマシンに転送します。 2台目のマシンにアクセスする必要がある場合は、SSHクライアントでポート2222を指定します。 (補足:必要に応じて、両方のマシンで非標準ポートを使用してボットトラフィックを削減できます。)

10
tlng05

マシンにアクセスしているのがあなただけの場合は、sshに非標準のポートを選択することで、sshログをクリーンに保つことができます。

はい、攻撃者がボットネットを使用して単純なポートスキャンを実行する場合、これはバイパスするのは簡単です。したがって、深刻な攻撃者に対してセキュリティを追加しません(ただし、それが最も低いぶら下がり果物になるのを防ぎます)。それでも、強力なsshパスフレーズ/キーと他のベストプラクティス(たとえば、ルートログインを無効にする)を使用することには意味があります。しかし、私のVPSでは、ランダムなIPアドレスからのログで見られるログイン失敗攻撃を、1日あたり数千回の試行から過去3か月間のゼロに削減することがわかりました。

基本的には、他の目的で使用されていないポートを選択するだけです(/etc/servicesをチェックして、既知のサービスを使用していないことを確認して、何も使用されていないポートを選択する傾向があります- 1024未満のシステムポート範囲のポートも選択します(例:501)。次に、ルーターでポート転送を実行して、着信TCPポート501のリクエストをローカルのポート22に転送します機械。

次に、外部からssh -p 501 $your_routers_ipに接続します。 .ssh/configファイルを設定すると、そこにポートを配置できます。

 Host example
      Hostname example.com  # or ip address
      User jimbob
      Port 501
      ForwardAgent no
      ForwardX11 no

ssh exampleを実行すると、自動的に適切なポート/適切なユーザー名に移動します(X11 /エージェント転送を無効にします)。

2
dr jimbob