目录
一、理论
1.SSH远程管理
(1)SSH协议
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。
ssh协议是基于C/S机构的安全通道协议,通信数据进行加密处理,用于远程管理。
ssh的服务名称为sshd。默认端口号:tcp的22端口
(2)SSH组成结构:
① 传输层协议:ssh-trans
服务器认证,保密性以及完整性,压缩功能。一般运行在tcp/ip的连接上,也可能用于其他可靠的数据流上。ssh-trans : 提供加密技术,密码主机认证,数据完整性保护以及数据压缩
密码主机认证:基于主机。不能进行用户认证
② 用户认证协议:ssh-userauth
向服务器提供客户端用户鉴别的功能运行在ssh-trans之上。开始执行用户认证,从低层协议接受会话标识符,认证私钥的所有权。
root→认证用户是否存在,在服务端有没有这个用户→提示输入用户密码→认证密码是否和用户相符合→登录成功
③ 连接协议 ssh-connect
多个加密隧道分成逻辑通道。它运行在用户认证之上,提供了交互式的登录会话,远程命令的执行、转发tcp/ip的连接。
连接协议→提供交互式登录→用户认证→认证用户是否存在,密码和用户是否匹配→传输协议→建立连接(数据加密,数据压缩)
(3)SSH原理
使用公钥传输:
① 客户端请求连接,服务端返回一个公钥(专门给别人用的)和一个会话ID给客户端
② 客户端把服务端的公钥和自己的公钥加密发送给客户端
③ 客户端和服务端都有对方的公钥和自己的公钥私钥
2.配置OpenSSH服务器
(1)SSH服务及配置文件
OpenSSH服务器由openssh、openssh-server等软件包提供(默认已安装),并已将sshd添加为标准的系统服务。
服务端配置文件:/etc/ssh/sshd_config
客户端配置文件(一般不修改):/etc/ssh/ssh_config
(2)服务监听选项
sshd服务使用地默认端口号为22,必要时建议修改此端口号,并指定监听服务地具体IP地址,以提高在网络中地隐蔽性。
Port为监听端口,ListenAddress为监听地址。
(3)用户登录控制
sshd服务默认允许root用户登录,当在Internet使用时是不安全的。普遍的做法是:先以普通用户远程登入,进入安全Shell环境后,根据实际需要使用su命令切换为root用户。
LoginGraceTime 为登录验证时间,PermitRootLogin yes为允许root用户登录,MaxAuthTries为最大重试次数。
禁止root用户登录
① 允许哪些用户登录
AllowUsers 用户1 用户2 用户3
② 拒绝哪些用户登录
DenyUsers 用户
(4)登录验证方式
① 密码验证
② 密钥对验证
(5)服务端配置文件解析
命令 | 功能 |
Port 22 | 默认使用22端口 |
AddressFamily any | 默认任何地址可访问 |
ListenAddress 0.0.0.0 | 监听所有地址的ipv4地址 |
ListenAddress :: | 监听的ipv6地址 |
Logging | 日志模块内容 |
SyslogFacility AUTHPRIV | 默认日志位置输出到rsyslog服务的AUTHPRIV中,/var/log/message下 |
Authentication: | 身份验证模块 |
LoginGraceTime 2m | 默认验证用户登录失败后等待时间为2秒 |
PermitRootLogin yes | 默认允许使用root账户登录 |
MaxAuthTries 6 | 默认最多可以尝试连接失败6次 |
MaxSessions 10 | 默认最大可连接10个会话 |
PubkeyAuthentication yes | 基于key验证默认为开启 |
AllowUsers user1,user2@ip | 白名单允许登录用户user1,用户为user2的且限制ip |
3.使用SSH客户端程序
(1)ssh远程登录
通过ssh命令可以远程登录sshd服务,为用户提供一个安全地Shell环境,以便对服务器进行管理和服务。
使用格式:ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p port 。
(2)scp远程复制
scp英文全称为security copy,将本机文件直接传输到对面服务器。通过scp命令可以利用SSH安全连接与远程主机相互复制文件。
① 使用格式:scp 本地文件 对面ip地址:对面接收路径
② 远程复制文件命令:scp root@192.168.204.200:/opt/123.txt /opt
③ 远程复制文件夹命令:scp -rP 22 root@192.168.204.200:/opt/wenjian /opt
(3)sftp安全FTP
sftp英文全称为 SSH File Transfer Protocol ,上传或下载文件。通过sftp命令可以利用SSH安全连接与远程主机上传、下载文件,采用了与FTP类似登录过程和交互式环境。
① 使用格式:sftp 对面ip (进去后在对面的家目录)。
② 可以使用get下载,put上传到对面机器的家目录。
③ 远程控制命令:sftp -P 22 root@192.168.204.200
(4)图形工具Xshell
图形工具Xshell是Windows下一款功能非常强大的安全终端模拟软件,支持Telnet、SSH、SFTP等协议,可以方便地对Linux主机进行远程管理。
4.bind软件
bind(Berkeley Internet Name Domain,伯克利因特网名称域)服务是全球使用最广泛、最安全且最高效的域名解析服务程序。
bind是开源软件,用于内网划分dns,外网地址划分,注册,是要钱的,内网既不要花钱,也不用注册,bind方便内部进行访问和使用。
二、实验
1.scp远程复制
(1)搭建环境
服务器 192.168.204.200,客户端 192.168.204.50
(2)远程复制文件
命令:scp root@192.168.204.200:/opt/123.txt /opt
(3)远程复制文件夹
命令:scp -rP 22 root@192.168.204.200:/opt/wenjian /opt
2.sftp远程传输
(1)搭建环境
主机一 192.168.204.50 远程 主机二192.168.204.200
(2)准备文件
主机一touch命令新建文档:777.txt
主机二touch命令新建文档:888.txt
(3)主机一远程主机二进行下载与上传
主机一 get命令,显示主机一新增888.txt
主机一 put命令,主机二显示新增777.txt
3.用户登录限制
(1)搭建环境
主机一 192.168.204.50 远程 主机二192.168.204.200
控制本机账户远程登录权限用户登录限制
(2)配置文件
主机二配置远程登录
允许通过本机mao远程登录,禁止通过本机he远程登录
(3)新增账户mao远程登录成功
主机一 192.168.204.50 远程登录主机二192.168.204.200
使用主机二mao用户登录成功
exit 退出登录
(4)新增账户he登录失败
使用主机二he用户登录被拒绝