SSHのポートを変更

デフォルトから変更済みだったSSHのポートを、再変更したときのメモ。

背景

デフォルトから変更して使っていたポートに、あやしいアクセスが毎日記録されるようになってきた。次のようなログが残る。

sshd[78450]: banner exchange: Connection from 83.97.73.245 port 50134: invalid format

どう見てもBOT。「invalid format」とあるあたり、SSHではない別のものを期待してスキャンしているものと思われる。

デフォルトのポート番号を使っていたときに比べれば、比較にならないほどアクセス数は少ないものの、うざいことに代わりはない。再びポート番号を変更してみることにした。

環境

  • サーバー側: FreeBSD 14.1
  • クライアント側: macOS Sonoma 14.5

使用するポート番号の選択

なるべく狙われないポートがいい。ということで、使われていないポート番号を探す。それには、既に割り当てられているポートを避ければよい。割り当て済みのポートは、WIkipediaに記載されている。

TCPやUDPにおけるポート番号の一覧 - Wikipedia

ただし、正式に割り当てられていないポートの中にも、実際にはそれなりに使われていることがある。これを調べるには、 speedguide.net の Ports Database が便利だった。

SG TCP/IP Ports Database
SG Ports Services and Protocols - a searchable database of official and unofficial TCP and UDP port numbers, known vulne...

検索フォームに Unassigned と入力して search ボタンをクリックすれば、未割り当てのポートが一覧表示される。表示されたポート番号をクリックして、利用状況を判断して選択すればよい。今回は、12323 を使用するものとして説明する。

サーバー側の設定

ファイアウォールの設定

使用するポートをファイアウォールに登録。

/etc/rc.confを編集して、firewall_myservices の定義に 12323/tcp を追加する。

firewall_myservices="12323/tcp http/tcp https/tcp smtp/tcp smtps/tcp submission/tcp submissions/tcp imaps/tcp"

ipfwを再起動。

# sudo service ipfw restart

sshdの設定

/etc/ssh/sshd_configに次の行を追加。

Port 12323

sshdを再起動。

# sudo service sshd restart

クライアント側の設定

sshの設定

~/.ssh/config に次の設定を追加。

Host server.domain.jp
	Port 12323
	ServerAliveInterval 15
	ServerAliveCountMax 15
	TCPKeepAlive yes

ポートの変更に必要なのはPortのディレクティブのみ。それ以外は、時間切れで切断されないようにするための設定。

タイトルとURLをコピーしました