Debian GNU/Linux · Network

Disable the Bluetooth service

When it fails: The Bluetooth service can be started. Bluetooth accepts connections from devices in radio range, outside any network control.

CB-DEB-NET-004mediumactiveautomatedautomated fixprofile serverprofile desktop-hardened

As released in v0.1.1 beta · pre-release. Current state.

Description

On Debian, Bluetooth is handled by bluetoothd from the bluez package, run by bluetooth.service. When the package is installed, the service starts as soon as an adapter is present. This control requires the service to be masked, or bluez to be absent.

Rationale

Bluetooth stacks have had remotely exploitable flaws reachable without pairing (BlueBorne, BleedingTooth). A server never needs Bluetooth, and a hardened workstation should not expose a radio interface that can be reached from a nearby room or car park.

Impact

Bluetooth keyboards, mice, headsets and file transfer stop working.

Audit

Run systemctl is-enabled bluetooth.service. It must print masked, or fail because the unit does not exist (bluez not installed).

Automated: every check must pass. Scanners report each check by its id.

service

State of bluetooth.service.

unit: bluetooth.service
state: masked

Remediation

Run systemctl mask --now bluetooth.service, or remove the package with apt purge bluez when nothing depends on it.

Restartnone
Disruptionlow

Rollback

Run systemctl unmask bluetooth.service and systemctl start bluetooth.service.

mask

Generated from check service: the engine writes the fix for every output, it sets the expected value and the check runs again after.

Each release turns these fixes into remediate.sh and an Ansible role per profile: dry run by default, a fix runs only when its check fails.

References

Mappings

FrameworkIDRelation
NIST SP 800-53 Rev. 55.1.1AC-18related

How this control relates to the other framework's: equivalent, stricter, looser, partial or related.

Threats mitigated

People and lifecycle

Authors
Verified2026-10-18 by Sn0wAlice on 12, Proxmox VM 921, Debian 12 genericcloud image, kernel 6.1.0-54-cloud-amd64. Check passes without bluez; with bluez installed the service is reported enabled, then masked by the generated fix.
Verified2026-10-18 by Sn0wAlice on 13, Proxmox VM 931, Debian 13 genericcloud image, kernel 6.12.113+deb13-cloud-amd64. Check passes without bluez; with bluez installed the service is reported enabled, then masked by the generated fix.
Introduced inv0.1.0
Created, updated2026-10-18, 2026-10-18
Translationsfr