次の2つのコマンドを実行しました。私が見つけたアカウント攻撃のいくつかは次のとおりです。私のホームディレクトリにtest、teste、oracle、adminアカウントがありません。システムアカウントがあるからです。有効なアカウントと非アクティブなアカウントを確認する方法
lastb | awk '{print $1}' | sort | uniq -c | sort -rn | head -5
5898 root
196 test
164 oracle
154 teste
86 admin
[root@localhost ~]# awk 'gsub(".*sshd.*Failed password for (invalid user )?", "") {print $1}' /var/log/secure* | sort | uniq -c | sort -rn | head -5
13835 root
386 test
185 oracle
146 admin
131 nagios
答え1
これは、インターネットにさらされているすべてのシステムで一般的に発生する自動化されたボット攻撃です。 CentOSで利用可能なユーザーのリストを取得するには、次の手順を実行しますgetent
。
getent passwd | awk -F':' '{ print $1 }'
これをすでに持っているものと一緒に使用してください。
while read -r count user; do
printf '%s %s ' "$user" "$count"
if getent passwd | grep -q "^$user:"; then
printf 'valid\n'
else
printf 'invalid\n'
fi
done < <(awk 'gsub(".*sshd.*Failed password for (invalid user )?", "") {print $1}' /var/log/secure* | sort | uniq -c | sort -rn | head -5)