現在、セキュリティ上の理由から、SSH を非標準ポートで実行しているサーバーがあります。CentOS 5 では 522 でしたが、CentOS 6 では、22 以外のポート (1024 未満) で SSH を実行することは (簡単には) 許可されません。CentOS 6 では、もっと高いポート (>10000) を使用していましたが、現在は 522 で実行する必要があります (ホスティング プロバイダーによってもたらされたさまざまな好ましくないホスティング/ファイアウォールの問題のため)。カーネル > 2.6.24 と SELinux を実行しています。
CAP_NET_BIND_SERVICE と setcap を使用すれば可能だと思いますが、適切な参考資料が見つかりません。どなたか助けていただければ幸いです。
答え1
CentOS の How To に、システム上で SSH を安全にする方法に関する投稿があります。セクション 5 では、非標準ポートの使用について説明しています。
http://wiki.centos.org/HowTos/ネットワーク/SSH のセキュリティ保護
- 非標準ポートを使用する
デフォルトでは、ssh はポート 22 で着信接続を待ち受けます。ハッカーがマシン上で ssh が動作しているかどうか判断するためには、おそらくポート 22 をスキャンして判断するでしょう。効果的な方法は、非標準ポートで ssh を実行することです。未使用のポートであればどれでも構いませんが、1024 より上のポートが望ましいです。代替ポートとして 2222 を選択する人が多くいます (覚えやすいため)。これは、代替 HTTP ポートとして 8080 がよく知られているのと同じです。この理由から、おそらくこれは最良の選択ではありません。ポート 22 をスキャンするハッカーは、念のためポート 2222 もスキャンする可能性が高いからです。既知のサービスで使用されていない、ランダムに高いポートを選択する方がよいでしょう。変更するには、/etc/ssh/sshd_config ファイルに次のような行を追加します。
# Run ssh on a non-standard port:
Port 2345 #Change me
次に、SSH を使用して接続するときに、別の Linux サーバーから接続する場合は -p スイッチを指定します。または、PuTTY などを使用している場合は、そこでポートを変更します。