CentOS7 远程访问及控制——SSH 远程管理,TCP Wrappers 访问控制

CentOS7 远程访问及控制

  • 一、SSH 远程管理
    • 1.OpenSSH 服务端相关配置
      • 1)相关服务监听选项
      • 2)相关的用户登陆控制选项
      • 3)登录验证方式
    • 2.SSH 客户端程序的使用
      • 1)SSH 远程登录
      • 2)SCP 远程复制
      • 3)SFTP 安全的 FTP
  • 二、构建密钥对验证的 SSH 体系
    • 1.在客户端上创建 zhangsan 用户,并创建密钥对
    • 2.把公钥文件上传给 SSH 服务器
    • 3.在客户端上使用密钥对验证
  • 三、TCP Wrappers 访问控制

一、SSH 远程管理

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

1.OpenSSH 服务端相关配置

OpenSSH 服务端: 由 openssh 和 openssh-server 等软件包提供;在 CentOS7 系统中默认已经安装。

  • 默认监听端口:TCP 22 号端口号
  • 主配置文件:/etc/ssh/sshd_config

CentOS7 远程访问及控制——SSH 远程管理,TCP Wrappers 访问控制_第1张图片

1)相关服务监听选项

Port                 监听端口(默认22
ListenAddress        监听地址
Protocol             ssh协议版本
UseDNS  no           禁用DNS反向解析

2)相关的用户登陆控制选项

LoginGraceTime  2m          	#登陆验证时间:默认2分钟
PermitRootLogin  yes        	#默认是"yes",表示允许root用户登陆
PermitEmptyPasswords  no   		#默认禁止空密码账户登陆
MaxAuthTries  6             	#最大的重试次数
MaxSessions  10 	 	    	#最多允许10个终端登陆
DenyUsers   用户名	  	    	#拒绝这个用户在任何机器上使用ssh远程登录;如果拒绝多个用户中间用空格隔开
DenyUsers   用户名@IP地址   		#拒绝这个用户在对应的IP地址的机器上进行远程ssh登录
AllowUsers  用户名    	    	#仅允许某个用户通过ssh远程登录
AllowUsers  用户名@IP地址   		#仅允许某个用户通过对应地址的主机进行ssh远程登录
  • 注意:DenyUsers 选项和 AllowUsers 选项不要同时使用。

3)登录验证方式

  1. 密码验证:服务器对本地系统用户进行用户名和密码验证(容易受到暴力破解)
  2. 密钥对验证:在客户端上创建密钥文件(公钥和私钥);公钥上传到服务器的指定位置;私钥自己保留;远程登录时进行加密、解密关联认证,增强远程管理安全性
  • 注意:当两种验证方式都启用时,服务器优先使用密钥对验证;对于安全性较高的服务器,建议关闭密码验证。
PasswordAuthentication  yes   #密码验证方式开启
PubkeyAuthentication  yes     #密钥对验证开启
AuthorizedKeysFile      .ssh/authorized_keys   #指定公钥库位置

2.SSH 客户端程序的使用

OpenSSH客户端: 由openssh-clients软件包提供 (默认已将安装);包括ssh远程登录命令;以及scp远程复制和sftp文件传输命令

1)SSH 远程登录

  1. 通过第三方工具使用 SSH 进行远程登陆(Xshell;CRT;Putty)等图形化工具
  2. 命令登录:
ssh  用户名@主机地址  -p  端口号 
(端口号默认是22,可以不跟-p选项;如果修改了服务器的ssh端口,必须要指定ssh的端口号

CentOS7 远程访问及控制——SSH 远程管理,TCP Wrappers 访问控制_第2张图片

2)SCP 远程复制

语法结构:

scp   root@对方的地址:对方文件位置  本地位置 (回车后,按提示输入对方root 账户的密码)

创建一个目录,通过远程复制到ssh服务上

[root@localhost ~]# scp -r ajbn/ root@192.168.1.10:/root/
当对目录操作时需要加-r

在这里插入图片描述
在ssh服务器上查看,并创建一个文件
在这里插入图片描述
在客户端上通过远程复制将ssh服务器中的文件复制过来

[root@localhost ~]# scp  root@192.168.1.10:/root/ajbm /root/

在这里插入图片描述

3)SFTP 安全的 FTP

通过 sftp 命令可以利用SSH安全连接与远程主机上传、下载文件,采用了与 FTP 类似的登录过程和交互式环境,便于目录资源管理。

登录: sftp  用户名@对方地址  (按回车输入密码)
下载: get  文件名
上传: put -r  目录名
退出登录:exit

在客户端创建一个目录
CentOS7 远程访问及控制——SSH 远程管理,TCP Wrappers 访问控制_第3张图片
在ssh服务器创建一个文件
CentOS7 远程访问及控制——SSH 远程管理,TCP Wrappers 访问控制_第4张图片
在客户端通过sftp进行登录验证
CentOS7 远程访问及控制——SSH 远程管理,TCP Wrappers 访问控制_第5张图片

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

1.在客户端上创建 zhangsan 用户,并创建密钥对

[root@localhost ~]# useradd zhangsan  		   #创建zhangsan
[root@localhost ~]# passwd zhangsan  		   #给zhangsna设置密码
[root@localhost ~]# su - zhangsan      		   #切换到zhangsan账户
[zhangsan@localhost ~]$ ssh-keygen -t ecdsa    #用ecdsa 的加密方式创建密钥对文件
(连续敲3次Enter 键生成密钥对文件)

CentOS7 远程访问及控制——SSH 远程管理,TCP Wrappers 访问控制_第6张图片
密钥对文件的默认位置:/home/zhangsan/.ssh/
id_ecdsa(私钥文件) id_ecdsa(公钥文件)
在这里插入图片描述

2.把公钥文件上传给 SSH 服务器

[zhangsan@localhost .ssh]$ scp id_ecdsa.pub root@192.168.1.10:/tmp/
(把公钥文件传给192.168.100.101 /tmp 目录中)

CentOS7 远程访问及控制——SSH 远程管理,TCP Wrappers 访问控制_第7张图片
在 SSH 服务器上创建 zhangsan 用户,并设置密码;创建一个公钥数据库的存放目录:

[root@aaa ~]# useradd zhangsan
[root@aaa ~]# passwd zhangsan
[root@aaa ~]# mkdir /home/zhangsan/.ssh

把发送过来的公钥文件的内容追加到目标用户的公钥数据库中:

[root@aaa ~]# cat /tmp/id_ecdsa.pub >> /home/zhangsan/.ssh/authorized_keys

CentOS7 远程访问及控制——SSH 远程管理,TCP Wrappers 访问控制_第8张图片

3.在客户端上使用密钥对验证

[zhangsan@localhost .ssh]$ ssh zhangsan@192.168.1.10
(可直接登录,不需要密码)

在这里插入图片描述

三、TCP Wrappers 访问控制

定义: 一种防护机制,作为应用服务与网络之间的一道特殊防线,提供额外的安全保障
CentOS7 远程访问及控制——SSH 远程管理,TCP Wrappers 访问控制_第9张图片
工作原理: 将TCP服务程序"包裹"起来,监听TCP服务程序端口,增加一个安全监测过程,外来的链接请求必须通过这层安全检测,获得许可后,才可以真正访问服务程序

保护机制的两种实现方式:

  1. 直接使用tcpd程序对其他服务程序进行保护,需要运行tcpd
  2. 其他的服务程序调用libwrap.so.*链接库,不需要运行tcpd(应用更广泛,更有效率)

TCP Wrappers 对应的两个策略文件:

  • /etc/hosts.allow: 用来设置允许策略
  • /etc/hosts.deny: 用来设置拒绝策略

策略的配置格式: 服务程序列表:客户端地址列表
访问控制的基本原则:

  1. 先检查/etc/hosts.allow 文件,找到相匹配的策略,就允许访问;
  2. 然后继续检查/etc/hosts.deny ,如果找到相匹配的策略,则拒绝;
  3. 如果检查两个文件都没有匹配的策略,则允许访问。

1)、服务程序列表:

  • ALL: 表示所有服务
  • 单个服务:直接写服务名
  • 多个服务程序:服务名中间以"," 隔开

2)、客户端地址列表

  • ALL: 任何客户端
  • LOCAL:本机地址
  • 单个IP: 直接写一个IP
  • 网段地址: 例: 192.168.100.0/255.255.255.0 (表示192.168.100.0 这个网段)
  • 以"."开始的域名: 所有的以同一个域名后缀结尾的主机
  • 以"." 结束的网络地址: 表示一个网段

例如:只允许192.168.1.110主机进行连接,而拒绝所有主机连接

在ssh服务器上配置
[root@aaa ~]# vim /etc/hosts.allow

CentOS7 远程访问及控制——SSH 远程管理,TCP Wrappers 访问控制_第10张图片

[root@aaa ~]# vim /etc/hosts.deny

CentOS7 远程访问及控制——SSH 远程管理,TCP Wrappers 访问控制_第11张图片
当重启后会生效

[root@aaa ~]# systemctl restart sshd

CentOS7 远程访问及控制——SSH 远程管理,TCP Wrappers 访问控制_第12张图片
CentOS7 远程访问及控制——SSH 远程管理,TCP Wrappers 访问控制_第13张图片

你可能感兴趣的:(运维,linux,ssh,centos,远程访问及控制,TCP,Wrappers)