一、网站的运行模式
ipv4:是IP它不是域名
解释:浏览器拿到 www.itcast.cn 这个域名后,会找网络呗(三大运营商),域名并不是最终要用的的东西,它需要IP为什么需要IP呢?服务器都会对应一个网卡ipv4,为什么需要用的域名呢?(有一个服务器专门记录你的IP和域名)你传过来域名过来,它就给你解析成IP去找所对应的服务器发起请求返回数据。
1、重要概念
域名:也即使一个浏览器地址栏中输入的那一串字母和数字的组合,例如:www.baidu.com
服务器 : 就是给用户提供服务的机器(电脑)服务器可以分为四大类:塔式服务器、机式服务器、刀片服务器、柜式服务器。
IP地址:形式ipv4(常见) 、ipv6(不考虑)。IPv4形式:x.x.x.x ,x有取值范围(第一位x取值1-255,从第二位开始0-255)。由于资源有限为了保证这么多台电脑都可以使用,IP可以分为公网/外网IP和私网/内网IP地址。
公网 : www (万维网),全世界都可以访问的网。
局域网/内网/私网:在某个单元内部(家庭/教室/公司)能够进行互相访问的网络。
二、服务概述
1、服务概述
① 运行在操作系统后台的一个或多个程序,为系统或者用户提供特定的服务
② 可靠的,并发的,连续的不间断的运行,随时接受请求
③ 通过交互式提供服务
2、服务架构
B / S (browser/server)浏览器/服务器
概念:这种结构用户界面是完全通过浏览器来实现,使用http协议
优势:节约开发成本
C / S (client/server) 客户端/服务器
概念:值得是客户端和服务端之间的通信方式,客户端提供用户请求接口,服务端响应请求进行对应的处理,并返回给客户端
优势:安全性较高,一般面向具体的应用
两者区别:
B / S :
1、广域网,只需要浏览器即可
2、一般面向整个互联网用户,完全性低
3、维护升级简单
C / S:
1、专用网络、小型局域网,需要具体安装对应的软件
2、一般面向固定用户,安全性较高
思考:我们通过网络是如何找到我们想要的访问的服务的
IP(提供服务的服务器)+Port(找到相应的服务器)
3、端口号设定
说明:端口号只有整数,范围是从 0 到 65535
》1~255:一般是知名端口号,如:ftp 21号、web 80 、ssh 22 、telnet 23号等
》256~1023:通常都是有Unix系统占用来提供特定的服务
》1024~5000:客户端的临时的端口,随机产生
》大于5000:为互联网上的其他服务预留
思考:
如何查看系统默认的注册端口?
/etc/services
4、常见的网络服务
- 文件共享服务:FTP、SMB、NFS、HTTP
- 域名管理服务:DNS
- 网站服务:Apache、Nginx、Lighhttpd、IIS
- 邮件服务:Mail
- 远程管理服务:SSH、telnet
- 动态地址管理服务:DHCP
5、Linux下两大服务
1、对立服务
释义:所谓的独立服务就是说我这个程序安装好之后我有独立的进程独立的启动脚本,
- 独立的进程和独立的启动脚本
- 启动方式
service xxx start service xxx stop
2、依赖服务
- 没有独立的启动脚本,依赖与xinetd服务(xinetd服务本身是一个独立服务)
- 启动方式
必须启动xinetd服务
三、SSH服务
1、SSH介绍
- SSH是Linux下远程管理的工具,相比Telnet安全
- SSH的全程Secure Shell,安全的shell,是Client/Server架构,默认端口号为22,TCP/IP协议
- SSH其实用于商用,而OpenSSH即为开源的,在Linux中默认安装
- SSH有v1和v2版本
ssh v1 :有漏洞,容易受到攻击
ssh v2 :通过公钥加密(数字签名和密钥交换)的方式进行,确保服务器端的身份识别
2、SSH加密算法
- dsa 对称的公钥加密算法,安全低,数据传输速度快;使用同一个密钥进行加密或解密
- rsa 非对称的公钥加密算法,安全,数据传输速度满,SSH默认的加密算法
1、远程Server收到Client端用户的登录请求后,Server端把自己的公钥发给用户
2、Client端使用这个公钥,将密码进行加密
3、Client将加密的密码发送给Server端
4、远程Server用自己的私钥,解密登录密码,然后验证其合法性
5、根据验证结果,给Client响应的响应
思考:非对称加密觉得安全吗?
3、SSH服务的认证方式
- 基于用户密码的认证
- 基于密钥对的认证(免密码登录)
需求:A主机免密码登录B主机
4、SSH服务基本配置
- 基于密钥对认证(免密码登录)----------》重点掌握
需求:client端有一个用户user01,该用户使用root用户免密登录server端
思路:
- client端生成一对密钥
- 将生成的公钥远程拷贝到server端
1、client端的user01用户生成一对密钥对
[user01@VM-16-2-centos ~]$ ls -a
. .. .bash_history .bash_logout .bash_profile .bashrc .cache .config### 生成密钥
[user01@VM-16-2-centos ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user01/.ssh/id_rsa):
Created directory '/home/user01/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user01/.ssh/id_rsa.
Your public key has been saved in /home/user01/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Wic+TfWZ8uPcYCnJ3e7zMOGCD+FkxGhhpuMCpQ/6Tq0 user01@VM-16-2-centos
The key's randomart image is:
+---[RSA 2048]----+
| . + |
| o + + |
| + o o o . |
| . + . o . . . o |
|. o . S * . = |
| . . . + O + * + |
| o . . o = = @ .|
| o . . o * O |
| E . o.B|
+----[SHA256]-----+
在用户目录下会创建.ssh目录
[user01@VM-16-2-centos ~]$ ls -a
. .. .bash_history .bash_logout .bash_profile .bashrc .cache .config .ssh
[user01@VM-16-2-centos ~]$ cd .ssh
[user01@VM-16-2-centos .ssh]$ ll
total 8
-rw------- 1 user01 user01 1679 Jan 31 16:05 id_rsa #这个是私钥
-rw-r--r-- 1 user01 user01 403 Jan 31 16:05 id_rsa.pub #这个是公钥
2、将刚刚生成的公钥远程拷贝到server端的root家目录里指定位置
###拷贝公钥 命令 ,他会自动把id_rsa.pub 文件名称改成authorized_keys
scp .ssh/id_rsa.pub root@122.51.114.190:/root/.ssh/authorized_keys(重命名成这个) ### 这是另一个拷贝命令
[user01@VM-16-2-centos ~]$ ssh-copy-id -i .ssh/id_rsa.pub root@122.51.114.190
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_rsa.pub"
The authenticity of host '122.51.114.190 (122.51.114.190)' can't be established.
ECDSA key fingerprint is SHA256:LGOxSp7VGHeT/ogMiR25eYaLH8noqvWadVVURoGHVnY.
ECDSA key fingerprint is MD5:4c:b4:dc:a5:f2:a3:95:9b:80:cb:2c:44:9e:69:bf:d5.
Are you sure you want to continue connecting (yes/no)? yes
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@122.51.114.190's password:Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@122.51.114.190'"
and check to make sure that only the key(s) you wanted were added.登入server服务器 查看
[root@VM-16-14-centos .ssh]# ll
total 4
-rw------- 1 root root 403 Jan 31 16:24 authorized_keys
[root@VM-16-14-centos .ssh]# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDm7Uvz44mmGfE//+OkC4pYO8eqPEJPI2lQr22THX49vs99dit3lJpyg7ybAvQsMKtI56Ws2NzNnUY75JRKMKlasDh5qg32TuZrLu8yYyqiklcyaHfPYjalJxdBmcAq59mOASA1JCJMaEfpzdZaaLZe4hic+Pngb8mmbONjCDsyL6xFQHAZpV0XFogMxaqXoO8x3Y6L+icZ+DKnwy3xPA0Sj5nwVG9RBZOYWzGPJQMfx2h5AyIZmoPEykOCdCVeUpe+CfbkfuGqsF39arM5HRtZQf6z6SZ839/XfSRz3M2fCQfaPxrWQwMrcNMn3wMGKbcXbUvdf2/R7TdP0JUnPmsn user01@VM-16-2-centos #
3、测试验证
[user01@VM-16-2-centos ~]$ ssh root@122.51.114.190
Last failed login: Wed Jan 31 16:48:10 CST 2024 from 218.60.50.126 on ssh:notty
There were 66 failed login attempts since the last successful login.
Last login: Wed Jan 31 15:17:51 2024 from 60.12.139.34
问题:如过server端的密码变了还能免密码登录吗?
可以的 密钥对登录跟密码没什么关系
① 禁止root用户远程登录
了解软件相关知识
通过yum命令查找你安装的那些软件
[user01@VM-16-2-centos ~]$ yum list | grep openssh
openssh.x86_64 7.4p1-23.el7_9 @updates
openssh-clients.x86_64 7.4p1-23.el7_9 @updates
openssh-server.x86_64 7.4p1-23.el7_9 @updates
gsi-openssh.x86_64 7.4p1-8.el7 epel
gsi-openssh-clients.x86_64 7.4p1-8.el7 epel
gsi-openssh-server.x86_64 7.4p1-8.el7 epel
lxqt-openssh-askpass.x86_64 0.14.1-3.el7 epel
lxqt-openssh-askpass-l10n.noarch 0.11.2-3.el7 epel
lxqt-openssh-askpass-l10n.x86_64 0.14.1-3.el7 epel
详细的查找某个软件
[user01@VM-16-2-centos ~]$ rpm -q openssh-server
openssh-server-7.4p1-23.el7_9.x86_64
[user01@VM-16-2-centos ~]$ rpm -q openssh-clients
openssh-clients-7.4p1-23.el7_9.x86_64
查找某个软件相关配置
[user01@VM-16-2-centos ~]$ rpm -ql openssh-server
/etc/pam.d/sshd //启动脚本
/etc/ssh/sshd_config //配置文件
/etc/sysconfig/sshd
/usr/lib/systemd/system/sshd-keygen.service
/usr/lib/systemd/system/sshd.service
/usr/lib/systemd/system/sshd.socket
/usr/lib/systemd/system/sshd@.service
/usr/lib64/fipscheck/sshd.hmac
/usr/libexec/openssh/sftp-server
/usr/sbin/sshd //二进制命令(后台守护进程)
/usr/sbin/sshd-keygen
/usr/share/man/man5/moduli.5.gz
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/man/man8/sshd.8.gz
/var/empty/sshd
[user01@VM-16-2-centos ~]$ rpm -ql openssh-clients
/etc/ssh/ssh_config
/usr/bin/scp
/usr/bin/sftp
/usr/bin/slogin
/usr/bin/ssh
/usr/bin/ssh-add
/usr/bin/ssh-agent
/usr/bin/ssh-copy-id
/usr/bin/ssh-keyscan
/usr/lib64/fipscheck/ssh.hmac
/usr/libexec/openssh/ssh-pkcs11-helper
/usr/share/man/man1/scp.1.gz
/usr/share/man/man1/sftp.1.gz
/usr/share/man/man1/slogin.1.gz
/usr/share/man/man1/ssh-add.1.gz
/usr/share/man/man1/ssh-agent.1.gz
/usr/share/man/man1/ssh-copy-id.1.gz
/usr/share/man/man1/ssh-keyscan.1.gz
/usr/share/man/man1/ssh.1.gz
/usr/share/man/man5/ssh_config.5.gz
/usr/share/man/man8/ssh-pkcs11-helper.8.gz#生成密钥对的软件包
[user01@VM-16-2-centos ~]$ rpm -qf /usr/bin/ssh-keygen
openssh-7.4p1-23.el7_9.x86_64
步骤:
修改server端的配置文件
通过这个命令找到openssh-server 配置文件
rpm -ql openssh-server
[root@VM-16-2-centos ssh]# vim /etc/ssh/sshd_config
进入配置问修改这个参数
PermitRootLogin no
然后重启服务
systemctl restart sshd
②修改默认端口(默认端口是22)
通过这个命令找到openssh-server 配置文件
rpm -ql openssh-server
[root@VM-16-2-centos ssh]# vim /etc/ssh/sshd_config
进入配置问修改这个参数
该端口前确保该端口没有被其他服务占用
Port 8888
然后重启服务
systemctl restart sshd
收获:在vim模式下想复制一行,光标指向这一行然后输入yyp就会复制一行
无法确定某一个端口是否处于监听状态,可以用那个命令进行查看
[root@VM-16-2-centos ssh]# netstat -nltp | grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1220/sshd