文章目录
前言
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的登录口令。与早期的telnet(远程登录)、rsh(Remote Shell,远程执行命令)、rcp(Remote File Copy,远程文件复制)等应用相比,SSH协议提供了更好的安全性。
一、SSH远程管理
1.配置OpenSSH服务端
1.1 SSH服务及配置文件
SSH(Secure Shell) 协议
- 是一种安全通道协议
- 对通信数据进行了加密处理,用于远程管理
OpenSSH
- 服务名称:sshd
- 服务端主程序:/usr/sbin/sshd
- 服务端配置文件:/etc/ssh/sshd_config
systemctl restart sshd ##重启(刷新)sshd服务
1.2 服务监听选项
sshd服务使用的默认的端口号为22,必要时建议修改此端口号,并指定监听服务的具体 IP 地址,以提高在网络中的隐蔽性。除此之外,SSH协议的版本V2比V1的安全性要更好,禁用DNS反向解析可以提高服务器的响应速度。
1.3 用户登录控制
sshd服务默认允许root用户登录,当在Internet中使用时这是非常不安全的。普遍的做法:先以普通用户远程登录,进入安全Shell环境后,根据实际需要使用su命令切换为root用户。
关于sshd服务的用户登录控制:
- 禁用root用户、空密码用户
- 限制登录验证时间、重试次数
- AllowUsers、DenyUsers
当只允许或禁止某些用户登录时,可以使用 AllowUsers 或 DenyUsers 配置,两者用法类似(注意不要同时使用)。例如,若只允许 jerry、tesengyia 和 admin 用户登录,且其中 admin 用户仅能够从 IP 地址为 61.23.24.25 的主机远程登录,则可以在 /etc/ssh/sshd_config 配置文件中添加一下配置。
1.4 登录验证方式
密码验证:核对用户名、密码是否匹配
密钥对验证:核对客户的私钥、服务端公钥是否匹配
2.使用SSH客户端程序
2.1 命令程序ssh、scp、sftp
ssh远程登录
scp远程复制
(1)将文件远程复制到服务器
(2)从服务器远程复制文件
(3)sftp安全FTP
put:上传;get:下载
2.2 图形工具Xshell
3.构建密钥对验证的SSH体系
步骤如下:
(1)在客户端创建密钥对
(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配置实例
在IP地址为20.0.0.11的主机上进行设置
此时,之前能访问 20.0.0.11 服务器的 20.0.0.13 不能访问;但 20.0.0.12 的是可以访问的。