Linux--远程访问及控制(SSH+TCP Wrappers配置各种机制验证)

前言

在实际生产环境中,不可能一直在服务器本地对服务器进行相应的管理,大多数企业服务器都是通过远程登录的方式进行管理的。当需要从一个工作站管理数以百计的服务器主机时,远程维护的方式将更占优势。

一、SSH远程管理

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行加密处理,其中包括用户登录时输入的用户口令。比以往的Telnet(远程登录)、RSH(远程执行命令)等传统的方式相比,SSH协议提供了更好的安全性。

1.1配置Open SSH服务端

1.1OpenSSH服务器

  • SSH(Secure Shell)协议
    是一种安全通道协议
    对通信数据进行了加密处理,用于远程管理

  • 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                      #禁用反向解析 
  • 用户登录控制
    禁用root用户、空密码用户
    限制登录验证时间、重试次数
    AllowUsers、 DenyUsers
[root@localhost ~]# vim /etc/ssh/sshd_config
LoginGraceTime 2m             #会话时间
PermitRootLogin no            #允许root用户进行登录 no
MaxAuthTries 6                #最大的验证尝试次数6次
PermitEmptyPasswords no       #允许空密码登录 no
MaxSessions 10                #允许10个终端连接
......
AllowUsers jerry [email protected]   #允许该用户从固定终端登录
  • 登录验证方式
    密码验证:核对用户名、密码是否匹配
    密钥对验证:核对客户的私钥、服务端公钥是否匹配
[root@localhost ~]# vi /etc/ssh/sshd _config
......
PasswordAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_ keys     

1.2SSH各功能验证

我们打开两台虚拟机,分别用xshell连接,一台取名csdn01作为服务端,ip地址为192.168.100.100、csdn02作为客户端,ip地址为192.168.100.200
在这里插入图片描述
使用xshell连接,可以看到22端口开启
在这里插入图片描述
客户端操作

[root@csdn02 ~]# ssh [email protected]                                      #登录服务端
The authenticity of host '192.168.100.100 (192.168.100.100)' can't be established.
ECDSA key fingerprint is SHA256:W1oJ4ViNwn7z4PRRWHDFQRjQ4DSFl14baD4rxfVvIwQ.
ECDSA key fingerprint is MD5:be:9b:20:d2:14:3d:ae:c7:6c:65:83:e2:7b:b0:25:45.
Are you sure you want to continue connecting (yes/no)? yes                     #输入yes确认登录
Warning: Permanently added '192.168.100.100' (ECDSA) to the list of known hosts.
[email protected]'s password:                                               #输入密码
Last login: Thu Jul  9 10:04:28 2020
[root@csdn01 ~]# 

连接成功可以在客户端对服务端进行操作了
例:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[root@csdn01 ~]# vim /etc/ssh/sshd_config      #编辑服务器配置文件

在这里插入图片描述
在这里插入图片描述

[root@csdn01 ~]# systemctl restart sshd      #重启服务

在这里插入图片描述
这种方法其实存在一定的弊端,不是太安全,例如:
在这里插入图片描述
这种情况可以利用pam验证模块,限制切换root用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对此项进行验证:
在这里插入图片描述
在这里插入图片描述
由此可以得出结论:默认尝试连接次数为3次,最大尝试次数为6次

  • AllowUsers 白名单:仅允许某些用户,拒绝所有人 安全性场合高
  • DenyUsers 黑名单:仅拒绝某些用户,允许所有人 安全性场合低

这两个功能在配置文件中没有,需要手动添加,例:
在这里插入图片描述
将tom、zahngsan添加到白名单后,尝试在客户端用lisi账号登录
在这里插入图片描述
打开第三个终端,名称为csdn03,IP地址192.168.100.144,在这个终端尝试使用zhangsan用户登录
在这里插入图片描述
构建密钥对验证的SSH体系
在这里插入图片描述
在客户端csdn02新建Jerry用户,切换到Jerry用户
在这里插入图片描述

[jerry@csdn02 ~]$ ssh-keygen -t ecdsa         #生成密钥对

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这时候在客户端登录服务端的tom用户需要输入的不再是tom的密码而是密钥的密码
在这里插入图片描述
每次登录输入密码太麻烦,可以添加免交互密码,使再次登录服务器的时候可以不用输入密码
在这里插入图片描述

1. 3scp命令-远程安全复制

scp复制文件命令分为两种:
scp user@host:file1 file2      #从服务端复制文件到客户端
scp file1 user@host:file2      #从客户端复制文件到服务端
参数 -r        #递归复制

在这里插入图片描述

在拷贝过来的passwd文件中随意添加点内容再推回给服务端
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.4sftp命令-安全ftp上下载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、TCP Wrappers

2.1TCP Wrappers概述

2.1.1保护原理

在这里插入图片描述

2.1.2保护机制的实现方式

  • 方式1:通过tcpd程序对其他服务程序进行包装
  • 方式2:由其他服务程序调用libwrap.so. *链接库

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

  • /etc/hosts. allow
  • /etc/hosts.deny

2.2TCP Wrappers策略应用

2.2.1设置访问控制策略

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

2.2.2策略的应用顺序

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

2.2.3策略应用示例

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

优先读取allow,然后再读取deny
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47153988/article/details/107220034