草庐IT

Zabbix随笔:与AD联动登录篇

IT小白Kasar 2023-03-28 原文
Zabbix默认认证方式为本地内部认证,也就是在zabbix前端创建的用户。Zabbix默认有四种认证方式,分别是内部、http、LDAP、SAML(SSO单点登录认证)。其中http利用了web服务本身所提供的认证,就不细说了。

正文

本文环境

  • Zabbix 6.0 LTS RC2
  • Windows 2019
  • 域控版本 2016

AD 部分

安装部分

这里不做过多探讨,具体可以参考互联网相关资源

配置 OU 和用户

这步对于很多企业不太需要,环境具备这步请忽略

1、 Win + R 打开运行,输入 mmc,打开控制台,点击文件选项

2、找到添加/删除管理单元

3、选择 Active Diretory 用户和计算机,点击添加,最后确定即可

4、找到根域,如下图,右键点击根域,在弹出菜单选择新建 –> 组织单位

填写好名字,本文为zabbix

5、 点击刚刚创建的 OU,并在右边空白处右键或者右键 OU,在弹出菜单选择新建 –> 用户,在密码选项里,这里很多公司的安全要求是不允许出现密码永不过期的策略,所以具体情况具体分析,这里方便演示,选择用户不更改与密码永不过期。

填写用户信息

6、至此 AD 部分已经完成

Zabbix 部分

LDAP认证设置入口

路径为 管理 –> 认证 –> LDAP设置

先决条件

由于 Zabbix LDAP 认证方式并不是将账户同步到本地,而是在本地创建 AD 用户,然后认证时推送至 AD 进行鉴权,所以我们需要创建相关用户。

1、创建 LADP 认证组

入口路径为: 管理 –> 用户群组 –> 创建用户群组

2、创建前端访问为 LDAP 的用户组

3、在权限里,需要注意的是有两个添加,第一个添加是主机组赋权,第二个是添加用户组,一定要注意,如果需要针对某个主机群组赋权,需要先点击红框里的添加,而不是下面的添加。

效果图

最终效果图

4、完成用户群组创建后进入创建用户阶段

入口路径为:管理 –> 用户 –> 创建用户

5、填写用户信息需要注意的是,用户名称和 AD 里的要一一对应,选择刚才的用户群组,权限根据自身的需求调整(本文演示给的 Admin role)。

LDAP 配置设置

首先来看看该页面的参数介绍

  • LDAP 主机格式为 ldap://AD域控的ip或者AD域控的域名
  • 端口一般默认为389,根据自身环境调整
  • 基准 DN(这里翻译有问题),就是根域,一般格式是 DC=example,DC=com,根据自身环境实际调整
  • 搜索属性是固定的,AD 为 sAMAccountName
  • 绑定 DN 为该用户的路径,本文为 cn=zabbix,ou=zabbix,dc=kasarit,dc=cn
  • 绑定密码为 AD 用户的密码
  • 登录和用户密码一定也是本地存在的 AD 用户和对应的密码,而不是本地账户,这里千万要记住,否则会出现下面的报错。

登录用户名为zabbix,测试通过

前端登录测试

登录成功用户信息

相应的权限正常

通过Admin查看相应登录记录正常

低版本操作

由于 6.0 支持多种认证方式,相比之前一旦采用某一种认证,所有用户只能采用这种方式登录,一旦绑定 AD 用户的密码发生改变就导致无法登录,此时可以采用数据库修改方式。该信息是存放在 Zabbix 数据库的 config 表里,字段为 authentication_type ,0 代表本地认证,1 代表 LDAP 认证,2 代表 SAML 认证,修改为 0 即可恢复本地认证。我这里为 6.0 版本,支持多认证方式,所以就不演示了(PG环境也一样。)

mysql -uroot -p
use zabbix;
select authentication_type from config;
update config set authentication_type = 0 ;

写在最后

采用LDAP认证的唯一好处,就是不需要维护用户密码的信息,符合安全审计要求,但需要管理员充分规划账号,在本地创建,其实也并没有那么便捷,但是也有好处,针对 AD 架构环境比较混乱的企业,这种方式相对比较方便,可以过滤一些未授权的用户登录。认证篇还有两节,一节是针对 openldap,一节是针对 SAML(单点登录),敬请关注哦。

有关Zabbix随笔:与AD联动登录篇的更多相关文章

  1. ruby - 使用 Ruby 和 Mechanize 登录网站 - 2

    我需要从站点抓取数据,但它需要我先登录。我一直在使用hpricot成功地抓取其他网站,但我是使用mechanize的新手,我真的对如何使用它感到困惑。我看到这个例子经常被引用:require'rubygems'require'mechanize'a=Mechanize.newa.get('http://rubyforge.org/')do|page|#Clicktheloginlinklogin_page=a.click(page.link_with(:text=>/LogIn/))#Submittheloginformmy_page=login_page.form_with(:act

  2. ruby-on-rails - 使用用户或管理员模型和 Basecamp 样式子域设计登录 - 2

    我为Devise用户和管理员提供了不同的模型。我也在使用Basecamp风格的子域。除了我需要能够以用户或管理员身份进行身份验证的一些Controller和操作外,一切都运行良好。目前我有authenticate_user!在我的application_controller.rb中设置,对于那些只有管理员才能访问的Controller和操作,我使用skip_before_filter跳过它。不幸的是,我不能简单地指定每个Controller的身份验证要求,因为我仍然需要一些Controller和操作才能被用户或管理员访问。我尝试了一些方法都无济于事。看来,如果我移动authentica

  3. ruby - 如何使用 omniauth/oauth 对每秒登录数进行基准测试? ( ruby +rspec) - 2

    我想用一个(自己的)omniauth提供商来衡量每秒可以登录多少次。我需要了解此omniauth/oauth请求的性能如何,以及此身份验证是否具有可扩展性?到目前为止我得到了什么:defperformance_auth(user_count=10)bm=Benchmark.realtimedouser_count.timesdo|n|forkdoclick_on'Logout'omniauth_config_mock(:provider=>"foo",:uid=>n,:email=>"foo#{n}@example.net")visit"/account/auth/foo/"enden

  4. ruby - 如何使用 Ruby 和 eventmachine 登录? - 2

    我正在使用Ruby和Eventmachine库编写一个应用程序。我真的很喜欢非阻塞I/O和事件驱动系统的想法,我遇到的问题是日志记录。我正在使用Ruby的标准记录器库。并不是说日志记录需要永远,但它似乎不应该阻塞,但它确实阻塞了。是否有某个库将Ruby的标准记录器实现扩展为非阻塞的,或者我应该只调用EM::defer进行日志记录调用?有没有办法让eventmachine已经为我做这件事? 最佳答案 我最终将记录器包装在一个启动线程并具有FIFO队列的单例类中。日志记录会将日志信息转储到队列中,线程只是循环,从队列中拉出内容并使用真正

  5. ruby-on-rails - 尝试登录和使用 heroku 时无法识别 ruby​​.exe - 2

    当尝试创建一个heroku应用程序并通过git推送到它时,我收到以下错误:$herokucreate'"C:\ProgramFiles\ruby-1.9.2\bin\ruby.exe"isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile.但是,$ruby-vruby1.9.3p125[i386-mingw32]我已经检查了PATH环境,它肯定包含“C:\ProgramFiles(x86)\ruby-1.9.2\bin”。同样有趣的是,当导航到该目录时,它实际上并不包含名为ruby​​.exe的文件

  6. ruby-on-rails - 使用 Ruby on Rails 设计 - 强制用户在首次登录时更改密码 - 2

    我有一个运行Devise的RoR应用程序(Rails4.2、Ruby2.2.0)。我已对其进行设置,以便管理员用户(标识我添加到用户模型的“is_admin”bool值)能够创建新的用户帐户,为他们提供生成的密码和确认电子邮件。这一切都正常工作。我还添加了datetime列pass_changed,当用户更改密码时应该更新它,然后检查created_at以确保自帐户创建以来密码已更改。如果两个日期相同,则用户将被重定向到密码更改表单。我编写了一个程序来检查用户是否更改了密码并将其放在我的application_controller.rb中:defcheck_changed_pass@u

  7. ruby-on-rails - 如何使 ActiveRecord::Schema.define 不登录到标准输出? - 2

    我在文档中看不到这个,但我认为这是一个已解决的问题。我在Rails之外使用ActiveRecord,我的脚本加载了从另一个应用程序转储的schema.rb。我想加载此模式而不将迁移输出转储到标准输出,但替换ActiveRecord::Base.logger不会关闭它。我应该覆盖什么来阻止噪音? 最佳答案 技巧显然在ActiveRecord::Migration中:ActiveRecord::Migration.verbose=false这使得迁移不会将信息输出到$stdout。有一个名为.suppress_messages的便捷包装

  8. Win10 / 11新电脑最简单跳过联网激活和使用本地账户登录方法 - 2

    跳过联网激活:OOBE界面直接按Ctrl+Shift+F3进入审核模式。这样就可以直接进入系统进行一些硬件测试等,而不用联网激活导致新机无法退货。需要注意的是,在审核模式下进行的一些操作都会保留,并不会在退出后自动还原!安装的软件在正常开机进系统后还会看见!如果电脑确实没连互联网又不想强行跳过OOBE(网上很多教程会叫你直接结束OOBE进程,但这是不推荐的,因为一些厂商自带优化程序和系统初始化设置在后面都会应用,对于笔记本跳过的话你会发现驱动和内置应用都没有装上。其实这部分脚本就在系统盘的Recovery隐藏文件夹下),可以参考以下方式:https://www.landiannews.com/

  9. Centos7-yum安装mysql-修改密码-无密码登录-安全配置 - 2

    目录1、yum安装mysql修改密码(1)在mysql里面修改(2)第二种方式,利用mysqladmin修改密码2、没有密码,登录mysql修改密码3、mysql的安全设置1、yum安装mysql在CentOS中默认安装有MariaDB(MySQL的一个分支),安装完成之后可以直接覆盖MariaDB。rpm-qa|grepmariadb查询是否安装了mariadbrpm-e--nodepsmariadb-libs-5.5.60-1.el7_5.x86_64卸载mariadwgethttp://dev.mysql.com/get/mysql57-community-release-el7-11.

  10. ruby-on-rails - "Given that I' m登录的 cucumber 步骤定义" - 2

    我有一个cucumber步骤:鉴于我已登录我不明白我应该如何将它作为一个步骤定义来实现。谁能指出我正确的方向、教程、博客等。 最佳答案 这是我的做法。Given/^Ihaveone\s+user"([^\"]*)"withemail"([^\"]*)"andpassword"([^\"]*)"$/do|username,email,password|@user=User.new(:email=>email,:username=>username,:password=>password,:password_confirmation=>

随机推荐