The objective of this project is to design and implement a Splunk dashboard for monitoring SSH authentication activity on Linux servers. The dashboard helps security analysts:
- Monitor total SSH activity
- Track successful and failed login attempts
- Detect brute-force attacks
- Visualize attack origins using geo-location data
This dashboard is designed with consistent time filtering and security-focused visualizations for effective threat detection.
-
Splunk Enterprise / Splunk Free
-
SSH log data ingested in JSON format
-
Indexed SSH log files:
ssh_logs.jsonssh_logs_new.json
-
Linux servers:
LinuxServerLinuxNew
Ensure consistent time filtering across all dashboard panels.
-
Click Add Time Range Button
-
Click Add Input
-
Select Time
-
Click the Pencil Icon
-
Set:
- Label:
Time Range - Token:
time_range
- Label:
-
Click Add Input
-
Select Submit
⚠️ Note: For all future panels, set the Time Picker totime_rangefor consistency.
Provide a quick overview of SSH authentication activity.
- Panel Type: Single Value
- Time Picker:
time_range - Title:
Total SSH Events
Search Query:
source="ssh_logs.json" host="LinuxServer" sourcetype="_json"
| stats count AS "Total SSH Events"
- Panel Type: Single Value
- Time Picker:
time_range - Title:
Successful Logins
Search Query:
source="ssh_logs.json" host="LinuxServer" sourcetype="_json" event_type="Successful SSH Login"
| stats count AS "Successful Logins"
- Panel Type: Single Value
- Time Picker:
time_range - Title:
Failed Logins
Search Query:
source="ssh_logs.json" host="LinuxServer" sourcetype="_json" event_type="Failed SSH Login"
| stats count AS "Failed Login"
- Panel Type: Single Value
- Time Picker:
time_range - Title:
Invalid User Attempts
Search Query:
index=auth "sshd" "invalid user"
| stats count AS "Invalid User Attempts"
Analyze login patterns over time and detect anomalies or attack behavior.
- Panel Type: Bar Chart
- Time Picker:
time_range - Title:
Failed Logins by Username
Search Query:
source="ssh_logs_new.json" host="LinuxNew" sourcetype="_json" event_type="Failed SSH Login"
| top username
- Panel Type: Statistics Table
- Time Picker:
time_range - Title:
Possible Brute Force by IP Address
Search Query:
source="ssh_logs_new.json" host="LinuxNew" sourcetype="_json" event_type="Multiple Failed Authentication Attempts"
| top id.orig_h
Identify geographical sources of brute-force SSH attacks.
- Panel Type: Choropleth Map
- Time Picker:
time_range - Title:
Brute Force Attack with Geo-Location
Search Query:
source="ssh_logs_new.json" host="LinuxNew" sourcetype="_json" event_type="Multiple Failed Authentication Attempts"
| table id.orig_h
| iplocation id.orig_h
| stats count by Country
| geom geo_countries featureIdField="Country"
- Centralized SSH authentication monitoring
- Early detection of brute-force attacks
- Improved visibility using geo-location analysis
- Consistent time-based analysis across panels
This dashboard can be used by:
- SOC Analysts
- Blue Teams
- System Administrators
- Cybersecurity Students
to detect unauthorized access attempts and respond to SSH-based attacks efficiently.
