• Linux日志分析-Ubuntu(一)


    查看Linux日志

    1.首先要做的,先分析明白我们经历了什么。而这一切都在日志里。

    Linux系统的日志,都保存在/var/log目录下: 
    /var/log/boot.log:记录了系统在开机引导过程中(开机自检过程显示在屏幕上)发生的事件 
    /var/log/lastlog:记录最后一次用户成功登陆的时间、登陆IP等信息 
    /var/log/messages:记录Linux操作系统常见的系统和服务错误信息 
    /var/log/secure:Linux系统安全日志,记录用户和工作组变化情况、用户登陆认证情况 
    /var/log/btmp:记录系统登陆失败的用户、时间以及远程IP地址 
    /var/log/syslog:只记录警告信息,常常是系统出问题的信息,使用lastlog查看 
    /var/log/wtmp:该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件,使用last命令查看 
    /var/run/utmp:该日志文件记录有关当前登录的每个用户的信息。如 who、w、users、finger等就需要访问这个文件 
    /var/log/syslog或/var/log/messages 存储所有的全局系统活动数据,包括开机信息。基于 Debian 的系统如 Ubuntu 在 /var/log/syslog中存储,而基于RedHat的系统如RHEL或CentOS 则在/var/log/messages 中存储。 
    /var/log/auth.log或/var/log/secure 存储来自可插拔认证模块(PAM)的日志,包括成功的登录,失败的登录尝试和认证方式。Ubuntu 和 Debian 在/var/log/auth.log 中存储认证信息,而RHEL或CentOS 则在/var/log/secure 中存储。

    我们需要的就是/var/log/btmp

    2.查看发起攻击的IP和攻击次数

    Linux命令:cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2" = "$1;}' 

    3.安装软件保护自己

    如果你用证书登录,那啥都不用安装。密码登录的,还是安全第一。 
    有两个比较常用的软件,可以安装在服务器上:fail2ban(支持多种协议,登录失败N次后拉黑IP)和denyhosts(支持SSH,自动屏蔽非法IP连接)。两款软件的对比参考:https://serverfault.com/questions/128962/denyhosts-vs-fail2ban-vs-iptables-best-way-to-prevent-brute-force-logons。fail2ban更全面,那就安装fail2ban。wiki在此:https://en.wikipedia.org/wiki/Fail2ban

    1.fail2ban安装配置教程:

    https://linux.cn/article-5067-1.html 
    http://www.cnblogs.com/jasmine-Jobs/p/5927968.html

    在CentOS7中安装还是比较简单的,yum install fail2ban即可。然后配置,把自己的规则放在/etc/fail2ban/jail.local 里以覆盖/etc/fail2ban/jail.conf 里的默认配置。配置摘要如下:

    在针对服务的监狱区(在[DEFAULT]区后面的地方),你需要定义一个[ssh-iptables]区,这里用来定义SSH相关的监狱配置。真正的禁止IP地址的操作是通过iptables完成的。

    [DEFAULT]
    # 以空格分隔的列表,可以是 IP 地址、CIDR 前缀或者 DNS 主机名
    # 用于指定哪些地址可以忽略 fail2ban 防御
    ignoreip = 127.0.0.1 172.31.0.0/24 10.10.0.0/24 192.168.0.0/24
    # 客户端主机被禁止的时长(秒)
    bantime = 86400
    # 客户端主机被禁止前允许失败的次数 
    maxretry = 5
    # 查找失败次数的时长(秒)
    findtime = 600
    mta = sendmail
    [ssh-iptables]
    enabled = true
    filter = sshd
    action = iptables[name=SSH, port=ssh, protocol=tcp]
    sendmail-whois[name=SSH, dest=your@email.com, sender=fail2ban@email.com]
    # Debian 系的发行版 
    logpath = /var/log/auth.log
    # Red Hat 系的发行版
    logpath = /var/log/secure
    # ssh 服务的最大尝试次数 
    maxretry = 3

    根据上述配置,fail2ban会自动禁止在最近10分钟内有超过3次访问尝试失败的任意IP地址。一旦被禁,这个IP地址将会在24小时内一直被禁止访问 SSH 服务。这个事件也会通过sendemail发送邮件通知。

    2.重启fail2ban服务,测试是否可用

    重启:systemctl restart fail2ban 
    测试服务可用性:fail2ban-client ping 
    如果有响应:Server replied: pong,表示成功。 
    测试暴力破解防护是否有效:用错误的密码来用SSH连接到服务器模拟一个暴力破解攻击 
    查看fail2ban日志:tail -f /var/log/fail2ban.log

    3.查看fail2ban当前活动的监狱列表:

    fail2ban-client status

    4.查看fail2ban指定监狱状态(例如ssh-iptables):

    fail2ban-client status ssh-iptables

    Status for the jail: ssh-iptables
    |- Filter
    |  |- Currently failed: 1
    |  |- Total failed: 92
    |  `- File list:    /var/log/secure
    `- Actions
       |- Currently banned: 3
       |- Total banned: 3
       `- Banned IP list:   123.249.9.74 140.143.241.113 218.93.201.199

    5.设置 Fail2ban 自动启动

    systemctl enable fail2ban

    每个IP在几次尝试后放弃,切换为其他IP(因为Linux有登录失败N次自动锁定当前用户的机制),所以这种防护效果有限,最好还是用证书登录。现实世界中一个IP代表一台主机,这么多机器,是怎么被人控制的呢?

    3.僵尸网络(Botnet,Robot network)

    从FreeBuf上看到一篇文章,把我给科普了一下,链接如下: 
    http://www.freebuf.com/articles/system/113690.html

    僵尸网络:黑客用一台台受控制的计算机(肉鸡)组成的网络。通过控制服务器(Command and Control Server,C&C,C2)可以操控每一个节点。数量巨大的节点同时访问指定服务器,即DDoS攻击(DDoS,Distributed Denial of Service)。

    控制服务器是整个网络的核心,负责执行黑客的指令,控制肉鸡的行为。控制服务器与肉鸡之间通讯通常用IRC协议,这又是什么鬼?

    4.IRC协议

    IRC(Internet Relay Chat)是一种互联网聊天协议,速度快,带宽占用小,用户可以在频道(Channel)群聊(需要服务器)或直接一对一聊天(可以不经过服务器)。

    so,控制服务器就是IRC服务器,每台肉鸡就是IRC客户端,登录的IRC服务器。黑客通过控制服务器向肉鸡下达指令。

    每个肉鸡通常至少开两个线程:一个负责和IRC服务器通讯接受指令,另一个则通过端口扫描尝试感染其他机器。

    常用的攻击方式是UDP攻击,它比TCP类型的攻击更难防,因为TCP是需要建立连接的,很容易被IDS/IPS设备RST,也很容易通过设置协议栈Syn Cookies屏蔽掉攻击包。

  • 相关阅读:
    私活。
    sql server 模拟数组【转】
    Updlock 与 Holdlock
    连上交换机后电脑无法上网
    linux的发展
    MySQL5.7中,用root用户登陆不进去数据库,报以下错误,然后重新修改了密码,好了。
    nginx反响代理tomcat配置ssl
    tomcat日志的切割脚本
    重启nginx报错:[error] invalid PID number "" in "/application/nginx-1.13.3/logs/nginx.pid"
    数据盘的挂载
  • 原文地址:https://www.cnblogs.com/sigmod3/p/9399715.html
Copyright © 2020-2023  润新知