如何在Debian上配置Snort

Snort是一个免费的网络入侵检测系统(IDS)。在不太正式的术语,它可以让你监视你的网络的可疑活动实时。目前,Snort具有用于Fedora,CentOS,FreeBSD和基于Windows的系统的软件包。确切的安装方法因操作系统而异。在本教程中,我们将直接从Snort的源文件中进行安装。本指南是为Debian编写的。

更新,升级和重启

在实际使用Snort来源之前,我们需要确保我们的系统是最新的。我们可以通过发出以下命令来做到这一点。

sudo apt-get update
sudo apt-get upgrade -y
sudo reboot

安装前配置

系统重新启动后,我们需要安装许多软件包以确保可以安装SBPP。我能够弄清楚所需要的许多软件包,因此下面是基本命令。

sudo apt-get install flex bison build-essential checkinstall libpcap-dev libnet1-dev libpcre3-dev libnetfilter-queue-dev iptables-dev libdumbnet-dev zlib1g-dev -y

安装完所有软件包后,您将需要为源文件创建一个临时目录-它们可以位于您想要的任何位置。我将使用/usr/src/snort_src。要创建此文件夹,您需要以root用户身份登录或具有sudo权限- root只是使其变得更加简单。

sudo mkdir /usr/src/snort_src
cd /usr/src/snort_src

安装数据采集库(DAQ)

在获得Snort的源代码之前,我们需要安装DAQ。安装非常简单。

wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz

从压缩包中提取文件。

tar xvfz daq-2.0.6.tar.gz

转到DAQ目录。

cd daq-2.0.6

配置并安装DAQ。

./configure; make; sudo make install

最后一行将./configure首先执行。然后它将执行make。最后,它将执行make install。我们在这里使用较短的语法只是为了节省键入时间。

安装Snort

我们要确保/usr/src/snort_src再次进入该目录,因此请确保使用以下命令切换到该目录:

cd /usr/src/snort_src

现在我们位于源代码目录中,我们将下载tar.gz源代码文件。在撰写本文时,Snort的最新版本是2.9.8.0

wget https://www.snort.org/downloads/snort/snort-2.9.8.0.tar.gz

实际安装snort的命令与用于DAQ的命令非常相似,但是它们具有不同的选项。

提取Snort源文件。

tar xvfz snort-2.9.8.0.tar.gz

转到源目录。

cd snort-2.9.8.0

配置并安装源。

 ./configure --enable-sourcefire; make; sudo make install

安装Snort

一旦安装了Snort,就需要确保共享库是最新的。我们可以使用以下命令执行此操作:

sudo ldconfig

完成之后,测试您的Snort安装:

snort --version

如果此命令不起作用,则需要创建一个符号链接。您可以通过键入以下内容来执行此操作:

sudo ln -s /usr/local/bin/snort /usr/sbin/snort
snort --version

结果输出将类似于以下内容:

   ,,_     -*> Snort! <*-
  o"  )~   Version 2.9.7.5 GRE (Build 262)
   ''''    By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
           Copyright (C) 2014-2015 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using libpcap version 1.6.2
           Using PCRE version: 8.35 2014-04-04
           Using ZLIB version: 1.2.8

根除鼻涕

现在我们已经安装了snort,我们不希望它以身份运行root,因此我们需要创建一个snort用户和组。要创建新的用户和组,我们可以使用以下两个命令:

sudo groupadd snort
sudo useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snort

由于我们已经使用源代码安装了程序,因此我们需要创建配置文件和snort规则。

sudo mkdir /etc/snort
sudo mkdir /etc/snort/rules
sudo mkdir /etc/snort/preproc_rules
sudo touch /etc/snort/rules/white_list.rules /etc/snort/rules/black_list.rules /etc/snort/rules/local.rules

创建目录和规则后,现在需要创建日志目录。

sudo mkdir /var/log/snort

最后,在添加任何规则之前,我们需要一个位置来存储动态规则。

sudo mkdir /usr/local/lib/snort_dynamicrules

一旦创建了所有以前的文件,请对其设置适当的权限。

sudo chmod -R 5775 /etc/snort
sudo chmod -R 5775 /var/log/snort
sudo chmod -R 5775 /usr/local/lib/snort_dynamicrules
sudo chown -R snort:snort /etc/snort
sudo chown -R snort:snort /var/log/snort
sudo chown -R snort:snort /usr/local/lib/snort_dynamicrules

设置配置文件

为了节省大量时间并避免必须复制和粘贴所有内容,只需将所有文件复制到配置目录中即可。

sudo cp /usr/src/snort_src/snort*/etc/*.conf* /etc/snort
sudo cp /usr/src/snort_src/snort*/etc/*.map /etc/snort

现在配置文件已存在,您可以执行以下两项操作之一:

  • 您可以启用Barnyard2
  • 或者,您可以只保留配置文件,然后有选择地启用所需的规则。

无论哪种方式,您仍然要更改一些内容。继续阅读。

组态

/etc/snort/snort.conf文件中,您需要更改变量HOME_NET。应该将其设置为内部网络的IP块,这样它就不会记录您自己的网络登录服务器的尝试。这可能是10.0.0.0/24192.168.0.0/16。在第45行,/etc/snort/snort.conf将变量更改为HOME_NET网络IP块的值。

在我的网络上,它看起来像这样:

ipvar HOME_NET 192.168.0.0/16

然后,您必须将EXTERNAL_NET变量设置为:

any

只是变成EXERNAL_NET了你HOME_NET不想要的东西。

制定规则

现在已经建立了大部分系统,我们需要为这只小猪配置规则。某处在你的周围管线104 /etc/snort/snort.conf文件,你会看到一个“VAR”声明和变量RULE_PATHSO_RULE_PATHPREPROC_RULE_PATHWHITE_LIST_PATH,和BLACK_LIST_PATH。它们的值应设置为我们在中使用的路径Un-rooting Snort

var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules
var WHITE_LIST_PATH /etc/snort/rules
var BLACK_LIST_PATH /etc/snort/rules

一旦设置了这些值,请从第548行开始删除或注释掉当前规则。

现在,请检查以确保您的配置正确。您可以使用进行验证snort

 # snort -T -c /etc/snort/snort.conf

您将看到类似于以下的输出(为简洁起见,将其截断)。

 Running in Test mode

         --== Initializing Snort ==--
 Initializing Output Plugins!
 Initializing Preprocessors!
 Initializing Plug-ins!
 .....
 Rule application order: activation->dynamic->pass->drop->sdrop->reject->alert->log
 Verifying Preprocessor Configurations!

         --== Initialization Complete ==--

    ,,_     -*> Snort! <*-
   o"  )~   Version 2.9.8.0 GRE (Build 229) 
    ''''    By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
            Copyright (C) 2014-2015 Cisco and/or its affiliates. All rights reserved.
            Copyright (C) 1998-2013 Sourcefire, Inc., et al.
            Using libpcap version 1.7.4
            Using PCRE version: 8.35 2014-04-04
            Using ZLIB version: 1.2.8

            Rules Engine: SF_SNORT_DETECTION_ENGINE  Version 2.4  <Build 1>
            Preprocessor Object: SF_IMAP  Version 1.0  <Build 1>
            Preprocessor Object: SF_FTPTELNET  Version 1.2  <Build 13>
            Preprocessor Object: SF_SIP  Version 1.1  <Build 1>
            Preprocessor Object: SF_REPUTATION  Version 1.1  <Build 1>
            Preprocessor Object: SF_POP  Version 1.0  <Build 1>
            Preprocessor Object: SF_DCERPC2  Version 1.0  <Build 3>
            Preprocessor Object: SF_SDF  Version 1.1  <Build 1>
            Preprocessor Object: SF_GTP  Version 1.1  <Build 1>
            Preprocessor Object: SF_DNS  Version 1.1  <Build 4>
            Preprocessor Object: SF_SSH  Version 1.1  <Build 3>
            Preprocessor Object: SF_DNP3  Version 1.1  <Build 1>
            Preprocessor Object: SF_SSLPP  Version 1.1  <Build 4>
            Preprocessor Object: SF_SMTP  Version 1.1  <Build 9>
            Preprocessor Object: SF_MODBUS  Version 1.1  <Build 1>

 Snort successfully validated the configuration!
 Snort exiting

现在,所有内容都已配置无误,我们准备开始测试Snort。

测试鼻息

测试Snort的最简单方法是启用local.rules。这是一个包含您的自定义规则的文件。

如果您在snort.conf文件中的第546行附近注意到此行,则该行存在:

include $RULE_PATH/local.rules

如果没有,请在546左右添加。然后可以使用该local.rules文件进行测试。作为基本测试,我只是让Snort跟踪ping请求(ICMP请求)。您可以通过在local.rules文件中添加以下行来实现。

 alert icmp any any -> $HOME_NET any (msg:"ICMP test"; sid:10000001; rev:001;)

将其保存在文件中后,将其保存,然后继续阅读。

运行测试

以下命令将启动Snort并使用配置在snort组下以用户snort的身份打印“快速模式”警报/etc/snort/snort.conf,并且它将在网络接口上进行监听eno1。您将需要更改eno1为系统正在侦听的任何网络接口。

$ sudo /usr/local/bin/snort -A console -q -u snort -g snort -c /etc/snort/snort.conf -i eno1

一旦它运行,就对那台计算机执行ping操作。您将开始看到如下所示的输出:

01/07−16:03:30.611173 [**] [1:10000001:0] ICMP test [**] [Priority: 0]  192.168.1.105 -> 192.168.1.104
01/07−16:03:31.612174 [**] [1:10000001:0] ICMP test [**] [Priority: 0]  192.168.1.104 -> 192.168.1.105
01/07−16:03:31.612202 [**] [1:10000001:0] ICMP test [**] [Priority: 0]  192.168.1.105 -> 192.168.1.104
^C*** Caught Int−Signal

您可以按Ctrl + C退出程序,仅此而已。Snort已全部设置好。现在,您可以使用所需的任何规则。

最后,我想指出,社区制定了一些公共规则,您可以从官方站点的“社区”选项卡下��载。查找“ Snort”,然后在其下方有一个社区链接。下载该文件,将其解压缩,然后查找community.rules文件。



Leave a Comment

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)

如何在Debian 9上安装Monica

如何在Debian 9上安装Monica

使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具

将Debian 9升级到Debian 10

将Debian 9升级到Debian 10

简介Debian 10(Buster)是Debian 9(Stretch)的后继产品。它于2019年7月6日发布。在本教程中,我们将升级一个existin

如何在Debian 9上安装Grav CMS

如何在Debian 9上安装Grav CMS

使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何

在Debian / Ubuntu中使用Rsync设置文件镜像

在Debian / Ubuntu中使用Rsync设置文件镜像

简介如果您经营一个重要的网站,则最好将文件镜像到辅助服务器。如果您的主服务器有网络

在适用于Minecraft服务器的Ubuntu 14.04上安装MineOS

在适用于Minecraft服务器的Ubuntu 14.04上安装MineOS

MineOS是一个完整的Minecraft服务器平台,具有Web GUI,自动备份,存档,性能统计信息以及其他功能。配置

在Debian 7上安装Prosody

在Debian 7上安装Prosody

在Debian 7上安装Prosody Prosody是用LUA编写的XMPP通信服务器。它旨在易于设置和配置,并通过syste高效

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在Debian 9上安装Mailtrain Newsletter应用程序

如何在Debian 9上安装Mailtrain Newsletter应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。Mailtrains源位于GitHub上。锡

如何在Debian 9上安装Attendize

如何在Debian 9上安装Attendize

使用其他系统?Attendize是一个基于Laravel PHP框架的开源门票销售和事件管理平台。参加源鳕鱼

如何安装ARK:Debian 9的生存进化

如何安装ARK:Debian 9的生存进化

简介在本指南中,您将学习如何在Vultr VPS上创建ARK:Survival Evolved服务器。要求Vultr VPS至少为8192 M

在Debian / Ubuntu上设置您自己的DNS服务器

在Debian / Ubuntu上设置您自己的DNS服务器

本教程说明了如何在Debian或Ubuntu上使用Bind9设置DNS服务器。在整篇文章中,请相应地替换your-domain-name.com。在

在Debian上安装带有PHP-FPM和MySQL的Hiawatha Web服务器

在Debian上安装带有PHP-FPM和MySQL的Hiawatha Web服务器

Hiawatha是一种Web服务器,具有简单性,易用性和安全性。对于小型服务器,较旧的硬件或嵌入式设备,它是完美的解决方案

在Debian 7(Wheezy)上安装Plesk

在Debian 7(Wheezy)上安装Plesk

使用其他系统?Plesk是专有的Web主机控制面板,允许用户管理其个人和/或客户的网站,数据库

在Debian / Ubuntu上设置vsFTPd

在Debian / Ubuntu上设置vsFTPd

简介vsftpd代表“非常安全的FTP守护程序”。它是一个轻量级的FTP服务器。这个简短的教程说明了如何在Debian或Ubuntu上安装vsftpd

如何在Debian 9上安装LimeSurvey CE

如何在Debian 9上安装LimeSurvey CE

使用其他系统?LimeSurvey是一个用PHP编写的开源调查软件。LimeSurvey源代码托管在GitHub上。本指南将向您展示

在Debian 7上使用MySQL视图

在Debian 7上使用MySQL视图

简介MySQL具有一个伟大的功能,称为视图。视图是存储的查询。可以将它们视为否则会很长查询的别名。在本指南中,

如何在Debian 9上安装和配置TaskBoard

如何在Debian 9上安装和配置TaskBoard

使用其他系统?简介TaskBoard是一个免费的开源工具,可以用来跟踪要做的事情。它提供了一个用户友好

如何在Debian 9上安装Osclass

如何在Debian 9上安装Osclass

使用其他系统?Osclass是一个开放源代码项目,可让您轻松创建分类站点,而无需任何技术知识。它的来源

如何在Debian 9上使用块存储设置Samba

如何在Debian 9上使用块存储设置Samba

Samba是一个开放源代码解决方案,允许用户设置快速安全的文件和打印共享。在本文中,我将介绍如何设置Samba wit

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。