远程访问及控制(详解)——SSH远程管理及TCP Wrappers 访问控制

  • 一、SSH远程管理
    • 1、定义
    • 2、优点
    • 3、客户端与服务端
    • 4、SSH服务的开启、端口号和配置文件
  • 二、配置 OpenSSH 服务端
    • 1、配置文件常用设置选项
    • 2、AllowUsers和DenyUsers
  • 三、使用SSH客户端程序
    • 1、SSH远程登录
    • 2、SCP远程复制
      • ①、下行复制
      • ②、上行复制
    • 3、sftp 安全 FTP
  • 四、sshd服务支持两种验证方式
    • 1、密码验证
    • 2、秘钥对验证
      • ①、在客户机创建秘钥对
      • ②、将公钥文件上传至服务器
      • ③、在服务器中导入公钥文本
      • ④、在客户端使用秘钥对验证
      • ⑤、在客户机设置ssh代理功能,实现免交互登录
  • 五、TCP Wrappers 访问控制
    • 1、保护机制的两种实现方式
      • ①、查看程序的 libwrap.so.* 链接库——ldd命令
    • 2、TCP Wrappers 的访问策略
    • 3、TCP Wrappers 机制的基本原则
    • 4、示例

一、SSH远程管理

1、定义

SSH(Secure Shell )是一种安全通道协议,主要用来实现字符界面的远程的登录、远程复制等功能。
SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性。

2、优点

3、客户端与服务端

  • 客户端:Putty、Xshell、CRT
  • 服务端:OpenSSH
    - OpenSSH 是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统。
    - CentOS 7系统默认已安装openssh相关软件包,并已将 sshd 服务添加为开机自启动。

4、SSH服务的开启、端口号和配置文件

  • SSH服务的开启
    - 执行 “systemctl start sshd” 命令即可启动 sshd 服务
  • SSH服务的端口号
    - sshd 服务使用的默认端口号为 22
  • SSH服务的配置文件
    - sshd_config 是针对服务端的配置文件
    - ssh_config 是针对客户端的配置文件

二、配置 OpenSSH 服务端

1、配置文件常用设置选项



2、AllowUsers和DenyUsers



三、使用SSH客户端程序

1、SSH远程登录

当用户第一次登录SSH服务器时,必须接受服务器发来的ECDSA秘钥(根据提示输入"yes")后才能继续验证。接收的秘钥信息将保存到 ~/.ssh/known_hosts 文件中,密码验证成功后,即可登录目标服务器的命令环境中了。

选项 说明
-1 强制使用ssh协议版本1
-2 强制使用ssh协议版本2
-4 强制使用IPv4地址
-6 强制使用IPv6地址
-A 开启认证代理连接转发功能
-a 关闭认证代理连接转发功能
-b 使用本机指定的地址作为对位连接的源IP地址
-C 请求压缩所有数据
-F 指定ssh指令的配置文件,默认的配置文件为“/etc/ssh/ssh_config”
-f 后台执行ssh指令
-g 允许远程主机连接本机的转发端口
-i 指定身份文件(即私钥文件)
-l 指定连接远程服务器的登录用户名
-N 不执行远程指令
-o 指定配置选项
-p 指定远程服务器上的端口
-q 静默模式,所有的警告和诊断信息被禁止输出
-X 开启X11转发功能
-x 关闭X11转发功能
-y 开启信任X11转发功能

2、SCP远程复制

①、下行复制

②、上行复制

3、sftp 安全 FTP

由于使用了加密/解密技术,所以传输效率比普通的FTP要低,但安全性更高。

sftp root@192.168.184.40
root@192.168.184.40's password:
Connected to 192.168.184.40.
sftp> ls
sftp> get 文件名        #下载文件
sftp> put 文件名        #上传文件
sftp> exit           #退出


四、sshd服务支持两种验证方式

1、密码验证

  • 对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解

2、秘钥对验证

  • 要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证。能增强安全性,且可以免交互登录。
  • 当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。可根据实际情况设置验证方式。
vim /etc/ssh/sshd_config
PasswordAuthentication yes                      #启用密码验证
PubkeyAuthentication yes                        #启用密钥对验证
AuthorizedKeysFile .ssh/authorized_keys         #指定公钥库文件

①、在客户机创建秘钥对

通过ssh-keygen工具为当前用户创建密钥对文件。可用的加密算法为RSA、ECDSA或DSA等(ssh-keygen命令的“-t”选项用于指定算法类型)。

useradd ljm
echo "123456" | passwd --stdin ljm
su - ljmssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/ljm/.ssh/id_ecdsa):  #指定私钥位置,直接回车使用默认位置
Created directory '/home/ljm/.ssh'.           #生成的私钥、公钥文件默认存放在宿主目录中的隐藏目录.ssh/下
Enter passphrase (empty for no passphrase):     #设置私钥的密码
Enter same passphrase again:                    #确认输入ls -l .ssh/id_ecdsa*      #id_ecdsa是私钥文件,权限默认为600;id_ecdsa.pub是公钥文件,用来提供给 SSH 服务器

②、将公钥文件上传至服务器

scp ~/.ssh/id_ecdsa.pub root@192.168.184.20:/opt
或
#此方法可直接在服务器的/home/ljm/.ssh/目录中导入公钥文本
cd ~/.ssh/
ssh-copy-id -i id_ecdsa.pub zhangsan@192.168.184.20

③、在服务器中导入公钥文本

mkdir /home/zhangsan/.ssh/
cat /tmp/id_ecdsa.pub >> /home/zhangsan/.ssh/authorized_keyscat /home/zhangsan/.ssh/authorized_keys

④、在客户端使用秘钥对验证

ssh zhangsan@192.168.184.20
lucien@192.168.184.20's password:          #输入私钥的密码

⑤、在客户机设置ssh代理功能,实现免交互登录

ssh-agent bash
ssh-add
Enter passphrass for /home/zhangsan/.ssh/id_ecdsa:     #输入私钥的密码ssh zhangsan@192.168.184.20

五、TCP Wrappers 访问控制

  • TCP Wrappers 将TCP服务程序“包裹”起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。
  • 大多数 Linux 发行版,TCP Wrappers 是默认提供的功能。

1、保护机制的两种实现方式

  • 直接使用 tcpd 程序对其他服务程序进行保护,需要运行 tcpd程序。
  • 由其他网络服务程序调用 libwrap.so.* 链接库,不需要运行 tcpd 程序。此方式的应用更加广泛,也更有效率。

①、查看程序的 libwrap.so.* 链接库——ldd命令

常用参数 说明
-v 详细信息模式,打印所有相关信息
-u 打印未使用的直接依赖
-d 执行重定位和报告任何丢失的对象
-r 执行数据对象和函数的重定位,并且报告任何丢失的对象和函数
– -help 显示帮助信息
  • 文件需要写上绝对路径

    • 我们不是很清楚文件的绝对路径时,可以使用which命令查询
    • 也可以两条命令一起使用:ldd $(which sshd)

2、TCP Wrappers 的访问策略

  • TCP Wrappers 机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。
  • 对应的两个策略文件为 /etc/hosts.allow 和 /etc/hosts.deny,分别用来设置允许和拒绝的策略。
服务程序列表 ALL 代表所有的服务
单个服务程序 如“vsftpd”
多个服务程序组成的列表 如“vsftpd,sshd”
客户端地址列表 ALL 代表任何客户端地址
LOCAL 代表本机地址
多个地址以逗号分隔
允许使用通配符 * 代表任意长度字符
仅代表一个字符

3、TCP Wrappers 机制的基本原则

  • 首先检查/etc/hosts.allow文件,如果找到相匹配的策略,则允许访问;

  • 否则继续检查/etc/hosts.deny文件,如果找到相匹配的策略,则拒绝访问;

  • 如果检查上述两个文件都找不到相匹配的策略,则允许访问。

  • 允许所有,拒绝个别
    只需在/etc/hosts.deny文件中添加相应的拒绝策略

  • 允许个别,拒绝所有
    除了在/etc/hosts.allow中添加允许策略之外,还需要在/etc/hosts.deny文件中设置“ALL:ALL”的拒绝策略。

4、示例

只希望从IP地址为12.0.0.1的主机或者位于192.168.80.0/24网段的主机访问sshd服务,其他地址被拒绝。

vi /etc/hosts.allow
sshd:12.0.0.1,192.168.80.*vi /etc/hosts.deny
sshd:ALL

远程访问及控制(详解)——SSH远程管理及TCP Wrappers 访问控制相关推荐

  1. 远程访问及控制——SSH远程管理及TCP Wrappers 访问控制

    一.SSH远程管理 1.定义 SSH(Secure Shell )是一种安全通道协议,主要用来实现字符界面的远程的登录.远程复制等功能. SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录 ...

  2. Linux远程访问及控制(SSH、TCP Wrappers 访问控制)

    Linux远程访问及控制 一.SSH远程管理 1.SSH定义 2.SSH数据传输优点 3.SSH客户端和服务端 二.OpenSSH 1.配置OpenSSH 服务端配置 2.scp远程复制 3.sftp ...

  3. 手机linux服务器控制,Termux - Android手机上的Terminal终端(手机ssh远程管理linux服务器)...

    本帖最后由 toddliu 于 2019-5-6 14:35 编辑 Termux是一个安卓手机上的终端神器,可以在手机上ssh远程管理linux服务器,虚拟机linux,可以在手机上使用bash和zs ...

  4. linux根-文件系统-目录管理-文件管理-用户及权限详解-用户组-用户管理-权限管理...

    一 .Linux文件结构 文件结构是文件存放在磁盘等存贮设备上的组织方法.主要体现在对文件和目录的组织上. 目录提供了管理文件的一个方便而有效的途径. Linux使用标准的目录结构,在安装的时候,安装 ...

  5. xshell1分钟就会自动断_详解xshell远程连接自动断开的问题解决办法

    关于用xshell远程连接系统自动断开问题的解决办法: 1.服务器端的配置 我们都知道,作为服务器,默认一般都是被动的等待客户端的连接到来.但对基于ssh协议的xshell的运用,总是出现自动断开的情 ...

  6. 详解JVM内存管理与垃圾回收机制5 - Java中的4种引用类型

    在Java语言中,除了基础数据类型的变量以外,其他的都是引用类型,指向各种不同的对象.在前文我们也已经知道,Java中的引用可以是认为对指针的封装,这个指针中存储的值代表的是另外一块内存的起始地址(对 ...

  7. SSH远程管理、参数讲解、xshell使用、scp,sftp,ssh命令(ssh两种方式的密钥验证方...

    1.SSH远程管理 SSH(Secure Sheel)是一种安全通道协议,主要用于实现字符界面的远程登录.远程复制等功能.SSH协议对通信双方的数据传输进行了加密处理,其中包括用户的口令.与早期的TE ...

  8. Android UI详解之布局管理器(一)

    Android UI详解之布局管理器 一.布局管理器 ①顶级父类View ②子类GroupView ③AbsoluteLayout.FrameLayout.LinearLayout.GridLayou ...

  9. 锐捷交换机Telnet/SSH 远程管理配置

    锐捷交换机Telnet/SSH 远程管理配置 很久没有更新CSDN了 因为之前一段时间在找工作,好了废话不多说直接上图. 实验环境 有锐捷设备的真机最好使用真机进行配置,如果没有真机的朋友,可以使用锐 ...

最新文章

  1. 教你怎么卷过别人 | 每日趣闻
  2. 设计模式 | 适配器模式及典型应用
  3. Win7下提取加密PDF文件(pdf加密成exe)
  4. php 获取实例的类名,PHP类名获取方式及单例模式实现
  5. 错误:unrecognized command line option “-std=c++11”
  6. 0909 粗浅的认识编译原理
  7. Java NIO操作Socket的用法
  8. html语言中glyphicon,Bootstrap字体图标无法正常显示的解决方法
  9. 滴滴悬赏100万“捉拿”司机;手机QQ又宕机;中兴手机或将出售 | CSDN 极客头条...
  10. 构建Postfix邮件系统(一) -- postfix+dovecot
  11. Python手册(Machine Learning)--statsmodels(TimeSeries)
  12. ESP8285烧写问题备忘
  13. 1.用 perf report 分析四个for进程
  14. .md文件简单的转化为pdf文件
  15. quartz各表作用讲解
  16. 关于lodop的学习小计
  17. 紫荆花开之say love to the girl you love
  18. Android平台以WebView方式集成H5+SDK和支付宝登录授权插件开发思路总结
  19. CC2540自己的配置文件
  20. 10道前端面试题(带答案)

热门文章

  1. Django模型(二)
  2. Linux下编写UDP/TCP版本的服务器和客户端的流程
  3. 一切从用户的需求与体验出发
  4. Java基础之正则表达式
  5. 速抢中秋月饼和红包封面!
  6. 视频直播:实时数据可视化分析
  7. 腾讯AI Lab正式开源业内最大规模多标签图像数据集
  8. 百度大数据可视化产品矩阵
  9. IntelliJ IDEA Maven Gradle的配置
  10. Spark _10_补充部分算子【三】