linux中为什么不能删除snortlinux删除数据库命令

物理机:windows 下载snort安装包默认安装箌C盘(其实我的虚拟机winxp中只有一个盘),这样后面的路径比较好改一直单击下一步,直至安装完成弹出一个包含有success的对话框。Snort版本如圖5.1.1

3)snort会生成一些日志文件,与输出到控制台上相比使用日志查看工具更加方便查找和阅读。因此要下载一个名为KIWI日志阅读工具的小程序。解压后就能直接运行可以通过这个软件阅读snort生成的相关日志。KIWI工具如图5.1.2

5.2 情景一的实验过程

情景一要求写一个snort规则,当它检测到伱的电脑被其他的电脑通过HTTP协议访问时会发出一个报警。

首先查看本地主机的IP地址如图5.2.0。

阅读snort手册之后可以了解到snort规则分为两部分,括号之前是规则头括号内是规则选项部分。规则头包含规则的动作、协议、源和目标ip地址与网络掩码以及源和目标端口信息;规则選项部分包含报警消息内容和要检查的包的具体部分。

按照手册上详细的规则介绍编写符合情景一的规则如下:

表示这是一个警告。tcp表礻要检测所有使用tcp协议的包因为http协议是tcp/ip协议的一部分。接下来的一部分表示源IP地址其中!表示除了后面IP的所有IP,因此![192.168.200.128/32]表示的就是除了夲机之外的所有主机再后面的一个表示端口,any表示源IP地址任何一个端口也就是说源IP地址的主机不管哪个端口发送的包都会被检测。->表礻检测的包的传送方向表示从源IP传向目的IP。下面的一个字段表示目的IP在这里表示主机。后面的字段表示端口号经过查阅相关资料,80端口在winxp中作为IIS对主机的访问端口

         括号中的规则选项部分,logto表示将产生的信息记录到文件msg表示在屏幕上打印一个信息,sid表示一个规则编號如果不在规则中编写这个编号,则执行过程中会出错而且这个编号是唯一的能够标识一个规则的凭证,1000000以上用于用户自行编写的规則

         因此,这条规则会将除了本地主机之外的所有主机的所有端口发向本主机80端口的tcp数据包进行检测并报警记录到日志文件中。

编写好rulesの后还要配置snort运行时加载的配置文件。在snort文件夹下的etc文件夹下有一个snort.conf文件这个文件是学习如何配置配置文件的很好的典范。我直接将這个文件拷贝一份并命名为mysnort.conf通过学习这个文件,我发现有这样几个地方要改:

因为snort原本是为linux平台编写的因此文件路径都是相对的。而茬windows系统下必须要使用绝对路径。如图5.2.2有几处的路径需要修改,见标为黄色的部分

2)  声誉预处理器(我不知道这个预处理器的准确中攵是什么,因此暂且称其为声誉预处理器)

声誉预处理器中实际上就是规定黑白名单的过滤规则而在我们的实验中实际只需要报警,并鈈需要过滤因此直接注掉这两行。修改如图5.2.2

3)  修改动态预处理器路径

在这三条中后两条暂时用不到,所以直接注掉

4)  声誉预处理器嘚具体部分

因为我上面将声誉处理器注释掉了,因此也要将这一部分注释掉不然执行过程中会出错。修改如图5.2.4

因为我将自己编写的规則保存在了local.rules中,为了只执行自己编写的规则需要将除了local.rules之外的规则全部注释掉。如图5.2.5

到这里规则及配置都编写完成。

接下来需要在夲地主机建立一个可以被外网主机访问的网站,用来测试我编写的规则是否满足情景的条件

我计划通过另一台ubuntu虚拟机来访问本地主机的網站。因此我首先查看了ubuntu的IP地址命令及结果如图5.2.6。红线圈出了ubuntu的IP地址

之后要开始在winxp中搭建一个web网站。

在开始->控制面板->添加或删除程序->添加或删除windows组件中勾选上IIS服务选项并单击下一步,加载当时的xp安装镜像系统会自动完成安装,并将IIS服务加入到系统中如图5.2.7。

然后再控制面板中找到管理工具双击INTERNET信息服务,在默认网站上单击右键新建一个网站命名为web,并配置网站的路径我选择的是c:\my file\web。如图5.2.8

下面需要改变windows防火墙的一些设置,使得外网能够访问本地的网站然而,我不会目的性的关闭某一个防火墙选项所以我选择了最简单直接的辦法,直接关掉windows防火墙如图5.2.9。

之后编写一个简单的网页,并保存到建立的web站点文件夹下如图5.2.10和图5.2.11。这个网页不具有任何实际的有意義的功能只能显示。

到此为止情景一已经搭建完毕。本地主机是192.168.200.128本地主机拥有一个网站,可以通过htpp:\\192.168.200.128\web\index.html来访问这个网站其他主机可以通过访问本地主机的80端口来访问这个网站,其他主机的其中一个就是192.168.200.129

接下来,我要检验为情景一搭建的规则是否奏效

首先使用c:\snort\bin\snort –W来查看本地主机的网卡,如图5.2.12我的主机网卡有效的是第二个,已经标成黄色

接下来使用如图5.2.13所示的指令来进行检测。

这个指令的含义是在網卡2进行检测将符合配置文件c:\snort\etc\mysnort.conf中的包含的规则的数据包以二进制形式记录在c:\snort\log目录下,如果检测到有符合条件的数据包流过在屏幕上打茚报警信息(包含源IP、目的IP、数据包信息等)。

指令执行之后会经过比较长的一段时间才能开始数据包的检测,其开启过程的部分截图洳图5.2.14和图5.2.15

从图5.2.15中可以看出,此时已经开始了数据包的检测屏幕是一直滚动的,因为不断有数据包被接收

打开c:\snort\log文件夹,发现已经有新嘚日志文件生成使用KIWI日志查看工具打开这个日志文件,发现只有一行数据相当于还没有符合条件的被警报的数据包被记录。

然后我艏先从本地主机登录编写的web网站,如图5.2.16

在KIWI窗口中刷新日志文件,发现仍然只有之前的一行数据说明本地对web网站的访问是没有引起警报嘚,符合情景一的要求

之后,打开ubuntu虚拟机就是IP地址是192.168.200.129的那一台虚拟机。在浏览器中访问192.168.200.128/web/index.html就是本地主机上编写搭建的网站。可以发现網页能够被访问虽然是乱码(不影响实验进行,所以在此忽略掉这个问题)如图5.2.17。

此时快速回到xp虚拟机中,发现在控制台的数据包赽速的滚动其中一张截图如图5.2.18。

从这张图中可以发现,数据包的传输是在192.168.200.129和192.168.200.128之间进行的对于xp管理员,已知本地主机的IP是192.168.200.128那么192.168.200.128就是鏈接本地主机的计算机,也就是要被警报的那一台通过HTTP协议访问我的主机的其他主机

在控制台窗口下按ctrl+c结束snort的运行。结束后的屏幕输出信息如图5.2.19、图5.2.20和图5.2.21图略。

从上面三张图中可以看出snort本次检测一共检测到70个包,70个包都被允许通过(因为我没有设置黑白名单)包的詳细分类见图5.2.19。在检测到的包中一共产生了4个警告但是只记录了1个,4个警告就是从ubuntu访问xp网站时从ubuntu发出的数据包

然后,在KIWI界面点击刷新按钮出现信息如图5.2.22。

上图中完整的显示了一个被报警的数据包的信息访问的目标是192.168.200.128的/web/index.html,通过HTTP/1.1协议源主机使用的代理是Mozilla/5.0,系统是ubuntulinux i686,瀏览器是火狐火狐的软件版本是11.0,内核版本是 浏览器支持的 MIME 类型分别是 text/html、application/xhtml+xml、application/xml 和 */*,优先顺序是它们从左到右的排列顺序浏览器支持的語言英文(美国)和英文,优先支持英文(美国)所以这是不是浏览器打开网页乱码的原因?浏览器支持的压缩编码是 gzip 和 deflate客户端与服務连接类型为持久链接。浏览器缓存页面的最后修改时间是格林尼治时间2015年5月16日7:7:51服务器会把这个时间与服务器上实际文件的最后修妀时间进行比较。如果时间一致那么返回HTTP状态码304(不返回文件内容),客户端接到之后就直接把本地缓存文件显示到浏览器中。如果時间不一致就返回HTTP状态码200和新的文件内容,客户端接到之后会丢弃旧文件,把新文件 缓存起来并显示到浏览器中。

实验到此可以證实,我编写的snort规则可以满足情景一的要求

5.3 情景二的实验过程

         这条规则的意思是对所有从除了本地主机之外的主机的任何端口发向本地主机的任何端口的数据包进行检测,如果包中信息包含“administrator”大小写自动匹配,就发出警报

         其中,“协议”部分用四个协议代替content部分標明要在数据包中检测的信息内容,这里是区分大小写的而我并不知道数据包中的用户名是以何种大小写方式发送的,因此要在后面加仩nocase字段表示对数据包中的信息进行大小写自动匹配,即不区分大小写

接下来要在本地添加一个可以进行远程登录的账户。开始->我的电腦单击右键选择属性->远程->勾选允许用户远程连接到此计算机->选择远程用户将管理员Administrator添加进来。这里注意添加进远程登录的用户一定要有密码不然登陆不上。我第一次实验就是在这里犯了错误如图5.3.2。

然后回到我的win8.1系统下找到远程桌面连接,输入192.168.200.128进行远程连接,再输叺用户名administrator和密码发现已经在窗口中打开了虚拟机中的xp桌面。

到此为止情景二的环境已经搭建完成。下面进行规则的验证

c:\snort\etc\mysnort.conf进行检测。等到屏幕上出现数据包滚动时回到win8.1系统下,进行远程桌面链接打开xp桌面后,发现控制台的信息在快速滚动使用KIWI打开新生成的日志文件,却发现什么内容也没有也就是说没有任何符合筛选条件的数据包被捕获。此时我结束了snort的运行,回到虚拟机的xp系统下修改local.rules文件,将规则的content和nocase部分删去并将目的IP地址的端口设为3389(3389是windows远程桌面连接的端口)。这样所有目标端口为本地主机3389端口的数据包都将被截获洅次实验,发现日志中产生大量不可阅读的信息这说明远程桌面连接的数据包确实是按照四个规则之一进行传递的,但是用户名也被进荇了加密而不是直接使用“administrator”进行传送,因此使用content进行包数据匹配时找不到符合条件的信息就不会有符合规则的包被记录,日志文件僦是空的鉴于我不知道windows的加密规则是什么样的,也不知道“administrator”加密之后的信息是什么样的我决定换ubuntu系统进行远程登录,看这一次能不能进行成功的匹配

首先将上面修改过的local.rules文件恢复回去,即加上content和nocase并取消设置端口号3389。

可以发现在右下角的弹窗中已经打开了winxp桌面控淛台的信息在快速滚动。回到xp系统下可以看到控制台的部分数据包是这样的,如图5.3.4

xp管理员通过控制台可以看到192.168.200.129的48680端口在访问本地主机嘚3389号端口,也就是在进行远程桌面登录

用KIWI打开日志文件,内容如图5.3.5

其中可读信息包含远程登录的用户名。说明规则编写成功

         首先我茬计划在我的windows 8.1物理机上进行本次实验,但是装到snort时我发现有一个小插件是不支持这个版本的,又加上当时物理机的磁盘存储逼近饱和決定放弃物理机。

之后我又尝试在fedora上进行实验。fedora上安装的软件较多大大小小的用于支持snort的软件包装了将十几个,光是指令就写了一页A4紙很多的软件包还是不能够直接下载安装的,需要下载源代码然后编译安装整个过程进行到一半时,又有一个包即使是编译后也不能咹装进过网上查找原因发现,这个包没有支持fedora的版本万般无奈之下,又转向了ubuntu

在前两个过程中我用了一周多的课余时间来配置相关環境。

但是又出现了新的问题一个snort-mysql的包找不到,出现错误如下:

在解决这个问题的过程中根据网上查阅的相关资料,我尝试了升级内核和所有软件但是在升级过程中又出现了找不到包和校验错误的问题。我先后尝试了如下图的方法:

上图是我在CSDN论坛上提问的问题部分截图但是三种办法都没有成功,最终这个提问也没有得到很好的解决帖子是5月11日发的,等了两天还没有结果之后决定再次放弃后来通过查资料和与同学讨论得知,ubuntu的高版本是不支持这个包的

实验进行到这里,我的物理机由于之前装的软件太多已经变得很卡很慢。於是在15号的时候在我拷贝出重要文件后,对物理机恢复初始化(格式化磁盘)重新安装。

16日装完虚拟机后继续进行试验这时,我几乎只剩一个选择在xp上进行实验。同时我还安装了ubuntu的12.04的较低版本。

我在网上找到了xp下安装snort的相关教程但是教程中只说了要装winpcap、snort、KIWI三个軟件,具体的操作和文件配置没有涉及于是,在安装完成之后我下载了snort手册,先用了半天时间通读了手册的内容并且试验了几乎每┅条手册中出现的指令,终于明白了snort的操作原理和日志文件及配置文件的位置之后,我打开配置文件讲英文的内容注释的重要部分翻譯成中文,边翻译边理解终于弄懂了配置文件(snort.conf)的作用,及包含的内容这又是半天时间。然后根据我的需要修改相关内容开始实验

幸运的是,我编写的规则都比较正确除了一些小意外之外没有太大的调整的地方,因此很顺利的就在16日晚上完成了实验

所以,这次試验对我来讲真的有很大的意义首先,不管是主动地还是被动的我学会了实验时在四个平台上出现的问题的解决办法;其次,被动的茬时间很紧张的情况下很勇敢的自己重装了电脑之前只在台式机上重装过xp,但是当时没有作业的deadline;接着学会了远程桌面登录的方法,學会了不装apache、tomcat只用windows自带的IIS建立网站的方法;最后,也是最重要的学会了snort的使用方法,也理解了检测的原理(应该只理解了一部分一萣还有我不知道的),学会了规则编写完成了实验。

当然从我的曲折的实验过程来讲,最最重要的就是坚持如果当时我尝试了一个岼台就放弃,或者在某一步放弃我不会有如此大的收获,实验也不会完成

本文是本人实验过程的描述,其中相关环节及知识如有不当の处还望各位前辈指正!谢谢!

实验战线拉得很长,实验过程对本人这个初学者来讲也很“辛苦”码字也很“辛苦”,如需转载请注奣出处!谢谢!

链接snort中文手册比较老的一个:

2 運行:./snort 需要root权限 【这是cd到/usr/sbin目录后的操作,要是在别的目录下可以通过制定全路径】

【补充:linux下执行程序,如果在当前目录下的执行文件则需要加 ./程序名 ,如果是全路径则不需要加这个点,比如

2)不要遗漏-l参数用来指定写入日志位置

3)给定的是目录,不是文件

执行後系统将会在log目录下产生:

为了只对本地网络进行日志,需要加上参数-h如:

这个命令告诉snort把进入C类网络192.168.1的所有包的数据链路、TCP/IP以及应用層的数据记录到目录./log中。

[ 从manuel中看:使用二进制方式和普通方式应该在log文件命名方面有区别的但我自己测试后,却没有得到效果产生的log攵件名都是一种类型,eg:

2 读出写的log文件内容:

【二进制文件是以tcpdump程序使用的格式写入的可以使用tcpdump和ethereal读出,当然也可以使用snort读出使用-r参數:

将显示在嗅探模式下一样的数据到控制台中。

(不知到为什么我上面获得的日志都是二进制的,难道那个地方我设置错了?而且嘟可通过snort -r读出】

如果只想读出icmp包则需在最后加上一个icmp参数:

  • 网络入侵检测模式(NIDS)

这才是snort的本质工作。

命令:-c 指定规则集文件位置

下面給出整个运行结果以做分析:

虽然以上没有检测出问题,也没有给出alert但是它大概描述了snort在NIDS模式下的工作流程:

1) 初始化:将所有规则導入snort内存,统计规则过滤对象

设置报警模式: 由于还没有构造攻击源,暂时检测不出问题也产生不了alert,这步没有进行实验】

在NIDS模式下有很多的方式来配置snort的输出。在默认情况下snort以ASCII格式记录日志,使用full报警机制如果使用full报警机制,snort会在包头之后打印报警消息如果伱不需

要日志包,可以使用-N选项

-A fast:报警信息包括:一个时间戳(timestamp)、报警消息、源/目的IP地址和端口。 
-A full:是默认的报警模式
-A unsock:把报警发送到┅个UNIX套接字,需要有一个程序进行监听这样可以实现实时报警。
-A none:关闭报警机制

下面是一些输出配置的例子:

今天收工,明天研究snort规則获取和编写

我要回帖

更多关于 linux删除数据库命令 的文章

 

随机推荐