ルータの背後にあるマシンのポート22から22に転送することを考えていますが、安全ですか?誰もがポート22で私のパブリックIPに接続を試み、その後、無期限にユーザーとパスワードを推測することができます。
良い考えのようには思えません。助言がありますか?それはどのように正しく行われますか?
SSHサーバーを攻撃しようとする自動化されたボットはたくさんありますが、いくつかの予防策を講じれば、SSHを非常に安全にすることができます。
これらの手順を実行すると、インターネットへのSSHを開く準備が整います。キーを安全に保ち、サーバーパッケージを最新の状態に保つ限り、SSHセキュリティに問題はありません。
編集:アクセスする必要があるマシンが2つあるがパブリックIPアドレスが1つしかない場合は、2つのオプションがあります。1つのマシンへのポート転送を設定できます。2つ目のマシンにアクセスする必要がある場合は、最初のマシンにログインします。 1つ目は、1つ目から2つ目のプライベートIPアドレスにSSHで接続します。
他のオプションは、2番目のマシンのSSHポートを22から別のもの(たとえば、2222)に変更することです。次に、ポート22を最初のマシンに転送し、2222を2番目のマシンに転送します。 2台目のマシンにアクセスする必要がある場合は、SSHクライアントでポート2222を指定します。 (補足:必要に応じて、両方のマシンで非標準ポートを使用してボットトラフィックを削減できます。)
マシンにアクセスしているのがあなただけの場合は、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 /エージェント転送を無効にします)。