Runbook: Brother Printer EAP-TTLS Authentication
- Last Updated
-
2026-02-14
- Owner
-
evanusmodestus
- Frequency
-
As Needed
Purpose
Configure Brother network printer for 802.1X wired authentication using EAP-TTLS with FreeIPA LDAP as external identity source. All configuration performed via netapi CLI (no GUI).
Architecture
| Component | Configuration |
|---|---|
Authentication Method |
EAP-TTLS with MSCHAPv2 inner method |
Identity Source |
FreeIPA LDAP (External Identity Store) |
Printer MAC |
90:32:4B:B8:FC:FE |
Endpoint Group |
DOMUS_Printers (static assignment) |
Profile |
Brother-Device (auto-profiled) |
Policy Set |
DOMUS_Printers (dedicated policy set) |
Authorization |
Printer-specific DACL + VLAN assignment |
Prerequisites
-
ISE 3.x deployment operational
-
netapi CLI configured with ISE credentials
-
gopass configured for credential storage
-
Switch port configured for 802.1X
-
Printer network accessible for web config
-
FreeIPA deployed and joined to ISE as external LDAP identity source
Procedure
Step 1: Store Printer Credentials in gopass
# Generate secure password
gopass generate v2/DOMUS/printers/brother-mfc-01 24
# Add metadata via heredoc
gopass edit v2/DOMUS/printers/brother-mfc-01 << 'EOF'
device: Brother MFC-L2750DW
mac: 90:32:4B:B8:FC:FE
auth: EAP-TTLS/MSCHAPv2
location: Home Office
created: 2026-02-14
EOF
# Verify
gopass show v2/DOMUS/printers/brother-mfc-01
Step 2: Create Printer Endpoint Group and Register Endpoint
# Check if endpoint group exists first
if netapi ise get-endpoint-groups --size 100 2>/dev/null | grep -q "DOMUS_Printers"; then
echo "SKIP: DOMUS_Printers already exists"
else
netapi ise create-endpoint-group "DOMUS_Printers" \
--description "DOMUS network printers - EAP-TTLS authentication"
fi
# Assign printer to endpoint group with STATIC assignment
# This prevents ISE Profiling from overriding the group
netapi ise update-endpoint-group "90:32:4B:B8:FC:FE" "DOMUS_Printers" --static
Step 3: Create FreeIPA Service Account
This step is performed on the FreeIPA server. See FreeIPA Identity Management roadmap for detailed LDAP integration.
# On FreeIPA server - create service account for printer auth
ipa user-add svc-printer-01 \
--first="Brother" \
--last="Printer" \
--email="printers@inside.domusdigitalis.dev" \
--password
# Set password from gopass
echo "$(gopass show -o v2/DOMUS/printers/brother-mfc-01)" | ipa user-mod svc-printer-01 --password
Step 4: Create Printer DACL
netapi ise create-dacl \
--name "DACL_CORP_PRINTERS" \
--description "Corp Printers - Print protocols + management" \
--rules "
remark ### PRINTER PROTOCOLS ###
permit tcp any any eq 9100
permit tcp any any eq 515
permit tcp any any eq 631
remark ### MANAGEMENT ###
permit tcp any any eq 80
permit tcp any any eq 443
permit udp any any eq 161
remark ### DISCOVERY ###
permit udp any any eq 5353
permit udp any any eq 1900
remark ### INFRASTRUCTURE ###
permit udp any host 10.50.1.90 eq 53
permit udp any host 10.50.1.1 eq 123
permit icmp any any
remark ### DENY ALL ###
deny ip any any log
"
Step 5: Create Authorization Profile
netapi ise create-authz-profile \
--name "AuthZ_DOMUS_Printers" \
--description "Corp Printers authorization - VLAN + DACL" \
--vlan 10 \
--dacl "DACL_CORP_PRINTERS"
Step 6: Create Printer Policy Set
# Create dedicated policy set for printers
netapi ise create-policy-set \
--name "DOMUS_Printers" \
--description "Corporate Printer 802.1X Policy" \
--condition "EndPoints:EndPointGroup EQUALS DOMUS_Printers" \
--allowed-protocols "Default Network Access"
Step 7: Add Authentication Rule
netapi ise add-auth-rule \
--policy-set "DOMUS_Printers" \
--name "Printers_EAP_TTLS" \
--condition "Network Access:EapAuthentication EQUALS EAP-TTLS" \
--identity-source "FreeIPA_LDAP" \
--rank 1
Step 8: Add Authorization Rule
netapi ise add-authz-rule \
--policy-set "DOMUS_Printers" \
--name "Corp_Printer_Access" \
--condition "EndPoints:EndPointGroup EQUALS DOMUS_Printers" \
--profile "AuthZ_DOMUS_Printers" \
--rank 1
Step 9: Add Default Deny Rule
netapi ise add-authz-rule \
--policy-set "DOMUS_Printers" \
--name "Default_Deny" \
--condition "Network Access:AuthenticationStatus EQUALS Success" \
--profile "DenyAccess" \
--rank 99
Step 10: Verify Policy Configuration
# Verify policy set created
netapi ise get-policy-set --name "DOMUS_Printers"
# Verify auth rules
netapi ise get-auth-rules --policy-set "DOMUS_Printers"
# Verify authz rules
netapi ise get-authz-rules --policy-set "DOMUS_Printers"
# Verify endpoint is in DOMUS_Printers group with static assignment
netapi ise get-endpoint "90:32:4B:B8:FC:FE"
Step 11: Configure Printer
Access printer web interface at <printer-ip>/:
| Setting | Value |
|---|---|
Wired 802.1x |
Enabled |
Authentication Method |
EAP-TTLS |
Inner Authentication |
MSCHAPv2 |
User ID |
svc-printer-01 |
Password |
<from gopass> |
Server Cert Verification |
Disabled |
Step 12: Connect and Verify
# Monitor live authentications
netapi ise mnt live-sessions --mac "90:32:4B:B8:FC:FE"
# Check via DataConnect
netapi ise dc query "
SELECT
USER_NAME,
CALLING_STATION_ID as MAC,
AUTHENTICATION_PROTOCOL,
SELECTED_AUTHORIZATION_PROFILES,
PASSED,
TIMESTAMP_TIMEZONE
FROM RADIUS_AUTHENTICATIONS
WHERE CALLING_STATION_ID = '90-32-4B-B8-FC-FE'
ORDER BY TIMESTAMP_TIMEZONE DESC
FETCH FIRST 5 ROWS ONLY
"
Troubleshooting
Authentication Fails - User Not Found
# Verify FreeIPA LDAP connectivity from ISE
netapi ise get-external-identity-stores
# Test LDAP bind
ldapwhoami -H ldap://freeipa.inside.domusdigitalis.dev -D "uid=svc-printer-01,cn=users,cn=accounts,dc=inside.domusdigitalis.dev" -W
Endpoint Not In Correct Group
# Check current endpoint group and static assignment
netapi ise get-endpoint "90:32:4B:B8:FC:FE"
# Re-apply static assignment if needed
netapi ise update-endpoint-group "90:32:4B:B8:FC:FE" "DOMUS_Printers" --static
Rollback
Complete removal via API:
# Delete authorization rules
netapi ise delete-authz-rule --policy-set "DOMUS_Printers" --name "Corp_Printer_Access"
netapi ise delete-authz-rule --policy-set "DOMUS_Printers" --name "Default_Deny"
# Delete authentication rules
netapi ise delete-auth-rule --policy-set "DOMUS_Printers" --name "Printers_EAP_TTLS"
# Delete policy set
netapi ise delete-policy-set --name "DOMUS_Printers"
# Delete authorization profile
netapi ise delete-authz-profile --name "AuthZ_DOMUS_Printers"
# Delete DACL
netapi ise delete-dacl --name "DACL_CORP_PRINTERS"
# Delete endpoint group (if empty)
netapi ise delete-endpoint-group --name "DOMUS_Printers"
# FreeIPA user cleanup (on FreeIPA server)
ipa user-del svc-printer-01
Notes
-
Brother printers support EAP-FAST, EAP-TTLS, PEAP - but NOT EAP-TLS
-
Dedicated policy set ensures printers don’t interfere with workstation policies
-
Static endpoint group assignment prevents ISE Profiler from overriding group
-
Credentials stored in gopass at
v2/DOMUS/printers/ -
FreeIPA LDAP provides centralized identity management