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三次握手和四次挥手详情,最后如果觉得有用的话请点个赞,如有其他问题,请私信联系我,欢迎大家吐槽,谢谢!