MFA fix, added IP blacklist, update webmail client
This commit is contained in:
@@ -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")
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user