在我之前的文章中,我介绍了设置Graylog2日志记录服务器。在这篇文章中,我们将开始从我们的基础架构资产中获取一些日志到我们的Graylog安装中。所使用的基础设施资产的数量和类型因人而异,因此无法在一篇文章中查看所有可能的日志来源。但是,对于很多技术来说,这个过程或多或少都是一样的,这篇文章应该会帮助你理解整个方法。
我将介绍为以下设置日志聚合:
Apache有效负载/网上诱骗/ C2重定向器服务器。
Postfix / Sendmail邮件服务器。
Graylog消息输入和Rsyslog :
在开始设置日志聚合之前,我应该说一些关于Graylog的消息输入和Rsyslog的内容:
消息输入是Graylog用来提取传入日志消息的内容。
rsyslog是为快速处理日志而生的工具。这是一个基于* nix的工具(通常是预安装的),用于通过网络转发日志消息(通过TCP或UDP)。这就是我们将用来将来自我们的基础设施资产(又名客户端)的日志转发给Graylog的原因。
服务器 - 设置Graylog消息输入:
直到启动Graylog输入以获取这些日志为止,我们才能开始从客户端转发日志。
Graylog中的消息输入配置非常简单。它们从System → Inputs菜单中的Web界面启动。
Graylog支持大量的消息输入类型。正如我前面提到的,我们将要使用Rsyslog,选择“ Syslog TCP ”,完成后点击“ 启动新输入 ”。
下一个屏幕中的大多数设置都是可选的,只需给你的新输入一个名称并选择你将要使用的绑定端口(你的Graylog服务器将创建一个监听服务来提取该端口上的日志)。Rsyslog默认使用514端口,我推荐在下面的例子中使用一个独立的高端口(> 1024),如5140。
配置完成后,点击开始输入来启动它。
现在我们可以开始从客户端向Graylog发送一些日志。
客户端 - Apache webserver日志聚合:
登录到您的Apache Web服务器并创建文件/etc/rsyslog.d/apache.conf。将以下文本粘贴到其中:
$ModLoad imfile
# Default Apache Error Log
$InputFileName /var/log/apache2/error.log
$InputFileTag apache-error-default:
$InputFileStateFile stat-apache-error
$InputFileSeverity info
$InputFileFacility local3
$InputRunFileMonitor
# Default Apache Access Log
$InputFileName /var/log/apache2/access.log
$InputFileTag apache-access-default:
$InputFileStateFile stat-apache-access
$InputFileSeverity info
$InputFileFacility local4
$InputRunFileMonitor
$InputFilePollInterval 1
接下来,打开/etc/rsyslog.conf并将以下文本粘贴到文件底部:
$WorkDirectory /var/spool/rsyslog
$ActionQueueFileName fwdRule1
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1
*.* @@graylog.example.org:5140;RSYSLOG_SyslogProtocol23Format
local3.* @@graylog.example.org:5140;RSYSLOG_SyslogProtocol23Format
local4.* @@graylog.example.org:5140;RSYSLOG_SyslogProtocol23Format
接下来你只需启动Rsyslog服务,并且你的Apache Web服务器应该开始将其日志转发给Graylog。
sudo service syslog stop
sudo service rsyslog restart
sudo service rsyslog status
让我们来看看它是否工作。然后返回到你的Graylog服务器Web管理并打开Sources菜单。你可以在源列表中看到Apache Web服务器的主机名/ IP地址。
要验证你的Apache日志实际上是否正在实时处理,请打开Graylog的搜索菜单并在您的Apache客户端上生成一些Apache日志。你可以从你的服务器下载一个文件,用Nikto扫描它等等完成这些操作。
你应该看到你的日志出现在搜索菜单的消息部分。
现在,你只需对您的管理下的所有基于Apache的基础架构资产(负载服务器,钓鱼服务器,重定向器等)重复上述步骤,然后继续下一步。
服务器 - Apache日志解析:
默认情况下,Graylog不会将Apache日志适当地解析为可轻松从输入中提取信息的格式,例如IP地址,用户代理,请求字符串,响应代码等。现在,日志以未经过滤的未经过滤的文本形式出现,不会让我们轻松分析它们。
我们将使用Grok模式修复此问题。
I)选择一个Apache日志消息示例:
你需要做的第一件事是从Graylog的搜索菜单中选择任何Apache日志消息以用作示例。点击它并记下2个值; 该消息的ID字符串存储在索引里。
II)创建一个Apache日志提取器:
接下来,进入系统→输入菜单,然后单击正在运行的Rsyslog输入旁边的“ 管理提取器”按钮。
点击Add extractor菜单下的“ 开始 ”,然后点击Message ID选项卡。粘贴消息ID字符串和您之前从示例Apache日志中提取的索引。完成后点击“ 加载消息 ”。
您的完整的Apache示例日志应该在下一个窗口中加载。滚动到“消息”字段,并从“选择提取器类型”下拉菜单中选择Grok模式。
如果一切顺利,您应该在示例消息窗口中看到示例Apache日志。您现在需要做的就是粘贴Grok模式,将其解析为Grok模式文本框。
将下面的整个字符串粘贴到文本框中,然后点击旁边的“ Try ” 按钮:
%%% \ [% \]“(?:%%(?: HTTP / )?|%)“%(?:% | - )
您应该在“ Extractor Preview ”窗口中将您的示例Apache日志正确地解析为多个字段。
你现在要做的就是给你的提取器一个名字,然后点击“ 创建提取器 ”按钮。确保总是尝试提取单选按钮被选中。
III)测试:
现在,所有进入日志服务器的Apache日志都会自动分析到多个字段中; 使分析更容易。您可以通过在Graylog的收视新Apache日志验证这个小号目录操作搜索菜单。现在不存在的字段现在应该可供您使用。
注意: Grok模式非常强大,可以从各种来源解析日志; Web服务器,邮件服务器甚至自定义应用程序。我肯定会推荐在 System → Grok patterns菜单下检查Graylog的内置Grok模式。您可以从其他来源上传新的Grok模式,或者如果您感觉符合您的要求,甚至可以自行编写。
客户端 - 邮件服务器日志聚合:
Postfix和Sendmail都将日志写入syslog的邮件工具。邮件日志通常存储在/ var / log / maillog中。与Apache Web服务器日志不同,它们也由Rsyslog的默认配置来处理。
这对我们来说是个好消息,因为您只需编辑邮件服务器中的/etc/rsyslog.conf文件,并将以下行添加到文件的底部即可。
现在只需重新启动Rsyslog,并且您的邮件服务器的日志应该开始出现在Graylog中。
sudo service syslog stop
sudo service rsyslog restart
sudo service rsyslog status
提示:默认情况下,Postfix仅在其日志文件中捕获传出电子邮件的“发件人”和“收件人”详细信息。按照本博客中的步骤捕获电子邮件的主题以及更详细的日志记录。
额外的C2日志聚合:
如果你也有兴趣在从钴打击C2拍摄日志中Graylog ,请参阅“ 钴特攻队服务器日志客户端 ”部分在这个职位,然后用上面的Apache日志的聚集指令导入您的钴打击网络登录到Graylog 。
我真的一直无法弄清楚如何将Empire的日志发送给Graylog,但是如果您在Empire C2(您应该这样做)前使用重定向器,那么将重定向器的日志发送给Graylog应该就足够了。
结论:
现在我们有一个Graylog服务器从多个攻击基础架构资产中接收日志。在下一篇文章中,我将介绍如何设置仪表板来可视化这些数据。
参考:
http://docs.graylog.org/en/2.4/pages/sending_data.html
https://community.graylog.org/t/rsyslog-udp-works-but-not-syslog-tcp/2511
https://github.com/Graylog2/graylog-guide-syslog-linux/blob/master/README.md#rsyslog
http://www.rsyslog.com/sending-messages-to-a-remote-syslog-server/
https://bluescreenofjeff.com/2017-08-08-attack-infrastructure-log-aggregation-and-monitoring/
https://gist.github.com/GaryRogers/85c8f2a805010ceeccc6
领取专属 10元无门槛券
私享最新 技术干货