1.实现免密登录
(1)想要免密登陆,首先要创建公钥与私钥
·/.ssh/id_rsa 私钥
·/.ssh/id_rsa.pub 公钥(2)将第一台上生成的密钥传给第二台
(3)在第二台上便可查到第一台服务器上生成的密钥
(4)在第二台服务器上免密登陆
[root@localhost ~]# ifconfig ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.66.130 netmask 255.255.255.0 broadcast 192.168.66.255 inet6 fe80::bb1a:d4a6:f771:f9ae prefixlen 64 scopeid 0x20<link> inet6 fe80::bf52:5cf1:dea4:766f prefixlen 64 scopeid 0x20<link> ether 00:0c:29:4e:b0:26 txqueuelen 1000 (Ethernet) RX packets 6456 bytes 8533393 (8.1 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2731 bytes 188566 (184.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens224: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.154.132 netmask 255.255.255.0 broadcast 192.168.154.255 inet6 fe80::69fd:1401:7d5a:b84d prefixlen 64 scopeid 0x20<link> inet6 fe80::5fdf:2b56:5c54:281a prefixlen 64 scopeid 0x20<link> ether 00:0c:29:4e:b0:30 txqueuelen 1000 (Ethernet) RX packets 1017 bytes 137165 (133.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 479 bytes 85203 (83.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 115 bytes 16868 (16.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 115 bytes 16868 (16.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255 ether 52:54:00:ef:33:21 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2.设置只允许student1, student2用户登录AllowUsers user1 user2 #登录白名单(默认没有这个配置,需要自己手动添加),允许远程登录的用户。如果名单中没有的用户,则提示拒绝登录
(1)首先需要床创建student1,student2两个用户
(2)在文件/etc/ssh/sshd_config设置白名单
(3)配置完成后需要重启ssh服务
(4)验证是否是只允许student1和student2用户登陆
[student2@root root]$ ssh root@192.168.38.130 The authenticity of host '192.168.38.130 (192.168.38.130)' can't be established. ECDSA key fingerprint is SHA256:ZZjkzKAVZ4iW4fvCD2fNjJ/GdZqTUuvoxRBnabrmXVg. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.38.130' (ECDSA) to the list of known hosts. root@192.168.38.130's password: Activate the web console with: systemctl enable --now cockpit.socket This system is not registered to Red Hat Insights. See https://cloud.redhat.com/ To register this system, run: insights-client --register Last login: Sun Jul 24 20:34:54 2022 from 192.168.38.128 [root@root ~]# [root@root ~]# su student1 [student1@root root]$ ssh root@192.168.38.130 The authenticity of host '192.168.38.130 (192.168.38.130)' can't be established. ECDSA key fingerprint is SHA256:ZZjkzKAVZ4iW4fvCD2fNjJ/GdZqTUuvoxRBnabrmXVg. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.38.130' (ECDSA) to the list of known hosts. root@192.168.38.130's password: Activate the web console with: systemctl enable --now cockpit.socket This system is not registered to Red Hat Insights. See https://cloud.redhat.com/ To register this system, run: insights-client --register Last login: Sun Jul 24 20:51:48 2022 from 192.168.38.130 [root@root ~]# [root@root ~]# su rhcsa [rhcsa@root root]$ ssh root@192.168.38.130 root@192.168.38.130's password: Permission denied, please try again. root@192.168.38.130's password: Permission denied, please try again. root@192.168.38.130's password: root@192.168.38.130: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). [rhcsa@root root]$
3.get和post的区别(1)表现形式上:GET可以被缓存,POST不会
GET安全性比较差,POST比较好
GET在浏览器回退时是无害的,而POST会再次提交请求
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留
(2)功能上:get是从服务器获取数据,而post是向服务器发送数据
(3)长度上:get发送数据时,个体、向URL添加数据,而URL长度是有限的,因此get长度 有限, 而post长度无限制。
4.HTTP状态码,常用的状态码有哪些?
状态代码:由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。
1xx:指示信息 —— 表示请求已接收,继续处理
2xx:成功 —— 表示请求已被成功接收、理解、接受
3xx:重定向 —— 要完成请求必须进行更进一步的操作
4xx:客户端错误 —— 请求有语法错误或请求无法实现
5xx:服务器端错误 —— 服务器未能实现合法的请求
常见状态代码、状态描述的说明如下:
200 OK:客户端请求成功
400 Bad Request:客户端请求有语法错误,不能被服务器所理解
401 Unauthorized:请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用
403 Forbidden:服务器收到请求,但是拒绝提供服务
404 Not Found:请求资源不存在,举个例子:输入了错误的URL
500 Internal Server Error:服务器发生不可预期的错误
503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
5.HTTP请求报文和响应报文
http请求报文由请求行、请求头部、空行和请求报文主体几个部分组成
http响应报文由起始行、响应头部、空行和响应报文主体这几个部分组成
6.HTTP是如何保持连接状态cookie+session实现
cookie:
Cookie是由服务器端生成,发送给浏览器,浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时自动发送该Cookie给服务器
Cookie可以用来在某个WEB站点会话间持久的保持状态
session:
Session是另一种记录客户状态的机制,基于Cookie实现,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上
客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是Session,客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。
通过cookie和session的了解,我们可以看出Cookie的本质就是文件,一般放在请求头里,保存在浏览器上。
由于cookie并不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。
并且session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。
所以综合考量我们通常使用cookie+session共同完成状态保持。具体实现如下图所示:
7、禁止管理员远程登陆
(1)重启服务
(2)查验是否禁止管路员用户登陆