udo apt-get update
sudo apt-get dist-upgrade -y
sudo apt-get install -y openssh-server
sudo reboot
2. 安装snort依赖
sudo apt-get install -y build-essential
sudo apt-get install -y libpcap-dev libpcre3-dev libdumbnet-dev
sudo apt-get install -y bison flex
mkdir ~/snort_src
cd ~/snort_src
wget http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz
tar -xvzf automake-1.15
cd automake-1.15
./configure --docdir=/usr/share/doc/automake-1.15
make
sudo make install
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz
tar xzf autoconf-2.68.tar.gz
cd autoconf-2.68
./configure
make
sudo make install
sudo wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz
sudo tar -zxvf LuaJIT-2.0.5.tar.gz
cd LuaJIT-2.0.5/
make
sudo make install
3. 安装DAQ
cd ~/snort_src
wget https://snort.org/downloads/snort/daq-2.0.7.tar.gz
tar -xvzf daq-2.0.7.tar.gz
cd daq-2.0.7
./configure
make
sudo make install
sudo apt-get install -y autoconf libtool pkg-config
cd ~/snort_src
wget https://github.com/nghttp2/nghttp2/releases/download/v1.17.0/nghttp2-1.17.0.tar.gz
tar -xzvf nghttp2-1.17.0.tar.gz
cd nghttp2-1.17.0
autoreconf -i --force
automake
autoconf
./configure --enable-lib-only
make
sudo make install
4. 安装snort
cd ~/snort_src
wget https://snort.org/downloads/snort/snort-2.9.15.1.tar.gz
tar -xvzf snort-2.9.15.1.tar.gz
cd snort-2.9.15.1
./configure --enable-sourcefire
make
sudo make install
5. 安装snort规则
# 首先创建snort配置(及规则)目录
mkdir -p /etc/snort/rules
# 创建运行需要目录
mkdir /usr/local/lib/snort_dynamicrules
# 首先将2.3解压出来的etc下的默认配置文件复制到snort配置目录下
cp etc/*.conf* /etc/snort
cp etc/*.map /etc/snort
# 下载社区规则并解压到规则目录
wget https://www.snort.org/downloads/community/community-rules.tar.gz
tar -zxf community-rules.tar.gz -C /etc/snort/rules
# 注释掉所有默认要加载的规则文件
sudo sed -i 's/include \$RULE\_PATH/#include \$RULE\_PATH/' /etc/snort/snort.conf
# 启用社区规则文件
echo '' >> /etc/snort/snort.conf
echo '# enable community rule' >> /etc/snort/snort.conf
echo 'include $RULE_PATH/community-rules/community.rules' >> /etc/snort/snort.conf
# 重新设置snort.conf中的变量值
sed -i 's/var RULE_PATH ..\/rules/var RULE_PATH .\/rules/' /etc/snort/snort.conf
sed -i 's/var WHITE_LIST_PATH ..\/rules/var WHITE_LIST_PATH .\/rules/' /etc/snort/snort.conf
sed -i 's/var BLACK_LIST_PATH ..\/rules/var BLACK_LIST_PATH .\/rules/' /etc/snort/snort.conf
# 创建默认使用的白名单文件
touch /etc/snort/rules/white_list.rules
# 创建默认的黑名单文件
touch /etc/snort/rules/black_list.rules
# 创建默认自己设置的规则文件,其实我们注意了其他include只include了社区规则,所以这条根本没用这里只是意思一下
touch /etc/snort/rules/local.rules
# 测试配置文件是否有误
snort -T -c /etc/snort/snort.conf
6. 安装完成后,简单试用三种模式
snort -v
rule config
detect mode
summary
Features Use Report
所谓的嗅探器模式就是snort从网络上读出数据包然后显示在你的控制台上,snort -vd命令可以输出包头信息的同时显示包的数据信息:
访问http://www.baidu.com后,tcp/ip数据探测如下:
退出探测模式后,snort会给出本次探测信息的摘要总结,包括运行时间、吞吐量、内存使用、数据IO和协议分类统计等。
2. 数据包记录器(snort -l)
如果要把所有的包记录到硬盘上,你需要指定一个日志目录,snort就会自动记录数据包,命令采用探测+记录的方式:./snort -dev -l ./20201105/log
访问http://www.sina.com后,关闭sniffer模式后,log文件就将访问新浪过程中所有数据包都记录在snort.og.1604647136中,我们vi打开后,可以看见访问sina中http报文的host。
另一方面,如果想记录特定端口号或协议特征的报文,可以在规则文件中定义:log udp any any -> 192.168.1.0/24 1:1024
3. 入侵检测(snort -c)
网络入侵检测模式是共有5种动作,pass、log、alert、dynamic及activate,而且是可配置的。我们可以让Snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。
首先配置一些规则(snort规则语法),新建一个local.rules,这里试用最简单的例子,当发现任何icmp协议报文时,给出告警并记录,内容显示为guyang:icmp packet;则,语法配置如下:alert icmp any any -> ant any (msg: "guyang:icmp packet"; sid:1993; rev:1;)
配置完规则后,启动NIDS模式:snort -c local.rules
启动另一个终端,并ping 8.8.8.8:
屏幕持续显示告警,当关闭终端后,可见监测报告:
由于是alert模式,数据包的告警细则会记录到/var/log/snort/alert中:
三种模式使用后,可以明显感觉Snort IDS易用性非常高,界面显示友好,并且支持的协议广泛,规则配置非常灵活简单,只要关注4个要素: who , where, what,how(行动)即可
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。