How meoluoi-del/at_internet works
This repository implements a Docker-based centralized NAC/AAA system: network access requests are authenticated against LDAP, assigned role-based VLAN policy by FreeRADIUS, and recorded in MariaDB. Administrators use a Flask dashboard to manage users and policies, review accounting/audit data, and respond to brute-force activity. The dashboard also provides MFA and SSO capabilities. The principal flow and service integrations are documented in the README; dashboard module relationships are supported by the source index and excerpts, while unsampled FreeRADIUS configuration details are not inferred beyond documented behavior.
Main entry points: app.py Flask admin dashboard · ldap_client.py LDAP user management · detector.py Brute-force detector · default FreeRADIUS AAA
Components 15
Network Access
- FreeRADIUS AAA
radius/sites-available/default
Identity and Policy
- OpenLDAP directory
ldap/init-ldap.ldif - MariaDB AAA and policy data
sql/init-policy.sql
Administration and Defense
- Flask admin dashboard
dashboard/app.py - Dashboard pages
dashboard/templates - Database manager
dashboard/models.py - LDAP user management
dashboard/ldap_client.py - Brute-force detector
dashboard/detector.py - Dashboard configuration
dashboard/config.py
Authentication Extensions
- TOTP MFA
dashboard/mfa.py - SSO and JWT
dashboard/sso.py
Other components
- Network device / NAS
- Network user
- Admin / auditor
- Registered SSO client
Connections 27
- Network device / NAS → FreeRADIUS AAA: sends AAA requests
README.md - FreeRADIUS AAA → OpenLDAP directory: authenticates identities
README.md - FreeRADIUS AAA → OpenLDAP directory: reads group membership
README.md - FreeRADIUS AAA → MariaDB AAA and policy data: reads VLAN policy
README.md - FreeRADIUS AAA → MariaDB AAA and policy data: records accounting
README.md - Network user → Network device / NAS: requests network access
README.md - Admin / auditor → Flask admin dashboard: uses dashboard
README.md - Flask admin dashboard → Dashboard pages: renders pages
dashboard/app.py - Flask admin dashboard → Database manager: manages records
dashboard/app.py - Flask admin dashboard → LDAP user management: manages users
dashboard/app.py - Flask admin dashboard → Brute-force detector: exposes alerts
dashboard/app.py - Flask admin dashboard → TOTP MFA: verifies TOTP
dashboard/app.py - Flask admin dashboard → SSO and JWT: creates tokens
dashboard/app.py - Flask admin dashboard → LDAP user management: reads user group
dashboard/app.py - Database manager → MariaDB AAA and policy data: reads and writes
dashboard/models.py - LDAP user management → OpenLDAP directory: reads and updates
dashboard/ldap_client.py - Brute-force detector → MariaDB AAA and policy data: queries failed attempts
dashboard/detector.py - Brute-force detector → LDAP user management: checks membership
dashboard/detector.py - Brute-force detector → LDAP user management: quarantines user
dashboard/detector.py - Brute-force detector → Database manager: records audit event
dashboard/detector.py - Flask admin dashboard → Registered SSO client: issues authorization code
dashboard/app.py - Flask admin dashboard → LDAP user management: looks up SSO group
dashboard/app.py - Flask admin dashboard → Database manager: stores SSO codes
dashboard/app.py - Flask admin dashboard → Dashboard configuration: loads settings
dashboard/app.py - Database manager → Dashboard configuration: loads database settings
dashboard/models.py - LDAP user management → Dashboard configuration: loads LDAP settings
dashboard/ldap_client.py - Brute-force detector → Dashboard configuration: loads thresholds
dashboard/detector.py