chkrootkit

根据这篇文档的描述,rootkit 可以理解成下面这样:

在被入侵的计算机上安装的一套工具,包含有网络嗅探,日志清除,将和行的系统工具如 ps,netstat,ifconfig 等替换成特洛伊木马。在安装 rootkit 之前,入侵者首先要做的是获取权限进入被入侵的计算机。

安装 rootkit 的目的是为了方便入侵者再次回到被入侵的计算机,通过安装一个远端的后门 daemon,比如修改过的 sshd,telnetd 等来实现,通常他们不会监听默认的端口。

通过计算文件的 checksum 值是一个比较有效的发现异常活动的方法。第三方的工具如 Tripwire,AIDE 表现的应该会更优异。

大多数 rootkit 使用的方法是在被入侵的系统上部署 LKM(Loadable Kernel Module) 木马,上面提到的 checksum 是一种方式,更好的是在编译内核的时候直接将这些模块给直接编译进去,这个对于服务器这种相对稳定的系统来说,应该比较容易。

chkrootkit 在一定程度上可以解决此类问题,完整的 chkrootkit 包含以下 7 个套件:
chkrootkit:检测 rootkit 的签名,rootkit 的默认文件以及核心系统二进制文件的怪异内容
ifpomisc:监测是否有接口处于 promiscuous 状态(不要相信 netstat)
chklastlog,chkwtmp,check_wtmpx:检测对应的日志文件
chkproc:检测 LKM 木马以及隐藏的进程
strings-static:Unix strings 套件的简单的实现

主站的下载挂了,可以到这个 mirror 去下载源码包。

注意:使用 apt/yum 等方式安装只能使用 chkrootkit 这个工具,如果编译安装,则可以使用全部的 7 个套件。
Continue reading

ethtool

先解释几个名词:
Ethernet 指 10Mb/s
Fast Ethernet 指 100Mb/s
Gigabit Ethernet 指 1000Mb/s
然后具体 100baseT4,100baseTx,100baseFx 等主要是线缆的差别。详细的请看 wiki

ethtool 只适用于物理网卡,对于 bond0,tun0 等不适用。
Continue reading

vnstat

vnstat 可以统计时,天,周,月的网络流量。安装 vnstat 以及图形输出工具:

# apt-get install vnstat vnstati

包括前面提到的几个工具,大部分数据都是取自 /proc/net/dev,vnstat 也不列外。

/var/lib/vnstat 是默认的数据库存放的地方
/etc/vnstat.conf 是其配置文件,~/.vnstatrc 的优先级高于前者,每行都有详细的注释。

vnstati 的用户请参考 man 手册。下面是 vnstat 用法。
Continue reading

iptraf

iptraf 也是一款网络监控统计工具,统计的粒度应该说比 iftop 更细。Ubuntu,CentOS 使用包管理器安装:

# apt-get install iptraf
# yum install iptraf

这款工具最大的特点我认为就是可以做 filter,针对 ip,port。
具体操作请看官方文档
Continue reading

iftop

Ubuntu 和 CentOS 可用各自的包管理器安装:

# yum install iftop ncurses-devel
# apt-get install iftop libncurses5-dev

下面是几个常用的参数。

iftop 在没有使用 -i 指定的情况下,默认会使用 eth0 作为监控的接口。
以一台 nat 为例来说明 iftop 的用法,默认 eth1 配置私网 IP,eth0 配置公网 IP。

如果监控 eth1 接口,左右两边分别会显示内网的 IP 以及这些 IP 所访问的公网 IP;而如果监控 eth0 接口的话,有一端将始终是 eth0 的公网 IP。所以监控 eth1 接口更好。

iftop 作为精确的流量监控并不是最佳的选择,他默认是使用刻度的方式在大致的描绘目前每个连接的流量。但是作为普通的应用,这个应该足够了,比如我们只想看看有没有人在进行大流量的下载,通过一个简单的排序就可以看出结论了。

启动 iftop,监控 eth1,使用 byte 为单位,可以控制某个网段或者单个的 IP:

# iftop -i eth1 -B [-F 10.18.101.0/255.255.255.0]

启动之后可以通过下面的常见的按键来控制显示输出。

s/d:是否隐藏本地或者远程的主机
n:是否通过 dns 解析

p:是否显示两端的端口号
S/D:是否显示端口号
N:是否解析端口号与对应的服务

t:如何显示流量的收发
L:刻度变化
1/2/3:根据右边三栏流量进行排序
l:进行过滤
P:暂停   

下面具体讲讲怎么抓取内网的狂下片的同学。

1.iptop -i eth1
2.按 B 来切换成 40s 内的流量值
3.按 3 再按 T 来排序
4.按 t 来过滤下载的那部分流量

这样下来基本上就可以判定出是哪位同学占用了大家的宝贵带宽了。

可以将初始的命令放到默认的 ~/.iftoprc 文件中:
interface:eth0
hide-source:no
hide-destination: no
dns-resolution:yes
port-display:on
port-resolution:yes
show-bars:yes
sort:2s
show-totals:yes
use-bytes: yes
line-display: two-line
show-totals: yes
log-scale:yes
# 注意,这个默认的单位是 bits
max-bandwidth:20M

详细解释请查看男人。
 

nload

nload 是一个统计流量的工具,可以用在网关上实时统计流量。
centos,ubuntu 可以通过各自的包管理器安装。

安装完直接运行 nload 就可以查看实时流量:

$ nload

或者通过下面几个参数更好来显示动态信息:

$ nload -t 800 -i 2000 -o 300 -u M

-t:刷新的时间,单位为 ms。推荐 > 200,否则会出现一些问题
-i:流量图中进口的最大值,单位 kBit/s
-o:出口的
-u:以 MB 来替换默认的 kB,如果是 m,则表示 Kbit

以 20M 的带宽为例,每 1s 刷新一次,进口流量设为 20480 KB/s 比较合适,将其写进 alias:

$ nload -t 1000 -i 20480 -o 20480 -u M