1.centos 7安装
(1)centos下载
http://mirrors.cn99.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso
(2)安装及配置
a、网络配置
step1:输入dhclient ,进行动态IP分配
step2:编辑 /etc/sysconfig/network-scripts/ifcfg-ens33(不同网卡文件不同)).
修改并配置静态IP: BOOTPROTO=static ONBOOT=yes
增加地址信息(按实际情况修改):
IPADDR=192.168.2.123
NETMASK=255.255.255.0
GATEWAY=192.168.2.2
DNS1=8.8.8.8
DNS2=114.114.114.114
step3:重启网卡服务:systemctl network restart
step4:查看ip是否生效命令:ip addr
b、镜像源修改
centos默认yum源不一定是国内镜像,导致yum在线安装及更新速度不是很理想。需要将yum源设置为国内镜像。国内主要是网易和阿里。
网易: http://mirrors.163.com
阿里:http://mirrors.aliyun.com
中科大:https://lug.ustc.edu.cn/wiki/lug/services/mirrors
step1:备份系统自带yum源配置文件/etc/yum.repos.d/ 目录下下的文件;在改文件夹下新建目录:mkdir yum_repos_backup;移动该目录下的文件到yum_repos_backup中做备份。
step2:获取镜像源
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
step3:生成缓存 yum clean all ; yum makecache ;此时出现错误,无法生成缓存。于是增加科大的镜像 ;
wget -O CentOS-Base.repo https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=3
再次执行yum clean all和yum makecache。
2.suricata安装前准备(依赖)
基础依赖:libpcap, libpcre, libmagic, zlib, libyaml
解析及编译工具:make gcc (or clang) pkg-config
如需要使用suricata完整特性,需依赖:libjansson, libnss, libgeoip, liblua5.1, libhiredis, libevent
如需Rust 支持,依赖:rustc, cargo。并非每个发行版都提供Rust包。
如centos下的安装
(1)yum install epel-release
(2)sudo yum -y install gcc libpcap-devel pcre-devel libyaml-devel file-devel \
zlib-devel jansson-devel nss-devel libcap-ng-devel libnet-devel tar make \
libnetfilter_queue-devel lua-devel
3.suricata 下载与安装(suricata-4.1.3.tar.gz)
https://www.openinfosecfoundation.org/download/suricata-4.1.3.tar.gz
(1)解压及配置
tar -xvzf suricata-4.1.3.tar.gz
cd suricata-4.1.3
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
--enable-nfqueue --enable-lua
常见的配置选项说明:
--prefix=/usr/ : 将Suricata二进制文件安装到/usr/bin/中,默认/usr/local/
--sysconfdir=/etc : 将Suricata配置文件安装到/etc/ Suricata /中。默认/usr/local/etc/
--localstatedir=/var:将Suricata日志记录到/var/log/ Suricata /中。默认/usr/local/var/log/suricata
--enable-lua : 启用Lua支持检测和输出。
--enable-geopip:启用对检测的GeoIP支持。
--disable-rust:禁用Rust支持。如果rustc/cargo可用,则默认启用Rust支持
--disable-gccmarch-native: 不要为构建二进制文件的硬件优化二进制文件。如果二进制文件是可移植的,或者Suricata要在VM中使用,则添加此标志
(2)安装
make
sudo make install
sudo ldconfig
4.设置
4.1 自动设置
(4.1.1)make install-conf
make install-conf 将执行常规的“make install”,然后它将为你自动创建/设置所有必要的目录和suricata.yaml
(4.1.2)make install-rules
make install-rules将执行常规的“make install”,然后它会从新兴的威胁(Emerging Threats)自动下载和设置最新的规则集。
如果此时如果出现suricata-update 命令未找到,需要安装suricata-update,suricata-update是用python写的。解决方法如下:
a. 首先升级python2 -> python3
下载python3.7: wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
解压:tar -zxf Python-3.7.3.tgz
安装依赖: yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc libffi-devel
配置: 进入到cdPython-3.7.3后执行./configure --prefix=/usr/local/python3.7
编译及安装:make&& make install
备份python2的软链接:mv /usr/bin/python /usr/bin/python.bak
创建python3的软连接 ;ln -s /usr/local/python3.7
/bin/python3.7 /usr/bin/python:
查看版本: python -V
因为yum需要使用python2,将/usr/bin/python改为python3后,yum就不能正常运行了,因此需要更改一下yum的配置。
vim /usr/bin/yum
vim /usr/libexec/urlgrabber-ext-down
编辑这两个文件,将文件头的#!/usr/bin/python改为#!/usr/bin/python2即可
b. 然后安装suricata-update
yum install python-pip python-yaml
pip install --pre --upgrade suricata-update
再次执行make install-rules.
suricata-update 会自动进行规则更新,显示当前已经更新与启用了多少规则。规则更新后,所有的规则都会保存在/val/lib/suricata/rules/suricata.rules这一文件中,这个时候需要修改suricata配置文件的default-rule-path与rule-files来指定规则文件到这个规则上。具体内容查看suricta-update安装。
suricata-update list-sources 可以列出当前的规则源
(4.1.3)make install-full
make install-full将结合上面提到的所有内容(install-conf和install-rules),并向您展示一个准备好运行(配置和设置)的Suricata。
4.2 手动设置
(1)首先为Suricata的日志信息创建一个目录
sudo mkdir /var/log/suricata
(2)创建/etc/suricata目录,为配置文件准备
sudo mkdir /etc/suricata
(3)从编译/安装目录复制 classification.config、reference.config 、suricata.yaml到/etc/suricata:
sudo cp classification.config /etc/suricata
sudo cp reference.config /etc/suricata
sudo cp suricata.yaml /etc/suricata
(4)设置变量
a、确保yaml配置文件中的vars、address-groups和port-groups的每个变量都已根据您的需要正确设置。完整的解释请查看yaml规则变量。需要在HOME_NET上设置本地网络的ip地址。建议将EXTERNAL_NET设置为!$HOME_NET。这样设置,除了HOME_NET上设置的ip地址之外,其他ip地址都将被视为外部地址。也可以将EXTERNAL_NET设置为“any”,使用该推荐的设置更精确,并且降低了生成误报的几率。HTTP_SERVERS、SMTP_SERVERS、SQL_SERVERS、DNS_SERVERS和TELNET_SERVERS默认设置为HOME_NET。AIM_SERVERS默认设置为“any”。必须为网络上的服务器设置这些变量。所有的设置都必须设置,这让suricata有一个更准确的效果。
b、确保下面的端口设置为您需要的端口:HTTP_PORTS、SHELLCODE_PORTS、ORACLE_PORTS 、 SSH_PORTS.
c、根据需要设置主机操作系统策略,有关详细说明请参阅HOST OS 策略。
(5)规则集管理和下载
可以使用Oinkmaster进行规则管理,或者从这里下载并解压缩您选择的目录(或yaml配置设置)中的规则集http://rules.emergingthreats.net/open/suricata/,或者,如果您愿意,可以下载并使用VRT规则集。建议经常更新规则。每天修改新出现的威胁,每周或每周多次更新VRT。
(6)网络接口卡(网卡)
a、输入ifconfig ,检查可用的网卡,现在您可以看到您希望Suricata使用哪一个网卡。
b、要启动引擎并包含您想用的网卡,请输入(推荐使用错误测试规则--init-errors-fatal参数,wlan0 可以改为你喜欢的接口卡):
sudo suricata -c /etc/suricata/suricata.yaml -i wlan0 --init-errors-fatal
c、要查看引擎是否正常工作并接收和检查流量,请输入:
cd /var/log/suricata
tail http.log 或者tail -n 50 stats.log
d、要确保显示的信息是实时更新的,请在http.log和stats.log之前使用-f选项
tail -f http.log stats.log