文章目录
前言
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
一、SSH远程管理
1.1、配置OpenSSH服务端
1.1.1、SSH协议
是一种安全通道协议
对通信数据进行加密处理,用于远程管理
1.1.2、OpenSSH
服务名称:sshd
服务端主程序:/usr/sbin/shhd
服务端配置文件:/etc/ssh/shhd_config
ssh_config:针对客户端
sshd_config:针对服务端
1.1.3、服务监听选项
端口号,协议版本,监听IP地址
禁用反向解析
查看配置文件
1.1.4、用户登录控制
禁用root用户、空密码用户
限制登录验证时间、重试次数
AllowUsers:白名单:仅允许某些用户,拒绝所有人(安全性场合高的)
DenyUsers:黑名单:仅拒绝某些用户,允许所有人(安全性场合较低的)
1.2、SSH各功能验证
我们打开两台虚拟机,分别用xshell连接,一台取名chen01作为服务端,ip地址为192.168.100.100、chen02作为客户端,ip地址为192.168.100.188
客户端操作
[root@chen02 ~]# ssh root@192.168.100.100
The authenticity of host '192.168.100.100 (192.168.100.100)' can't be established.
ECDSA key fingerprint is SHA256:RV00f7MSkqe7SK0tl8MNodKY5wZbjUL9379oSg2hm34.
ECDSA key fingerprint is MD5:d2:6d:6a:6a:53:bd:e7:f0:43:fd:8b:f9:8c:f3:a3:4b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.100.100' (ECDSA) to the list of known hosts.
root@192.168.100.100's password:
Last login: Sat Jul 18 18:04:15 2020
[root@chen01 ~]#
在opt目录下创建文件
[root@chen02 ~]# touch /opt/test01
在chen01中查看
在chen01中查看配置文件
不允许root用户登录
重启sshd服务,就发现已经无法登陆了
权限拒绝
这种方法其实存在一定的弊端,不是太安全,例如:
创建一个叫wangwu的新用户
借王五作为跳板,切换root身份
这种情况可以利用pam验证模块,限制切换root用户
验证
开启“最大验证次数6次”的服务
验证发现输错三次密码后就被踢出,并不是六次
由此可以得出结论:默认尝试连接次数为3次,最大尝试次数为6次
● AllowUsers 白名单:仅允许某些用户,拒绝所有人 安全性场合高
● DenyUsers 黑名单:仅拒绝某些用户,允许所有人 安全性场合低
这两个功能在配置文件中没有,需要手动添加,例:
将zhangsan、wangwu添加到白名单后,尝试在客户端用lisi账号登录
打开第三个终端,名称为chen03,IP地址192.168.100.8,在这个终端尝试使用wangwu用户登录
开启三条指令
在客户端chen02新建caiwu用户,切换到caiwu用户
生成密钥对
把公钥复制给wangwu用户
这时候在客户端登录服务端的wangwu用户需要输入的不再是wangwu的密码而是密钥的密码
但是,实际中每次登录输入密码太麻烦,可以添加免交互密码,使再次登录服务器的时候可以不用输入密码
1.3、scp命令-远程安全复制
scp复制文件命令分为两种:
scp user@host:file1 file2 #从服务端复制文件到客户端
scp file1 user@host:file2 #从客户端复制文件到服务端
参数 -r #递归复制
在传来的文件中加一句话
客户端再传递给服务端
服务器端看到了修改后的传来的文件
1.4、sftp命令-安全ftp上下载
远程下载成功
修改文件,然后客户端再上传给服务端
服务端接收到了文件
二、TCP Wrappers
2.1、TCP Wrappers概述
2.1.1、保护原理
2.1.2、保护机制的实现方式
方式1:通过tcpd程序对其他服务程序进行包装
方式2:由其他服务程序调用libwrap.so. *链接库
2.1.3、访问控制策略的配置文件
●/etc/hosts. allow
●/etc/hosts.deny
2.2、TCP 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、访问策略的配置文件(先白后黑)
(1)白名单允许
配置文件:/etc/hosts.allow
[root@tes02 ~]# vim /etc/hosts.allow
sshd:192.168.60.*,20.0.0.20 ####允许192.168.60网段所有以及20.0.0.20主机远程登录
(2)黑名单拒绝
配置文件:/etc/hosts.deny
[root@tes02 ~]# vim /etc/hosts.deny
sshd:ALL(禁止所有进行远程登录)