How to set FreeIPA HBAC rules so only the right people log in to each host
To keep only the right people logged in to each host, replace the default allow_all HBAC rule with scoped rules that name a user group, a host group and a service, then add sudo rules that name the commands each group may run. In FreeIPA, HBAC rules decide who may authenticate to which hosts through which services, such as sshd or sudo, while sudo rules are stored centrally and delivered to clients through SSSD. The hard part is not creating the rules. It is changing the access model on a live domain without removing the access your administrators depend on. Several things make this harder than it looks. HBAC rules are not evaluated in isolation: a user can match more than one rule, and a rule that is disabled, too broad or too narrow changes the outcome for everyone in its groups. Groups nest, so a user who appears to be outside a rule may still inherit membership through a parent group, and a host can belong to several host groups with different intended roles. Many hosts also serve different purposes, such as a bastion, a database server and a build agent, and one rule that fits the bastion will often be too permissive or too restrictive for the others. Existing sudoers files on those hosts add another layer, because local rules and centrally managed sudo rules can both apply, and you need to know which ones are doing the work before you remove anything. The main risk is lockout. A mistake in an HBAC rule can block SSH or sudo on a production host, and the people who would fix it may be the ones blocked. Before you disable allow_all, create a narrow rule for your administrator group on a test host, log in as a member of that group through the service you intend to use, and run sudo to confirm the sudo path works. Keep an existing session open on each host while you change its rules, and keep a local recovery path that does not depend on the rule you are testing. If your users, groups or sudo rules currently live in another directory, note that FreeIPA's migration documentation states that sudo and HBAC rules need manual migration, typically through LDIF, while users and groups can be moved with ipa migrate-ds. Plan that work as a separate step with its own test pass. The sibling topic on FreeIPA migration covers those moves, so this section assumes the rules already exist in your FreeIPA domain or are written from scratch. Before you start, confirm three things in your own environment: which host groups map to real roles, which administrators must keep access during the change, and whether any hosts still rely on local sudoers entries. Confirm the exact behavior of the rule evaluation and sudo options on your FreeIPA version with the release notes and your own test domain, not from memory, because rule behavior is the easiest thing to misjudge under time pressure.
Which FreeIPA objects make up HBAC and sudo policy
HBAC and sudo policy in FreeIPA is built from a small set of linked objects: the people and machines you grant access to, the services they reach, and the rules that join them. Each object points to the others, so a change to one group or host can widen or narrow access on many systems at once.
Users and user groups
Users and user groups are the subjects of HBAC rules and sudo rules. A rule grants access to users directly or to every member of a group, so group membership is usually the lever you change most often. Check which user groups your rules reference before you remove someone from a group, because that removal takes effect for every rule that uses it.
Hosts and host groups
Hosts are the Linux machines enrolled in the IPA domain, and host groups collect them into sets such as a production web tier or a jump server pool. HBAC rules and sudo rules name host groups as their target. Confirm how your release lists hosts that enrolled but have no group, since those machines fall outside any rule that depends on a group.
HBAC services
HBAC services name the entry points a user can open on a host, such as sshd, sudo and login services. An HBAC rule can only allow or deny access to services it lists, so an unlisted service is not covered by that rule. Confirm the service names and any defaults shipped in your version before you write rules against them.
HBAC rules
An HBAC rule ties users or user groups to hosts or host groups and to one or more HBAC services. It is the object that actually permits or blocks a login. Review each rule for the full set of linked users, hosts and services, since a rule that is broader than intended can grant access to a host you did not mean to include.
Sudo rules, commands and command groups
A sudo rule links users or groups to hosts or host groups and to sudo commands or command groups, and it defines whether a password is required and which run-as account applies. Sudo commands are the individual binaries, and command groups bundle them for reuse. Confirm your release's sudo rule options and default behavior before you rely on them, and test each rule on a non-production host.
The ipa command and web UI
The ipa command line and the web UI both create and edit these objects through the same IPA API, so a change made in one appears in the other. Use the command line when you need to script or review changes in version control, and use the web UI for inspection. Confirm the exact subcommand names on your release with ipa help, because they can change between versions.
Which access model fits your hosts and teams
This table compares the main FreeIPA access model decisions, from keeping allow_all to scoping HBAC by role and sudo by command. Read each row for the option, when it fits and the ongoing operational cost you accept by choosing it. The main takeaway is that most cost comes from keeping host group membership and rule overlap under control after go-live.
| Decision | Option and when it fits | Operational cost |
|---|---|---|
| Default HBAC rule | Keep allow_all while adding scoped rules during a rollout, then disable it after testing shows the scoped rules cover real logins. Fits any migration with unclear login patterns. | Allow_all hides gaps, so someone must confirm logs show every legitimate login is matched before disabling it. Plan a test window per host group. |
| Host grouping | Group hosts by role, such as one host group per application or tier, so rules follow what the host does. Fits environments where ownership maps to applications. | Each new host needs correct group membership on day one. Stale membership silently grants or removes access, so review group contents on a fixed schedule. |
| Host grouping by location | Group hosts by datacenter or site when access policy follows physical or network boundaries. Fits regulated sites with separate administrative zones. | Location groups rarely match application ownership, so teams often need additional role groups. Expect overlapping memberships and more rules to review. |
| Rule ownership | One HBAC rule per team gives each owner a clear rule to review and change. Fits organizations with several independent teams sharing a small host estate. | Many similar rules drift apart over time and overlap in ways that are hard to audit. Someone must own the naming convention and periodic overlap review. |
| Shared rules with nested groups | Shared rules built on nested user and host groups reduce rule count and centralize review. Fits stable estates with a small number of access patterns. | Nested groups make effective access harder to trace. Document which group feeds which rule and test changes against a sample login set. |
| Sudo rule location | Manage sudo rules centrally in FreeIPA so they are applied through SSSD to enrolled hosts. Fits estates where consistent privilege policy is required across hosts. | Central rules need the same host group discipline as HBAC. Hosts that keep local sudoers files outside the central policy are a recurring audit finding, so plan to remove or justify them. |
| Local sudoers files | Leave sudo rules in local files on hosts when a host is outside the IdM domain or a legacy tool depends on them. Fits short transition periods or isolated systems. | Each host is a separate edit point, so changes cannot be reviewed centrally. Track which hosts keep local rules and set a date to move them. |
| Command scope in sudo | Use runAsUser settings and command groups to limit each rule to specific commands and target accounts. Fits teams that need delegated administration without full root. | Command groups must be maintained as software paths and tools change. Each new binary or path may need a rule update, so schedule review with application changes. |
| Broad ALL grants | Grant ALL commands for administrators who need full root on a defined set of hosts. Fits a small, named administrator group with strong logging. | Broad grants are easy to write but hard to justify in an access review. Limit them to a short list of hosts and confirm who approves changes. |
| Service-account logins | Cover service accounts with HBAC rules when they log in interactively or through SSH. Handle them separately when they run only as non-interactive service processes. | Service accounts left outside HBAC may bypass the access model entirely, so confirm which accounts log in and document each exception. Ask your team to inventory them before rollout. |
How to build and roll out HBAC and sudo rules in order
This sequence moves a FreeIPA domain from the permissive allow_all default to explicit host-based access control and sudo rules without locking out administrators. Each step ends with a check or artifact you can keep as evidence, so the change can be reviewed, repeated on each host group and reversed if a test fails.
Inventory hosts, roles and enrollment
Export the list of Linux hosts in scope, with each host's role (for example web, database or bastion) and its owner. Confirm which hosts are enrolled in the IdM domain and which still rely on local accounts, using the host list in the ipa CLI or the web UI. Mark the critical hosts, and choose one non-critical group to serve as the first test group. The step is done when system owners have signed off on the inventory and every host in scope appears as enrolled or is flagged for enrollment.
Map users and groups to host groups
Decide which user groups should reach each host group and which should be denied. Map each job role to an IdM group, and each set of hosts to a host group, so rules refer to groups that stay readable when people change teams. Keep the mapping in version-controlled files that reviewers can read. The step is done when every allowed user can be traced to a group and a host group, and the mapping contains no empty groups or orphaned accounts.
Create host groups and HBAC services
Create the host groups from the mapping with the ipa CLI or the web UI, and add the enrolled hosts to each one. Define or confirm the HBAC services the rules will cover, such as the SSH and sudo services your distributions use. Confirm the exact subcommand names and service names on your FreeIPA version, because the standard service list can differ between releases. The step is done when the host group and service listings match the inventory and the mapping from the previous steps.
Build and test an HBAC rule
Create one HBAC rule that allows a single user group to reach a single non-critical host group, limited to the services that group needs. Then run the hbactest subcommand of the ipa CLI with a test user, the target host and the service. Confirm the exact arguments on your version before you run it. The step is done when the test reports access granted for a user in the allowed group and access denied for a user outside it, and both outputs are saved with the change ticket.
Add sudo rules and enable them in the test group
Create sudo command groups and sudo rules that list only the commands each role needs, using fixed paths where possible and avoiding wildcards that widen the scope. Attach the rules to the same test host group and set any sudo options your policy requires. On a test host, run sudo -l as an approved test account to check what it can run. The step is done when the output matches the approved command list and shows no additional commands.
Test allowed and denied logins
Log in as a test account from an allowed group, and then as an account from a denied group, using SSH and any other login path in scope. Record the result of each attempt with its timestamp. If a denied login succeeds or an allowed login fails, check the SSSD logs on the test host for the reason before changing anything. Repeat the sudo check for one command inside and one outside the approved list. The step is done when the allowed logins succeed, the denied logins are refused, and the evidence is attached to the change.
Back up the domain, then disable allow_all
Run ipa-backup on the first server before changing the allow_all default. Use a full backup for this change and copy the archive off the server to protected storage. The backup documentation warns that restoring an outdated backup into an active replica topology can break replication, so record the backup and plan any restore as a controlled recovery. Disable allow_all only after the tests in the previous steps pass. The step is done when the backup is recorded and a repeat allowed and denied test matches the earlier results.
Roll out group by group and clear SSSD caches
Enable the rules on one production host group at a time, starting with the least critical, and repeat the login and sudo checks on each group before moving to the next. On a sample of hosts in each group, clear the SSSD cache using the sssctl or sss_cache tool available on your release, then retest. Clearing the cache lets the change apply without waiting for cached entries to expire. The step is done when each sample matches the expected results and the rollout log lists every host group and its completion date.
How SSSD applies these rules on each Linux host
The HBAC and sudo decisions you define in FreeIPA are not made on the IdM servers at login time. They are made on each Linux host by SSSD, which fetches the relevant HBAC and sudo rules from the IdM servers, stores them in its local cache, and applies them through the PAM stack for logins and through the sudo integration for privilege escalation. This means the result of a login attempt depends on what the client currently holds, not only on what the directory contains. Plan your rollout around that fact, because the gap between a change in IdM and the moment a host enforces it is determined by the client.
Several practical consequences follow. A rule change made on an IdM server may not reach a given client until that client's cache refreshes, so a newly denied user may still log in for some time, and a newly granted user may be refused until the refresh happens. Test this on a representative host rather than assuming the change is live everywhere when the command completes. Also note which services each HBAC rule covers, such as sshd, login or sudo-related services. A rule that names only one service does not govern the others, so a host can enforce different outcomes for the same user depending on how they connect.
A host that cannot reach any IdM server is a separate case. Whether it keeps serving decisions from cache, and for how long, depends on SSSD cache and offline settings on that client. Some configurations allow cached credentials and cached rules to continue working during an outage, which protects availability but can keep a revoked user's access alive until the cache expires or the host reconnects. Confirm the cache lifetime, offline behavior and refresh interval for the exact SSSD and FreeIPA versions you run, and do not rely on defaults from memory, since these values have changed across releases and differ between distributions.
Sudo follows the same pattern. Sudo rules are evaluated on the client against the sudo rules SSSD has fetched, so a sudo change is subject to the same refresh timing and the same offline behavior as HBAC. Check that the sudo integration on your target distributions reads from SSSD in the way your design assumes, and confirm which sudo rule attributes are supported by your sudo and SSSD versions before you depend on them. Mismatched versions across hosts are a common source of inconsistent privilege behavior.
For the rollout, record the refresh and offline settings used on each host class, then test three cases: a rule grant taking effect, a rule revocation taking effect, and a login from a host with IdM servers unreachable. Keep the results with your change records. Re-run these checks after SSSD or FreeIPA upgrades, because the timing and cache behavior are the most likely things to change without an obvious error.
What drives the effort and cost of an access policy project
This table lists the factors that change how much work a FreeIPA host-based access control and sudo project takes, what each factor adds, and how to keep it manageable. Use it to see which questions belong in a written scope before you compare quotes. The main takeaway is that inventory and testing usually outweigh the rule syntax itself, so ask how each driver is counted.
| Driver | How it raises effort | How to keep it down |
|---|---|---|
| Number of hosts and host roles | Each host role (web, database, jump, build, batch) needs its own inventory, HBAC service list and test login path. More roles mean more rules and more hosts to verify after each change. | Group hosts by role using host groups before writing rules. Ask the scope to state the host count and role list. |
| Number of users and nested groups | Deeply nested or overlapping groups make it hard to predict who gets access. Reviewers must trace membership chains during testing and every recurring access review. | Flatten groups where possible, document the purpose of each group, and set a naming convention agreed before go-live. |
| Legacy sudoers files and special cases | Existing sudoers files on hosts must be read, mapped to FreeIPA sudo rules and compared for drift. Service accounts, break-glass accounts and shared accounts often need separate handling and sign-off. | Ask for a count of sudoers files and an inventory of service and shared accounts. Retire unused entries before migration rather than copying them. |
| Number of datacenters and replicas that must agree | Rules replicate across the topology, so changes must be checked on every replica and SSSD clients must pick up the same policy. Replication delays or an outdated replica can cause inconsistent access. | Confirm replica count per site with the deployment recommendations in mind and ask how replication is verified after each change window. |
| Change control and approval requirements | Each rule change may need a ticket, a peer review, an approved window and a rollback plan. This adds coordination time for every batch of changes, not only the first rollout. | Batch related rule changes, agree standard change templates for routine updates, and name the approvers in the written scope. |
| Applications and integrations that depend on SSH or sudo | Deployment tools, monitoring agents, backup jobs and CI runners may log in or elevate privileges. Each dependency must be found and tested, or a rule change can stop a job silently. | Build a dependency list from SSH and sudo logs before writing rules, and ask the scope to include a test case for each automated account. |
| Evidence needed for auditors | Assessors typically ask who can access which hosts, how rules were tested and how changes were approved. Producing and keeping that evidence takes documentation and export work at each review. | Define the evidence set early, such as rule exports, test records and change tickets, and agree how often it is produced. DeployOpen prepares evidence; auditors and certification bodies issue any assessment outcome. |
How to test that HBAC and sudo rules allow and deny the right access
Testing an HBAC and sudo policy means proving, host by host, that the rules let the right people in and keep the wrong people out before any production user depends on them. Build a matrix with four combinations: an allowed user on an allowed host, an allowed user on a denied host, a denied user on an allowed host, and a denied user on a denied host. Run each combination separately for every HBAC service the rule names. In a FreeIPA deployment that usually means sshd for SSH, login for console access and sudo for privilege escalation, because an HBAC rule that lists only sshd does not govern console or sudo logins. Record the expected outcome beside each cell before you run it, so a surprising result is visible rather than explained away afterward.
Sudo tests need their own checks. Log in to a test host as the test user and run sudo -l to confirm the command list that SSSD delivers from the sudo rules in IdM. Compare that output with the rule definition, including command lists, run-as users and any options that change behavior. Then confirm that a command outside the list fails for that user. A test that only shows an allowed command works proves less than a test showing a denied command is refused. Run the checks against the client's actual SSSD cache state, since a stale cache can show a rule that the server has already changed or removed.
Checking that a denial is safe matters as much as checking that it happens. Use a dedicated test account for denied-user cases, and confirm it is denied without disturbing local administrator access on the host. The break-glass path, meaning the local or out-of-band access your team uses when IdM or SSSD is unavailable, must still work after every negative test. Verify this on a non-production host first. Then confirm that a rollback works: disable or revert the rule, let SSSD refresh, and check that the previously denied or allowed access returns to its prior state. Ask your team to write down who can perform the rollback and how long a change takes to reach clients, because that answer depends on your SSSD cache settings and should be confirmed in your own environment, not assumed.
Keep a dated record of every run. For each result, note the date, the tester, the rule name and version of the policy, the host name, the exact operating system and the FreeIPA and SSSD versions on that host, and the pass or fail outcome with the command output that supports it. Versions matter because the same rule can behave differently across client releases, and an audit or internal review will ask which configuration was in force on which date. Store the records with your change tickets so the link between a rule change and its test evidence is clear.
Re-run the full matrix after every platform upgrade, every change to HBAC or sudo rules, and every change to host groups or user groups that those rules reference. Upgrades of IdM servers and of SSSD on clients can change how rules are evaluated, so a policy that passed before an upgrade is not proof that it passes after one. Prioritize the denied-user and denied-host cases after upgrades, because a regression there widens access silently. If your team lacks the time or skills to run and document this matrix, ask a partner to include it in the written scope and to show the evidence format before work starts.
Security controls for HBAC and sudo rules
These controls cover the access policy itself: how recovery works, who can change HBAC and sudo rules, which broad grants exist, and what backups and outdated servers expose. They sit alongside general server hardening, which the FreeIPA security hardening topic covers in full. Review each item before rules reach production hosts.
Keep a break-glass login path
Keep at least one login path that does not depend on HBAC or sudo rules. A wrong deny rule can lock administrators out of every enrolled host at once, so test the recovery path before a policy change window opens. Document which account or procedure serves as break-glass access, who holds it, and where its credentials are stored. Confirm the path works from console or out-of-band access on a host that uses SSSD, and retest it after each change to host groups or deny rules.
Restrict and record rule edits
Limit who can create, change or delete HBAC and sudo rules, and record every edit. Give each administrator the narrowest role that fits their hosts, so a team that manages one environment does not hold global policy control. Remove standing rights that are no longer needed, and keep a ticket, an approver and a test result for each change. Export rule definitions to version control or a reviewed form so you can compare states, and confirm that emergency edits are reviewed afterward.
Limit broad sudo grants
Sudo rules that allow ALL commands or NOPASSWD turn one compromised account into root access without a second check. Require a written justification for each such grant, and scope it to named commands wherever the work allows. Because sudo rules can apply to host groups, an overly broad rule may reach more machines than its owner expects. Review existing rules for these patterns first, then check the effective result with sudo -l on a sample host after each change.
Review service accounts separately
Service accounts and other non-human identities often hold HBAC or sudo access that no person reviews. Inventory which of them can log in or run commands, why they need that access, and which hosts they reach. Review them on a schedule separate from staff access reviews, because owners and rotation practices differ. Remove accounts with no named owner, and record the owner in the rule description so the next review can find them.
Protect policy backups
An ipa-backup archive contains the directory, including HBAC and sudo policy and sensitive credential material, so it needs the same protection as the live servers. Store copies encrypted, restrict who can read or restore them, and limit access to the backup host. FreeIPA's backup documentation warns that restoring an outdated backup into an active replica topology can break replication, so restore only through a tested, approved procedure. Ask which backup type your design uses and who approves a restore.
Confirm current security fixes
Confirm that the FreeIPA release on every server and replica includes current security fixes. The 4.13.4 release notes, a stabilization release dated July 9, 2026, fixed two CVEs, including LDAP access control flaws that could let unauthenticated clients obtain credentials, and hardened authentication checks across the API. Treat such releases as policy-relevant, because authentication checks guard the same rules you manage. Record the version on each server and the date you last applied security fixes.
What to monitor, back up and review after rules go live
Once HBAC and sudo rules are live, the most useful early signal is denied activity. A rule that is too strict shows up first as a denied login or a refused sudo command, so monitoring should start on the day the first host group moves off allow_all. Collect denied logins and failed sudo attempts from every enrolled host into one place, and confirm where your distribution writes them. Authentication denials usually appear in the PAM or secure log, and sudo failures typically go to syslog or the journal, but your own hosts will show the exact locations. Agree with the security team which patterns trigger an alert, which ones go to the platform team as a tuning request, and how long each category of denial is kept.
Membership needs a scheduled review, and the schedule is an organizational decision that should be written down. Over time, HBAC rules and sudo rules drift through group changes: users are added to a group that is nested into a host group, service accounts are created for a new job, or an emergency access group is never removed. At each review, confirm that every HBAC and sudo rule still points to the intended user groups and host groups, that nested groups resolve to the people you expect, and that emergency access remains limited to the hosts it was approved for. Record what changed, who approved it, and what was removed, so the review leaves evidence behind as well as a clean policy.
Back up the domain before each batch of rule changes, using the backup tooling FreeIPA documents, ipa-backup. FreeIPA offers full backups and online data-only backups, so decide which one fits each change and test that the backup completes in your environment. The backup documentation also warns that restoring an outdated backup into an active replica topology can break replication. That warning changes how you plan restores. Before a restore is ever needed, document which server is the restore target, whether replicas must be stopped or removed from the topology first, who authorizes the restore, and how the team will confirm replication afterward. Rehearse that plan on a copy of the domain that is not serving production logins, because the first real restore is the wrong time to learn the sequence.
Re-test access policy after every FreeIPA upgrade and every operating system upgrade on an enrolled host. An OS update can change PAM or SSSD behavior, and a FreeIPA update can change how rules are evaluated or how clients receive them, so a rule that worked last quarter may not behave the same way now. Rerun the test matrix for each affected host group and confirm that expected logins succeed, expected denials still happen, and sudo commands resolve as intended. Release sequencing, replica order, and the broader upgrade process belong to the FreeIPA upgrades and support topic, so this section only covers whether the access policy still does what it was approved to do.
Keep four records current, because each one answers a question that someone will ask during an audit or an incident. The rule inventory lists every HBAC and sudo rule, its purpose, the groups it references, and the hosts it applies to. The test matrix results show which logins and commands were tested, against which hosts, and the outcome of each run. The change log records each rule change, the reason, the approver, and the backup taken before it. The owner for each host group names the person or team accountable for approving changes and answering questions about that group's access. If any of these records are missing, a routine review turns into a reconstruction exercise, so assign someone to maintain them as part of the change process.
What buyers and engineers ask before replacing allow_all
How much effort does a host-based access control rollout take?
Effort depends mainly on how many hosts exist, how clearly their roles are defined, and how many people and applications already log in to them. A rollout that starts from a clean inventory of host groups and a short list of access roles is far smaller than one that must first discover which accounts actually use each server. The main drivers are:
- Number of distinct host roles, such as web, database, jump host and build server
- Number of existing local accounts and shared service accounts that must be mapped to policy
- Whether sudo access is currently granted through local sudoers files on each host
- How many test cycles the owners of each role will accept before go-live
Ask any partner for a written scope that lists these inputs and the phases that follow from them.
Can our own team replace allow_all in FreeIPA without a partner?
Yes, a team that already runs FreeIPA and understands SSSD can do the work in-house, and many do. The question is whether the team has spare capacity for the parts that consume time: building the host inventory, getting role owners to agree on who may log in where, testing rules without locking out administrators, and rolling changes out in controlled windows. A partner is most useful when the team lacks FreeIPA operations experience or cannot dedicate people for the length of the rollout. Compare the two options by listing the internal roles needed, the people available for each, and the risk of a lockout on production hosts. DeployOpen plans, implements and documents these rollouts inside your own infrastructure under a written scope.
What does the rollout need from our side?
The work needs four inputs from your side before any rule is changed: a host inventory, named role owners, agreed change windows and a test account policy. Without them, rules are written on assumptions and tested against accounts nobody can confirm. Specifically, expect to provide:
- A list of hosts with their purpose, owner and current login method
- One accountable owner per host group who approves who may log in and which commands may run
- Change windows that match your operations calendar, including emergency rollback time
- A written test account policy that defines which test users exist, how they are created and when they are removed
Confirm these items with the partner before the scope is signed, because each one changes the schedule.
How long does it take to move from allow_all to tested HBAC and sudo rules?
Duration is set by the factors that drive effort, so no fixed figure applies to every environment. The main variables are the number of host groups, the number of role owners who must sign off, how many hosts can be changed per window, and how much testing each role needs before it is enforced. Organizations with stable role definitions and an accurate inventory move faster, while those that discover unknown accounts during testing usually add cycles. Ask for a timeline in the written scope that shows each phase, the owner of each approval and the dependencies between phases. Treat any duration quoted without those details as an estimate to challenge.
Can we change HBAC and sudo rules without downtime on the hosts?
Generally, yes, if rules are staged and tested before enforcement and changes are applied host group by host group. Access rules change which logins and sudo commands are permitted, so the risk is locking out legitimate users or automation rather than stopping the service itself. The approach that avoids interruption is to keep the existing access path open while the new rules are tested with dedicated test accounts, then remove the broad rule only after each role confirms its access. Confirm these points with the partner:
- Whether a fallback administrator path exists before allow_all is disabled
- How rules are rolled back if a host group fails testing
- Whether SSSD on each client picks up changes without a restart in your operating system versions
How do centrally managed sudo rules differ from local sudoers files?
A local sudoers file lives on each host and is edited there, so the same policy must be maintained separately on every machine. A FreeIPA sudo rule is stored in the central directory and applied to the hosts or host groups it targets through SSSD, so one change reaches every matching host. Engineers should weigh these differences:
- Central rules are easier to audit because the policy is in one place
- Local sudoers files still matter for hosts outside IdM and for emergency access, so decide what remains local
- Migrating existing sudoers entries into FreeIPA is a manual step, because the migration tools do not carry sudo rules automatically
Review each local file during inventory so no privilege is lost or duplicated during the move.
What happens to a host that cannot reach the IdM servers?
A host that cannot reach IdM cannot fetch new HBAC or sudo policy, and logins that depend on IdM-backed identities may fail. How the host behaves depends on how SSSD caches credentials and rules on that client and on which local accounts remain. Plan for this case before rollout, because outages between a client and its IdM servers are a common source of unexpected lockouts. Check these items in your environment:
- Whether SSSD offline caching is enabled and how long cached data remains valid
- Whether at least two DNS servers and multiple IdM replicas are reachable from each site
- Whether a local break-glass account exists and is covered by a documented procedure
The written scope should include how these cases are tested before enforcement.
Can DeployOpen take over access reviews and rule changes after go-live under a retainer?
DeployOpen offers ongoing support, upgrades and continuous testing as retainers, and access review and rule change work can be included in a retainer if it is written into the scope. Under a retainer, the partner would handle requested changes, periodic reviews and checks that rules still match the host inventory. Your team still approves access decisions, because role owners know who needs what. Define these points before signing:
- Who approves each rule change and how requests are submitted
- How often reviews happen and what evidence each review produces
- Response expectations for changes, stated as written commitments in the scope rather than assumed service levels
How DeployOpen scopes, builds and hands over HBAC and sudo policy
DeployOpen plans, builds and documents FreeIPA host-based access control and sudo rules inside your own servers and network, replacing a permissive allow_all rule with rules tied to named host groups and user groups. Each step is agreed in writing, tested against real login paths and handed to your team with the policy documented so it can be maintained after go-live.
How we scope
- The written scope lists the hosts, host groups, user groups and services each HBAC and sudo rule covers.
- We record which login services, such as SSH and console access, each rule applies to before any change is made.
- Engagements are fixed-scope, and ongoing support is available as a retainer once the policy is live.
How we build
- Rules are created in a staging FreeIPA domain first, then promoted once login tests pass for each host group.
- Sudo rules are defined with explicit command lists, run-as users and options, avoiding broad ALL grants where possible.
- Clients pick up changes through SSSD, and we verify the cached policy on sample hosts after each rollout step.
How we hand over
- You receive a rule inventory listing each HBAC and sudo rule, its owner, its purpose and the groups it references.
- The test matrix shows which accounts were allowed or denied on which hosts, so auditors and operators can repeat the checks.
- Your team gets a runbook covering how to add a host, change a rule and roll back a change safely.
How we support
- Support after go-live covers rule reviews when hosts, teams or roles change, and reruns of the login test matrix.
- We track FreeIPA stabilization releases and security fixes, such as those in 4.13.4, and advise on whether the policy needs adjusting.
- Retainers can include periodic access reviews, so stale group memberships and unused sudo grants are found and removed.

