Tips
ubuntu系统配置相关Blog:
环境配置
ubuntu :Ubuntu Server 20.04 LTS 64bit x86架构
物理机:macOS Monterey. M1,2020
snort版本:snort3-3.1.31.0
更新系统软件源
sudo apt-get update && sudo apt-get dist-upgrade -y
更正时间
sudo dpkg-reconfigure tzdata
安装依赖包
sudo apt-get install -y build-essential autotools-dev libdumbnet-dev libluajit-5.1-dev libpcap-dev zlib1g-dev pkg-config libhwloc-dev cmake liblzma-dev openssl libssl-dev cpputest libsqlite3-dev libtool uuid-dev git autoconf bison flex libcmocka-dev libnetfilter-queue-dev libunwind-dev libmnl-dev ethtool
安装snort DAQ
在官网下载资源包
下载并安装最新版本的 Snort DAQ
(数据采集库)
snort 3.0 libdaq-v3.0.8.tar.gz
上传文件到ubuntu服务器
scp /path/local_filename username@servername:/path
安装文件上传,下载(Windows)
apt-get install lrzsz
ssh远程时,上传用rz命令,敲rz回车选你要上传的文件
下载用“sz 文件路径”回车,选保存的位置
新建一个snort专用文件夹,将以后snort的内容都放在这个文件夹
mkdir snortSourceFile mv libdaq-3.0.8 snortSourceFile
编译安装
cd libdaq-3.0.8
./configure
报错:error: cannot find input file: `api/Makefile.in’
aclocal
automake --add-missing
./bootstrap
./configure
编译成功
sudo make & make install
安装snort 3.0
本机下载snort后,上传到服务器
scp /path/local_filename username@servername:/path
将上传的文件解压,并移至snort文件夹
tar -zxvf snort3-3.1.31.0.tar.gz
rm -rf snort3-3.1.31.0.tar.gz
mv snort3-3.1.31.0 snortSourceFile
依赖库安装
sudo apt-get install libpcre3-dev
sudo apt-get install libdumbnet-dev
sudo apt-get install liblua5.2-dev
sudo apt-get install libnghttp2-dev
设置路径
vim ~/.bashrc
写入
export my_path=/usr/local 设置安装路径
source ~/.bashrc
编译
cd snortSourceFile
cd snort3-3.1.31.0/
./configure_cmake.sh --prefix=$my_path
cd build
make
sudo make install
修复链接
sudo ldconfig
测试是否安装成功
snort -V
用默认配置文件测试snort
snort -c /usr/local/etc/snort/snort.lua
能够成功运行
创建用户环境
sudo groupadd snort
sudo useradd snort -r -s /usr/sbin/nologin -c SNORT_IDS -g snort
参数说明:
-r:创建一个系统账户
-s:用户登录后使用的shell名称(默认值不填写,这样系统会指定预设的登入shell,根据/etc/default/useradd预设值)【sbin/nologin 代表这个用户无法使用bash或其他shell来登陆系统,即使给了密码也不行,但是可以使用系统资源。只是不能登陆主机而已。】
-g:group名称【添加到snort组下】
-c:comment,注释说明栏
检查是否添加成功
检查是否添加组成功
cat /etc/group
检查snort组下面用户是否添加成功
id snort
创建snort目录
sudo mkdir /etc/snort
sudo mkdir /etc/snort/rules
sudo mkdir /etc/snort/rules/iplists
sudo mkdir /etc/snort/preproc_rules
sudo mkdir /usr/local/lib/snort_dynamicrules
sudo mkdir /etc/snort/so_rules
创建规则文件
sudo touch /etc/snort/rules/iplists/black_list.rules
sudo touch /etc/snort/rules/iplists/white_list.rules
sudo touch /etc/snort/rules/local.rules
sudo touch /etc/snort/sid-msg.map
创建日志目录
sudo mkdir /var/log/snort
sudo mkdir /var/log/snort/archived_logs
加权限
sudo chmod -R 775 /etc/snort
sudo chmod -R 775 /var/log/snort
sudo chmod -R 775 /var/log/snort/archived_logs
sudo chmod -R 775 /etc/snort/so_rules
sudo chmod -R 775 /usr/local/lib/snort_dynamicrules
775权限:
root有读、写、执行权限
组用户有读、写、执行权限
其他用户有读、执行权限
读取权限 r=4。写入权限 w=2。执行权限 x=1
第一个数字 :拥有者权限(root,文件所有者)
第二个数字 :组用户权限(与文件所有者属于同一个用户组)
第三个数字 :其他用户权限
修改文件所属用户及用户组
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
将这些文件的所属修改为之前创建的snort组里面的snort用户
查看文件所属
ls -l <file>
第一列含义:
第一个字母含义:
第一个字母d:意味着内容是目录或文件
如果第一个是
-
:意味着它的内容是文件 第一个是l:意味着内容是链接文件
后面的内容是文件所属
(对应着三个数字权限775)
前三个字母是文件拥有者权限
中间三个是文件所有组权限
后三个是其他人访问文件的权限
第二列含义:多少链接指向这个文件
第三列含义:谁是这个文件/文件夹的所有者
第四列含义:谁是这个文件/文件夹所有组
第五列含义:这个文件/文件夹的以字节为单位的大小。目录的大小总是4096字节
第六列含义:文件最后修改时间
第七列含义:文件名或目录名
附录:snort 文件部署
已经设置的安装路径 export my_path=/usr/local
snort安装包所在路径、相关文档
cd /home/ubuntu/snortSourceFile
- doc:snort的一些说明文档所在文件夹
snort规则文件、配置文件
cd /etc/snort
snort日志文件
cd /var/log/snort
snort运行
/usr/local/bin/snort
/usr/sbin
创建守护进程【守护进程是在后台运行的进程,用于执行特定的系统任务。很多守护进程在系统引导的时候启动,并且一直运行到系统关闭。】
一个关于路径的小tips
安装路径是在
/usr/local/etc/snort
,里面存有默认的配置文件在
/etc/snort
这个文件内,有和/usr/local/etc/snort
相同的东西。用户在编写规则的时候,会在/etc/snort
里面添加rules文件夹,进行规则编写。所以我的理解,规则编写的逻辑是:
/etc/snort
是复刻了原本安装时默认的配置,在此基础上,进行用户的规则编写。不要在原路径上去修改原配置。不过也可能是我,不小心安装了两次,分别在不同的路径【手动狗头】
参考文章
snort给出的官方安装文档:snort3-3.1.31.0/README.md