目录
2. 为 Snort 单独创建用户,并设置用户 shell 为 nologin
在发布博客之前,博主新建虚拟机,严格按照以下步骤进行测试,可一遍调通。
步骤一 获取 Snort3 规则集和 OpenAppID
官网下载 Snort3 社区规则集和 OpenAppID ,并通过共享文件夹或者其他方式传入虚拟机的自定义路径下(博主把规则集压缩包放在了 ../../Snort/rules/ 路径下,把 OpenAppID 放在了 ../../Snort/OpenAppID/ 路径下),然后解压。要搭建共享文件夹请参考文章,此处不再赘述。
在 ../../Snort/rules/ 路径下打开终端,执行以下命令解压规则集。
tar -xzvf ./snort3-community-rules.tar.gz
// 此处压缩包名称需替换为你实际的压缩包名称,一般情况下名称与此处一致
在 ../../Snort/OpenAppID/ 路径下打开终端,执行以下命令解压 OpenAppID 。
tar -xzvf ./snort-openappid.tar.gz
// 此处压缩包名称需替换为你实际的压缩包名称,一般情况下名称与此处一致
步骤二 配置 snort.lua
Snort 的主配置文件 snort.lua 一般位于 /usr/local/etc/snort/snort.lua ,接下来需要修改该文件,可使用系统预装的 nano 编辑器进行编辑,也可以安装 vim 高效文本编辑器进行编辑。
安装 vim (可选)。
sudo apt update && sudo apt install vim
执行以下命令,编辑 snort.lua 主配置文件。
// 使用 nano
sudo nano /usr/local/etc/snort/snort.lua
// 使用 vim
sudo vim /usr/local/etc/snort/snort.lua
执行命令后,将会进入 snort.lua 的文件编辑页面,此时请务必不要强行关闭终端!
在 snort.lua 文件中,需要修改的项目有:
- 将 HOME_NET 的值修改为需要进行网络入侵检测的网段,可以设置为主机所在的网段。
HOME_NET = '192.168.1.100' - 将 EXTERNAL_NET 的值修改为除了 HOME_NET 以外的所有网段。
EXTERNAL_NET = '!$HOME_NET' - 在 ips 的字段中添加键值对,其中规则集路径需替换为之前解压的实际路径,可以添加社区规则集,也可以添加自定义的规则集。
ips = { -- use this to enable decoder and inspector alerts --enable_builtin_rules = true, -- use include for rules files; be sure to set your path -- note that rules files can include other rules files -- (see also related path vars at the top of snort_defaults.lua) include = '/home/jin/Snort/rules/snort3-community-rules/snort3-community.rules', variables = default_variables } - 在 appid 的字段中添加键值对,其中 OpenAppID 路径需替换为之前解压的实际路径。
appid = { -- appid requires this to use appids in rules --app_detector_dir = 'directory to load appid detectors from' app_detector_dir = '/home/jin/Snort/OpenAppID', log_stats = true }
修改完成后,参照以下方式退出编辑器:
// nano
键入 Ctrl+X 退出编辑
键入 y 保存更改
回车保存原文件
// vim
Esc 进入命令模式
键入 :wq 并回车,保存并退出
键入 :q! 并回车,不保存并退出
步骤三 检查配置
可以使用 snort -c 参数检查配置。执行以下命令,若无报错,显示 "successfully" 类似字样即表示配置无误。
snort -c /usr/local/etc/snort/snort.lua
步骤四 设置 snort 为服务模式
Snort 可使用 -D 参数进入后台运行,也可以按照如下方式设置服务模式运行。
1. 创建 log 文件夹存放 snort 日志
sudo mkdir /home/jin/Snort/log
// 自行定义路径
2. 为 Snort 单独创建用户,并设置用户 shell 为 nologin
sudo useradd -r -s /usr/sbin/nologin -M -c SNORT_IDS snort
3. 创建 Snort3 服务
执行以下命令,编辑 snort3.service 文件。
// nano
sudo nano /etc/systemd/system/snort3.service
// vim
sudo vim /etc/systemd/system/snort3.service
添加以下内容,其中 log 文件夹替换为自己定义的文件夹路径。
[Unit]
Description=Snort 3 NIDS Daemon
After=syslog.target network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -s 65535 -k none -l /home/jin/Snort/log -D -i ens33 -m 0x1b -u snort -g snort
[Install]
WantedBy=multi-user.target
添加完成后退出文件编辑器。
4. 修改 Snort 日志目录的属性
依次执行以下命令,修改所有者和组,并设置权限。
sudo chown -R snort:snort /home/jin/Snort/log
// 路径替换为自己定义的文件夹路径
// 修改目录权限
// 所有者可读写执行,组内用户可读写执行,其他用户无权限
// 可自行更改权限类型
sudo chmod -R 750 /home/jin/Snort/log
// 修改文件权限
// 所有者可读写,组内用户可读,其他用户无权限
// 可自行更改权限类型
sudo find /home/jin/Snort/log -type f -exec chmod 640 {} \;
// 重新加载 systemd 服务管理器的配置文件
sudo systemctl daemon-reload
可执行以下命令查看权限是否修改成功。
stat -c "%a" /home/jin/Snort/log
// 路径替换为自己定义的文件夹路径
若出现之前设置的八进制权限值则表示目录权限修改成功。
stat -c "%a" /home/jin/Snort/log/*
// 路径替换为自己定义的文件夹路径
若提示权限不够则表示修改成功。
5. 启动 Snort3 服务并设置为开机自启动
sudo systemctl enable --now snort3.service
6. 检查运行状态
sudo systemctl status snort3.service
若出现如下图的字样,则表示服务运行正常。
![]()
至此,Snort3 可以正常使用了。
692

被折叠的 条评论
为什么被折叠?



