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

SSH协议:

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

  • 默认端口:TCP22

SSH服务配置文件:

  • 服务名称:sshd

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

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

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

服务监听选项:

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

  • 禁用反向解析

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

用户登录控制:

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

  • 登录时间,重试次数

  • AllowUsers,DenyUsers

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

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

test01(192.168.109.133)test02(192.168.109.132)

1,在test02上用ssh登录test02

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

2,禁止root登录

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

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

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

3,禁止利用跳板登录root

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

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

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

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

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

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

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

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

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

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

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

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

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

[root@test02 ~]# ssh -o NumberOfPasswordPrompts=8 zhangsan@192.168.109.133

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

案列3:设置白名单

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

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

构建秘钥对验证的SSH体系

整体实现过程:

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

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

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

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

2,在test01中创建秘钥对

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

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

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

[root@test02 .ssh]# ssh-copy-id -i id_ecdsa.pub test1@192.168.109.133

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

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

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

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

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

5,使用秘钥验证免交互

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

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

TCP Wrappers概述

访问控制策略的配置文件

  • /etc/hosts.allow

  • /etc/hosts.deny

设置访问控制策略

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

策略的应用顺序

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

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

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

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

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

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

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



谢谢阅读!!!

    原文作者:一拳超人007
    原文地址: https://blog.51cto.com/14080162/2436648
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞