I'd like to
see if somebody has been trying to log-in by brute-force into my Ubuntu 12.04
server over SSH. How can I see if such activities have been taking place?
All login attempts are logged to /var/log/auth.log.
1. Filter for brute-force interactive SSH logins
Open a terminal, and type the below; if it's longer than 1 page
you will be able to scroll up and down; type q to exit:
grep sshd.\*Failed /var/log/auth.log | less
Here's a real example
from one of my Ubuntu:
·
Aug 18 11:00:57 izxvps
sshd[5657]: Failed password for root from 95.58.255.62 port 38980 ssh2
·
Aug 18 23:08:26 izxvps
sshd[5768]: Failed password for root from 91.205.189.15 port 38156 ssh2
·
Aug 18 23:08:30 izxvps
sshd[5770]: Failed password for nobody from 91.205.189.15 port 38556 ssh2
·
Aug 18 23:08:34 izxvps
sshd[5772]: Failed password for invalid user asterisk from 91.205.189.15 port
38864 ssh2
·
Aug 18 23:08:38 izxvps
sshd[5774]: Failed password for invalid user sjobeck from 91.205.189.15 port
39157 ssh2
·
Aug 18 23:08:42 izxvps
sshd[5776]: Failed password for root from 91.205.189.15 port 39467 ssh2
2. Look for failed connections (i.e. no login attempted, could be a port
scanner, etc.):
Use this command:
grep sshd.*Did /var/log/auth.log | less
Example:
·
Aug 5 22:19:10 izxvps sshd[7748]: Did not receive
identification string from 70.91.222.121
·
Aug 10 19:39:49 izxvps
sshd[1919]: Did not receive identification string from 50.57.168.154
·
Aug 13 23:08:04 izxvps
sshd[3562]: Did not receive identification string from 87.216.241.19
·
Aug 17 15:49:07 izxvps
sshd[5350]: Did not receive identification string from 211.22.67.238
·
Aug 19 06:28:43 izxvps
sshd[5838]: Did not receive identification string from 59.151.37.10
How to reduce failed/brute-force login attempts
·
Try switching your SSH
to a non-standard port from the default 22
Fail2ban monitors log
files (e.g. /var/log/auth.log, /var/log/apache/access.log) and temporarily or
persistently bans failure-prone addresses by updating existing firewall rules.
Fail2ban allows easy specification of different actions to be taken such as to
ban an IP using iptables or hostsdeny rules, or simply to send a notification
email.
By default, it comes with
filter expressions for various services (sshd, apache, qmail, proftpd, sasl
etc.) but configuration can be easily extended for monitoring any other text
file. All filters and actions are given in the config files, thus fail2ban can
be adopted to be used with a variety of files and firewalls.