安装和学习使用TCPDUMP,并举例说明。
Tcpdump命令是一个网络数据包分析工具,可以让我们监控我们的网络流量。使用它,我们可以检查连接到我们服务器的网络接口上正在传输的TCP/IP和其他网络数据包。
Tcpdump命令使用libpcap库来捕获网络数据包。我们可以实时查看网络数据包,也可以将其保存到文件中,以便以后查看。要使用tcpdump命令,我们应该以root用户或具有sudo权限的用户来使用。
在这里,我们将通过实例来讨论如何安装和使用tcpdump。
一、在Linux中安装TCPDUMP命令
在大多数情况下,我们应该已经在大多数Linux发行版上安装了tcpdump,但是如果没有安装tcpdump,则可以使用以下命令将其安装到系统上。
CentOS / RHEL 6和7
sudo yum install tcpdump
Fedora / CentOS / RHEL 8
$ dnf install tcpdump
Ubuntu / Debian / Linux Mint
apt-get install tcpdump
现在让我们学习如何使用它来监视我们的网络流量。
二、TCPDUMP命令示例
1、从所有网络接口检查网络流量
要从所有网络接口获取网络数据包,请运行以下命令,
tcpdump -i any
2、仅从单个网络接口检查网络流量
要从单个接口获取网络数据包,请使用
tcpdump -i enp0s3
3、将捕获的网络数据包获取到文件
要将所有捕获的数据包写入文件,请使用'-w'选项,
tcpdump -i eth1 -w packets_file
4、读取网络数据包文件
要读取已经创建的旧tcpdump文件,请使用以下命令,
tcpdump -r packets_file
5、检查数据包中的协议或端口号
要检查基于协议使用的所有数据包,请运行以下命令
tcpdump ssh
要获取一个端口范围内的单个端口的数据包,请使用
tcpdump port 80
tcpdump portrange 20-200
我们还可以使用'src'和'dst'选项基于源和目标获取端口的数据包。
我们还可以将两个条件(下面提到的示例)与AND(和,&&&),OR(或|||)和EXCEPT(不是,!)组合在一起。当我们根据某些条件分析网络数据包时,这将有所帮助。
6、以可读的时间戳获取更多数据包信息
要获取有关数据包以及可读时间戳的更多信息,请使用
tcpdump -ttttnnvvS
7、捕获网络范围内的网络数据包
要获取网络的数据包,请从终端执行以下命令
tcpdump net 10.10.1.0/24
8、检查网络数据包是否有单个IP地址
要捕获单个IP地址(源或目标或两者)的网络数据包,请使用以下命令,
tcpdump host 10.10.1.12
要基于IP地址的源或目标获取数据包,请使用
tcpdump src 10.10.1.12
tcpdump dst 10.10.1.12
9、使用AND
我们可以使用'and'或符号'&&'来组合两个条件,或者使用tcpdump进行替换。一个例子是
tcpdump src 10.10.1.12 && port 22 -w ssh_packets
10、使用OR
或将检查命令tcpdump -i eth0 src port not 22ainst该命令中提到的条件,例如
tcpdump src 10.10.1.12 or dst 10.10.1.30 && port 22 -w ssh_packets
tcpdump port 443 or 80 -w http_packets
11、使用EXCEPT
当我们想遗漏满足条件的东西时,将使用EXCEPT
tcpdump -i enp0s3 src port not 22
这将监视eth0上的所有流量,但不会捕获端口22。
12、使用帮助
这些只是我们可以与tcpdump命令一起使用的一些示例。我们可以与tcpdump命令一起使用许多其他选项,并且与其他Linux命令一样,我们可以参考帮助来检查所有选项,
tcpdump –help