Linux中SSH远程管理和TCP Wrappers访问控制
SSH协议:
为客户机提供安全的shell环境,用于远程管理
默认端口:TCP22
SSH服务配置文件:
服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh_config
服务监听选项:
端口号,协议版本,监听IP地址
禁用反向解析
用户登录控制:
禁止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]# lsid_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白名单,若两个名单中都没有则默认可以登录
谢谢阅读!!!