千家信息网

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

发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,SSH协议:为客户机提供安全的shell环境,用于远程管理默认端口:TCP22SSH服务配置文件:服务名称:sshd服务端主程序:/usr/sbin/sshd服务端配置文件:/etc/ssh/sshd
千家信息网最后更新 2024年11月25日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白名单,若两个名单中都没有则默认可以登录



谢谢阅读!!!

0