Linux Hardening Guide
Sure! Here’s a beginner-friendly guide to using Snort, an open-source intrusion detection and prevention system (IDS/IPS). This guide covers installation, configuration, and basic usage.
🛠️ Step 1: Install Snort#
On Ubuntu/Debian:#
sudo apt update
sudo apt install snort
You’ll be prompted for your network interface (like eth0
, ens33
, etc.). You can also configure this later in /etc/snort/snort.conf
.
On CentOS/RHEL:#
You’ll need to build from source or use a compatible repo. Let me know if you need help with that specifically.
📁 Step 2: Understand the Directory Structure#
After installation, key files are usually found in:
- Configuration:
/etc/snort/
- Rules:
/etc/snort/rules/
- Log files:
/var/log/snort/
⚙️ Step 3: Configure Snort#
Edit the config file:
sudo nano /etc/snort/snort.conf
Key configurations:#
- HOME_NET: Set to your local IP range (e.g.,
192.168.1.0/24
) - EXTERNAL_NET: Usually set to
any
- RULE_PATH: Make sure it points to your rules directory (e.g.,
/etc/snort/rules
)
Make sure to include a list of rule files at the bottom, like:
include $RULE_PATH/local.rules
📝 Step 4: Add or Edit Rules#
Create or edit your own rules in local.rules
:
sudo nano /etc/snort/rules/local.rules
Example rule (alert on ICMP/ping requests):
alert icmp any any -> any any (msg:"ICMP Packet Detected"; sid:1000001; rev:1;)
🚦 Step 5: Run Snort#
Test configuration:#
snort -T -c /etc/snort/snort.conf
Run in IDS mode:#
snort -A console -q -c /etc/snort/snort.conf -i eth0
Replace eth0
with your actual network interface.
📊 Step 6: Analyze Logs#
Logs are stored in /var/log/snort/
. You can review alerts using tools like:
cat /var/log/snort/alert
barnyard2
for database output (advanced)
🚧 Optional: Use PulledPork for Rule Management#
PulledPork is a tool to manage Snort rules automatically from Snort.org. You need a Snort Oinkcode to download community or subscription rules.
Would you like a visual network diagram showing where Snort sits in a network or an example use case like monitoring a small home network?