腾讯云基础知识防护(公私钥/防火墙)及部署

请求和响应流程:

  1. 客户端发送请求给服务器,会经过防火墙过滤(比如80端口),如果可以通过,则把请求发送给监听80端口的程序。
  2. 监听80端口的程序是gunicorn,有两部分(目前),一个主进程,一个从进程,主进程会把请求转发给从进程,
    通过wsgi协议和flask沟通,flask再调用路由,路由调用相应的函数,再把响应返回给flaskflask再返回给gunicorn,再通过gunicorn返回给客户端。(应用服务器flaskweb服务器gunicorn,通过wsgi沟通)

ssh协议

服务器和浏览器的双向验证
前两步验证用非对称密钥,以后用对称密钥进行会话(更快更方便)

发起请求,你验证服务器
-> 针对特定服务器发出 ssh 请求
<- 服务器发回它的指纹。指纹就是服务器公钥的 hash 值
-> 客户端验证指纹。

用 rsa 验证,服务器验证你
<- 服务器给你发一段信息。(nonce)
-> 你用你的私钥(~/.ssh/id_rsa)加密这段信息
<- 服务器用你的公钥(它自己会在这里查找,默认这个位置)(~/.ssh/authorized_keys)解密,如果能解密就说明验证成功

基于 rsa 的对称密钥交换
<- 成功后,服务器用你的公钥加密一个对称密钥。
-> 用私钥解密得到对称密钥,之后的通信统统用这个对称密钥加密

https

单向验证,浏览器验证服务器,二服务器不需要验证浏览器
    世界上有几个根证书商,被植入在浏览器或操作系统里面,这些根证书商又分别信任一些子证书商,这些子证书商又信任一些小企业(一般三级)。(比如说某个根证书商信任腾讯,腾讯又信任了我们,所以我们网站的证书可以被chrom浏览器识别信任)。
    比如说,你在浏览器输入某个网址,那么这个网站的服务器会把证书给你的浏览器,那么现在浏览器会检验该证书是否合法(被跟证书信任),如果合法,浏览器会生成一个对称密钥(session_key),用服务器证书里面的公钥加密,发给服务器,服务器用对应的私钥解密,解密之后拿到你发给服务器的对称密钥,那么以后就可以正常发送信息了。以后发信息就是用沟通好的session_key进行加密的内容了。

发起请求,你验证服务器
-> 你在浏览器发起请求,访问 https://baidu.com
<- 服务器返回给你它的证书
-> 浏览器验证证书是否有效

基于 rsa 的对称密钥交换
-> 如果证书有效,浏览器会生成一个对称密钥。
-> 用服务器证书的公钥加密后,发给服务器。
<- 服务器用证书对应的私钥解密,拿到对称密钥。
<- 之后的通信统统用这个对称密钥加密

一、服务器密码位置:密码:M09j02;在下面安全组开放端口。

腾讯云基础知识防护(公私钥/防火墙)及部署_第1张图片
图片.png

二、开启免密码登录

1.双击cmder--exe文件(不必安装),输入命令:

ssh [email protected]以及登录密码M090j982登录到购买的服务器。
[email protected]
ubuntu:用户名

图片.png

图片.png

分别对应:用户名 主机名 用户下的家目录 普通用户标识符( #root用户)

2.命令行输入(可以省略):

ssh-keygen
问问题的时候,不用管,一直回车就行。会在文件夹下生成私钥和公钥的键值对。生成的位置是:

腾讯云基础知识防护(公私钥/防火墙)及部署_第2张图片
图片.png

可以通过如下命令查看:
sudo ls -al ~/.ssh(但是没有)

3.切换到本地windows(ctrl + d)

输入:
ssh-keygen.exe

腾讯云基础知识防护(公私钥/防火墙)及部署_第3张图片
图片.png

可知在 mml/.ssl目录下生成了两个文件,这就是(id_rsa.pub)公钥和私钥(id-rsa)的键值对。

4.安装filezilla,并连接到服务器

filezilla设置文件的打开方式:

腾讯云基础知识防护(公私钥/防火墙)及部署_第4张图片
1.PNG
腾讯云基础知识防护(公私钥/防火墙)及部署_第5张图片
2.PNG

注意:用户名是ubuntu

腾讯云基础知识防护(公私钥/防火墙)及部署_第6张图片
图片.png

这样,就可以查看本地文件和远站点文件,并进行传输了;
腾讯云基础知识防护(公私钥/防火墙)及部署_第7张图片
图片.png

但是点击远程站点的 .ssh文件夹,显示:
图片.png
表明没有权限,就需要修改该文件夹的权限:
腾讯云基础知识防护(公私钥/防火墙)及部署_第8张图片
图片.png

更改文件夹权限命令是:
sudo chown -R ubuntu:ubuntu .ssh
(第一个ubuntu表示要修改到的组,第二个ubuntu表示要修改到的用户,.ssh表示要修改的文件)
那么现在就可以打开了:
腾讯云基础知识防护(公私钥/防火墙)及部署_第9张图片
图片.png

5.将左边文件里面的内容,粘贴到右边文件内,提示框默认点击就行。

图片.png

获取公钥的时候, .pub文件打不开,那么就在 cmdercmder服务器目录)中打开文件(先定位到文件目录):
more id_rsa.pub

6.重启ssh,就能免密码登陆了

service ssh restart

禁用密码登录

1.下载并安装atom编辑软件
将atom以下文件目录放到filezilla设置里面,这样就可以利用atom进行编辑了。

腾讯云基础知识防护(公私钥/防火墙)及部署_第10张图片
图片.png

腾讯云基础知识防护(公私钥/防火墙)及部署_第11张图片
图片.png

找到这个文件: /etc/ssh/sshd_config,右键编辑:
PasswordAuthentication yes 改为 PasswordAuthentication no
去掉开头的 #注释符号
修改完后保存提交,在 cmder下查看:
图片.png

最后重启: service ssh restart



实现root用户在cmderfilezilla上的登录

切换到root用户命令:sudo su
ubuntu用户切换至root用户
sudo passwd root
填密码
会提示修改成功,但是用root用户和这个密码既登不上cmder也登不上filezilla

正确答案:

ubuntu用户目录下,将authorized_keys文件拷贝到root目录下,运行命令:
cp ~/.ssh/authorized_keys /root/.ssh/authorized_keys

图片.png

然后在 filezilla站点管理中输入:
腾讯云基础知识防护(公私钥/防火墙)及部署_第12张图片
图片.png
注意:选择密钥文件的时候,将文件类型选择所有,这样就可以连接登陆了。如果不选择密钥文件,其他方式登录还是需要密码,还是登录不了。


开启防火墙

root
1.安装防火墙
apt-get install ufw
2.输入以下配置
别人进入你的服务器,只能是22/80/443,而从你服务器出去的端口则是无所谓的。

apt-get install ufw                        // 安装防火墙
ufw allow 22                                // 允许特定端口开放
ufw allow 80
ufw allow 443
ufw default deny incoming         // 阻止进入(除了上述端口)
ufw default allow outgoing         // 全部允许出
ufw status verbose                    // 显示ufw详细信息
ufw enable                                // 开启防火墙

出现:

腾讯云基础知识防护(公私钥/防火墙)及部署_第13张图片
图片.png

直接按 enter
腾讯云基础知识防护(公私钥/防火墙)及部署_第14张图片
图片.png
即可!
查看防火墙配置:
ufw status


Shell设置

界面更好看一点罢了(第2个没装上)
1. 装zsh:sudo apt-get install zsh
2. 装 oh-my-zsh
- sh -c "$(curl -fsSL https://raw.githubusercontent.com/roobyrussell/oh-my-zsh/master/tools/install.sh)"

部署

【13-3(0:10min)】

将python脚本文件上传,并在服务器上运行

一定要修改host为0.0.0.0,这样服务器就能允许任何ip的电脑访问了。
filezilla中,直接将文件拖到服务器指定目录下就可以了;如果脚本文件有修改,那么,在本地修改后,直接拖过去覆盖掉就好了。
验证是否更改成功:进入更改的文件目录:
tail server.py就能看到更改的内容。
cmder中运行脚本:
进入脚本目录,直接运行就好了
python3 server.py

图片.png

这样运行,退出界面,就中断了,所以,需要让它在后台永久运行:
nohup python3 server.py &
执行成功将会出现:
腾讯云基础知识防护(公私钥/防火墙)及部署_第15张图片
图片.png
nohup.out表示该程序的输出在这个文件里面,可以通过以下命令查看:
cat nohup.out
再执行以下命令即可看到后台执行情况:

  • bg :查看后台运行的程序
  • fg :将后台运行的程序拉倒前台
    查看运行状态:
    命令:ps axf | grep python3
    图片.png
  • killall python3:表示结束掉所有关于python3的进程;
    腾讯云基础知识防护(公私钥/防火墙)及部署_第16张图片
    图片.png
  • ctrl + c 挂起该程序,放到后台执行
  • ctrl + z 关闭该程序

你可能感兴趣的:(腾讯云基础知识防护(公私钥/防火墙)及部署)