如果发生以下任何事件,我希望通过电子邮件收到通知:
- 新设备在我的局域网上线(基本上访问了我的 WiFi)
- 我的电脑上的身份验证尝试失败
- 有人或某物扫描我的电脑端口
- 我的电脑被唤醒了
- 我的电脑已登录(从登录屏幕并通过 SSH)
- 我的网络上正在使用 ARP 投毒或类似技术
我如何监控这些事件并通过电子邮件收到通知(如果可能的话,Unity 通知也很好)?
答案1
您可以用安全做很多事情,所有这些都将是很好的教育!
我用过Fail2ban为了防止重复访问尝试,主要用于 http 黑客尝试。它读取日志文件,因此非常可配置,它有点复杂,但值得阅读。
您可以使用以下方式查看上次登录的用户最后日志命令。
命令须藤arp将显示您网络上的地址,以便您可以识别使用您无法识别的 MAC 地址进行的潜在欺骗。
iptablesfail2ban 也使用它来拒绝特定的 IP 地址或协议。(但要小心,除非您有物理访问权限)。
如果你想更深入地了解网络,可以查阅wireshark这可以捕获流量并显示 ARP 请求。
所有这些都是很好的做法,但我发现你最需要的是在你的 WiFi 上使用带有长密码的 WPA2,将其从可能打印在你的路由器上的密码更改为长密码。
使用通过 SSH 进行私钥认证. (这里也要非常小心)
希望这涵盖了您想要的大部分内容。有很多工作要做;因此无法在这里解释如何使用所有内容。
答案2
答案3
内置工具:(需要从 Ubuntu 下载)
1.新设备在我的局域网上线(基本上访问了我的 WiFi)
ifconfig -a
2. 我的 PC 上的身份验证尝试失败(失败2ban)
apt-get install fail2ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local
需要添加以下与您的服务相关的行
bantime = 600
findtime = 600
maxretry = 3
例如身份验证失败:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
fail2ban 也有电子邮件通知服务。
destemail = root@localhost
sendername = Fail2Ban
mta = sendmail
3.某人或某物正在扫描我电脑的端口(有用的命令)
netstat -an (to see which port are open and connected to other network)
伊夫托普(监控LAN、WLAN网络带宽)
apt-get install iftop
iftop
然后按 p(端口)和 n(DNS)。一旦您知道哪个端口的流量来自未知 IP,您就可以使用 ufw 防火墙阻止该 IP。
ufw deny from 192.x.x.x
要检查是否有人正在扫描端口:
netstat -an
和iftop
如果上述命令的输出是长列表,并且连接来自多个端口上的同一 IP。
5.我的电脑已登录(如果能获取最后发出的 10 条命令就好了)
history
将为您提供最后使用的 2K 命令(如果用户相同)
或者
查看其他用户使用的命令(例如 user=test)
su test
history
上述命令需要 sudo 或 root 权限。
用于监控linux系统的软件:
Nagios的:https://www.nagios.org/projects/
Splunk:http://www.splunk.com/en_us/download/splunk-enterprise.html
扎比克斯:http://www.zabbix.com/download.php
所有以上工具均有通知电子邮件服务。(高度可定制)
更新:
通过电子邮件通知用户登录:https://www.tiger-computing.co.uk/get-linux-to-notify-every-ssh-login/
nano /etc/profile
if [ -n "$SSH_CLIENT" ]; then
TEXT="$(date): ssh login to ${USER}@$(hostname -f)"
TEXT="$TEXT from $(echo $SSH_CLIENT|awk '{print $1}')"
echo $TEXT|mail -s "ssh login" [email protected]
fi