晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 sh-3ll

HOME


sh-3ll 1.0
DIR:/proc/thread-self/root/proc/thread-self/root/opt/cpguard/cpglfd/configs/jails.available/
Upload File :
Current File : //proc/thread-self/root/proc/thread-self/root/opt/cpguard/cpglfd/configs/jails.available/mail.yaml
jails:
  # ====================================================
  # 1. Postfix (SMTP)
  # Keeps SMTP separate so you can track Spam vs Auth attacks distinctly.
  # ====================================================
  - name: "mail"
    enabled: true
    log_paths:
      - "/var/log/mail.log"
      - "/var/log/maillog"
      - "/var/log/postfix.log"

    rules:
      - regexp: "warning: .*\\[(?P<ip>\\d+\\.\\d+\\.\\d+\\.\\d+)\\]: SASL .*authentication failed"
      - regexp: "lost connection after AUTH from .*\\[(?P<ip>\\d+\\.\\d+\\.\\d+\\.\\d+)\\]"

    max_retries: 10
    find_time: "3m"
    ban_time: "1h"
    actions:
      - name: "cpgblock-mail"
        ban_command: '/usr/bin/cpgcli ip --temp-block {{.IP}} --reason "Blocked by {{.JailName}} due to more than {{.MaxRetry}} abusive access within {{.FindTime}} seconds" --extra " LogFile: {{.LogPath}} | Reason: {{.LogLine}}"'
        unban_command: "/usr/bin/cpgcli ip --temp-block {{.IP}} --remove"


  # ====================================================
  # 2. Dovecot (Universal: cPanel + DirectAdmin + Standard)
  # Efficient: Reads log once, catches ALL formats.
  # ====================================================
  - name: "dovecot-universal"
    enabled: true
    log_paths:
      - "/var/log/maillog"
      - "/var/log/mail.log"
      - "/var/log/dovecot-info.log"

    rules:
      # --- GROUP A: PAM & System Auth (DirectAdmin / Standard) ---
      # Matches: "auth-worker(admin,1.2.3.4)... pam_authenticate() failed"
      - regexp: "auth-worker\\(.*,(?P<ip>\\d+\\.\\d+\\.\\d+\\.\\d+)\\).*: pam_authenticate\\(\\) failed"

      # Matches: "auth(user,1.2.3.4): virtual_user: Password mismatch"
      - regexp: "auth\\(.*,(?P<ip>\\d+\\.\\d+\\.\\d+\\.\\d+),.*\\): virtual_user: Password mismatch"


      # --- GROUP B: Disconnects & Aborted Logins (cPanel / Mixed) ---
      # Matches: "Disconnected: Connection closed (auth failed... rip=1.2.3.4"
      # Matches: "Disconnected: Too many bad commands... rip=1.2.3.4"
      # Matches: "Disconnected: Inactivity... rip=1.2.3.4"
      - regexp: "(?:imap|pop3)-login: Disconnected:.*(?:auth failed|Too many [a-z]+ commands|Inactivity).* rip=(?P<ip>\\d+\\.\\d+\\.\\d+\\.\\d+)"

      # Matches: "Login aborted: Logged out (auth failed... rip=1.2.3.4"
      - regexp: "(?:imap|pop3)-login: Login aborted:.*auth failed.* rip=(?P<ip>\\d+\\.\\d+\\.\\d+\\.\\d+)"


      # --- GROUP C: Protocol Violations & DoS ---
      # Matches: "Login aborted: Maximum number of connections... rip=1.2.3.4"
      - regexp: "(?:imap|pop3)-login: Login aborted: Maximum number of connections.* rip=(?P<ip>\\d+\\.\\d+\\.\\d+\\.\\d+)"

      # Matches: "Login aborted: Too many invalid commands... rip=1.2.3.4"
      - regexp: "(?:imap|pop3)-login: Login aborted: Too many (?:invalid|bad) commands.* rip=(?P<ip>\\d+\\.\\d+\\.\\d+\\.\\d+)"

      # Matches: "Login failed: Cleartext authentication disabled"
      - regexp: "(?:imap|pop3)-login: Login failed: Cleartext authentication disabled.* rip=(?P<ip>\\d+\\.\\d+\\.\\d+\\.\\d+)"

    max_retries: 15
    find_time: "2m"
    ban_time: "1h"

    actions:
      - name: "cpgblock-dovecot"
        ban_command: '/usr/bin/cpgcli ip --temp-block {{.IP}} --reason "Blocked by {{.JailName}} due to more than {{.MaxRetry}} abusive access within {{.FindTime}} seconds" --extra " LogFile: {{.LogPath}} | Reason: {{.LogLine}}"'
        unban_command: "/usr/bin/cpgcli ip --temp-block {{.IP}} --remove"