我已经成功设置了WireGuard VPN在我的 Debian 10 服务器上。与 OpenVPN 的设置相比,它非常简单,而且运行良好。
但是,除了来自 的日志之外,我看不到任何日志。例如,我想知道何时发生身份验证尝试失败。有没有办法监控这种情况?例如,使用 openvpn,我可以根据身份验证尝试使用 fail2ban。journalctl -u [email protected]
答案1
假设您正在运行支持动态调试的内核,您可以通过执行以下命令启用调试日志:
# modprobe wireguard
# echo module wireguard +p > /sys/kernel/debug/dynamic_debug/control
dmesg
然后可以通过或使用日志journalctl
。使用dmesg
,只需使用以下命令:
$ dmesg -wH
(-H
,--human
启用颜色、相对时间等用户友好功能)
(-w
,--follow
)
您还可以在具有 systemd 的系统上使用:
$ journalctl -kf
答案2
自动激活电线保护直接在启动时进行动态调试日志记录,有wireguard
内核模块
- 启动时加载
- 使用动态调试选项
# automatically modprobe wireguard during boot:
echo "wireguard" | sudo tee /etc/modules-load.d/wireguard.conf
# automatically activate dynamic_debug for wireguard during boot:
echo "options wireguard dyndbg=+p" | sudo tee /etc/modprobe.d/wireguard.conf
(参考:模块初始化时的调试消息来自 kernel.org 文档)
这电线保护然后可以使用以下任何命令来跟踪/监控特定的日志条目:
sudo journalctl -x -f -g wireguard*
sudo dmesg -wH --color=always | grep -i wireguard
答案3
我的用户日志记录版本,每 3 分钟在 crontab 中编写一次脚本。如果不活动时间少于 180 秒,则不执行任何操作,否则将附加到日志文件。
wg show all dump | grep 10.0 | awk 'BEGIN {}; {if (systime()-$6 <180 ) print strftime("%m-%d-%Y %H:%M:%S", systime()),$5, $4, (systime()-$6) "sec" } ; END {}' >> /var/log/wg.log
10.0
注意:在输出中搜索,因为这是我的私有网络中的 IP 地址的开头。