在Linux中,SSH服务器的日志文件通常位于/var/log/auth.log
(对于Ubuntu/Debian系统)或/var/log/secure
(对于RHEL/CentOS系统)
grep
命令搜索特定事件或IP地址:grep 'sshd.*Failed password for root' /var/log/auth.log
grep '192.168.1.100' /var/log/secure
awk
命令过滤日志中的特定时间段:awk '/sshd.*Failed password for root/ {print $1}' /var/log/auth.log | awk '$1 >= "12:00" && $1 <= "18:00" {print}'
sed
命令删除不需要的行:sed '/sshd.*Failed password for root/d' /var/log/auth.log
sort
和uniq
命令查找重复登录尝试:grep 'sshd.*Failed password for root' /var/log/auth.log | sort | uniq -c | sort -nr
cut
命令提取特定字段:grep 'sshd.*Failed password for root' /var/log/auth.log | cut -d ' ' -f 1,2,3
tail
命令查看日志的最后几行:tail -n 100 /var/log/secure
head
命令查看日志的前几行:head -n 100 /var/log/secure
wc
命令统计日志中的行数、单词数或字符数:wc -l /var/log/secure
wc -w /var/log/secure
wc -c /var/log/secure
awk
命令计算特定条件下的行数:awk '/sshd.*Failed password for root/ {print $1}' /var/log/auth.log | awk '$1 >= "12:00" && $1 <= "18:00" {print}' | wc -l
grep
和wc
命令查找包含特定字符串的行数:grep 'Failed password for root' /var/log/auth.log | wc -l
这些示例仅涉及SSH服务器日志分析的一部分。您可以根据需要组合这些命令以满足您的需求。如果您需要更高级的日志分析,可以考虑使用日志分析工具,如ELK Stack(Elasticsearch, Logstash, Kibana)或Graylog。