跳转到内容

集群手册/SnortIDS

来自维基教科书,开放的书籍,开放的世界

什么是 Snort?

[编辑 | 编辑源代码]

Snort 是一种网络入侵检测系统和网络入侵防御系统。它是一个由 Martin Roesch 在 1998 年创建的免费开源系统。Snort 由 Sourcefire 开发,并在 2009 年入选 InfoWorld 的开源名人堂,成为“有史以来最伟大的开源软件”之一。

Snort 能够对互联网协议网络进行实时流量分析和数据包记录,并执行协议分析、内容搜索和内容匹配。Snort 还可以用于检测探测或攻击,包括操作系统指纹识别尝试、通用网关接口、缓冲区溢出、服务器消息块探测和隐形端口扫描。

Snort 有三种主要的配置模式:嗅探器、数据包记录器和网络入侵检测。在嗅探器模式下,Snort 将读取网络数据包并在控制台上显示它们。在数据包记录器模式下,Snort 将数据包记录到磁盘,而在入侵检测模式下,Snort 将监控网络流量并根据用户定义的规则集对其进行分析。然后,Snort 会向用户发出警报,或者根据发生的情况执行特定操作。

软件包

[编辑 | 编辑源代码]

LAMP 服务器

[编辑 | 编辑源代码]

LAMP 是自由、开源软件的组合,LAMP 代表 Linux、Apache HTTP Server、MySQL 和 PHP、Perl 或 Python。LAMP 软件包中的确切软件可能有所不同,它不是由其原始作者设计为一个软件包。但它是紧密配合开发的,因此很容易适应。当一起使用时,它们支持 Web 应用程序服务器。

BASE 是基本分析和安全引擎。它基于入侵数据库分析控制台 (ACID) 项目的代码。此应用程序提供了 Web 前端来查询和分析来自 SNORT IDS 系统的警报。

BASE 是一个 Web 接口,用于执行对 Snort 在您的网络上检测到的入侵的分析。它使用用户身份验证和基于角色的系统,因此您可以作为安全管理员决定每个用户可以查看什么以及查看多少信息。它还具有一个易于使用的基于 Web 的安装程序,适用于不习惯直接编辑文件的人员。

对于 SnortIDS,您将使用 LAMP 服务器。它将充当 ACID 的 HTTP 服务器(您的 Web 接口),并将充当 Snort 的 MySQL 后端。Ubuntu 12.04 LTS 用于此设置。

LAMP 服务器

[编辑 | 编辑源代码]

root@master:/# sudo tasksel install lamp-server tasksel:启动一个简单的界面,供用户选择安装的一般任务。

系统将提示您选择 MySQL root 密码。这将在后面的安装中需要。

图 9.1:设置 MySQL root 密码

Snort-Mysql

[编辑 | 编辑源代码]

首先创建数据库。

root@master:/# mysql -u root -p
mysql> create database snort;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON snort.* TO 'masterusername'@'localhost' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
mysql> quit
root@master:/# _

接下来,您可以安装 SNORT

root@master:/# sudo apt-get -y install snort-mysql 系统将提示您输入本地网络的 IP 地址。这是您要保护的集群网络。必须使用无类别域间路由 (CIDR) 格式。10.0.x.0/24

图 9.2:设置要保护的网络的 IP 地址


系统将询问您是否希望设置一个用于 Snort 的数据库。

图 9.3:Snort 的数据库设置

选择否。您已经创建了数据库,您只需要配置它。这样您将更新 Snort 表结构。

root@master:/# pushd /usr/share/doc/snort-mysql
root@master:/# sudo zcat create_mysql.gz | mysql -u snort -p snort
# The syntax is: mysql -u <username> -p <prompt for password> <database>
root@master:/# popd

现在修改 Snort 配置文件以包含您的 MySQL 特定信息。

root@master:/# sudo sed -i "s/output\ log_tcpdump:\ tcpdump.log/#output\ log_tcpdump:\ tcpdump.log\noutput\ database:\ log,\ mysql, user=snort password=password dbname=snort host=localhost/" /etc/snort/snort.conf

上面的行位于 /etc/snort/snort.conf 的第 786 行。该代码片段只是在日志输出前面放置一个注释,并为我们的数据库追加输出行。

现在删除挂起的 Snort 数据库配置文件。

root@master:/# sudo rm -rf /etc/snort/db-pending-config 启动 Snort。

root@master:/# sudo /etc/init.d/snort start 要检查 Snort 守护进程的状态,请使用

root@master:/# sudo /etc/init.d/snort status

要检查 Snort 的输出,您将使用 ACID(一个 Web 前端)。

root@master:/# sudo apt-get -y install acidbase 系统将提示您为 acidbase 配置一个数据库。选择是并使用 MySQL。

图 9.4:BASE 配置

系统将提示您输入数据库管理员的密码。这与您最初使用 LAMP 安装 MySQL 时使用的密码相同。

图 9.5:设置数据库管理员的密码

要访问 acidbase Web 前端,您必须编辑 apache.conf

root@master:/# sudo sed -i "s#allow\ from\ 127.0.0.0/255.0.0.0#allow\ from\ 127.0.0.0/255.0.0.0\ '您的 IP'/255.255.255.0#" /etc/acidbase/apache.conf 这将允许您和机器访问前端。

您也可以允许所有人的访问

图 9.6:设置前端访问

要生效,您必须重启 Apache。

root@master:/# sudo /etc/init.d/apache2 restart 浏览到:http://’IP(装有 SNORT/acidbase 的机器的 IP 地址)

为了测试,请执行对 Snort 主机的端口扫描。您将为此需要 nmap 软件包。

root@master:/# sudo nmap -p1-65535 -sV -sS -O '您的 SNORT 机器 IP' 如果某些内容无法正常工作,请尝试重新配置 SNORT。使用以下命令,您可以重置 IP。

root@master:/# sudo dpkg-reconfigure snort-mysql

华夏公益教科书