システムのテストなどで、意図的にSSHの接続先からタイムアウトを発生させたい場合があります。このような場合は、サーバー側のファイアウォールでSSHのポートを遮断します。
設定
以下は、サーバーがRaspberry Pi Raspbian(9.4 stretch)の設定例です。まず、ufwをインストールします。
$sudo apt-get install ufw
次に、sshをdenyに設定します。
$sudo ufw deny ssh
最後に、ufwを有効化します。
$sudo ufw enable
注意点としては、この操作をSSHで行っている時は、そのターミナルを絶対にクローズしてはいけないということです。なぜなら、今行っている設定は、外部からSSHをタイムアウトさせる設定だからです。ターミナルをクローズしてしまうと、後でタイムアウトの設定を解除しようとしてもSSHでアクセスできなくなってしまいます。
動作確認
別のコンソールを立ち上げてSSHのログインを試します。
$ssh pi@192.168.xx.xx -o ConnectTimeout=5
ssh: connect to host 192.168.10.13 port 22: Connection timed out
5秒後、タイムアウトになります。
設定解除
タイムアウトの設定を元に戻したい時は、ufwをdisableします。
$sudo ufw disable
ufwの一部の設定だけを削除したい場合は、設定番号を表示してその番号をdeleteします。
$sudo ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp DENY IN Anywhere
[ 2] 22/tcp (v6) DENY IN Anywhere (v6)
$sudo ufw delete 1