MFA fix, added IP blacklist, update webmail client

This commit is contained in:
2026-08-14 13:04:55 +01:00
parent 6063f95504
commit 892f366a16
122 changed files with 13362 additions and 251 deletions
+4
View File
@@ -6,6 +6,7 @@ import (
"github.com/emersion/go-sasl"
"github.com/emersion/go-smtp"
"mailgoserver/internal/abuseguard"
"mailgoserver/internal/db"
)
@@ -76,6 +77,7 @@ func (s *Session) authenticate(username, password string) error {
if err != nil {
s.backend.Logger.Error("Authentication error: %v", err)
_ = s.backend.DB.LogAuthAttempt("sender", username, s.peerIP, false, fmt.Sprintf("Authentication error: %v", err))
abuseguard.RecordFailureAndMaybeBlacklist(s.backend.DB, s.backend.Cfg, s.backend.Logger, s.peerIP)
return s.failAuth(451, "Internal server error")
}
if sender != nil && db.CheckPassword(password, sender.PasswordHash) {
@@ -91,6 +93,7 @@ func (s *Session) authenticate(username, password string) error {
if merr != nil {
s.backend.Logger.Error("Mailbox authentication error: %v", merr)
_ = s.backend.DB.LogAuthAttempt("mailbox", username, s.peerIP, false, fmt.Sprintf("Authentication error: %v", merr))
abuseguard.RecordFailureAndMaybeBlacklist(s.backend.DB, s.backend.Cfg, s.backend.Logger, s.peerIP)
return s.failAuth(451, "Internal server error")
}
if mbox != nil {
@@ -103,6 +106,7 @@ func (s *Session) authenticate(username, password string) error {
}
_ = s.backend.DB.LogAuthAttempt("sender", username, s.peerIP, false, fmt.Sprintf("Invalid credentials for %s", username))
abuseguard.RecordFailureAndMaybeBlacklist(s.backend.DB, s.backend.Cfg, s.backend.Logger, s.peerIP)
return s.failAuth(535, "Authentication failed")
}