抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Tips

ubuntu系统配置相关Blog:

新系统的ubuntu基本配置

环境配置

ubuntu :Ubuntu Server 20.04 LTS 64bit x86架构

物理机:macOS Monterey. M1,2020

snort版本:snort3-3.1.31.0

更新系统软件源

1
sudo apt-get update && sudo apt-get dist-upgrade -y

更正时间

1
sudo dpkg-reconfigure tzdata

安装依赖包

1
2
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服务器

1
scp /path/local_filename username@servername:/path  

安装文件上传,下载(Windows)

1
apt-get install lrzsz

ssh远程时,上传用rz命令,敲rz回车选你要上传的文件

下载用“sz 文件路径”回车,选保存的位置


新建一个snort专用文件夹,将以后snort的内容都放在这个文件夹

1
2
mkdir snortSourceFile
mv libdaq-3.0.8 snortSourceFile

编译安装

1
2
cd libdaq-3.0.8
./configure

报错:error: cannot find input file: `api/Makefile.in’

1
2
aclocal
automake --add-missing

1
2
./bootstrap
./configure

编译成功

1
sudo make & make install

安装snort 3.0

snort3-3.1.31.0.tar.gz

本机下载snort后,上传到服务器

1
scp /path/local_filename username@servername:/path  

将上传的文件解压,并移至snort文件夹

1
2
3
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

依赖库安装

1
2
3
4
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

设置路径

1
vim ~/.bashrc

写入

1
export my_path=/usr/local   设置安装路径
1
source ~/.bashrc

编译

1
2
3
4
5
6
cd snortSourceFile
cd snort3-3.1.31.0/
./configure_cmake.sh --prefix=$my_path
cd build
make
sudo make install

修复链接

1
sudo ldconfig

测试是否安装成功

1
snort -V

用默认配置文件测试snort

1
snort -c /usr/local/etc/snort/snort.lua

能够成功运行

创建用户环境

1
2
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,注释说明栏

检查是否添加成功

检查是否添加组成功

1
cat /etc/group

检查snort组下面用户是否添加成功

1
id snort

创建snort目录

1
2
3
4
5
6
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

创建规则文件

1
2
3
4
5
6
7
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

创建日志目录

1
2
3
sudo mkdir /var/log/snort

sudo mkdir /var/log/snort/archived_logs

加权限

1
2
3
4
5
6
7
8
9
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,文件所有者)

第二个数字 :组用户权限(与文件所有者属于同一个用户组)

第三个数字 :其他用户权限

修改文件所属用户及用户组

1
2
3
4
5
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安装包所在路径、相关文档

1
cd /home/ubuntu/snortSourceFile
  • doc:snort的一些说明文档所在文件夹

snort规则文件、配置文件

1
cd /etc/snort

snort日志文件

1
cd /var/log/snort

snort运行

1
/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

snort官网

Snort3安装和配置

Linux 上搭建 Snort+BASE 入侵检测系统

ubuntu搭建入侵检测系统

评论