私と私の友人のためにSFTPサーバーを設定しており、無差別攻撃の試みをブロックしようとしています。
無差別代入攻撃をブロックするためにpfを取得する方法についての多くの記事を読んだが、運がなかった。
OpenBSD 6.4を実行しています。現在/etc/pf.confです。
# $OpenBSD: pf.conf,v 1.55 2017/12/03 20:40:04 s then Exp $
#
# See pf.conf(5) and /etc/examples/pf.conf
set skip on lo
block return # block stateless traffic
pass # establish keep-state
# By default, do not permit remote connections to X11
block return in on ! lo0 proto tcp to port 6000:6010
# Port build user does not need network
block return out log proto {tcp udp} user _pbuild
ext_if="em0"
antispoof quick for ($ext_if) #No IP or GPS SPOOFING allowed here :)
table <bruteforce> persist
block quick from <bruteforce>
pass inet proto tcp to any:network port 22 \
keep state (max-src-conn 10, max-src-conn-rate 5/5, \
overload <bruteforce> flush global)
table <ssh_block> persist
block quick from <ssh_block> to any
brute-forceテーブルとssh_blockテーブルをチェックしても存在しません。だからssh_blockからコマンドを実行しました。
pfctl -t ssh_block -T add 218.92.1.138
1 table created.
1/1 addresses added.
pfctl -t ssh_block -T show
218.92.1.138
しかし、私の/var/log/authlogはまだそのIPアドレスからの試みでいっぱいです。
私は何を見逃していますか?
答え1
問題は、ファイルのバグが原因で/etc/pf.conf
ファイアウォールが設定をまったくロードできないことです(:network
特定のインターフェイスに適用可能)。
pf
無差別接続をブロックする例は次のとおりです。OpenBSD PF FAQ、ルールにまとめられています(元のwww
例では私が使用するものに変更されていますssh
)。
table <bruteforce> persist
block in quick from <bruteforce>
pass in on egress proto tcp to any port ssh flags S/SA keep state \
(max-src-conn 5, max-src-conn-rate 5/30, \
overload <bruteforce> flush global)
これにより、30秒ごとに5回以上接続するホストを<bruteforce>
テーブルに配置してブロックします。送信元アドレスごとに5つの接続のみが許可されます。
別のオプションは、次のものを使用することです。SSHガード。 OpenBSDにはSSHGuardポートがありますが、非常に古いです(2011年に1.5リリース)。 (数分前に)アップデートを送信し、数日以内に送信できることを願っています。