SSH概念
-
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能;
-
SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令;
-
SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。
-
SSH使用传输层TCP协议的22号端口。
SSH的优点
- 数据传输是加密的,可以防止信息泄漏
- 数据传输是压缩的,可以提高传输速度
ssh组成结构
传输层协议(ssh-trans)
- 服务器认证,保密性以及完整性,压缩功能
- 一般运行在tcp/ip连接上,也可以用在其他可靠流
- ssh-trans提供加密技术,密码主机认证,数据完整性保护,数据压缩
- 密码主机认证,基于主机,不能进行用户认证
用户认证协议(ssh_userauth)
- 向服务器提供客户端用户鉴别功能
- 运行在ssh_trans之上
- 开始执行用户认证,从底层协议接受会话标识,认证私钥所有权
- (boot --认证用户是否存在--输入密码--认证密码是否相符--登录成功)
连接协议(ssh_connect)
- 多个加密隧道分为逻辑通道
- 运行在用户认证上,提供交互式登录会话,远程命令执行,转发tco/ip连接
远程控制过程
1.连接协议
2.提供交互登录
3.用户认证
4.认证用户是否存在,密码和用户是否匹配
5.传输协议
6.建立连接
登录
ssh [远程主机用户名]@[远程服务器主机名或IP地址]
ssh -p ///指定端口登录
远程复制
scp:远程复制,将远程主机的指定文件复制到本机
scp [选项] [用户名@]远程服务器ip:文件路径 本地路径
scp -r复制目录
sshd服务端配置
sshd服务端配置文件:/etc/ssh/sshd_config
服务监听选项:
- 端口号、协议版本、监听IP地址
- 禁用反向解析
修改端口号,将默认端口22修改为9527。
[root@localhost ~]# vim /etc/ssh/sshd_config
--------------------
17 #Port 9527 //将端口号改为9527
[root@localhost ~]# ssh 192.168.72.129 -p 9527 //连接时,需要使用-p指定端口
sftp命令
sftp [用户名@]IP地址
sftp -oPort=220 [用户名@]IP地址 //修改了默认端口的情况下,需要指定端口号
sftp和ftp的区别:
- 连接方式:FTP使用TCP端口21上的控制连接建立连接。而,SFTP是在客户端和服务器之间通过SSH协议(TCP端口22)建立的安全连接来传输文件。
- 安全性:SFTP使用加密传输认证信息和传输的数据,所以使用SFTP相对于FTP是非常安全。
- 效率:SFTP这种传输方式使用了加密解密技术,所以传输效率比普通的FTP要低得多。
TCP Wrappers 访问控制
TCP_Wrappers是一个工作在第四层(传输层)的的安全工具,对有状态连接的特定服务进行安全检测并实现访问控制,凡是包含有libwrap.so库文件的的程序就可以受TCP_Wrappers的安全控制。它的主要功能就是控制谁可以访问,常见的程序有 rpcbind、vsftpd、sshd、telnet。
访问控制策略的配置文件
白名单:/etc/hosts.allow
设置白名单
[root@192 ~]# vim /etc/hosts.allow
---------------
sshd:192.168.72.10,192.168.72.20 //允许这两个地址使用sshd服务进行访问
sshd:192.168.4.0/255.255.255.0 //允许该网段的所有地址使用sshd服务进行访问
黑名单:/etc/hosts.deny
设置黑名单
[root@192 ~]# vim /etc/hosts.deny
---------------
sshd:ALL //禁止所有地址使用sshd服务进行访问
sshd:192.168.0.0/255.255.255.0 EXCEPT 192.168.0.10 //禁止该网段的所有地址使用sshd服务进行访问,除了192.168.0.10