Network Device Authentication
A lot of people outside of the network space are quite surprised to find out that network devices don't always support LDAP. There are convenient reasons for this.
Doing Authentication
Most devices will support RADIUS with varied levels of "support". For others, they will support TACACS+ as well as RADIUS. Finally, a subset of devices will support LDAP.
RADIUS
You have to map in the dictionary for the appropriate attributes. Example, Juniper, Cisco, etc have their own special attributes. FreeRadius keeps a good list, but it may require occasional additions for other vendors
TACACS+
Is a pile of shit, but a convenient pile of shit for cisco environments. Most people use shrubbery.net's tac_plus or Cisco ACS. ACS is well known for being horrible at the worst times. Also, building your own TACACS+ box means it will last until the apocalypse unlike ACS.
Why not just LDAP everywhere?
Three easy reasons:
- LDAP is usually maintained by someone else (often the Windows admins)
- LDAP cannot express per command authorization
- LDAP cannot do proper accounting
On #1, consider group membership. It is mostly easier to maintain a separate mapping of group membership in network space versus in AD space. This means network admins don't have to talk to systems admins to get people onboarded. With backend LDAP auth, they get the benefit of whatever LDAP can be used for (maybe revoking access).
On #2, this is pretty basic. I want to let the NOC guys do show commands. Admins can do whatever they need to. Okay, so how does someone go about sorting this? LDAP won't do it unless something like group membership sorts it out on the device. This is a pain in the ass.
On #3, I can look at exact commands run with TACACS+. Why wouldn't I want this? Sometimes it helps to know who did type "reload".
Doing authentication for automation
An optimal setup will allow for ephemeral passwords tied to specific users. Example, consider a scripting engine running a script for user "bob". What I want is that a backend will allocate a temporary username and password mirroring bob's privileges, but only for the hosts to be run on. Then, the script engine will possess a time and space limited credential tied to bob's actions for accounting. It will also note that the script engine received this limited credential for additional traceability.
Comments
Post a Comment