SSH协议:
为客户机提供安全的shell环境,用于远程管理
默认端口:TCP22
SSH服务配置文件:
服务监听选项:

用户登录控制:
禁止root用户,空密码用户
登录时间,重试次数
AllowUsers,DenyUsers

案例1:打开两台Linux服务器,用ssh登录,禁止root登录,禁止跳板登录root
test01(192.168.109.133)test02(192.168.109.132)
1,在test02上用ssh登录test02

2,禁止root登录
[root@test01 ~]# vim /etc/ssh/sshd_config 更改配置文件
[root@test01 ~]# systemctl restart sshd 重启ssh服务


3,禁止利用跳板登录root
实际上我们可以用登录到其他用户中在登录root

这时我们要开启pam认证模块
[root@test01 ~]# vim /etc/pam.d/su

查看用户是否在wheel组中,用两个用户作为跳板切换root


案列2:开启登录次数设置(默认是三次直接退出,我们要使用一条命令来实现最大次数的登录)
[root@test01 ~]# vim /etc/ssh/sshd_config 更改配置文件
[root@test01 ~]# systemctl restart sshd 重启ssh服务


此时我们要输入一条命令即可
[root@test02 ~]# ssh -o NumberOfPasswordPrompts=8 zhangsan@192.168.109.133

案列3:设置白名单


构建秘钥对验证的SSH体系
整体实现过程:

1,开启秘钥验证,重启ssh服务
[root@test01 ~]# vim /etc/ssh/sshd_config
[root@test01 ~]# systemctl restart sshd

2,在test01中创建秘钥对
[root@test02 ~]# ssh-keygen -t ecdsa 创建ecdsa类型的秘钥对
[root@test02 ~]# cd .ssh 切换查看秘钥的文件位置
[root@test02 .ssh]# ls
id_ecdsa id_ecdsa.pub known_hosts

3,上传公钥文件,导入公钥信息给test01中的test1用户
[root@test02 .ssh]# ssh-copy-id -i id_ecdsa.pub test1@192.168.109.133

4,查看test1用户有没有收到公钥文件,并进行验证秘钥对登录
[root@test01 ~]# cd /home/test1/.ssh
[root@test01 .ssh]# ls


5,使用秘钥验证免交互
[root@test02 .ssh]# ssh-agent bash
[root@test02 .ssh]# ssh-add

TCP Wrappers概述
访问控制策略的配置文件
/etc/hosts.allow
/etc/hosts.deny
设置访问控制策略
策略的应用顺序
先检查hosts.allow,找到匹配则允许访问
否则再检查hosts.deny,找到则拒绝访问
若两个文件中均无匹配策略,则默认允许访问
[root@test01 ~]# vim /etc/hosts.allow 白名单
[root@test01 ~]# vim /etc/hosts.deny 黑名单


两个都设置同一个主机地址的话则先看allow白名单,若两个名单中都没有则默认可以登录
谢谢阅读!!!