VPS SSH连接记录,如何监控和管理远程访问
卡尔云官网
www.kaeryun.com
在虚拟专用服务器(VPS)的使用中,SSH(安全的 shell)连接记录是一个非常有用的工具,它可以帮助你监控和管理远程访问,确保你的服务器安全,同时保护你的个人隐私和数据。
什么是 SSH 连接记录?
SSH 是一种安全的远程访问协议,允许你在不暴露明文连接的情况下,安全地访问你的服务器,SSH 连接记录(SSH connection log)记录了你使用 SSH 连接到服务器的所有活动,包括连接时间和连接方式(比如远程登录、本地登录等)。
为什么需要 SSH 连接记录?
- 监控访问:你可以查看哪些人可以访问你的服务器,以及他们访问的频率和时间。
- 防止滥用:如果有人试图通过 SSH 登录你的服务器,你可以查看他们的连接记录,防止未经授权的访问。
- 审计日志:SSH 连接记录可以作为审计日志,记录服务器的访问历史,帮助你发现和阻止潜在的安全威胁。
如何查看 SSH 连接记录?
在 Linux 系统中,你可以使用以下命令查看 SSH 连接记录:
-
查看最近的连接记录:
tail -f /var/log/auth.log
这个命令会显示最近的 SSH 连接记录,包括连接时间和用户信息。
-
查看完整的连接记录:
tail -f /var/log/auth.log | grep -e '^[0-9]{8} SSH' | tail -n 100
这个命令会显示所有以 SSH 开头的连接记录,100 行。
-
使用 ssclat 工具:
ssclat -l /var/log/auth.log
这个工具可以生成一个简洁的 SSH 连接记录日志,方便你查看。
如何管理 SSH 连接记录?
-
配置 SSH 服务器: 你可以通过 SSH 服务器的配置文件(如
/etc/ssh/sshd_config
)来限制 SSH 连接的次数和方式,你可以设置每日登录次数限制,或者阻止来自特定 IP 地址的连接。 -
启用日志记录: 默认情况下,SSH 会将所有 SSH 连接记录到
/var/log/auth.log
文件中,你可以通过以下命令启用日志记录:sudo nano /etc/ssh/sshd_config
在文件末尾添加以下内容:
auth_file = /var/log/auth.log PermitRootLogin = yes
保存并退出编辑器,然后重新加载 SSH 服务:
sudo systemctl reload ssh
-
删除旧的连接记录: 如果你不想保留过久的连接记录,可以定期清理
/var/log/auth.log
文件,可以设置一个 cron 任务,每 7 天删除旧的连接记录:crontab -e */7 * * * /var/log/auth.log
SSH 连接记录的注意事项
-
保护私钥:SSH 连接记录中包含你的公钥,但不包含你的私钥,确保你的私钥安全,不要将其暴露在互联网上。
-
定期检查:定期检查 SSH 连接记录可以帮助你发现异常的连接行为,例如未经授权的登录尝试。
-
审计日志:SSH 连接记录可以作为审计日志,记录服务器的访问历史,你可以使用审计工具(如
forensics
)来分析日志,发现潜在的安全威胁。
实际例子
假设你有一个 VPS,服务器名为 mywebsite
,SSH 登录地址是 ssh://mywebsite:22
,以下是如何查看和管理 SSH 连接记录的步骤:
-
登录到你的 VPS:
ssh user@mywebsite:22
-
查看最近的 SSH 连接记录:
tail -f /var/log/auth.log
-
查看完整的 SSH 连接记录:
tail -f /var/log/auth.log | grep -e '^(22\+|\d{8})' | tail -n 100
-
使用
ssclat
工具查看日志:ssclat -l /var/log/auth.log
-
配置 SSH 服务器限制每日登录次数:
sudo nano /etc/ssh/sshd_config
在文件末尾添加以下内容:
PermitRootLogin = yes MaxAuthTries = 3 DailyAuthFiles = yes DailyAuthLimit = 100
保存并退出编辑器,然后重新加载 SSH 服务:
sudo systemctl reload ssh
-
定期清理旧的 SSH 连接记录:
crontab -e */7 * * * /var/log/auth.log
通过以上步骤,你可以有效地监控和管理 SSH 连接记录,确保你的 VPS 安全,同时保护你的隐私和数据。
卡尔云官网
www.kaeryun.com