导航:首页 > 编程系统 > linux入侵

linux入侵

发布时间:2023-05-15 05:04:24

⑴ 如何在linux上安装Suricata入侵检测系统

在Linux上安装Suricata IDS
不妨用源代码构建Suricata。你先要安装几个所需的依赖项,如下所示。
在Debian、Ubuntu或Linux Mint上安装依赖项
$ sudo apt-get install wget build-essential libpcre3-dev libpcre3-dbg automake autoconf libtool libpcap-dev libnet1-dev libyaml-dev zlib1g-dev libcap-ng-dev libjansson-dev

在CentOS、Fedora或RHEL上安装依赖项
$ sudo yum install wget libpcap-devel libnet-devel pcre-devel gcc-c++ automake autoconf libtool make libyaml-devel zlib-devel file-devel jansson-devel nss-devel

一旦你安装了所有必需的程序包,现在可以安装Suricata了,如下所示。
首先,从http://suricata-ids.org/download/下载最新的Suricata源代码,编译代码。截至本文撰稿时,最新版本是2.0.8。
$ wget http://www.openinfosecfoundation.org/download/suricata-2.0.8.tar.gz
$ tar -xvf suricata-2.0.8.tar.gz
$ cd suricata-2.0.8
$ ./configure --sysconfdir=/etc --localstatedir=/var

这是配置的示例输出结果。
Suricata Configuration:
AF_PACKET support: yes
PF_RING support: no
NFQueue support: no
NFLOG support: no
IPFW support: no
DAG enabled: no
Napatech enabled: no
Unix socket enabled: yes
Detection enabled: yes
libnss support: yes
libnspr support: yes
libjansson support: yes
Prelude support: no
PCRE jit: yes
LUA support: no
libluajit: no
libgeoip: no
Non-bundled htp: no
Old barnyard2 support: no
CUDA enabled: no
现在编译并安装它。
$ make
$ sudo make install

Suricata源代码随带默认的配置文件。不妨安装这些默认的配置文件,如下所示。
$ sudo make install-conf

正如你所知,要是没有IDS规则集,Suricata毫无用处。颇为方便的是,Makefile随带IDS规则安装选项。想安装IDS规则,运行下面这个命令即可。
$ sudo make install-rules

上述规则安装命令会从EmergingThreats.net(https://www.bro.org)安装可用的社区规则集的最新快照,并将它们存储在/etc/suricata/rules下。

首次配置Suricata IDS
现在就可以配置Suricata了。配置文件位于/etc/suricata/suricata.yaml。使用文本编辑工具打开文件,以便编辑。
$ sudo vi /etc/suricata/suricata.yaml

下面是一些基本的设置,供你开始入门。
“default-log-dir”关键字应该指向Suricata日志文件的位置。
default-log-dir: /var/log/suricata/

在“vars”这部分下面,你会找到Suricata使用的几个重要变量。“HOME_NET”应该指向由Suricata检查的本地网络。“!$HOME_NET”(被分配给EXTERNAL_NET)指本地网络以外的任何网络。“XXX_PORTS”表明不同服务所使用的一个或多个端口号。请注意:不管使用哪个端口, Suricata都能自动检测HTTP流量。所以,正确指定HTTP_PORTS变量并不是很重要。
vars:
HOME_NET: "[192.168.122.0/24]"
EXTERNAL_NET: "!$HOME_NET"
HTTP_PORTS: "80"
SHELLCODE_PORTS: "!80"
SSH_PORTS: 22

“host-os-policy”这部分用来防范一些利用操作系统的网络堆栈的行为(比如TCP重组)来规避检测的常见攻击。作为一项应对措施,现代IDS想出了所谓的“基于目标的”检测,检查引擎根据流量的目标操作系统,对检测算法进行微调。因而,如果你知道每个本地主机运行什么操作系统,就可以将该信息提供给Suricata,从而有望提高其检测速度。这时候用到了“host-os-policy“部分。在该例子中,默认的IDS策略是Linux;如果不知道某个IP地址的操作系统信息,Suricata就会运用基于Linux的检查策略。如果捕获到192.168.122.0/28和192.168.122.155的流量,Suricata就会运用基于Windows的检查策略。
host-os-policy:
# 这些是Windows机器。
windows: [192.168.122.0/28, 192.168.122.155]
bsd: []
bsd-right: []
old-linux: []
# 将Linux作为默认策略。
linux: [0.0.0.0/0]
old-solaris: []
solaris: ["::1"]
hpux10: []
hpux11: []
irix: []
macos: []
vista: []
windows2k3: []

在“threading”这部分下面,你可以为不同的Suricata线程指定CPU亲和性(CPU affinity)。默认情况下,CPU亲和性被禁用(“set-cpu-affinity: no”),这意味着Suricata线程将被安排在任何可用的CPU核心上。默认情况下,Suricata会为每个CPU核心创建一个“检测”线程。你可以调整这个行为,只要指定“detect-thread-ratio: N”。这会创建N x M个检测 线程,其中M是指主机上CPU核心的总数。
threading:
set-cpu-affinity: no
detect-thread-ratio: 1.5

就上述线程设置而言,Suricata会创建1.5 x M个检测线程,其中M是系统上CPU核心的总数。
想了解关于Suricata配置的更多信息,你可以阅读默认的配置文件本身,为了便于理解,加有大量注释。
使用Suricata执行入侵检测
现在可以试着运行Suricata了。在启动它之前,还有一个步骤要完成。
如果你使用pcap捕获模式,强烈建议关闭Suricata侦听的那个网卡上的任何数据包卸载功能(比如LRO/GRO),因为那些功能可能会干扰数据包实时捕获。
下面介绍如何关闭网络接口eth0上的LRO/GRO:
$ sudo ethtool -K eth0 gro off lro off

请注意:视使用的网卡而定,你可能会看到下列警示信息,可以忽视这个信息。它只是意味着你的网卡不支持LRO。
Cannot change large-receive-offload

Suricata支持多种运行模式。运行模式决定了不同的线程如何用于IDS。下面这个命令列出了所有可用的运行模式。
$ sudo /usr/local/bin/suricata --list-runmodes

Suricata使用的默认运行模式是autofp(代表“自动流绑定负载均衡模式”)。在这种模式下,来自每一路流的数据包被分配给单一的检测线程。流被分配给了未处理数据包数量最少的线程。
最后,不妨启动Suricata,看看它的实际运行情况。
$ sudo /usr/local/bin/suricata -c /etc/suricata/suricata.yaml -i eth0 --init-errors-fatal

在这个例子中,我们监控一个8核系统上的网络接口eth0。如上所示,Suricata创建了13个数据包处理线程和3个管理线程。数据包处理线程包括1个PCAP数据包捕获线程和12个检测线程(相当于8 x 1.5)。这意味着,一个捕获线程捕获的数据包经负载均衡处理后,变成了IDS面前的12个检测线程。管理线程是一个流管理器和两个计数器/统计相关线程。
下面是Suricata进程的线程视图(由htop描绘)。
Suricata检测日志存储在/var/log/suricata目录下。
$ tail -f /var/log/suricata/fast.log
04/01/2015-15:47:12.559075 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 -> 172.16.253.1:46997
04/01/2015-15:49:06.565901 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 -> 172.16.253.1:46317
04/01/2015-15:49:06.566759 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 -> 172.16.253.1:46317

为了易于导入,还有jsON格式的日志:
$ tail -f /var/log/suricata/eve.json

{"timestamp":"2015-04-01T15:49:06.565901","event_type":"alert","src_ip":"172.16.253.158","src_port":22,"dest_ip":"172.16.253.1","dest_port":46317,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":2200074,"rev":1,"signature":"SURICATA TCPv4 invalid checksum","category":"","severity":3}}
{"timestamp":"2015-04-01T15:49:06.566759","event_type":"alert","src_ip":"172.16.253.158","src_port":22,"dest_ip":"172.16.253.1","dest_port":46317,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":2200074,"rev":1,"signature":"SURICATA TCPv4 invalid checksum","category":"","severity":3}}

⑵ 分享:linux系统是否被入侵/中毒的有关问题

一、服务器出去的带宽会跑高这个是中毒的一个特征。
因为服务器中毒之后被别人拿去利用,常见的就是拿去当肉鸡攻击别人。另外的就是拿你的数据之类的。所以服务器带宽方面需要注意下,如果服务器出去的带宽跑很高,那肯定有些异常,需要及时检查一下
2
二、系统里会产生多余的不明的用户
中毒或者被入侵之后会导致系统里产生一些不明用户或者登陆日志,所以这方面的检查也是可以看出一些异常的。
3
三、开机是否启动一些不明服务和crond任务里是否有一些来历不明的任务?
因为中毒会随系统的启动而启动的,所以一般会开机启动,检查一下启动的服务或者文件是否有异常,一般会在/etc/rc.local 和 crondtab -l 显示出来。所以要注意检查一下,以上三点都是比较常见的特征,还会有些不明显的特征需要留意下。
END
实例讲解中毒的Linux系统解决过程

1
在工作中碰到一次客户反馈系统经常卡,而且有时候远程连接不上。于是我就跟进这位客户,从本地以及远程检查一下他的系统,他也发现有不明的系统进程。我脑子里初步判断就是可能中毒了。
2
首先,我在监控里检查一下这服务器的带宽,发现服务器出去的带宽跑很高,所以才会导致他远程不上的,这是一个原因。为什么服务器出去的带宽这么高且超出了开通的带宽值?这个原因只能进入服务器系统里检查了。
3
其次,我向客户询问了系统的账号密码,远程进入系统里检查了下,也看到了客户所说的不明进程。 ps -aux 命令可以查看到 ,客户反馈不是他的游戏进程,然后我使用命令进行关闭。
4
再接着,我检查一下开机启动项 chkconfig --list | grep 3:on
服务器启动级别是3的,我检查一下了开机启动项,没有特别明显的服务。然后检查了一下开机启动的一个文件,more /etc/rc.local
看到这个文件里被添加了很多项,询问客户,并非是他添加的,所以我也注释了它。如下图

5
在远程的时候,我觉得还是有些卡,检查了一下系统的计划任务crond,使用crondtab -l 命令进行查看,看到很多注释行,再认真查看,也有添加的计划任务与/etc/rc.local的内容差不多。如下图,不是显示全部
与客户沟通,也不是客户添加的,客户说他也不会这些。所以后来我备份了一个这个内容,就删除了,然后停止crond任务,并chkconfig crond off 禁用它开机启动。

6
最后为了彻底清除危害,我检查了一下系统的登陆日志,看到除了root用户还有其它的用户登陆过。检查了一下/etc/passwd ,看到有不明的用户,询问客户并非他添加,然后使用
usermod -L XXX 禁用这些用户。 然后更新了下系统的复杂密码,然后通知客户。附一些相关图片

END
如何保障linux系统的安全

一、从以上碰到的实例来分析,密码太简单是一个错
用户名默认,密码太简单是最容易被入侵的对象,所以切忌不要使用太过于简单的密码,先前碰到的那位客户就是使用了太简单的且规则的密码 1q2w3e4r5t, 这种密码在扫描的软件里是通用的,所以很容易被别人扫描出来的。
2
二、不要使用默认的远程端口,避免被扫描到
扫描的人都是根据端口扫描,然后再进行密码扫描,默认的端口往往就是扫描器的对象,他们扫描一个大的IP 段,哪些开放22端口的认为是ssh服务的linux系统,所以才会猜这机器的密码。更改远程端口也是安全的一个措施
3
三、使用一些安全策略进行保护系统开放的端口
可以使用到iptables或者简单的文件安全配置 /etc/hosts.deny 、/etc/hosts.allow等文件进行配置。经常维护也是必须的

⑶ linux系统服务渗透攻击原理是什么

第一步,收集攻击目标的一切信息,如系统版本号,web服务器版本号,数据库版回本号,各种类库的答版本号。
第二步,从收集到的信息中找到可以利用的漏洞,利用它入侵服务器,并挂上木马,春天播种,待秋天收获,岁月静好。
第三步,以被入侵的服务器为网桥,探测并收集服务器内网信息,使用内网渗透技术,入侵内网扩大战果。
第四步,镜像有用的信息到自己的服务器,加密原数据,发勒索信。
第五步,洗干净屁股,等警察上门。

⑷ Linux web服务器被入侵

你这种问题很难回答的,只能给你简单答一下。
1、怎么入侵的
你的是服务器专,架上internet上,大属家都可以访问。服务器为了方便别人访问,总会开启一些服务如http, ftp, ssh等等。黑客可以利用服务本身的漏洞或者套取密码(暴力破解、字典破解各种方式)获取一个有效的可以登录的用户,如果正好是root用户被破解,那你的机器就完全被他控制了。
2、文件是怎么放进来的?
获取到用户后,可以利用wget,或者sftp,ftp等各种方式把文件传进来。
3、如何防御?
这个最难回答,防御比进攻难。
你说开启了iptables, selinux,但是你有好好设置吗?
关掉不必要的端口减少被攻击的可能性;
经常更新你的系统,新的软件漏洞更少;
各种服务程序不要用root用户运行,免得黑客轻易利用程序问题获取root权限;

还有很多其它方法,网络安全和黑客性质一样,你要知道怎么攻击别人,你就会防御了。
现在你最好是先把服务器下线,处理好后再上线,免得在处理过程中受黑客干扰。

⑸ 如何看Linux服务器是否被攻击

以下几种方法检测linux服务器是否被攻击:x0dx0a1、检查系统密码文件 x0dx0a首先从明显的入手,查看一下passwd文件,ls _l /etc/passwd查看文件修改的日期。 x0dx0a2、查看一下进程,看看有没有奇怪的进程 x0dx0ax0dx0a重点查看进程:ps _aef | grep inetd inetd是UNIX系统的守护进程,正常的inetd的pid都比较靠前,如果看到输出了一个类似inetd _s x0dx0a/tmp/.xxx之类的进程,着重看inetd x0dx0a_s后面的内容。在正常情况下,LINUX系统中的inetd服务后面是没有-s参数的,当然也没有用inetd去启动某个文件;而solaris系统中x0dx0a也仅仅是inetd x0dx0a_s,同样没有用inetd去启动某个特定的文件;如果使用ps命令看到inetd启动了某个文件,而自己又没有用inetd启动这个文件,那就说明已经有人入侵了系统,并且以root权限起了一个简单的后门。x0dx0a3、检查系统守护进程 x0dx0a检查/etc/inetd.conf文件,输入:cat /etc/inetd.conf | grep _v “^#”信袜携,输出的信息就是这台机器所开启的远程服务。 x0dx0a一般入侵者可以通过直接替换in.xxx程序来创建一个后门,比如用/bin/sh 替换掉in.telnetd,然后重新启动inetd服务,那么telnet到服务器上的所有用户将不用输入用户名和密码而直接获得一个rootshell。x0dx0a4、检查网络连接和监听端口 x0dx0a输入netstat -an,列出本机所有的连接和监听的端口,查看有没有非法连接。 x0dx0a输入netstat _rn,查看本机的路由、网关设置是否正确。 x0dx0a输入 ifconfig _a,查看网卡设置。 x0dx0a5、检查系统日志 x0dx0a命令last | x0dx0amore查看在正常情况下登录到本机的所有用户的历史记录。但last命令依赖于syslog进程,这已经成为入侵者攻击的重要目标。入侵者通常会停止系x0dx0a统的syslog,查看系统syslog进程的情况,判断syslog上次启动的时间是否正常,因为syslog是以root身份执行的,如果发现x0dx0asyslog被非法动过,那说明有滑伏重大的入侵事件。 x0dx0a在linux下输入ls _al /var/log x0dx0a检查wtmp utmp,包括messgae等文件的完整性和修改时间是否正常,这也是手工擦除入侵痕迹的一种方法。 x0dx0a6、检查系统中的core文件 x0dx0a通过发送畸形请求来攻击服务器的某一服务来入侵系统是一种常规的入侵方法,典型的RPC攻击就是通过这种方式。这种方式有一定的成功率,也就是说并不能x0dx0a100%保证成功入侵系统,而且通常会在服务器相应目录下产生core文件,全局查找系统中的core文件,输入find / -name core x0dx0a_exec ls _l {} \; 依据core所在的目录、查询core文件来判断是否有入侵行为。x0dx0a7、检查系统文件完整性 x0dx0a检查文件的完整性有多种方法,通常通过输入ls _l x0dx0a文件名来查询和比较文件,这种方法虽然简单,但还是有一定的实用性。但是如果ls文件都已经被替换了就比较麻烦。在LINUX下可以用rpm _V x0dx0a`rpm _qf 文件名` x0dx0a来查询,查询的结果是否正常来判断文件是否完整。在LINUX下好毕使用rpm来检查文件的完整性的方法也很多,这里不一一赘述,可以man x0dx0arpm来获得更多的格式。

阅读全文

与linux入侵相关的资料

热点内容
注册表禁止启动程序运行 浏览:705
网络优化总体流程图 浏览:735
前端程序员简历模板 浏览:706
蜂巢积木编程机器人怎么样 浏览:561
微信小程序tips 浏览:117
油印文件有哪些 浏览:854
java线程买票案例 浏览:672
java架构培训 浏览:857
price是什么文件 浏览:258
手机游戏编程哪个好学 浏览:259
qq邮箱怎么发语音文件 浏览:494
php删除数据库记录 浏览:905
文件校验工具有哪些 浏览:158
苹果app被乱扣费怎么投诉 浏览:269
数据通信工程师要负责多少设备 浏览:904
excel有没有多个文件数据链接 浏览:842
郑州儿童编程课程应该怎么选择 浏览:103
word2003二级标题编号 浏览:370
ipad百度云盘压缩文件 浏览:912
什么网站可以发现新产品 浏览:680

友情链接