Linux远程访问及控制理论及部署

一、OpenSSH服务器 ===>yum -y install openssh

SSH(Secure SHell)协议

​ 是一种安全通道协议
​ 对通信数据进行了加密处理,用于远程管理 ===>对称密钥跟非对称密钥

OpenSHH**

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

密钥

对称密钥:加密和解密用同一个密钥.
例如:AES、DES、3DES
​ 加密速度快但是不安全
非对称密钥:加密和解密使用不同密钥.分为公钥和私钥.不可以从其中一种密钥推导出另一个密钥
例如: rsa
​ 加密速度慢但是安全
Hash===>哈希算法 用来验证数据完整性
私钥:验证身份,保密的
公钥:所有人都知道,公开的

服务监听选项

​ 端口号、协议版本、监听IP地址

​ 禁用反向解析

[root@localhost ~]# vi /etc/ssh/sshd_config      #修改配置文件
......
Port 22       #端口22
ListenAddress 172.16.16.22     #监听地址 172.16.16.22
Protocal 2      #协议 2
UseDNS no      #不使用DNS
[root@localhost ~]#ssh root@192.168.1.10 -p 10010     #修改端口号后验证,-p后接改的端口号

用户登录控制

  • ​禁用root用户、空密码用户
  • 闲置登录验证时间、重试次数
  • ​AllowUsers、DenyUsers
[root@localhost ~]# vi /etc/ssh/sshd_config    #修改配置文件
LoginGraceTime 2m    #会话时间 2分钟
PermitRootLogin no    #不允许root用户登录
MaxAuthTries 6    #最大的验证尝试次数为6次---默认是三次
PermitEmptyPasswords no    #不允许空密码登录
......
AllowUsers qiezi@192.168.10.10     #AllowUsers不要与DenyUsers同时用{加了@IP ---只允许你从固定的终端登录}

登录验证方式

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

二、使用SSH客户端程序

  • ssh命令—远程安全登录
    ssh user@host (端口选项-p)
  • scp命令—远程安全复制
    格式一、 scp user@host:file1 file24
    格式二、scp file user@host:file2
  • sftp命令—安全FTP上下载
    sftp user@host
    get ===>下载
    put ===>上传
    bye ===>退出

三、构建密钥对验证的SSH体系

整体实现过程
在这里插入图片描述

第一步:创建密钥对 ===>由客户端的用户zhangsan再本地创建密钥对

公钥文件:id_rsa

公钥文件:id_rsa.pub

第二步:上传公钥文件id_rsa.pub

第三步:导入公钥信息 ===>导入到服务端用户lisi的公钥数据库

公钥库文件:~/.ssh/authorized_keys

第四步:使用密钥对验证方式 ===>以服务端的用户lisi的身份进行登录

1.在客户机中创建密钥对

​ ssh-keygen命令

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

[zhangsan@localhost ~]$ ssh-keygen -t ecdsa     #-t  指定密钥类型
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/zhangsan/.ssh/id_ecdsa):
Created directiry '/home/zhangsan/.ssh'.
Enter same passphrase again:          #设置密钥短语
Your identification has been saved in /home/zhangsan/.ssh/id_ecdsa.   #私钥文件位置
Your public key has been saved in /home/zhangsan/.ssh/id_ecdsa.pub.   #公钥文件位置
......

2.将公钥文件上传至服务器

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

[zhangsan@localhost ~]# scp ~/.ssh/id_ecdsa.pub root@172.16.16.22:/tmp      #安全性复制

3.在服务器中导入公钥文本

​将公钥文本添加至目标用户的公钥库
默认公钥库位置:~/.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
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOBYobmq32SjDwcnTiazunm2xaTrq/dJhrGcTEEGsr8/VqLgKPb8ySB4zExG417TOI3FluCnWKfBBsPQQhtaxU8= zhangsan@zhaobin
(mailto:zhangsan@localhost)

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

​ 验证用户:服务端的用户lisi

​ 验证密码:客户端的用户zhangsan的私钥短语

[zhangsan@zhaobin root]$ ssh lisi@20.0.0.50
Enter passphrase for key '/home/zhangsan/.ssh/id_ecdsa':  ===>输入私钥
Last failed login: Thu Jul  9 12:04:15 CST 2020 from 20.0.0.60 on ssh:notty
There were 2 failed login attempts since the last successful login.
Last login: Thu Jul  9 12:02:06 2020 from 20.0.0.60
[lisi@localhost ~]$ whoani
lisi

#第二步和第三步可以采用另外一种方法
​ ssh-copy-id -i 公钥文件 user@host

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

[zhangsan@localhost ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub lisi@172.16.16.22

TCP Wrappers概述
保护原理
​ 在服务器向外提供的tcp服务商包装一层安全检测机制。外来连接请求首先通过这个安全检测,获得安全认证后才可被系统服务接受。

保护机制的实现方式
​ 方式1:通过rcpd程序对其他服务程序进行包装

​ 方式2:由其他服务器调用libwrap.so.*链接库

访问控制策略的配置文件===>两个文件可以同时存在
​ /etc/hosts.allow

​ /etc/hosts.deny

四、TCP Wrappers策略应用

保护原理

​ 在服务器向外提供的tcp服务商包装一层安全检测机制。外来连接请求首先通过这个安全检测,获得安全认证后才可被系统服务接受。
在这里插入图片描述

保护机制的实现方式

​ 方式1:通过rcpd程序对其他服务程序进行包装

​ 方式2:由其他服务器调用libwrap.so.*链接库

访问控制策略的配置文件===>两个文件可以同时存在

​ /etc/hosts.allow

​ /etc/hosts.deny

TCP Wrappers策略应用

设置访问控制策略
​ 策略格式:服务程序列表:客户端地址列表

​ 服务程序列表
多个服务以逗号分隔,ALL表示所有服务

TCP Wrappers策略的应用顺序

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

策略应用示例

  • 仅允许从以下地址访问sshd服务
    主机61.63.65.67
    网段192.168.2.0/24
  • 禁止其他所有地址访问受保护的服务
[root@localhost ~]# vi /etc/hosts.allow       #允许访问 相当于白名单
sshd:61.63.65.67,192.168.2.*      #允许61.63.65.67 跟192.168.2网段的用户访问
[root@localhost ~]# vi /etc/hosts.deny     #拒绝访问 相当于黑名单
sshd:ALL     #拒绝其他所有
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值