一、SSH远程管理
1.1 OpenSSH服务器1-1
■ SSH协议
- 是一种安全通道协议
- 对通信数据进行了加密处理,用于远程管理
■ OpenSSH
- 服务名称:sshd
- 服务端主程序:/usr/sbin/sshd
- 服务端配置文件:/etc/ssh/sshd_config
1.2 OpenSSH服务器1-2
■ 服务监听选项
- 端口号、协议版本、监听ip地址
- 禁用反向解析
[root@localhost ~]# vi /etc/ssh/sshd_ config
......
Port 22
ListenAddress 172.16.16.22 //监听端口要填管理平面IP地址;(类型分为管理平面,数据平面)
Protocol 2
UseDNS no
1.3 OpenSSH服务器1-3
■ 用户登录控制
- 禁用root用户、空密码用户
- 限制登录验证时间、重试次数
- AllowUsers、DenyUsers
[root@localhost ~]# vi /etc/ssh/sshd_ config
LoginGrace Time 2m
PermitRootL ogin no
MaxAuthTries 6
PermitEmptyPasswords no //AllowUsers不要与DenyUsers同时用
.......
AllowUsers jerry admin@61 .23.24.25
1.4 OpenSSH服务器1-4
■ 登录验证方式
- 密码验证:核对用户名、密码是否匹配
- 密钥读验证:核对客户的私钥、服务端公钥是否匹配
[root@localhost ~]# vi /etc/ssh/sshd_ config
......
PasswordAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_ keys
启用密码验证、密钥对验证、指定公钥库位置
1.5 使用SSH客户端程序 -1
■ ssh命令----远程安全登录
ssh user@host
■ ssh命令----远程安全复制
格式1:scp user@host:file file2
格式2:scp file1 user@host:file2
■ ssh命令----安全FTP上下载
sftp user@host
1.6 构建密钥对验证的SSH体系 -1
1.7 构建密钥对验证的SSH体系 -2
■ 在客户机中创建密钥对
- ssh-keygen命令
- 可用的加密算法:RSA、ECDSA或DSA
[zhangsan@localhost ~]$ ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/zhangsan/ .ssh/id_ ecdsa):
Created directory '/home/zhangsan/ .ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again: //设置密钥短语
Your identification has been saved in /home/zhangsan/.ssh/id_ ecdsa. //私钥文件位置
1.8 构建密钥对验证的SSH体系 -3
■ 将公钥文件上传至服务器
- 任何方式均可(FTP、Email、SCP、HTTP…)
[zhangsan@localhos~]$ scp ~/.ssh/id+ecdsa.pub root@172.16.16.22:/tmp
1.9 构建密钥对验证的SSH体系 -4
■ 在服务器中导入公钥文本
- 将公钥文本添加至目标用户的公钥库
- 默认公钥库位置:~/.ssh/authorized_keys
[root@localhost ~]# mkdir /home/lisi/.ssh/
[root@localhost ~]# cat /tmp/id_ _ecdsa.pub >> /home/lisi/.ssh/authorized_ _keys
[root@localhost ~]# tail -1 /home/lisi/.ssh/authorized_ keys
ecdsa-sha2-nistp256
AAAAE2VjZHNhLXNoY TItbmlzdHAyNT YAAAAIbmlzdHAyNTYAAABBBLJSnBhscY
BfnnHxSYAJEBD4sNkTLMF7itcFGM33RdeXU89QNQkMnCrCJHzAIZURrzpXG6M
p62mz9gRXUnARk8s=zhangsan@localhost
1.10 构建密钥对验证的SSH体系 -5
■ 客户端使用密钥对验证登录
- 验证用户:服务端的用户lisi
- 验证密码“客户端的用户zhangsan的私钥短语
[zhangsan@localhost ~]$ ssh lisi@172.16.16.22
[lisi@localhost ~]$ whoami
lisi
1.11 构建密钥对验证的SSH体系 -6
■ 第2步和第3步可以采用另外一种方法
ssh-copy-id -i 公钥文件 user@host
- 验证密码后,会将公钥自动添加到目标主机user宿主目录下的.ssh/authorized_keys文件结尾
[zhangsan@localhost ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub lisi@172.16.16.22
二、TCP Wrappers访问控制
2.1 TCP Wrappers概述-1
■ 保护原理
2.2 TCP Wrappers概述-2
■ 保护机制的实现方式
- 方式1:通过tcpd程序对其他服务程序进行包装
- 方式2:由其他服务程序调用libwrap.so.*链接库
■ 访问控制策略的配置文件
- /etc/hosts.allow
- /etc/hosts.deny
2.3 TCP Wrappers策略应用-1
■ 设置访问控制策略
- 策略格式:服务程序列表:客户端地址
- 服务程序列表
◆多个服务以逗号分隔,ALL表示所有服务列表 - 客户端地址列表
◆多个地址以逗号分隔,ALL表示所有地址
◆允许使用通配符?和*
◆网段地址,如192.168.4.或者192.168.4.0/255.255.255.0
◆区域地址,如.benet.com
2.4 TCP Wrappers策略应用-2
■ 策略的应用顺序
1、检查hosts. allow,找到匹配则允许访问
2、再检查hosts.deny,找到则拒绝访问
3、若两个文件中均无匹配策略, 则默认允许访问
2.5 TCP Wrappers策略应用-3
■ 策略应用示例
- 仅允许从以下地址访问sshd服务
◆主机61.63.65.67
◆网段192.168.2.0/24 - 禁止其他所有地址访问受保护的服务
[root@localhost ~]# vi /etc/hosts.allow
sshd:61.63.65.67,192.168.2.*
[root@localhost ~]# vi /etc/hosts.deny
sshd:ALL
三、实验集合
3.1 用户登录控制实验
1、进入vi编辑
2、设置配置
3、重启一下
4、用root登录看一下能不能登录
登不进去
5、一分钟不登录就掉线
6、进入vi编辑
只允许ip地址20.0.0.1登录root账户、zk用户、zk1账户(20.0.0.1是我做实验的真机ip地址,也就是跳板机ip地址)
7、进入vi编辑
3.2 登录验证方式实验
(密码验证 和 密钥对验证,我们只做密钥验证)
1、进入vi编辑
2、密钥对验证配置
3、刷新一下
3.3 ssh 远程登录实验
1、登录20.0.0.12服务器,然后用ssh远程登录20.0.0.4的root账户
3.4 ssh scp远程复制实验
** 将本端文件拷到对端(20.0.0.4是服务器端、20.0.0.12是客户端)**
1、创建一个文件
2、复制到指定的地方
3、进到20.0.0.12里面进入、opt目录看一下是否有这个文件
** 将对端文件拷到本端(20.0.0.4是服务器端、20.0.0.12是客户端) **
1、在服务器端/opt目录下创建一个2.txt文件
2、在客户端复制服务器端/opt目录下的2.txt文件到自己的/opt文件里
3、可以查看一下
3.5 用sftp命令安全远程ftp实验
1、用sftp登录到20.0.0.12
2、用put命令上传一个1.txt文件
3、用get命令下载一个3.txt文件
3.6 构建密钥对验证的SSH体系实验
1、通过ssh-keygen工具为当前用户创建密钥文件,-t 选项是用于指定算法类型,并生成基于rsa算法的SSH密钥对(公钥、密钥)文件
然后回车、回车、回车
2、我们可以查看一下这个公钥创建了没有
3、将公钥文件上传至服务器
4、去服务器看一下公钥上传过来了没
5、ssh直接登录到20.0.0.12,登录不需要密码直接登录
3.7 TCP Wrappers访问策略实验
1、进入hosts.allow vi编辑
2、添加允许策略,允许20.0.0.0网段ip访问
3、进入hosts.deny vi编辑
4、拒绝所有
5、进入hosts.allow vi编辑
我们把ip随便改一下,这样本机就会进不去(本机ip是20.0.0.4)
6、然后20.0.0.4就不能登录
7、想在登陆就得把ip改回来或者去把hosts.deny里面的ALL去掉,这样也可以登录。
vi编辑
注释掉或删掉
8、就可以正常登录了