Update ufw
All checks were successful
CI.yml / build (push) Successful in 38s

This commit is contained in:
d3m0k1d
2026-01-11 17:56:19 +03:00
parent 1cc9f3d191
commit 424f5db9af
2 changed files with 34 additions and 4 deletions

View File

@@ -16,13 +16,25 @@ func NewUfw(logger *logger.Logger) *Ufw {
}
func (ufw *Ufw) Ban(ip string) error {
validateIP(ip)
cmd := exec.Command("sudo", "ufw", "--force", "deny", "from", ip)
ufw.logger.Info("Banning " + ip)
return cmd.Run()
output, err := cmd.CombinedOutput()
if err != nil {
ufw.logger.Error(err.Error())
return err
}
ufw.logger.Info("Banning " + ip + " " + string(output))
return nil
}
func (ufw *Ufw) Unban(ip string) error {
validateIP(ip)
cmd := exec.Command("sudo", "ufw", "--force", "delete", "deny", "from", ip)
ufw.logger.Info("Unbanning " + ip)
return cmd.Run()
output, err := cmd.CombinedOutput()
if err != nil {
ufw.logger.Error(err.Error())
return err
}
ufw.logger.Info("Unbanning " + ip + " " + string(output))
return nil
}

View File

@@ -0,0 +1,18 @@
package blocker
import (
"fmt"
"net"
)
func validateIP(ip string) error {
if ip == "" {
return fmt.Errorf("empty IP")
}
if net.ParseIP(ip) == nil {
return fmt.Errorf("invalid IP: %s", ip)
}
return nil
}