ファイアーウォールの設定

サーバーにアクセス可能なポートを制限します。
標準のポートも22から任意のポート番号に変更します。

設定手順

  1. 1024 ~ 49151の間で任意のポート番号を選び(例 1234)、そのポート番号がすでに使われていいないか確認する。何も出力されなければOK、赤文字で出たら使われています。

    sudo ⇒ 管理者として実行
    ss ⇒ ネットワークのソケット情報を出力
    -t ⇒ TCPソケット
    -u ⇒ UDPソケット
    -l ⇒ 接続待ちのソケットだけ
    -p ⇒ ソケットを使用しているプロセスも表示
    -n ⇒ ポート番号を表示
    grep ‘:1234’ ⇒ 出力結果の中から「:1234」を含む行だけ表示
sudo ss -tulpn | grep ':1234'
  1. 選んだポート番号を許可する。

    ufw ⇒ ファイアーウォールの設定
    allow ⇒ ポートを許可する
    ポート番号/tcp ⇒ tcpかudpを指定可、ポート番号だけなら両方許可
sudo ufw allow 1234/tcp
  1. 標準のポートを閉じる。

    deny ⇒ 拒否する
sudo ufw deny 22/tcp
  1. ファイアーウォールを有効化する。
sudo ufw enable
  1. ファイアーウォールの状態を確認する。
sudo ufw status
  1. 標準のポートを変更するための設定ファイルを開く。

    sudo ⇒ 管理者として実行
    nano ⇒ ファイルをテキストエディタで開く
    /etc/ssh/sshd_config ⇒ ファイルの場所
sudo nano /etc/ssh/sshd_config
  1. Port 22となっているところを書き換える。(#があれば消す)
    ローカル通信からSSHする場合はAllowUserに*@192.168.0.0/16を指定する。
    外部ネットワークからもSSHしたい場合はグローバルIPをAllowUsersに指定する。
Port 1234
AllowUsers *@192.168.0.0/16
  1. Ctrl + O でファイルの変更内容を保存し、Ctrl + X で編集画面を閉じます。
  1. 設定ファイルの構文をチェックします。
sudo sshd -t
  1. SSHDを再起動します。
    SSHを既に有効化しているのであればSSHも再起動します。
sudo service sshd restart
sudo systemctl restart ssh