Linux网络服务之SSH

333 阅读3分钟

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.10192.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