一. 系统状态备份

主要是网络、服务、端口、进程等状态信息的备份工作

系统服务备份: chkconfig --list > services.log
进程备份: ps -ef > ps.log
监听端口备份: netstat -utnpl > port-listen.log
系统所有端口情况: netstat -ano > port-all.log

二. 断开和限制对外连接

iptables -A OUTPUT -o lo -j ACCEPT    允许本机访问本机
iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT 允许主动访问本服务器的请求
iptables -A OUTPUT –p tcp –d <Your IP> -jACCEPT 允许服务器主动访问的IP白名单
iptables -A DROP 拒绝对外访问

  

三. 进程查看

定位导致高流量的进程, 然后通过它的行为, 分析是否是黑客挂的马

iftop -nP  查看流量情况

如先用iptraf-ng查下,如果UDP包发的很多,基本都被人装了后门

1.web后门查杀
2.top (ps -ef)     查看进程
lsof –c 可疑进程名  (查看关联文件,发现对外的 tcp 连接) 查看文件路径。并查看文件创建时间
whereis 可疑进程名
ls -al 可疑进程名 # ps -aux(注意UID是0的)
# lsof -p pid(察看该进程所打开端口和文件)
# cat /etc/inetd.conf | grep -v “^#”(检查守护进程) 检查隐藏进程
# ps -ef|awk ‘{print }’|sort -n|uniq >1
# ls /porc |sort -n|uniq >2
# diff 1 2

kill 终止进程

查端口对应的进程:lsof -i:PID

如: lsof -i:9001

一些常用的方法:
kill -STOP [pid]
发送SIGSTOP (17,19,23)停止一个进程,而并不消灭这个进程。
kill -CONT [pid]
发送SIGCONT (19,18,25)重新开始一个停止的进程。
kill -KILL [pid]
发送SIGKILL (9)强迫进程立即停止,并且不实施清理操作。
kill -9 -1
终止你拥有的全部进程。
SIGKILL 和 SIGSTOP 信号不能被捕捉、封锁或者忽略,但是,其它的信号可以。

常用命令

  lsof filename         显示打开指定文件的所有进程
  lsof -a             表示两个参数都必须满足时才显示结果
  lsof -c string         显示COMMAND列中包含指定字符的进程所有打开的文件
  lsof -u username       显示所属user进程打开的文件
  lsof -g gid          显示归属gid的进程情况
  lsof +d /DIR/         显示目录下被进程打开的文件
  lsof +D /DIR/         同上,但是会搜索目录下的所有目录,时间相对较长
  lsof -d FD           显示指定文件描述符的进程
  lsof -n             不将IP转换为hostname,缺省是不加上-n参数
  lsof -i             用以显示符合条件的进程情况

lsof -Pnl +M -i4

-P   :约束着网络文件的端口号到端口名称的转换,在端口名称的查找不能奏效时很有用的
-n   : 约束着网络文件的端口号到主机名称的转换,在主机名称的查找不能奏效很有用
-l   :约束着用户ID号到登录名的转换。在登录名的查找不正确或很慢时很有用。
+M   :此选项支持本地TCP和UDP端口映射程序的注册报告。
-i4   :仅列示IPv4协议下的端口。
-i6   :仅列示IPv6协议下的端口。

  

批量中止进程

kill -9 $(ps -ef | grep 进程名 | grep -v grep | awk '{print $2}')  

网络行为分析

抓取数据包进行分析,如wireshark,tcpdump等,例

1
tcpdump -i eth1 dst xxx.xxx.xxx.xxx

四.后门扫描

后门账户查找

1. 检查帐户
# cat /etc/passwd
# grep :0: /etc/passwd    检查是否产生了新用户,和UID、GID是0的用户
# ls -l /etc/passwd      查看文件修改日期
# awk -F: ‘$3= =0 {print $1}’ /etc/passwd  查看是否存在特权用户
# awk -F: ‘length($2)= =0 {print $1}’ /etc/shadow  查看是否存在空口令帐户

检查后门

 cat /etc/crontab
ls /var/spool/cron/
cat /etc/rc.d/rc.local
ls /etc/rc.d
ls /etc/rc3.d
find / -type f -perm 4000

rookit检测

Rootkit Hunter:rkhunter --check
chkrootkit:chkrootkit | grep INFECTED

查找指定的tty进程:ps aux | grep pts/0

rkhunter

rkhunter --check   检测。出现红色的警告信息,请仔细检测是否已经中招了。

查看产生的日志:cat /var/log/rkhunter.log | grep Warning

# ss -l  列出所有打开的网络连接端口
# ss -pl 查看进程使用的socket

自动发送报告
每天5点检测并发送通知邮件

crontab -e
* 5 * * * /usr/local/rkhunter/bin/rkhunter --cronjob -l --nomow --rwo | mail -s "[rkhunter] report `hostname` `date`" root@localhost

找出与 crypto 与 bash 这两个服务有关的 PID 号码

ps aux | egrep '(cron|syslog)'

检查计划任务

注意root和UID是0的schedule
# crontab –u root –l
# cat /etc/crontab
# ls /etc/cron.*
# crontabs: crontab -lrm ...  清理计划认为

五. 查看系统、文件异常

主要针对文件的更改时间、属组属主信息问题,新增用户,文件最后修改时间等问题:

   # find -type f -mtime -5 #查找最近5天内更改的文件
  # find / -uid 0 –perm -4000 –print
  # find / -size +10000k –print
  # find / -name "..." –print
  # find / -name ".." –print
  # find / -name "." –print
  # find / -name " " –print    注意SUID文件,可疑大于10M和空格文件
  # find / -name core -exec ls -l {} ;  (检查系统中的core文件)
  检查系统文件完整性
  # md5sum –b 文件名
  # md5sum –t 文件名

检查网络

# ip link | grep PROMISC(正常网卡不该在promisc模式,可能存在sniffer)
# lsof –i
# netstat –nap(察看不正常打开的TCP/UDP端口)
# arp –a

检查内核模块

# lsmod

检查系统服务
# chkconfig
# rpcinfo -p(查看RPC服务)

六. 查看关键日志

/var/log/faillog --登陆失败日志

/var/log/auth.log --验证日志

例:grep 'sshd' /var/log/auth.log

还有/var/log/messages、/var/log/secure

secure日志可以查看Accept关键字;last可以查看登录信息;bash_history可以查看命令执行信息等,

例:查看登录情况

cat secure-20150317 | grep 'Failed password' | cut -d " " -f 9,10,11 | sort | uniq

# last(查看正常情况下登录到本机的所有用户的历史记录)
注意”entered promiscuous mode”
注意错误信息如:

Remote Procedure Call (rpc) programs with a log entry that includes a large number (> 20) strange characters(-^PM-^PM-^PM-^PM-^PM-^PM-^PM-^PM)

补充:

通过syslog协议通过udp进行传输日志,以下是两种方式:

1) Logger方式:cat localhost_access_log.2016-11-22.txt | logger -t graylog2 -n 127.0.0.1 -P 端口

2)nc方式:cat localhost_access_log.2016-11-22.txt | nc -w 1 -u 127.0.0.1 端口

关于日志,可以参考这篇文章:http://www.20cn.net/ns/wz/otherwz/data/20020807024631.htm  
 

辅助

用Shell Script编写一段脚本,通过这个脚本让chkrootkit的监测自动化。如有rootkit被发现的时候,发送邮件通知root用户,并且将运行结果保存在/var/log/messages文件中。

[root@localhost ~]# vi mychkrootkit  ← 建立chkrootkit自动运行脚本

#!/bin/bash
PATH=/usr/bin:/bin
TMPLOG=`mktemp`
# Run the chkrootkit
/usr/local/chkrootkit/chkrootkit > $TMPLOG
# Output the log
cat $TMPLOG | logger -t chkrootkit
# bindshe of SMTPSllHow to do some wrongs
if [ ! -z "$(grep 465 $TMPLOG)" ] && \
[ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then
sed -i '/465/d' $TMPLOG
fi
# If the rootkit have been found,mail root
[ ! -z "$(grep INFECTED $TMPLOG)" ] && \
grep INFECTED $TMPLOG | mail -s "chkrootkit report in `hostname`" root
rm -f $TMPLOG

一些小工具:

IPTraf-实时局域网IP监控
Htop – Linux进程监控
VnStat PHP – 网络流量监控
Suricata – 网络安全监控
iotop – 简单的类似top的I/O监控器

Vnstat

#初始化,绑定要监测的网卡的名称,比如eth0
vnstat -u -i eth0
vnstat

相关链接

监控 Linux 性能的 18 个命令行工具: http://os.51cto.com/art/201402/429890.htm

Linux下10个使用lsof命令的例子: http://www.tecmint.com/10-lsof-command-examples-in-linux/

Linux 性能监控之命令行工具: http://m.2cto.com/os/201606/517821.html

用Linux肉鸡渗透一个小型内网的思路:  http://www.91ri.org/12362.html

高手对决 -- 博客服务器被黑的故事: http://ruby-china.org/topics/23848

Linux安全检测常用方法的更多相关文章

  1. Linux死锁检测-Lockdep

    关键词:LockDep.spinlock.mutex. lockdep是内核提供协助发现死锁问题的功能. 本文首先介绍何为lockdep,然后如何在内核使能lockdep,并简单分析内核lockdep ...

  2. Linux 入侵检测小结

    Linux  入侵检测小结 0x00 审计命令 在linux中有5个用于审计的命令: last:这个命令可用于查看我们系统的成功登录.关机.重启等情况:这个命令就是将/var/log/wtmp文件格式 ...

  3. linux c 检测网络状态

    转自:http://stackoverflow.com/questions/808560/how-to-detect-the-physical-connected-state-of-a-network ...

  4. (笔记)Linux下检测网卡与网线连接状态

    http://blog.chinaunix.net/space.php?uid=20357359&do=blog&cuid=1798479 Linux下检测网卡与网线连接状态,使用io ...

  5. linux本地检测tomcat是否启动成功

    @参考文章 原文如下: linux本地检测如何tomcat是否启动成功? 解决方法: 1.curl 127.0.0.1:8080 第一可以知道本地是否可以访问tomcat,返回页面代码 2.tail ...

  6. halcon——缺陷检测常用方法总结(光度立体)

    引言 机器视觉中缺陷检测分为一下几种: blob+特征(官方示例surface_scratch.hdev) blob+差分+特征(官方示例pcb_inspection.hdev) 光度立体 特征训练 ...

  7. halcon——缺陷检测常用方法总结(模板匹配(定位)+差分)

    引言 机器视觉中缺陷检测分为一下几种: blob分析+特征 模板匹配(定位)+差分 光度立体:halcon--缺陷检测常用方法总结(光度立体) - 唯有自己强大 - 博客园 (cnblogs.com) ...

  8. halcon——缺陷检测常用方法总结(测量拟合)

    引言 机器视觉中缺陷检测分为一下几种: blob分析+特征 模板匹配(定位)+差分:halcon--缺陷检测常用方法总结(模板匹配(定位)+差分) - 唯有自己强大 - 博客园 (cnblogs.co ...

  9. halcon——缺陷检测常用方法总结(特征训练)

    引言 机器视觉中缺陷检测分为一下几种: blob分析+特征 模板匹配(定位)+差分:halcon--缺陷检测常用方法总结(模板匹配(定位)+差分) - 唯有自己强大 - 博客园 (cnblogs.co ...

随机推荐

  1. “System.FormatException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理 其他信息: 该字符串未被识别为有效的 DateTime。

    前台用过jquery ajax将值传递到 后台的一般处理程序 并且报了这个异常 原因是:前台传递过来的时间格式不对  需要把 "/"换成 "-"   例如:20 ...

  2. 20170114 - Mac 向上一级文件夹快捷键

    以前使用XtraFinder来实现向上跳转文件夹,Mac其实自带的向上一级文件夹,只是没有那么明显, Mac下跳转上一级文件夹的快捷键是 Command + Up Arrow,即: ⌘ ↑

  3. 供求WAP-VUE 笔记

    记录项目的经历 1. 项目简介 1. 项目采用 vue.js 显示数据的 wap 页面, v-resourse 异步请求, v-router 路由(暂时没用) 2. 采用 flex 布局页面 2. 页 ...

  4. OSI模型第四层传输层--UDP协议

    1.udp协议 UDP是OSI参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成[2]  ,提供面向事务的简单不可靠信息传送服务.UDP 协议 ...

  5. 挖坑:CF712E

    #include<cstdio> #include<cstring> #include<algorithm> #define maxn 1000005 using ...

  6. C++类继承中,基类/当前对象属性/当前对象的构造顺序

    [1]中提到,规范的派生类构造函数三个要点: 首先创建基类对象 应通过成员初始化列表,创建基类对象 应该初始化本派生类新增的成员变量 那在构造派生类实例的过程中,其基类(以及多继承的时候多个基类)/当 ...

  7. git的入门使用操作

    Git html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,addres ...

  8. Html5移动端页面自适应布局详解(阿里rem布局)

    在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport,通读网上的各种对于viewport的解释之后 大概viewport可以理解为三种 1.layout viewport  ...

  9. c++中string类型可以直接进行比较

    以下代码在Ubuntu14.10下实现 /*------------------------- filename is demo.cpp --------------------------*/ #i ...

  10. LanSoEditor_common ---android平台的视频编辑SDK

    当前版本是LanSoEditor-v1.4 主要使用在音视频的: 裁剪,剪切,分离,合并,转换,拼接,水印,叠加,混合,转码等场合; 我们是针对android平台对ffmpeg做了硬件加速优化,经过多 ...