Configure SNMP v3 authentication and encryption for secure network monitoring

Intermediate 25 min May 09, 2026 977 views
Ubuntu 24.04 Debian 12 AlmaLinux 9 Rocky Linux 9

Set up SNMP version 3 with user authentication and data encryption to secure network monitoring communications. This tutorial covers Net-SNMP daemon configuration, security protocols, and monitoring tool integration.

Prerequisites

  • Root access to target servers
  • Basic networking knowledge
  • Monitoring system (Zabbix, Nagios, or Grafana)

What this solves

SNMP v3 provides secure network monitoring with authentication and encryption, replacing the plaintext community strings used in older SNMP versions. This tutorial shows you how to configure Net-SNMP daemon with user-based security, set up authentication and privacy protocols, and integrate monitoring tools for secure infrastructure oversight.

Step-by-step configuration

Install Net-SNMP packages

Install the SNMP daemon and utilities needed for secure monitoring.

sudo apt update
sudo apt install -y snmpd snmp snmp-mibs-downloader
sudo dnf install -y net-snmp net-snmp-utils net-snmp-devel

Stop SNMP daemon for configuration

Stop the service to safely modify configuration files and create users.

sudo systemctl stop snmpd

Create SNMP v3 user with authentication

Create a secure user with SHA authentication and AES encryption. This command sets up the user credentials in the SNMP database.

sudo net-snmp-create-v3-user -ro -A SHA -X AES -a "MyAuthPass123!" -x "MyPrivPass456!" snmpuser
Security note: Use strong passwords for authentication (-a) and privacy (-x) passphrases. Minimum 8 characters recommended.

Configure SNMP daemon settings

Set up the main SNMP daemon configuration with security settings and access controls.

# SNMP v3 Configuration
# Remove default community access
# rocommunity public default

# System information
sysLocation "Server Room A"
sysContact "admin@example.com"
sysServices 72

# SNMP v3 user access - read-only access to system tree
rouser snmpuser

# Security settings
# Only allow SNMP v3
com2sec notConfigUser default public
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
access notConfigGroup "" any noauth exact none none none

# Process and disk monitoring
proc sshd
proc httpd 5 10
disk / 10%
disk /var 10%
disk /tmp 10%

# Load monitoring
load 12 14 14

# Network interface monitoring
interface lo
interface eth0

Configure firewall access

Open SNMP port 161 for monitoring access. Restrict access to specific monitoring server IPs in production.

sudo ufw allow from 203.0.113.10 to any port 161
sudo ufw reload
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="203.0.113.10" port protocol="udp" port="161" accept' --permanent
sudo firewall-cmd --reload

Set file permissions

Secure the SNMP configuration files to prevent unauthorized access to authentication credentials.

sudo chmod 600 /etc/snmp/snmpd.conf
sudo chown root:root /etc/snmp/snmpd.conf
sudo chmod 700 /var/lib/snmp
sudo chmod 600 /var/lib/snmp/snmpd.conf

Start and enable SNMP daemon

Start the SNMP service and enable it to start automatically on boot.

sudo systemctl enable snmpd
sudo systemctl start snmpd
sudo systemctl status snmpd

Configure additional SNMP v3 users

Add more users with different access levels. Create a read-write user for configuration changes.

sudo systemctl stop snmpd
sudo net-snmp-create-v3-user -A SHA -X AES -a "AdminAuth789!" -x "AdminPriv012!" adminuser
sudo systemctl start snmpd

Update SNMP configuration for new user

Add the new administrative user to the configuration with read-write access.

# Add after existing rouser line
rwuser adminuser
sudo systemctl restart snmpd

Configure monitoring tool integration

Set up your monitoring system to use SNMP v3. Here's an example for Zabbix configuration.

# SNMP v3 Connection Parameters
SNMP version: SNMPv3
Context name: (leave empty)
Security name: snmpuser
Security level: authPriv
Authentication protocol: SHA
Authentication passphrase: MyAuthPass123!
Privacy protocol: AES
Privacy passphrase: MyPrivPass456!
Port: 161

Security protocol options

SNMP v3 supports multiple authentication and privacy protocols. Choose based on your security requirements:

Protocol TypeOptionsSecurity LevelUse Case
AuthenticationMD5, SHA, SHA-224, SHA-256, SHA-384, SHA-512SHA-256+ recommendedUser verification
Privacy (Encryption)DES, AES, AES-192, AES-256AES-256 recommendedData encryption
Security LevelnoAuthNoPriv, authNoPriv, authPrivauthPriv requiredComplete protection

Verify your setup

# Test SNMP v3 authentication locally
snmpget -v3 -u snmpuser -l authPriv -a SHA -A "MyAuthPass123!" -x AES -X "MyPrivPass456!" localhost 1.3.6.1.2.1.1.1.0

# Test from remote monitoring server
snmpwalk -v3 -u snmpuser -l authPriv -a SHA -A "MyAuthPass123!" -x AES -X "MyPrivPass456!" 203.0.113.100 1.3.6.1.2.1.1

# Check daemon status and logs
sudo systemctl status snmpd
sudo journalctl -u snmpd -f

Successful output should show system information without authentication errors. For network monitoring integration, verify metrics collection in your dashboard.

Common issues

SymptomCauseFix
Authentication failureWrong passphraseRecreate user with net-snmp-create-v3-user
Permission deniedWrong file permissionssudo chmod 600 /etc/snmp/snmpd.conf
Connection timeoutFirewall blocking port 161Check firewall rules and allow UDP 161
No response from OIDsUser lacks read accessAdd rouser username to snmpd.conf
Encryption not workingPrivacy protocol mismatchVerify AES protocol in both client and server
Service won't startConfiguration syntax errorsudo snmpd -f -Lo -c /etc/snmp/snmpd.conf
Security reminder: Never use SNMP v1 or v2c in production. These versions transmit community strings in plaintext. Always use SNMP v3 with authPriv security level.

Advanced configuration

Configure SNMP v3 with custom OID access

Restrict users to specific OID trees for granular security control.

# Restrict user to system information only
authuser read snmpuser
view systemview included 1.3.6.1.2.1.1
view systemview included 1.3.6.1.2.1.25.1
access snmpuser "" usm authPriv exact systemview none none

Enable SNMP traps with authentication

Configure authenticated SNMP traps for proactive monitoring alerts.

# SNMP v3 trap configuration
trapsess -v 3 -u trapuser -l authPriv -a SHA -A "TrapAuth345!" -x AES -X "TrapPriv678!" 203.0.113.10:162

# Enable specific traps
linkUpDownNotifications yes
defaultMonitors yes

Next steps

Running this in production?

Need this managed at scale? Setting up SNMP v3 once is straightforward. Keeping it patched, monitored, backed up and performant across environments is the harder part. See how we run infrastructure like this for European teams with compliance requirements.

Automated install script

Run this to automate the entire setup

Wil je dit niet zelf beheren?

Wij beheren infrastructuur voor bedrijven die afhankelijk zijn van uptime. Volledig beheerd, met één vast aanspreekpunt dat je omgeving kent.

U krijgt één vast aanspreekpunt dat uw omgeving kent

Rotterdam 04:09 · bereikbaar in een bericht, geen ticketformulier