Linux中SSH远程管理和TCP Wrappers访问控制

SSH协议:

  • 为客户机提供安全的shell环境,用于远程管理

  • 默认端口:TCP22

SSH服务配置文件:

  • 服务名称:sshd

  • 服务端主程序:/usr/sbin/sshd

  • 服务端配置文件:/etc/ssh/sshd_config

  • 客户端配置文件:/etc/ssh/ssh_config

服务监听选项:

  • 端口号,协议版本,监听IP地址

  • 禁用反向解析

微信截图_20190909002007.png

用户登录控制:

  • 禁止root用户,空密码用户

  • 登录时间,重试次数

  • AllowUsers,DenyUsers

微信截图_20190909024252.png

案例1:打开两台Linux服务器,用ssh登录,禁止root登录,禁止跳板登录root

test01(192.168.109.133)test02(192.168.109.132)

1,在test02上用ssh登录test02

微信截图_20190909002007.png

2,禁止root登录

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

微信截图_20190909024252.png

微信截图_20190909024252.png

3,禁止利用跳板登录root

实际上我们可以用登录到其他用户中在登录root

微信截图_20190909024252.png

这时我们要开启pam认证模块

[root@test01 ~]# vim /etc/pam.d/su

微信截图_20190909024252.png

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

微信截图_20190909002007.png

微信截图_20190909024252.png

案列2:开启登录次数设置(默认是三次直接退出,我们要使用一条命令来实现最大次数的登录)

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

微信截图_20190909002007.png

微信截图_20190909024252.png

此时我们要输入一条命令即可

[root@test02 ~]# ssh -o NumberOfPasswordPrompts=8 [email protected]

微信截图_20190909024252.png

案列3:设置白名单

微信截图_20190909002007.png

微信截图_20190909024252.png

构建秘钥对验证的SSH体系

整体实现过程:

微信截图_20190909024252.png

1,开启秘钥验证,重启ssh服务

[root@test01 ~]# vim /etc/ssh/sshd_config 
[root@test01 ~]# systemctl restart sshd

微信截图_20190909002007.png

2,在test01中创建秘钥对

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

微信截图_20190909002007.png

3,上传公钥文件,导入公钥信息给test01中的test1用户

[root@test02 .ssh]# ssh-copy-id -i id_ecdsa.pub [email protected]

微信截图_20190909024252.png

4,查看test1用户有没有收到公钥文件,并进行验证秘钥对登录

[root@test01 ~]# cd /home/test1/.ssh
[root@test01 .ssh]# ls

微信截图_20190909002007.png

微信截图_20190909024252.png

5,使用秘钥验证免交互

[root@test02 .ssh]# ssh-agent bash
[root@test02 .ssh]# ssh-add

微信截图_20190909024252.png

TCP Wrappers概述

访问控制策略的配置文件

  • /etc/hosts.allow

  • /etc/hosts.deny

设置访问控制策略

  • 策略格式:服务列表:客户机地址列表

策略的应用顺序

  • 先检查hosts.allow,找到匹配则允许访问

  • 否则再检查hosts.deny,找到则拒绝访问

  • 若两个文件中均无匹配策略,则默认允许访问

[root@test01 ~]# vim /etc/hosts.allow 白名单
[root@test01 ~]# vim /etc/hosts.deny  黑名单

微信截图_20190909002007.png

微信截图_20190909024252.png

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



谢谢阅读!!!

猜你喜欢

转载自blog.51cto.com/14080162/2436648