我想保护postfix(已经受到保护,但是......你知道..)因为我从日志中看到许多域尝试登录它。
我已经为ssh使用fail2ban了,我想创建一个正则表达式来匹配坏域并禁止它们。
我所知道的是,来自Google和localhost的所有内容都是安全的。 我试图反转我创建的这个正则表达式,但我在添加localhost异常和从搜索“google”排除时都遇到了问题。
你会在regexr(dot)com网站找到所有HERE。
我真的很感谢你的帮助!
更新: 我希望我能将这两个答案都标记为已接受。我接受我选择的那个,因为这个人详细解释了他的正则表达式。 虽然,我的技能很差,而且我更了解其他解决方案。 它们都按预期工作,谢谢你们!
答案 0 :(得分:1)
我认为你会寻找以下正则表达式:
\b(connect\sfrom)\s(?!(.*?\.)?google)(?!localhost)[^\[]*
\s
代表一个空白(这比你的点更窄)。(.*?\.)?google
表示匹配“google”或任何“subdomain.google”组合。问号使正则表达式非贪婪(尽可能小)(?!A)(?!B)
是多重否定前瞻。问题的实质[^\[]*
表示匹配最长的(“贪婪”)字符串,直到'['发生。 简而言之:您正在寻找(?!A)(?!B)
答案 1 :(得分:1)
您可以在字符串中间使用否定前瞻
\b(connect.from)(?!.*(localhost|google)).*