前言

关于在线安装和离线安装的配合方式,在本文中不再赘述。基本就是准备在线、离线两个一模一样的环境,在在线环境中边安装边借助yumdownloader、wget等解析依赖和下载安装包,然后再离线环境中构建本地repo,利用yum进行直接安装。

具体细节,可以参考 Suricata 离线部署 这篇文章。

另外,本文的安装整体思路基本借鉴了 Arkime3(moloch)安装与配置 这篇文章,但是将环境迁移到了CentOS 8 Stream中,并且主要还是为了在离线环境中安装所记录。

一、环境准备

转向CentOS8,纯粹是因为要在离线环境下装一台古董机器,古董到主板似乎不支持UEFI设备启动。而CENTOS7的everything ISO高达7G多,小一点的标准ISO有4.8G,刚好超过一张标准DVD 4.7G的容量一丢丢。这搞得……如果不去买盒DVD9,估计是装不了了。而且,就算是DVD9,也不知道我的古董光驱能不能读出来。无奈,只能转向CENTOS 8 STREAM。因为好歹CENTOS8提供了一个boot版的安装镜像,只需要800M,一张DVD还是能刻下的。

CentOS官方网站进去,选择CentOS Steam,8,x86_64,随便选一个镜像地址进去就可以下载了。

至于安装过程,当然还是需要联网,好在可以先装好再离线,离线后用那个10G的ISO,可以构建本地的完整repo,用来进一步把yum-utils,createrepo装好。

二、ARKIME的下载和安装

既然CentOS升级了,Arkime咱也用最新的,当前最新的是Arkime3.4,直接到官网去下载rpm,当然这里似乎需要魔法,就是当你点下download看到一个小圈不停转、一直转的时候,就是提示你掏出魔法棒使用魔法了,注意念咒语的时候平卷舌和重音把握好,有效的话,应该能够看到下面的界面:

看到这个界面后面的操作其实就可以不用魔法加持了。直接到CentOS8下面下载,导入到要安装Arkime的系统中,可以用windows的SSH,也可以自己弄FTP,比如这篇文章有描述。如果是虚拟机,最好还是放在共享文件夹中,用vmhgfs-fuse映射。我这里是映射到/home/pig/share中,网络安全学习笔记合集自取!

直接安装一下试试,看看缺少啥依赖不……

可以看到,arkime在这里缺少的主要就3个依赖,分别是perl-JSON、perl-libwww-perl和perl-LWP-Protocol-https。使用yumdownloader解析并下载依赖包后安装。

三、ARKIME的配置和ES安装

依赖安装好以后,再执行arkime的安装就可以了。不过需要注意的是,这只是安装了arkime自身的一些组件,尚缺少elasticsearch,以及一些配置。而解决这一步的问题才是整个安装过程中比较复杂的部分。

至于如何安装elasticsearch,如何配置arkime,在/opt/arkime/bin/Configure这个脚本中列得很清楚了,建议直接读懂这个脚本,其实有用得行不多,看明白以后就知道后面的安装大致都干了什么,出错了也好处理。

最容易出错的地方(尤其是在离线安装时)是ElasticSearch的安装。

从官网上这里就可以看出,Arkime和ElastcSearch的版本是有一个配对关系的(实际就算版本号对准了,类型没对准也会转不起来,离线安装时我在这里卡了好久),所以还是不要自己去官网直接下载ES了,下不对很麻烦。我们可以借助这个Configure脚本,在在线安装的同时帮助我们直接下载对应版本的ES。

打开/opt/arkime/bin/Configure脚本,找到如下安装ES的这一行,复制一行后改一下命令,

把yum install改成wget,直接借用脚本中的ES下载链接,把对应版本的ES的rpm包给弄下来。

然后就可用用Configure进行ES的安装和Arkime的配置工作。

在此之前,先确定网络配置是正确的,最好使用手动配置IP,DHCP的IP地址每次开虚拟机都加1,很是崩溃:

并确认对应网络接口的名字,因为一会要填。

然后执行Configure,注意如下图的地方,第一个要填网卡接口名,第二个只能填yes,第三个填一个你自己的口令密码,好记不好记的无所谓,反正到现在也没让我输入第二次,然后就是下载和安装的时候,因为我们没有用-y选项,所以要敲两次Y,最后是GEO信息的下载,这里要选no,回头我们用前面参考那片博客的文章手动的配置它。

如果一切正常,主要是ES能够正确下载并安装的话,就会报告完毕,然后再GEO那个选项输入no后,基本就完事了,然后需要我们参考屏幕上返回的指示完成剩下的4、5、6、7、8、9步,这也很简单,复制对应的命令粘贴执行就好。

当然在systemctl start elasticsearch.service后,需要看看ES是否正常——有时虽然服务是开的,端口是开的,但是执行curl http://localhost:9200时就是看不到如下的结果,那么再继续往下就是没有意义的:

如果结果正确,可以执行第5步,初始化ES数据库,注意替换ESHOST为localhost;第6步,增加用户名和密码(这个会用来登录Arkime界面),密码记得用自己的,不要用我的:)

然后第7步,到这里,只要viewer的服务启动了,就可以再浏览器里输入http://localhost:8005登录arkime的界面了。但由于GEO还没配置号,capture服务应该无法正确启动,在arkime中还看不到实际采集的数据。

实际上,只要读懂了前面的Configure脚本,就能跟踪到此处是执行arkime_update_geo.sh,主要目的就是下载2个文件。从arkime_update_geo.sh直接拿出两个地址进行wget。

打开/opt/arkime/etc目录,下载下面两个地址的文件到该目录下:

1. https://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.csv
2.https://raw.githubusercontent.com/wireshark/wireshark/master/manuf

其中,第二个地址下载下来的文件应该改名为oui.txt。另外,第二个地址比较魔幻,早上连不上晚上能连上,固网能连上移动网连不上,不知是不是DNS问题,所以如果不太好用的话,就再试试下面这个地址,没准更好使一点:

https://gitlab.com/wireshark/wireshark/-/raw/master/manuf

下载及更名完成后,重启一下capture服务

再登陆服务器

等一会应该就能看到数据上来了,比如再session界面……实在等得着急的话,ping一下主机看看,应该也就可以了:

四、离线安装Arkime

离线安装的第一步,当然是建立本地repo;这个参考之前文章,不多说了,建库、清走原先的repo配置文件,新建local配置文件,清缓存、建缓存,5步走。

    然后就可以愉快地安装缺少的3个依赖项了,perl-JSON,perl-libwww-perl,perl-LWP-Protocol-https:

安装arkime的时候也不用rpm了,因为已经建立了库,所以直接yum install arkime……什么?不知道后面接着写啥?直接tab键就知道了。是不是很清爽:)

同样,用这个办法也可以在安装ES前知道yum install的那个ES的全名是什么,先tab出来,不要回车,我们复制一下,后面有用……

vim /opt/arkime/bin/Configure,把前面提到的那行下载并安装ES的语句直接替换成这一句,保存。

执行/opt/arkime/bin/Configure,是不是继续很清爽? :)

装完以后,接着依葫芦画瓢4、5、6、7、8、9。当然,那两个文件要提前拷贝到/opt/arkime/etc文件夹下面

弄完基本就装好了,唯一不同的是,因为网络接口上只配置了固定IP地址而没有任何数据,所以虽然capture服务运转良好,但在arkime里其实现在是看不到数据的。

至于离线环境下的pcap的解析建索引操作,可以直接执行/opt/arkime/bin/下的capture,命令很简单,参考--help,只需要使用-R一类的参数指定cap文件的目录或者list文件的位置即可,其它使用默认设置就行,arikimecapture服务也没有必要启动。

当然,如果所需做索引的数据量比较大的话,需要考虑默认存储索引的地方容量是否够用问题,这个需要先停止elasticsearch的服务后,编辑/etc/elasticsearch/elasticsearch.yml文件,配置将path.data: /var/lib/elasticsearch这个目录配置到有足够容量的地方,并且开启相应的权限。

由于我的模拟环境拆掉了,所以这里没有办法再贴图。话说更改ElasticSearch的数据存放目录,有一个比较坑的地方:就是直接建立一个目录去替换/var/lib/elasticsearch,百分之百服务会启动失败的。一般来说原因在于自建的目录所属和权限不对。使用ls -l /var/lib/elasticsearch观察一下目录权限,并且保证自建目录的权限和它一致,这里有几点需要注意:

  1. /var/lib/elasticsearch的ls结果是"drwxr-s--- elasticsearch elasticsearch”,表示其用户是elasticsearch user,组是elastic search和。

  2. drwxr-s---,指该目录拥有者可以读写执行,所属组可以读和执行,并且拥有GUID一类的权限(就是这个S,大写的S代表有这些GUID一类什么的权限,小写s代表除此之外还有执行权限);所以,在使用chmod调整新建目录的权限时,应该使用"chmod 2750 目录名"命令。

3.新建目录的外面应该所属是root,因为/var/lib都是root的,保持一致。

五、调整虚拟机分辨率

这个实在就几句话,不想新开贴了,在这里mark一下。用vmware可以不必关注,直接拉边框就行,但是用hyperV实在难受。在CentOS下,可以执行如下命令:

grubby --update-kernel=ALL --args="video=hyperv_fb:1600x1280"

分辨率可以自设,硬件支持就好,还有就是那个乘号,是英文字母x,欸克斯,不是全角数学符号。

如果还有问ARKIME不会部署安装,你就把这篇丢给他!的更多相关文章

  1. _00024 尼娜抹微笑伊拉克_云计算ClouderaManager以及CHD5.1.0群集部署安装文档V1.0

    笔者博文:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...

  2. Hadoop教程(五)Hadoop分布式集群部署安装

    Hadoop教程(五)Hadoop分布式集群部署安装 1 Hadoop分布式集群部署安装 在hadoop2.0中通常由两个NameNode组成,一个处于active状态,还有一个处于standby状态 ...

  3. Android 开发环境在 Windows7 下的部署安装

    Android SDK Android SDK 为 Android 应用的开发.测试和调试提了必要的API库和开发工具. ADT Bundle 下载 如果你是一个android 开发新手,推荐你下载使 ...

  4. Windows系统下部署安装一个/多个Tomcat8

    首先从http://tomcat.apache.org/上下载Tomcat8.0压缩版的,解压到指定路径后即可.  第一:在Windows系统中安装部署单个Tomcat         对于这种情况, ...

  5. Zabbix监控windows部署安装

    Zabbix agent 在windows上安装部署 1.  下载与解压 地址: http://www.zabbix.com/downloads/2.4.0/zabbix_agents_2.4.0.w ...

  6. Hadoop 2.2.0部署安装(笔记,单机安装)

    SSH无密安装与配置 具体配置步骤: ◎ 在root根目录下创建.ssh目录 (必须root用户登录) cd /root & mkdir .ssh chmod 700 .ssh & c ...

  7. Ubuntu16.04 部署安装Docker容器 & 注意事项

    一.部署安装Docker容器 1.1 Ubuntu下安装 crul sudo apt install curl curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被广泛应用在Unix.多 ...

  8. Docker+Redis镜像的原理以及部署安装(超详解附截图)

    文章来源:公众号-智能化IT系统. 一. DOCKER介绍 Docker简介 (1)Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从Apache2.0协议开源. (2)Docker 可 ...

  9. 单机多实例mysq 8.0l部署安装

    单机多实例mysql部署安装 目的需求 在单台虚拟机部署部署多实例mysql,用于配置mysql replication,MHA等. 思路 多实例安装mysql可以参考<源编译MySQL8.0的 ...

  10. 搭建互联网架构学习--006--duboo准备之zk集群部署安装

    dubbo集群部署安装依赖于zookeeper,所以先安装zookeeper集群. 1.准备三台机器做集群 2.配置 配置java环境  ,2,修改操作系统的/etc/hosts文件,添加IP与主机名 ...

随机推荐

  1. Atcoder dp I Coins 题解

    Atcoder链接:Coins Luogu链接:Coins $\scr{\color{BlueViolet}{Solution}}$ 观察数据,发现$ \cal{n} \le 3000 $,说明 $ ...

  2. [Codeforces Round #794 (Div. 2)] D. Linguistics

    我是什么东西艹艹艹 <我离正解只差个sort> 首先,观察字符串,可以发现:若存在形似\(AA--BB\)或\(BB--AA\)等有两个相同的字符挨在一起的情况,则我们在它们中间放一块隔板 ...

  3. Unity自定义Button

    2022.10.27更新: 该代码中包含以下几个事件:保持按下事件,与其他事件共存. 双击事件会先触发单击,这个问题已经解决,抱歉拖了这么久才完善. 并且新按钮命名为:ButtonPro /* * = ...

  4. 同时打开多个.exe文件怎么解决

    同时打开多个.exe文件怎么解决 小黑最近遇到一个问题,就是Unity封装好用来直接打开.exe的函数不好用了!! 怎么解决? 于是发现了.bat文件!好用至极啊 前提 小黑是征求过客户同意之后才这么 ...

  5. 基于AS2协议的EDI 系统

    一款由JAVA语言开发的基于AS2 协议的EDI 轻量级系统 优点如下: 1.价格便宜.目前市场上一条gateway线路动辄数万,甚至数万/年. 2.功能强大.功能可以与主流EDI 软件媲美. 3.可 ...

  6. php7.3的安装以及在Apache中部署php

    安装 php7.3 1.进入php官网:https://www.php.net/downloads.php 2.点击 Windows downloads 3.下载压缩包 4.将下载好的压缩包解压,可选 ...

  7. JSP第十一次作业

    1.第十二周上机作业(邮件功能)的控制层代码改用为servlet实现.2.学习通发布了考试,截止到本周六.  com.gd.dao  BaseDao 1 package com.gd.dao; 2 3 ...

  8. 浅谈Python中的包

    浅谈Python中的包 Package的定义(你以为的) 你在很多的地方都能看到关于package的定义:在Python中在当前目录下有__init__.py文件的目录即为一个package. 嗯,包 ...

  9. 搭个ChatGPT算法模型,离Java程序员有多远?

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 最近 ChatGPT 很火,火到了各行各业.记得去年更多的还是码农最新体验后拿它搜代码,现在各 ...

  10. Vue 24 props

    1 简介 props主要用于组件的传值,他的工作就是为了接收外面传过来的数据,与data.el.ref是一个级别的配置项 2 一个简单示例 1)StudentComp.vue <template ...