Add base interface and ufw realisation
All checks were successful
CI.yml / build (push) Successful in 36s

This commit is contained in:
d3m0k1d
2026-01-11 16:27:45 +03:00
parent 32a03807f1
commit aec8a8286f
2 changed files with 36 additions and 0 deletions

28
internal/blocker/ufw.go Normal file
View File

@@ -0,0 +1,28 @@
package blocker
import (
"github.com/d3m0k1d/BanForge/internal/logger"
"os/exec"
)
type Ufw struct {
logger *logger.Logger
}
func NewUfw(logger *logger.Logger) *Ufw {
return &Ufw{
logger: logger,
}
}
func (ufw *Ufw) Ban(ip string) error {
cmd := exec.Command("sudo", "ufw", "--force", "deny", "from", ip)
ufw.logger.Info("Banning " + ip)
return cmd.Run()
}
func (ufw *Ufw) Unban(ip string) error {
cmd := exec.Command("sudo", "ufw", "--force", "delete", "deny", "from", ip)
ufw.logger.Info("Unbanning " + ip)
return cmd.Run()
}