小阿轩yx-远程访问及控制

39 篇文章 0 订阅
7 篇文章 0 订阅

小阿轩yx-远程访问及控制

SSH远程管理

应用服务常用的网络架构

  • Web端应用服务:C/S

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

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

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

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

配置 OpenSSH 服务端

阿里云服务器明文规定 setenforce 0 不能开

  • setenforce 0:关闭
  • setenforce1:开启
  • SSH(Secure Shell)协议
    • 是一种安全通道协议
    • 对通信数据进行了加密处理,用于远程管理
    • 安装在内核之外的应用程序
    • 是由OpenSSH来实现的

    • port端口:22,port端口修改端口当前连接不会断开,重启之后就会断开连接不上

    • Telnet端口:23

  • OpenSSH
    • 服务名称:sshd
    • 服务端主程序:/usr/sbin/sshd
    • 服务端配置文件:/etc/ssh/sshd_config

服务监听选项 

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

[root@localhost ~]# vim /etc/ssh/sshd_config
……
Port 22
ListenAddress 172.16.16.22 
Protocol 2
UseDNS no //禁用 DNS 反向解析
……
[root@localhost ~]# systemctl restart sshd

SSH 远程服务配置

服务端配置
[root@localhost ~]# 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@localhost ~]# systemctl reload sshd
# 重新加载配置文件

客户端配置 

[root@localhost ~]# ssh -p 22 root@192.168.10.101
# 客户端登录         ssh       user@host

密钥登录

[root@localhost ~]# useradd zhangsan
[root@localhost ~]# passwd zhangsan
# 先在服务端创建新用户 zhangsan 用于远程登录

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

用户登录控制

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

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

登录验证方式

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

 使用SSH客户端程序

交互式执行方式(人与机器之间的对话:账号+密码):

命令程序ssh、scp、sftp

ssh命令程序远程登录

[root@localhst ~]ssh  root@192.168.10.101
# 端口选项:-p 22
[root@localhst ~]ssh -p 22 root@192.168.10.101

scp命令远程复制

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

sftp命令安全FTP上传下载

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

图形工具Xshell

构建密钥对验证的SSH体系

SSH进行用户身份认证时默认优先使用公钥认证(注:默认优先公钥认证的前提是配置了公钥)

免交互式(密钥对):

  • SSH:客户端需要生成(公钥+私钥)
  • 公钥:需要发送给服务器端(你想连谁,就把公钥发给谁),可以加密数据
  • 私钥;自己保存,可以解密数据

私钥短语:解锁私钥 

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

在客户机创建密钥对 

ssh-keygen命令

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

[zhangsan@localhost ~]$ 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@localhost ~]$ scp ~/.ssh/id_ecdsa.pub root@172.16.16.22:/tmp

在服务器中导入公钥文本

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

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

[root@localhost ~]# mkdir /home/zhangsan/.ssh/
[root@localhost ~]# cat /tmp/id_ecdsa.pub >> /home/zhangsan/.ssh/authorized_keys
[root@localhost ~]# tail -1 /home/zhangsan/.ssh/authorized_keys
ecdsa-sha2-nistp256
AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLJSnBhscYBfnnHxSY
AJEBD4sNkTLMF7itcFGM33RdeXU89QNQkMnCrCJHzAlZURrzpXG6Mp62mz9gRXUnARk8s =
zhangsan@localhost

 客户端使用密钥对验证

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

 另一种方法

[root@localhost zhangsan ~]$ ssh-copy-id -i /home/zhangsan/.ssh/id_rsa.pub zhangsan@192.168.10.101

TCP Wrappers访问控制

TCP Wrappers概述

  • 保护机制的实现方式

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

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

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

    • /etc/hosts.allow

    • /etc/hosts.deny

TCP Wrappers的访问策略

保护对象为各种网卡服务程序,针对访问服务的客户端地址进行访问控制

策略格式

  • 服务程序列表:客户端地址列表之间以冒号分隔,多个列表之间以逗号分隔

服务程序列表

  • ALL :表示所有服务
  • 单个服务程序:如“vsftpd”
  • 多个服务程序组成的列表:如“vsftpd,sshd”

客户端地址列表

  • ALL:任何客户端地址
  • LOCAL:本机地址
  • 单个IP地址:如“192.168.4.4”
  • 网段地址:如“192.168.4.0/255.255.255.0”
  • 以“.”开始的域名:如“192.168.4.”匹配整个192.168.4.0/24网段
  • 嵌入通配符“*”“?”:前者代表任意长度字符,后者仅代表一个字符,如“10.0.8.2*” 匹配以 10.0.8.2开头的所有 IP 地址。不可与以.开始或结束的模式混用
  • 多个客户端地址组成的列表:如“192.168.1.172.16.16..bdqn.com”

访问控制基本原则

  • 首先检查 /etc/hosts.allow文件,找到匹配并允许访问
  • 再检查/etc/hosts.deny文件,找到匹配并拒绝访问

TCP Wrappers配置

  • 仅允许从以下地址访问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

小阿轩yx-远程访问及控制 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值