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