攻撃および侵入の検知

49 views
Skip to first unread message

hiro...@gmail.com

unread,
Mar 17, 2019, 8:56:26 PM3/17/19
to 日本xrdpユーザ会 (The "xrdp" Users' Group Japan)
小野寛生と申します。

最近 FreeBSD で xrdp を動かして、家の外から接続できるようにしました。
ports を作成してくださっている meta さん、ありがとうございます。

xrdp のログを見ていると、接続できるようにしてからすぐ、bot によると思われる
攻撃があります。1時間ごとや15分ごとに、律儀に何度かやってきています。
ssh だと sshguard などの対策があるせいか、同じ IP address から試すのは2回まで
というようになっているようですが、RDP の場合は10回以上同じ IP address から
攻撃があったりします。

パスワードを強いものにするのは当然のこととして、xrdp のログから攻撃があるのを
判定してファイアウォールのルールに加えるということをやりたいのですが、眺めている
限りは複数行を見て判定しないといけないようで、面倒だなと思っています。
こういうことをやっているという方がいらっしゃいましたら、どうやっているのか教えて
ください。
"non-TLS connection established" な接続があったら、問答無用でその IP address から
の接続を遮断してもいいのかもしれませんが。

xrdp が syslog に auth.info なり auth.priv でエラーを出してくれればいいのですが、
やってくれないようなのですよね。

meta

unread,
Mar 17, 2019, 9:25:41 PM3/17/19
to 日本xrdpユーザ会 (The "xrdp" Users' Group Japan)
2019年3月18日月曜日 9時56分26秒 UTC+9 hiro...@gmail.com:

xrdpでのログイン時にauth情報を記録する(wコマンドでログイン中の
ユーザが表示できるようにする)ことや、xrdpのblacklistd対応はやり
たいのはやまやまなのですが、今の所そこまで手が回っていません。
xrdpはクライアントからの接続を待ち受けるプロセスと、認証を行う
プロセスが分かれているため認証側プロセスで接続元のIPアドレスを
どう取得するかがハードルとなっています。

当座の代替手段として、次のように待受をinetdにやらせることで緩和
することが可能です

1. xrdpのListenポートを3390などに変更する
2. 3390/tcpをipfw等でlocalhostのみからの接続に制限する
3. inetd.conf に以下のような設定を追加して、inetdをrestartする

rdp stream tcp46 nowait/3/1 nobody /usr/local/bin/socat socat stdin tcp4:127.0.0.1:3389

nowait/3/1 の部分で同一IPアドレスからの接続回数を制限しています。
詳しくは man inetd.conf を参照下さい。ただし、この方法だとxrdpの
ログに接続元IPアドレスがlocalhost(127.0.0.1)でしか残らないのが
難点です。

他にも方法はあると思いますが、方法の一つとしてご提案まで。

--
meta <me...@FreeBSD.org>
https://people.freebsd.org/~meta/

Reply all
Reply to author
Forward
0 new messages