(Linux网络)SSH远程访问及控制

SSH远程管理

一、配置OpenSSH服务端

1.1 SSH服务及配置文件

SSH(Secure Shell) 协议

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

OpenSSH

  • 服务名称:sshd

  • 服务端主程序:/usr/sbin/sshd

  • 服务端配置文件:/etc/ssh/sshd_config

    systemctl start sshd   ##启动sshd服务
    

1.2 服务监听选项

sshd服务使用的默认的端口号为22,必要时建议修改此端口号,并指定监听服务的具体 IP 地址,以提高在网络中的隐蔽性。除此之外,SSH协议的版本V2比V1的安全性要更好,禁用DNS反向解析可以提高服务器的响应速度。

[root@localhost~]# vi /etc/ssh/sshd_config
Port 22     					//监听端口,可以修改
ListenAddress 172.16.16.22	    //监听地址,可以修改
Protocol 2  					//使用SSH V2协议
UseDNS no 						//禁止DNS反向解析

1.3 用户登录控制

sshd服务默认允许root用户登录,当在Internet中使用时这是非常不安全的。普遍的做法:先以普通用户远程登录,进入安全Shell环境后,根据实际需要使用su命令切换为root用户。
关于sshd服务的用户登录控制:

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

AllowUsers 白名单 :仅允许登陆
DenyUsers 黑名单 :仅拒绝登陆

   [root@localhost ~]# vi/etc/ssh/sshd_config 
   LOginGrace Time 2m    //登录验证时间为2分钟
   PermitROotLogin no    //禁止root用户登录
   MaxAuthTries 6        //最大重试次数为6
   PermitEmptyPasswords no  //禁止空密码用户登录
   ......
   AllowUsers jerry admin@61.23.24.25

当只允许或禁止某些用户登录时,可以使用 AllowUsers 或 DenyUsers 配置,两者用法类似(注意不要同时使用)。例如,若只允许 jerry、tesengyia 和 admin 用户登录,且其中 admin 用户仅能够从 IP 地址为 61.23.24.25 的主机远程登录,则可以在 /etc/ssh/sshd_config 配置文件中添加一下配置。
例如:

#AllowUsers zhangsan wangwu@192.168.1.101,192.168.1.102 
只允许wangwu以192.168.1.101的ip登录,zhangsan两个ip都可以。

1.4 登录验证方式

密码验证:核对用户名、密码是否匹配
在这里插入图片描述

密钥对验证:核对客户的私钥、服务端公钥是否匹配
在这里插入图片描述

在这里插入图片描述

[root@server~]# vi /etc/ssh/sshd_config .
PasswordAuthentication yes 		//启用密码验证密匙对
PubkeyAuthentication yes 		//验证公钥位置
AuthorizedKeysFile ssh/authorized_keys
生成密钥:ssh-keygen -t rsa

二、使用SSH客户端程序

ssh命令——远程安全登录

ssh user@host -p 端口选项∶-p22

scp命令——远程安全复制(拷贝)

格式1∶scp user@host∶file1 file2
格式2∶scp filel user@hostfile2

sftp命令——安全FTP上下载

客户端的上传和下载(因为sftp服务也在使用22号端口,无须另外设置)

put:上传;get:下载
sftp user@host //登录的是该用户的家目录

图形工具Xshell
在这里插入图片描述

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

3.1 整体过程

在这里插入图片描述
步骤如下:
(1)在客户端创建密钥对
在这里插入图片描述

[root@server ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ZKWPnLtftpqJdM3uYBrpy2KXQjDUx0C2mncp8jVIUJ4 root@client2
The key's randomart image is:
+---[RSA 2048]----+
|    .+=o  .      |
|    .+.ooo       |
|   .  E.+        |
|    o+ = =       |
|    +o+ S .      |
|     +.+ + o     |
|     .. =.+ =    |
|      ++oB B .   |
|     . +Bo=o+    |
+----[SHA256]-----+

(2)将公钥文件上传至服务器
在这里插入图片描述
(3)在服务器上导入公钥
在这里插入图片描述
(4)在客户端使用密钥对验证
在这里插入图片描述

TCP Wrappers访问控制

1.TCP Wrappers概述

在这里插入图片描述
保护机制的实现方式

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

访问控制策略的配置文件

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

2.TCP Wrappers访问策略

TCP Wrappers机制的保护对象为各种网络服务程序,针对访问服务的客户机地址进行访问控制。对应的两个策略文件为 /etc/hosts.allow和/etc/hosts.deny,分别用来设置允许和拒绝的策略

2.1 策略的配置格式

设置访问控制策略:

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

2.2 访问控制的基本原则

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

2.3 TCP Wrappers配置实例

在这里插入图片描述
相当于ACL访问控制列表一样,不过控制的是tcp协议类型的服务

vi /etc/hosts.allow 
举例
sshd,vsftpd∶192.168.1.  *任意字符   192.168.1.1-192.168.1.254 
sshd,vsftpd∶192.168.1.   所有       192.168.1.0/24
sshd,vsftpd∶192.168.1.?  单个字符   192.168.1.1-192.168.1.9 
vi /etc/hosts.deny 
举例
shd, vsftpd:ALL   //禁止所有
sshd,vsftpd∶192.168.2.   //仅禁止192.168.2.0/24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值