サーバーにアクセス可能なポートを制限します。
標準のポートも22から任意のポート番号に変更します。
(Ubuntu Server 24.04 LTSで動作確認済み)
設定手順
- 1024 ~ 49151の間で任意のポート番号を選び(例 1234)、そのポート番号がすでに使われていいないか確認する。何も出力されなければOK、赤文字で出たら使われています。
sudo ⇒ 管理者として実行
ss ⇒ ネットワークのソケット情報を出力
-t ⇒ TCPソケット
-u ⇒ UDPソケット
-l ⇒ 接続待ちのソケットだけ
-p ⇒ ソケットを使用しているプロセスも表示
-n ⇒ ポート番号を表示
grep ‘:1234’ ⇒ 出力結果の中から「:1234」を含む行だけ表示
sudo ss -tulpn | grep ':1234'
- 選んだポート番号を許可する。
ufw ⇒ ファイアーウォールの設定
allow ⇒ ポートを許可する
ポート番号/tcp ⇒ tcpかudpを指定可、ポート番号だけなら両方許可
sudo ufw allow 1234/tcp
- 標準のポートを閉じる。
deny ⇒ 拒否する
sudo ufw deny 22
- ファイアーウォールを有効化する。
sudo ufw enable
- ファイアーウォールの状態を確認する。
sudo ufw status
- SSHをインストールし、標準のポートを変更するための設定ファイルを開く。
sudo ⇒ 管理者として実行
nano ⇒ ファイルをテキストエディタで開く
/etc/ssh/sshd_config ⇒ ファイルの場所
sudo apt install openssh-server
sudo nano /etc/ssh/sshd_config
- Port 22となっているところを書き換える。(#があれば消す)
ローカル通信からSSHする場合はAllowUserに*@192.168.0.0/16を指定する。
外部ネットワークからもSSHしたい場合はグローバルIPをAllowUsersに指定する。
Port 1234
AllowUsers *@192.168.0.0/16
- Ctrl + O でファイルの変更内容を保存し、Ctrl + X で編集画面を閉じます。
- 設定ファイルの構文をチェックします。エラーメッセージが出なければOKです。
sudo mkdir /run/sshd
sudo sshd -t
- SSHDを再起動します。SSHを既に有効化しているのであればSSHも再起動します。
sudo systemctl enable ssh
sudo service sshd restart
sudo systemctl restart ssh