Tcpdump+Wireshark抓取Nginx-https协议数据

1.nginx

介绍

Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,能经受高负
载的考验,有报告表明能支持高达 50,000 个并发连接数。
NGINX可以实现正向代理、反向代理、负载均衡等操作,总之就是强大,这里就不多介绍了,想要了解详情的可以参考:https://www.cnblogs.com/muhy/p/10528543.html

安装
在安装nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel。

yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

nginx下载地址:https://nginx.org/download/
将nginx-1.19.9.tar.gz解压到/usr/local/目录下

#创建目录
mkdir /usr/local/nginx
#切换目录
cd /usr/local/nginx
#下载nginx
wget https://nginx.org/download/nginx-1.19.9.tar.gz
#解压nginx
tar -zxvf nginx-1.19.9.tar.gz
#切换解压好的nginx
cd nginx-1.19.9
#初始化nginx配置,配上https连接协议权限
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
#查看是否配置https成功
/usr/local/nginx/sbin/nginx -V
#编译安装
make && make install
#切换到sbin
cd /usr/local/nginx/sbin/
#启动nginx
./nginx
#端口查看是否启动成功
ps -ef |grep nginx 或者netstat -ntlp

配置nginx可以使用https协议

#创建目录,用于存放证书生成
mkdir /usr/local/nginx/conf/ck
#切换目录
cd /usr/local/nginx/conf/ck
#创建服务器证书密钥文件 server.key
openssl genrsa -des3 -out server.key 1024  #输入密码,确认密码,自己随便定义,但是要记住,后面会用到
#创建服务器证书的申请文件 server.csr
openssl req -new -key server.key -out server.csr

输出内容为:
Enter pass phrase for root.key: ← 输入前面创建的密码
Coutry Name (2 letter code) [AU]:CN ← 国家代号,中国输入CN
State or Province Name (full name) [Some-State]:BeiJing ← 省的全名,拼音
Locality Name (eg, city) []:BeiJing ← 市的全名,拼音
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ← 公司英文名
Organizational Unit Name (eg, section) []: ← 可以不输入
Common Name (eg, YOUR name) []: ← 此时不输入
Email Address []:admin@mycompany.com ← 电子邮箱,可随意填
Please enter the following ‘extra’ attributes to be sent with your certificate request
A challenge password []: ← 可以不输入
An optional company name []: ← 可以不输入

#备份文件
cp server.key server.key.org
#去除文件口令
openssl rsa -in server.key.org -out server.key
#生成证书文件server.crt
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
#修改防火墙
vi /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
#重启防火墙
systemctl restart iptables

修改配置文件

 vi /usr/local/nginx/conf/nginx.conf
 
 #HTTPS server

     server {
        listen       443 ssl;
        server_name  localhost;

        ssl_certificate /usr/local/nginx/conf/ck/server.crt;
        ssl_certificate_key /usr/local/nginx/conf/ck/server.key;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

        #ssl_certificate      cert.pem;
        #ssl_certificate_key  cert.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  10m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            #proxy_pass  http://localhost:8080;
            root   html;
            index  index.html index.htm;
        }
    }

}
#切换到sbin
cd /usr/local/nginx/sbin/
#启动nginx
./nginx

在这里插入图片描述
在这里已经完成了,如果有报错,请查看log日志

2.Tcpdump

介绍

tcpdump是Linux自带的抓包工具,可以详细看到计算机通信中详细报文内容,如果读者熟悉另一款强大的抓包工具wireshark,tcpdump相当于是wireshark的命令行版本。dump这个单词有垃圾堆,倒垃圾的意思,在计算机英语中的含义是转存。
tcpdump官网:http://www.tcpdump.org/

安装

yum -y install tcpdump 

使用

笔者这边就介绍抓取https协议包,指定写入到一个cap文件,如果对tcpdump 命令不熟悉的小伙伴可以参考:https://www.cnblogs.com/lvdongjie/p/10911564.html

tcpdump -n -i any port 443 -w /usr/local/nginx/nginx-215.cap
"""
尽量在root用户下使用tcpdump命令,-n表示不要把IP地址解析成域名,-i表示抓取哪块网卡的通信数据包,any表示任意一块,port是指定要抓取数据包的端口,DNS服务工作在53端口上
"""

Wireshark

介绍

wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。
wireshark是开源软件,可以放心使用。 可以运行在Windows和Mac OS上。linux就该这么学 ,linux下抓包工具 tcpdump. 使用wireshark的人必须了解网络协议,否则就看不懂wireshark了。

安装
1 官网链接:https://www.wireshark.org/,点击 Download

使用
将liunx中刚生成的nginx-215.cap文件,存放到windows中,使用wireshark打开

在这里插入图片描述

这里就要涉及到了tcp的3次握手和4次挥手,如果对tcp协议不太懂得,强烈要求先熟悉一下tcp/udp协议,否者你会很难理解抓包发送得数据流程,详情可以看:https://blog.csdn.net/weixin_49319422/article/details/109855179

在这里插入图片描述
client向server发送连接请求,发送的第一条信息client hello,我们在这里查看client https支持的算法
在这里插入图片描述
在这里插入图片描述

再看一下server nginx https发送的什么加密算法
server收到client的hello,并且回应了一个hello,然后client和server就建立了connect
在这里插入图片描述
在这里插入图片描述

笔者这边强烈建议,多参考一下tcp三次握手和四次挥手详情,最后如果觉得有用的话请点个赞,如有其他问题,请私信联系我,欢迎大家吐槽,谢谢!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值