如何修改DenyHosts正则表达式以匹配多种SSH无效登录日志
配置DenyHosts正则匹配多种SSH无效登录日志
你可以通过**正则分支(|)**整合三种匹配场景,同时保证IP提取逻辑一致。最终的正则表达式如下:
USERDEF_FAILED_ENTRY_REGEX=.*sshd.* (Connection closed by|Disconnected from|Invalid user .* from) .* (?P<host>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?: port \d{1,5})? \[preauth\]?
关键调整说明:
- 用
(Connection closed by|Disconnected from|Invalid user .* from)分支覆盖三种日志的核心特征:Connection closed by:保留你原有的匹配规则Disconnected from:匹配带/不带无效用户标记的断开连接日志Invalid user .* from:直接匹配含无效用户名的登录尝试日志
(?: port \d{1,5})?:非捕获组加问号,适配部分日志无端口信息的情况\[preauth\]?:加问号兼容部分日志末尾无[preauth]标记的场景
验证示例
以下典型日志均可被匹配并正确提取IP:
sshd[1234]: Connection closed by 192.168.1.100 port 2222 [preauth]
sshd[5678]: Disconnected from invalid user test 10.0.0.5 [preauth]
sshd[9012]: Invalid user admin from 172.16.0.20
将该配置替换到DenyHosts配置文件中,重启服务即可生效。
内容的提问来源于stack exchange,提问作者obayhan
相关产品推荐
相关产品推荐

