Linux での SSH ポートの変更はとても簡単でわかりやすいものです。 Ubuntu を含むあらゆる Linux ディストリビューションで利用可能なほとんどのパッケージがそうであるように、それらは設定ファイルとともに提供されています。 その設定ファイルを修正して、ポートをあまり一般的でないものに更新してみましょう。
目次
Change SSH Port in Linux and Ubuntu
プロセスはどのLinuxディストリビューションでも同じです。 ディレクトリ構造は少し異なるかもしれませんが、ファイル名はデフォルトのもののままです。 したがって、ファイルが見つからない場合は、検索ツールを使用して検索してください。
Linux システムでは、/etc/services ファイルがあり、ポートおよび接続の種類とともに、すべてのアクティブなサービスをリストアップしています。 SSH サーバーがどのポートで動いているか見てみましょう。
root@HowLinux:~# grep 'ssh' /etc/services
ご覧のように、デフォルトポートはここで22を示しており、接続タイプはTCPとなっています。 ポートを2020に変更してみましょう。
sshd_config ファイルの編集
ssh サービスがアクティブになるデフォルト ポートを変更するために、ssh サーバー設定ファイルを編集します。 etc/ssh/sshd_config ファイルは、ssh サーバの既定の構成データを保持します。
root@HowLinux:~# nano /etc/ssh/sshd_config
コメントアウトされているPort 22という行までスクロールダウンしてください。 行頭の # を削除し、ポートを 2020 (またはサーバーを実行するのに必要なポート) に編集します。
SSH サーバーを再起動する
ここで、Linux または Ubuntu 上の SSH サーバーを再起動して、設定が有効になっていることを確認する必要があります。
root@HowLinux:~# service sshd restart
このコマンドは何も出力されません。 もし何かエラーが出た場合は、すべてのスペルが正しいかどうかチェックしてください。
SSH ポートの変更を確認する
Linux で netstat コマンドを使用して、ssh サーバーがどのポートで接続をリッスンしているかを確認します。 お使いのシステムで以下のコマンドを実行してください。
root@HowLinux:~# netstat -tlp | grep ssh
-tと-lオプションは、TCPとListeningを意味します。 つまり、TCPタイプで、着信接続を積極的にリスニングしているすべての接続を探します。 pオプションは、プログラム名を表示します。
また、出力を grep にパイプし、システムで実行中の他のすべてのサービスではなく、ssh サーバーが実行されているポートだけを表示するようにしています。
素晴らしいです! ご覧の通り、当サーバーは今、ポート2020でリッスンを開始しました。
Ubuntu でファイアウォール経由の受信接続を許可する
Ubuntu を使用している場合、デフォルトの設定では、UFW ファイアウォールがインストールされています。 これはデフォルトのSSHポートを許可しますが、自分たちで設定したポートは許可しません。 2020ポートにTCP接続タイプで着信接続を許可するルールを追加してみましょう。
root@HowLinux:~# ufw allow 2020/tcp
まとめ
これで、設定ファイルを使ってSSHサーバーポートを設定する方法が分かりましたね。 設定ファイルに目を通すことで、他に変更したい設定がないか確認することができます。 ufwファイアウォールとnetstatコマンドについては、今後のチュートリアルで詳しく説明します。