From 8cbad6d5bd99023ee1cac93d7e150641885fcd5c Mon Sep 17 00:00:00 2001 From: Aziz <13510720+WaaromZoMoeilijk@users.noreply.github.com> Date: Thu, 14 Mar 2024 09:36:12 +0100 Subject: [PATCH] example_configs: Add MegaRAC-SP-X-BMC --- README.md | 1 + example_configs/MegaRAC-SP-X-BMC.md | 48 +++++++++++++++++++++++ example_configs/images/megarac_group.png | Bin 0 -> 8847 bytes example_configs/images/megarac_user.png | Bin 0 -> 15461 bytes 4 files changed, 49 insertions(+) create mode 100644 example_configs/MegaRAC-SP-X-BMC.md create mode 100644 example_configs/images/megarac_group.png create mode 100644 example_configs/images/megarac_user.png diff --git a/README.md b/README.md index 54a761a..814aded 100644 --- a/README.md +++ b/README.md @@ -379,6 +379,7 @@ folder for help with: - [Mastodon](example_configs/mastodon.env.example) - [Matrix](example_configs/matrix_synapse.yml) - [Mealie](example_configs/mealie.md) +- [MegaRAC-BMC](example_configs/MegaRAC-SP-X-BMC.md) - [MinIO](example_configs/minio.md) - [Nextcloud](example_configs/nextcloud.md) - [Nexus](example_configs/nexus.md) diff --git a/example_configs/MegaRAC-SP-X-BMC.md b/example_configs/MegaRAC-SP-X-BMC.md new file mode 100644 index 0000000..543c827 --- /dev/null +++ b/example_configs/MegaRAC-SP-X-BMC.md @@ -0,0 +1,48 @@ +# MegaRAC SP-X BMC IPMI LDAP Setup + +The MegaRAC SP-X BMC is a service processor firmware stack designed by American Megatrends Inc. (AMI), aimed at providing out-of-band management for servers and computing systems. +It's part of the MegaRAC family of management solutions, offering remote server management capabilities, including monitoring, control, and maintenance functionalities, independent of the operating system or system state. +This enables administrators to manage systems remotely for tasks such as updates, troubleshooting, and recovery. + +## Setting up LLDAP with MegaRAC SP-X BMC IPMI + +### Pre-requisites +- Create and assign the `ipmi` group in LLDAP to a (test) user. +- Bind User: It is recommended that you create a separate user account (e.g, `bind_user`) instead of admin for sharing Bind credentials with other services. The bind_user should be a member of the lldap_strict_readonly group to limit access to your LDAP configuration in LLDAP. +- Bind Password: password of the user specified above + +### Configuration Steps + +1. **Navigate**: Go to `Settings > External User Settings > LDAP/E-Directory Settings > General Settings`. + +2. **General LDAP Settings**: + - **Encryption Type**: `SSL` (or No Encryption if preferred) + - **Common Name Type**: `FQDN` (or IP if you use a plain IP address to connect to lldap) + - **Server Address**: `fqdn.lldap.tld` + - **Port**: `6360` (default for SSL, adjust if necessary to default non ssl `3890`) + +3. **Authentication** (use read-only bind user): + - **Bind DN**: `uid=bind_user,ou=people,dc=example,dc=com` + - **Password**: `change_bind_user_password` + +4. **Search Configuration**: + - **Search Base**: `ou=people,dc=example,dc=com` + - **Attribute of User Login**: `uid` + +![General LDAP Settings](images/megarac_user.png) + +5. **Navigate**: Go to `Settings > External User Settings > LDAP/E-Directory Settings > Role groups`. + +6. **Click on empty role group in order to assign a new one** + +7. **Role Group - Group Details**: + - **Group Name**: `ipmi` + - **Group Domain**: `cn=ipmi,ou=groups,dc=example,dc=com` + - **Group Privilege**: `Administrator` + +8. **Group Permissions**: + - KVM Access: Enabled (adjust as needed) + - VMedia Access: Enabled (adjust as needed) + +![Role Groups](images/megarac_group.png) + diff --git a/example_configs/images/megarac_group.png b/example_configs/images/megarac_group.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd121cf03f6f98854ec0e6d3447721333bc3ba9 GIT binary patch literal 8847 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 literal 0 HcmV?d00001 diff --git a/example_configs/images/megarac_user.png b/example_configs/images/megarac_user.png new file mode 100644 index 0000000000000000000000000000000000000000..6055c0f6e1ec7da22b522a75d757b5ebef4dec3a GIT binary patch literal 15461 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 literal 0 HcmV?d00001