FreeBSD の blacklistd を使用する事で、DOS攻撃から防止する事が出来ます。

何故、blacklistd を選んだ理由としては、悪意あるユーザーが接続時に、失敗した回数で
自動的にブロックする仕組みになっている。
また、接続不可能な時間を設定する事も可能で、複数のサービスにも連動させる事が可能からです。

また、SSHをDOS攻撃から防止する方法を設定した時のメモ書きです

設定①

①.blacklistd を有効にする。

vi /etc/rc.conf

②.以下の内容を追記する。

blacklistd_enable="YES"
blacklistd_flags="-r"
sshd_flags="-o UseBlacklist=yes"

blacklistd_flags=”-r” は、再起動後もブロック情報は消去されずに開始する。
また、-f を設定すると、再起動後はブロック情報が初期化される。

sshd_flags=”-o UseBlacklist=yes” は、SSHをblacklistdとして有効にする設定です。

設定②

①.blacklistd のサービス情報を確認する。

vi /etc/blacklistd.conf

②.以下の情報に、ssh がある事を確認する。

# $FreeBSD: releng/12.1/usr.sbin/blacklistd/blacklistd.conf 336977 2018-07-31 16:39:38Z brd $
#
# Blacklist rule
# adr/mask:port type    proto   owner           name    nfail   disable
[local]
ssh             stream  *       *               *       3       24h
ftp             stream  *       *               *       3       24h
smtp            stream  *       *               *       3       24h
submission      stream  *       *               *       3       24h
#strongswan      stream  *       *               *       3       24h
#6161           stream  tcp6    christos        *       2       10m
*               *       *       *               *       3       60

# adr/mask:port type    proto   owner           name    nfail   disable
[remote]
#129.168.0.0/16 *       *       *               =       *       *
#6161           =       =       =               =/24    =       =
#*              stream  tcp     *               =       =       =

③.下記の内容が ssh の情報です。

ssh             stream  *       *               *       3       24h

④.blacklistd を起動する。

service blacklistd start

⑤.blacklistd が起動する事を確認する。

Starting blacklistd.

⑥.再起動する。

reboot

⑦.blacklistd の防止状況を確認する。

blacklistctl dump -ar

⑧.blacklistd が有効な場合は、以下の内容が表示する。

address/ma:port id      nfail   remaining time