玄子Share-远程访问及控制

玄子Share-远程访问及控制

SSH 远程管理

应用服务常用的网络架构

  • Web端应用服务:C/S

    • 服务器端 (Server)和客户端(Client)
  • APP端应用服务:B/S

    • 服务器端 (Server)和浏览器(Browser)

应用服务主配置文件后缀名

  • .conf
  • .cnf
  • .xm
  • _config
  • *.ini

配置 OpenSSH 服务端

  • SSH(Secure Shell)协议
    • 是一种安全通道协议
    • 对通信数据进行了加密处理,用于远程管理
  • OpenSSH
    • 服务名称:sshd
    • 服务端主程序:/usr/sbin/sshd
    • 服务端配置文件:/etc/ssh/sshd_config

服务监听选项

端口号、协议版本、监听IP地址、禁用反向解析

[root@localhost ~]# vi /etc/ssh/sshd_config
……
Port 22
ListenAddress 172.16.16.22 
Protocol 2
UseDNS no

用户登录控制

禁用root用户、空密码用户、限制登录验证时间、重试次数、AllowUsers、DenyUsers

[root@localhost ~]# vi /etc/ssh/sshd_config
LoginGraceTime 2m
PermitRootLogin no
MaxAuthTries 6
PermitEmptyPasswords no
…… 
AllowUsers  jerry  admin@61.23.24.25
# AllowUsers不要与DenyUsers同时用

登录验证方式

  • 密码验证:核对用户名、密码是否匹配
  • 密钥对验证:核对客户的私钥、服务端公钥是否匹配
[root@localhost ~]# vi /etc/ssh/sshd_config
……
PasswordAuthentication  yes
PubkeyAuthentication  yes
AuthorizedKeysFile  .ssh/authorized_keys
# 启用密码验证、密钥对验证、指定公钥库位置

SSH 客户端登录

ssh 命令:远程安全登录

ssh  user@host
# 端口选项:-p 22
ssh -p 22 root@192.168.254.12

scp 命令:远程安全复制

scp  user@host:file1  file2
# 下载文件到客户端
scp  file1  user@host:file2
# 上传文件到服务器
scp root@192.168.254.12:/etc/passwd /opt/user.txt
scp /opt/user.txt root@192.168.254.12:/home/test.txt

sftp 命令:安全FTP上下载

sftp  user@host
sftp root@192.168.254.12
get a.txt
# 下载文件,默认下载到登录时,所在目录
put b.txt
# 上传文件,默认上传到当前,所在目录
lcd /opt
# 切换客户机目录

SSH 密钥对验证

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

公钥与私钥的关系

  • 公钥与私钥是成双成对出现或生产的
  • 可以公开的秘钥称为“公钥”,需要自己妥善保管不公开的秘钥称为“私钥”
  • 信息机密领域:通过公钥加密,私钥解密来实现的;
  • 数字签名:通过私钥加密。公钥解密来实现的;
  • 无法通过公钥推算出私钥,也无法通过私钥推算出公钥

在客户机中创建密钥对

ssh-keygen 命令

可用的加密算法:RSA、ECDSA或DSA

[zhangsan@xuanzi ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zhangsan/.ssh/id_rsa): 
Created directory '/home/zhangsan/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
# 设置密钥短语
Your identification has been saved in /home/zhangsan/.ssh/id_rsa.
# 私钥文件位置
Your public key has been saved in /home/zhangsan/.ssh/id_rsa.pub.
# 公钥文件位置
The key fingerprint is:
SHA256:wEuxHgwhjyNoUtT3Ynr9lXIHZF94PdC7OiROagDD+Fg zhangsan@xuanzi
The key's randomart image is:
+---[RSA 2048]----+
| .+.o..      .o..|
|.. +.+.o    o .o+|
|+.o +.B.   o . oo|
|o. o Eo+.   . .. |
|    +o=oS    o  .|
|   ...... .o+... |
|     .  ..++o..  |
|         o.. o   |
|        .     .  |
+----[SHA256]-----+

将公钥文件上传至服务器

任何方式均可(FTP、Email、SCP、HTTP……)

[zhangsan@xuanzi ~]$ scp ~/.ssh/id_ecdsa.pub root@172.16.16.22:/tmp

在服务器中导入公钥文本

  • 将公钥文本添加至目标用户的公钥库

  • 默认公钥库位置:~/.ssh/authorized_keys

[root@localhost ~]# mkdir /home/lisi/.ssh/
[root@localhost ~]# cat /tmp/id_ecdsa.pub >> /home/lisi/.ssh/authorized_keys
[root@localhost ~]# tail -1 /home/lisi/.ssh/authorized_keys

客户端使用密钥对验证登录

  • 验证用户:服务端的用户 zhangsan
  • 验证密码:客户端的用户 zhangsan 的私钥短语
[zhangsan@localhost ~]$ ssh zhangsan@172.16.16.22

另外一种方法

验证密码后,会将公钥自动添加到目标主机user宿主目录下的.ssh/authorized_keys文件结尾

ssh-copy-id  -i  公钥文件 user@host
[zhangsan@xuanzi ~]$ ssh-copy-id -i /home/zhangsan/.ssh/id_rsa.pub zhangsan@192.168.254.12

TCP Wrappers 概述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 保护机制的实现方式

    • 通过tcpd程序对其他服务程序进行包装

    • 由其他服务程序调用libwrap.so.*链接库

  • 访问控制策略的配置文件

    • /etc/hosts.allow

    • /etc/hosts.deny

设置访问控制策略

  • 策略格式:服务程序列表:客户端地址列表
  • 服务程序列表
    • 多个服务以逗号分隔,ALL 表示所有服务
  • 客户端地址列表
    • 多个地址以逗号分隔,ALL表示所有地址
    • 允许使用通配符 ? 和 *
    • 网段地址,如 192.168.4. 或者 192.168.4.0/255.255.255.0
    • 区域地址,如 .benet.com

策略的应用顺序

  • 检查hosts.allow,找到匹配则允许访问
  • 再检查hosts.deny,找到则拒绝访问
  • 若两个文件中均无匹配策略,则默认允许访问

策略应用示例

  • 仅允许从以下地址访问sshd服务
    • 主机61.63.65.67
    • 网段192.168.2.0/24
  • 禁止其他所有地址访问受保护的服务
[root@localhost ~]# vi /etc/hosts.allow
sshd:61.63.65.67,192.168.2.*
[root@localhost ~]# vi /etc/hosts.deny
sshd:ALL

SSH 远程服务配置

服务端配置

[root@xuanzi ~]# rpm -q openssh-server 
openssh-server-7.4p1-16.el7.x86_64
# CentOS 自带 openssh 服务
vi /etc/ssh/sshd_config
# 修改服务端配置文件,分别修改一下配置项
Port 22  
# SSH服务器监听的端口号,默认是22端口。  
  
ListenAddress 172.16.16.22  
# SSH服务器绑定的IP地址,只监听这个地址上的连接请求。  
  
Protocol 2  
# SSH服务器使用的协议版本,这里指定为版本2。  
  
UseDNS no  
# 禁用DNS反向解析,提高连接速度,尤其是在DNS解析存在问题时。  
  
LoginGraceTime 2m  
# 用户登录的超时时间,这里是2分钟。  
  
PermitRootLogin no  
# 禁止root用户通过SSH直接登录。  
  
MaxAuthTries 6  
# 认证尝试的最大次数,超过后将断开连接,这里是6次。  
  
PermitEmptyPasswords no  
# 禁止空密码用户登录。  
  
PasswordAuthentication yes  
# 允许使用密码进行认证。  
  
PubkeyAuthentication yes  
# 允许使用公钥进行认证。  
  
AuthorizedKeysFile .ssh/authorized_keys  
# 存放用户公钥的文件路径,这里指定为当前用户家目录下的.ssh/authorized_keys文件。
[root@xuanzi ~]# systemctl reload sshd
# 重新加载配置文件

客户端登录

ssh -p 22 root@192.168.254.12
# 客户端登录 ssh  user@host

密钥登录

[root@xuanzi ~]# useradd zhangsan
[root@xuanzi ~]# passwd zhangsan
# 先在服务端创建新用户 zhangsan 用于远程登录
[root@xuanzi ~]# useradd zhangsan
[root@xuanzi ~]# passwd zhangsan
[root@xuanzi ~]# su  -  zhangsan 
# 然后在客户端,创建新用户用于生成密钥
[zhangsan@xuanzi ~]$ ssh-keygen -t rsa
# 生成密钥
[zhangsan@xuanzi ~]$ ssh-copy-id -i /home/zhangsan/.ssh/id_rsa.pub zhangsan@192.168.254.12
# 上传公钥:验证密码后,将公钥自动添加到目标主机 user 宿主目录下的 .ssh/authorized_key s文件结尾
[zhangsan@xuanzi ~]$ ssh zhangsan@192.168.254.12
# 上传密钥后再次登录即可,免密登录

设置登录策略

[root@localhost ~]# vi /etc/hosts.allow
# sshd:192.168.254.12,192.168.2.*
[root@localhost ~]# vi /etc/hosts.deny
# sshd:ALL

玄子Share-远程访问及控制 2024.04.09

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值