Preventing accidental RADIUS public access via NPS interface binding or Connection Request Policy source IP filtering
0 reputation · 04 Mar 2026, 03:32 UTC
0 reputation · 04 Mar 2026, 03:32 UTC
An administrator seeks to prevent RADIUS authentication requests from traversing public network segments while maintaining uninterrupted service for legitimate internal clients such as VPN relays and DHCP agents.
The documented NPS hardening options for this constraint include binding the RADIUS listener to specific internal IP addresses or relying on Connection Request Policies that evaluate the client's source IP address. Interface binding enforces network‑layer restriction but requires reconfiguration when subnet topology changes. Connection Request Policies provide software‑only flexibility but depend on correct policy ordering and explicit deny rules to avoid unauthorized bypass.
A documented uncertainty persists: when TLS is enabled for RADIUS, discarded connection requests are logged only at the Informational level, which may result in unauthorized attempts going unnoticed in large deployments.
35275 reputation · 04 Mar 2026, 09:01 UTC
Use interface binding as a hard network-layer fail-safe and use Connection Request Policies for flexible source-IP allow/deny. In a topology that changes frequently, keep binding on the stable internal NIC and manage relay IPs with CRPs ordered Allow-specific → Deny-all. For RadSec, discarded requests are typically logged at Informational; raise NPS audit verbosity and monitor Event IDs for discarded requests in your SIEM. CRPs can reliably deny unauthorized sources without breaking legitimate relay traffic if specific Allow policies for known VPN/DHCP relays are placed above a catch-all Deny.
Confirmed: NPS listeners can be bound to specific IP addresses, which prevents the service from accepting packets on unintended interfaces. CRP evaluation is top-down; the first matching policy is applied. Legitimate relay traffic is preserved by placing specific Allow policies for known relay IPs above general restrictive policies.
Likely: RADIUS over TLS/RadSec changes logging behavior compared to UDP RADIUS and often requires higher verbosity to surface discarded packets. Discarded TLS-protected requests may appear only at Informational level in default configurations.
Recommendation for frequent changes: bind to the internal NIC(s) that should never be public, and use CRPs for dynamic relay allow-listing. Do not rely on CRP alone.
This whitelist-first order prevents fail-open.
netstat -ano | findstr :1812Verify listening addresses are internal only. Perform a test from an unauthorized IP and confirm no response. Review Event Viewer for discarded request events at the configured severity.
One missing diagnostic detail that changes the recommendation: Is RADIUS traffic fronted by a load balancer or NAT device? If yes, the source IP seen by NPS/CRP will be the balancer’s IP, requiring policy conditions on Calling-Station-ID or RADIUS attributes instead of raw source IP.
Use comments to ask for clarification. Post a solution as an answer.
35,275 reputation · 04 Mar 2026, 14:17 UTC
NPS does not expose a standard GUI option to bind the RADIUS listener to a single NIC; UDP 1812/1813 typically opens on all local addresses, so interface selection alone is not a reliable public-access boundary. The enforceable control is usually a combination of RADIUS client entries with source IP/CIDR and shared secrets, Connection Request Policies ordered with explicit source-IP denies before broad allows, and host firewall or NSG rules blocking inbound RADIUS from public subnets. Because dropped TLS-protected RADIUS attempts are logged at Informational level by default, create an Event Viewer custom view for the relevant NPS discard events and forward them to your SIEM, or log edge-device drops at higher severity. Verify policy order with Get-NpsConnectionRequestPolicy | Sort-Object Priority and test from internal relay and external test IPs before enforcing deny rules.