CENTOS上的网络安全工具(一)Suricata 离线部署

2023-11-06 10:59

本文主要是介绍CENTOS上的网络安全工具(一)Suricata 离线部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、环境准备

        最近有个需求,要在一个没有互联网的单机上装个Suricata,没有局域网,没有局域网镜像服务器的那种。最大的挑战,就是各种乱七八糟的依赖项,要一个一个的对着下载对着装,实在是太麻烦了。好在借助yumdownloader,可以在能够联网的机器上整理好所有依赖,然后在没有网络的单机上,可以借助createrepo构建yum安装环境,基本就可以快乐的安装了,省去了用yum localinstall直接安装rpm时候不断补依赖包的痛苦。

        照例,先交代试验环境。两台虚拟机,一台可以连接互联网,另一台在配置中删除了网络适配器,确保完全没有网络环境,两台安装同样的CentOS7,内核版本如下。

         然后,为了传递离线包方便,基于Vmware在windows主机上建立共享文件夹,取好名字,我取得名字是share。

         虚拟机CentOS随便找哪建一个空文件夹,我建在/home/pig下面,取名也叫share。当然,别的名字,不一样的名字都无所谓。

         使用vmhgfs-fuse命令挂载一下就可以了。

         两台虚拟机可以挂在主机的同一个文件夹上,这样传文件就方便多了。

二、准备依赖项

        1.下载epel-release离线安装包        

        因为我们不打算从源代码编译开始安装suricata,那样太麻烦;而且我们打算做的不就是构建本地yum安装环境不是?所以,计划的方案是直接安装suricata的rpm;但是suricata的rpm在yum的镜像里面没有,是在epel里面的,所以要想离线安装suricata,首先我们得能够离线安装epel。

        在有互联网的虚拟机上,执行yumdownloader下载epel-release的rpm,使用--resolve选项将解析并提取所有依赖:

         当然,外网机自己也得装上epel,否则就提取不了suricata了。

          2.下载suricata离线安装包

        同理使用yumdownloader去解析suricata的离线安装包及相关依赖,可以看到这一次下载的包就要多不少了。

         到这里,离线包就准备好了。下面我们转战没有网络的虚拟机。因为之前设定了一摸一样的共享目录,所以离线包现在在没有网络的虚拟机的/home/pig/share中也存在,直接用就好了。

三、构建离线安装环境

        要使本地的yum命令能够将我们自己构造的包含rpm的目录当作映像库,需要配置有关yum的一些映像配置文件。所有centos默认的映像库配置文件都存储在/etc/yum.repos.d目录下,每个.repo配置文件中记录了映像库的网络连接、使能开关、验证密钥等等参数。 

        1.构建本地映像库

        首先,我们需要将存有我们下载的离线rpm包的文件夹组织成本地映像库。这一步的主要作用是解析文件夹中的所有rpm包,并构建rpm包的依赖树信息,yum install后面会用到。

        转到/home/pig/share文件夹。不转也行,转过来看起来舒服点。然后执行:

        createrepo /home/pig/share

        该命令会解析文件夹下所有rpm及其依赖项,然后在目录下生成一个repodata的文件夹,里面存放了解析的相关信息,那个repomd.xml文件很重要,如果没有后面yum install就会报错说找不到这玩意。

         2.配置本地映像库

        构建好本地的映像库,还需要让yum知道这个映像库的位置,这就需要在前面所说的映像配置目录下面做些手脚了:   

         在/etc/yum.repos.d/下面新建一个文件,叫什么名字都好,repo结尾估计是需要的。然后在里面把刚在构建的本地映像库地址配置进去:        

         然后,删除原有的repo文件,因为这个机器压根没配网卡,留着会出错(貌似是如果连DNS都做不了的话,makecache程序就直接报错,不往下进行,自然也就不会解析我们新建的Local.repo文件了。反正也用不着,删了吧:

         清空一下yum的缓冲,并重新构建一下:

        这样就行了。

四、安装Suricata

        1.安装Suricata主程序

        接下来, 我们可以开始离线安装Suricata了。

        看,直接yum install,epel-release就装上了:

         但是直接yum install suricata是不行的,原因嘛,看这里:      

         安装epel-release的时候,epel也创建了一个repo库,但这个库并不是本地的:

         安装suricata的时候,回到epel中去寻找,自然失败。同样,删掉或者挪走它们,再使用yum install suricata安装就行了:

         这样舒心多了不是:)

        2.安装Suricata-update

        首先交代一下身份,刚才咱装了个啥:

        执行suricata-update,结果……,这里还隐藏了一个依赖项pyyaml……

         所以需要依葫芦画瓢,再来一遍构建本地库的过程。当然,如果你有很好的阅读习惯,没动手之前就看到这个的话,那就直接一并弄了吧。

        下载pyyaml的依赖包:(这里尤其注意一下,因为先前图省事,我们直接用share做了repo的文件夹,现在往里面下依赖包就下不进去了。先进去把repodata干掉):

         (再尤其注意一下,不要轻易相信前面那个报错,缺少的依赖包叫PyYAML,不叫pyyaml。我在这里卡了好久  >:P)。然后download:

         可以看到多了一个rpm包,正是PyYAML。当然如果下到一个暂新的空目录的话,libyaml包会被重新下一遍。

        回到没有互联网的那台机器,重新createrepo一下:

         因为yum的映像库地址已经配过,这里不用再配了,但是还需要在repos.d下面做一下yum clean all 和yum makecache;

        然后就可以直接执行 yum install PyYAML了:        

         行了,suricata-update应该正常了,使用list-sourse看看现在我们都有那些公开规则源:        

        3.更新规则        

        直接使用suricata-update list-enabled-sources查看,可以看到现在没有可用规则(直接使用默认规则,默认规则是存放在/etc/suricata/rules目录下的)

        看看Info里面指示的data-directory,什么也没有:

         看看Info指示说的,默认规则存放的地方,这里确实是有一批规则的:

         虽然不少,但这些规则源都是需要互联网才能使用的。  作为在离线环境中使用的suricata,我们还需要继续想办法解决规则更新的问题。     

        在没有网络的这台机器里面 执行一下suricata-update:

         执行过程略解释一下:

  • 首先是告知一下所使用的data目录、配置文件、默认规则和版本,事实上也是告知一下,如果要想动手脚,都去哪里改。
  • 加载配置文件
  • 根据禁止规则列表禁用规则
  • 由于我们尚未enable任何源,所以默认下载Emerging Threats Open源,即常说的ET源,由于没有网络,自然会报错
  • 将默认目录里的非禁用规则全部装载(装载343,禁用40)
  • 创建目录,备份规则,将所有规则写入到/var/lib/suricata/rules/suricata.rules里面(共343条,使能的261条,新增343条。

        这个时候我们再去看一下/var/lib/suricata/rules目录,确实有一个文件在那里了。这个就是在suricata中生效的规则文件。

    五、Suricata的离线使用

        1.离线更新规则

        既然知道了suricata-update都在做什么,离线就简单了。一种思路,直接把suricata.rules覆盖了就行;另一种思路,下好了放在/etc/suricate/rules下面,再update一下看行不行。第一种就不说啥了,过于直接了。试试第二种吧。

        在联网的虚拟机上执行suricata-update,可以看到ET成功下载了:            

         可以看到,这个规则数量是惊人的,已经加载了32906条。

        suricata.rules文件也比离线时的64K大好多,约19M

         就用这个地址,我们到共享文件夹里面手工wget一下:

         多了一个emerging.rules.tar.gz的文件。然后把它解压到某个目录,比如说/home/pig/rules/下面,会自己再生成一级子目录,也叫rules。当然前面那个目录哪都行。

        接下来使用suricata-update的本地更新命令就可以了:

        比如刚才我们解压后所有的文件都再/home/pig/rules/rules下面:

         那么执行 suricata-update --local /home/pig/rules/rules就可以了:

         可以看到,默认的/etc/suricata/rules,以及index.yaml里面的源仍然回去找,但是我们指定的位置的rules也被提取了,最终和线上的结果一样,都是32906条。

         看看目的地址被整合的suricata.rules,和线上结果一摸一样。成功!

        2. 使用suricata检查离线文件

        自己截了个pcap包,命名为test.pcap,放在了/home/pig/share里面,然后用suricata本地跑一下:

         事先/home/pig下面建了了log目录,不然会放到默认目录/var/log/suricata底下。另外就是一定要加上-k none,关闭校验和判断,不然会看到一堆校验和不过的。

         3.禁用不必要的规则

        不过即使我关闭了校验和,仍然会有大量错误校验和的报警出来,查看/home/pig/log/fast.log:

        这简直没法看,查了一下网上说法,大约时爱奇艺的某个进程,使用uPnp开的CDN。虽然我强行掐了好些爱奇艺相关进程,也没有啥立竿见影的效果,等了好一会才逐渐停下来。不知道其具体的实现机制是啥。

        算了,与本文无关。暂不深究,只需要屏蔽掉ID号为2200073和2200075的规则即可 。

        按照suricata的文档,可以在/etc/suricata/下新建一个disable.conf文档来设定不作用的规则。不过这个文档的模板,在我的机器上,是在/usr/lib/python2.7/site-packages/suricata/update/configs这个目录里面:
        将其拷贝到/etc/suricata底下再作修改如下:

        重新执行suricata-update --local /home/pig/rules/rules 

         可以看到,这一次被禁用的规则比上一次多了2条,变成81条了。先删除原先的log,以免追加,然后再执行一次:        看看新的log

 

         这次啥也没有命中,这很正常不是吗:)

        六、Suricata的在线使用

        在线使用suricata比较简单,因为安装程序自动设置了网络接口,所以直接systemctl start suricata即可,不过suricata默认的log文件/var/log/suricata目录下。如果目录下log没有更新,可以看看systemctl status suricata,以及使用netstat -ano|grep "suricata"是否打开了网络连接。如果确实失败了,应该检查一下/etc/suricata/suricata.yaml文件,看看-interface是否配置错了:

        suricata.service 莫名的错误

        然鹅,再一切都安好的某一天,不知是不是suricata更新版本哪里出错的缘故(前文搭的时候是4.1.0;而现在我用的是5.0.9……)。suricata的服务确无论如何启动不了了。经过一晚上的排查,发现是服务程序在启动时不再去yaml文件提取接口“ens33”,而是默认使用了“eth0”,从而导致启动一会就出错退出了,看下图那个34044开头的命令行……

         无奈只有到/usr/lib/systemd/system下找到suricata.service,然后顺藤摸瓜找到/etc/sysconfig/suricata,如下图所示,果不其然这货居然把eth0写死在参数里。

        喵的,只好继续改,改完就一切如常了……我这……

 

这篇关于CENTOS上的网络安全工具(一)Suricata 离线部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/356212

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

超强的截图工具:PixPin

你是否还在为寻找一款功能强大、操作简便的截图工具而烦恼?市面上那么多工具,常常让人无从选择。今天,想给大家安利一款神器——PixPin,一款真正解放双手的截图工具。 想象一下,你只需要按下快捷键就能轻松完成多种截图任务,还能快速编辑、标注甚至保存多种格式的图片。这款工具能满足这些需求吗? PixPin不仅支持全屏、窗口、区域截图等基础功能,它还可以进行延时截图,让你捕捉到每个关键画面。不仅如此

如何做好网络安全

随着互联网技术的飞速发展,网站已成为企业对外展示、交流和服务的重要窗口。然而,随之而来的网站安全问题也日益凸显,给企业的业务发展和用户数据安全带来了巨大威胁。因此,高度重视网站安全已成为网络安全的首要任务。今天我们就来详细探讨网站安全的重要性、面临的挑战以及有什么应对方案。 一、网站安全的重要性 1. 数据安全与用户隐私 网站是企业存储和传输数据的关键平台,包括用户个人信息、

在 Windows 上部署 gitblit

在 Windows 上部署 gitblit 在 Windows 上部署 gitblit 缘起gitblit 是什么安装JDK部署 gitblit 下载 gitblit 并解压配置登录注册为 windows 服务 修改 installService.cmd 文件运行 installService.cmd运行 gitblitw.exe查看 services.msc 缘起

Solr部署如何启动

Solr部署如何启动 Posted on 一月 10, 2013 in:  Solr入门 | 评论关闭 我刚接触solr,我要怎么启动,这是群里的朋友问得比较多的问题, solr最新版本下载地址: http://www.apache.org/dyn/closer.cgi/lucene/solr/ 1、准备环境 建立一个solr目录,把solr压缩包example目录下的内容复制

centos 6安装 vim

centos 安装vim 1.首先查询当前当前vim所依赖的包存在不存在.检查缺少哪个几个依赖包 [root@bogon firstCopy]# rpm -qa|grep vivimvim-common-7.4.160-5.el7.x86_64vim-enhanced-7.4.160-5.el7.x86_64vim-filesystem-7.4.160-5.el7.x86_64vim-

PR曲线——一个更敏感的性能评估工具

在不均衡数据集的情况下,精确率-召回率(Precision-Recall, PR)曲线是一种非常有用的工具,因为它提供了比传统的ROC曲线更准确的性能评估。以下是PR曲线在不均衡数据情况下的一些作用: 关注少数类:在不均衡数据集中,少数类的样本数量远少于多数类。PR曲线通过关注少数类(通常是正类)的性能来弥补这一点,因为它直接评估模型在识别正类方面的能力。 精确率与召回率的平衡:精确率(Pr