Compare commits
4 Commits
v0.6.0
...
efa9abb289
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
efa9abb289 | ||
|
|
2747abfc04 | ||
|
|
66d460dbfc | ||
|
|
783645c30b |
19
README.md
19
README.md
@@ -22,6 +22,7 @@ If you have any questions or suggestions, create issue on [Github](https://githu
|
|||||||
- [x] Rule system
|
- [x] Rule system
|
||||||
- [x] Nginx and Sshd support
|
- [x] Nginx and Sshd support
|
||||||
- [x] Working with ufw/iptables/nftables/firewalld
|
- [x] Working with ufw/iptables/nftables/firewalld
|
||||||
|
- [x] Prometheus metrics
|
||||||
- [ ] Add support for most popular web-service
|
- [ ] Add support for most popular web-service
|
||||||
- [ ] User regexp for custom services
|
- [ ] User regexp for custom services
|
||||||
- [ ] TUI interface
|
- [ ] TUI interface
|
||||||
@@ -40,10 +41,10 @@ In release page you can find rpm, deb, apk packages, for amd or arm architecture
|
|||||||
### Debian/Ubuntu(.deb)
|
### Debian/Ubuntu(.deb)
|
||||||
```bash
|
```bash
|
||||||
# Download the latest DEB package
|
# Download the latest DEB package
|
||||||
wget https://gitea.d3m0k1d.ru/d3m0k1d/BanForge/releases/download/v0.4.0/banforge_0.4.0_linux_amd64.deb
|
wget https://gitea.d3m0k1d.ru/d3m0k1d/BanForge/releases/download/v0.6.0/banforge_0.6.0_linux_amd64.deb
|
||||||
|
|
||||||
# Install
|
# Install
|
||||||
sudo dpkg -i banforge_0.4.0_linux_amd64.deb
|
sudo dpkg -i banforge_0.6.0_linux_amd64.deb
|
||||||
|
|
||||||
# Verify installation
|
# Verify installation
|
||||||
sudo systemctl status banforge
|
sudo systemctl status banforge
|
||||||
@@ -53,13 +54,13 @@ sudo systemctl status banforge
|
|||||||
```bash
|
```bash
|
||||||
|
|
||||||
# Download
|
# Download
|
||||||
wget https://gitea.d3m0k1d.ru/d3m0k1d/BanForge/releases/download/v0.4.0/banforge_0.4.0_linux_amd64.rpm
|
wget https://gitea.d3m0k1d.ru/d3m0k1d/BanForge/releases/download/v0.6.0/banforge_0.6.0_linux_amd64.rpm
|
||||||
|
|
||||||
# Install
|
# Install
|
||||||
sudo rpm -i banforge_0.4.0_linux_amd64.rpm
|
sudo rpm -i banforge_0.6.0_linux_amd64.rpm
|
||||||
|
|
||||||
# Or with dnf (CentOS 8+, AlmaLinux)
|
# Or with dnf (CentOS 8+, AlmaLinux)
|
||||||
sudo dnf install banforge_0.4.0_linux_amd64.rpm
|
sudo dnf install banforge_0.6.0_linux_amd64.rpm
|
||||||
|
|
||||||
# Verify
|
# Verify
|
||||||
sudo systemctl status banforge
|
sudo systemctl status banforge
|
||||||
@@ -69,10 +70,10 @@ sudo systemctl status banforge
|
|||||||
```bash
|
```bash
|
||||||
|
|
||||||
# Download
|
# Download
|
||||||
wget https://gitea.d3m0k1d.ru/d3m0k1d/BanForge/releases/download/v0.4.0/banforge_0.4.0_linux_amd64.apk
|
wget https://gitea.d3m0k1d.ru/d3m0k1d/BanForge/releases/download/v0.6.0/banforge_0.6.0_linux_amd64.apk
|
||||||
|
|
||||||
# Install
|
# Install
|
||||||
sudo apk add --allow-untrusted banforge_0.4.0_linux_amd64.apk
|
sudo apk add --allow-untrusted banforge_0.6.0_linux_amd64.apk
|
||||||
|
|
||||||
# Verify
|
# Verify
|
||||||
sudo rc-service banforge status
|
sudo rc-service banforge status
|
||||||
@@ -82,10 +83,10 @@ sudo rc-service banforge status
|
|||||||
```bash
|
```bash
|
||||||
|
|
||||||
# Download
|
# Download
|
||||||
wget https://gitea.d3m0k1d.ru/d3m0k1d/BanForge/releases/download/v0.4.0/banforge_0.4.0_linux_amd64.pkg.tar.zst
|
wget https://gitea.d3m0k1d.ru/d3m0k1d/BanForge/releases/download/v0.6.0/banforge_0.6.0_linux_amd64.pkg.tar.zst
|
||||||
|
|
||||||
# Install
|
# Install
|
||||||
sudo pacman -U banforge_0.4.0_linux_amd64.pkg.tar.zst
|
sudo pacman -U banforge_0.6.0_linux_amd64.pkg.tar.zst
|
||||||
|
|
||||||
# Verify
|
# Verify
|
||||||
sudo systemctl status banforge
|
sudo systemctl status banforge
|
||||||
|
|||||||
1
internal/actions/email.go
Normal file
1
internal/actions/email.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package actions
|
||||||
7
internal/actions/interface.go
Normal file
7
internal/actions/interface.go
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
package actions
|
||||||
|
|
||||||
|
type Action struct {
|
||||||
|
Name string
|
||||||
|
Type string
|
||||||
|
Args []string
|
||||||
|
}
|
||||||
1
internal/actions/scripts.go
Normal file
1
internal/actions/scripts.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package actions
|
||||||
24
internal/actions/webhooks.go
Normal file
24
internal/actions/webhooks.go
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
package actions
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"net/http"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func SendWebhook(url string, data []byte) (int, error) {
|
||||||
|
client := &http.Client{
|
||||||
|
Timeout: 30 * time.Second,
|
||||||
|
}
|
||||||
|
req, err := http.NewRequest("POST", url, bytes.NewReader(data))
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
// #nosec G704 validating by admin
|
||||||
|
resp, err := client.Do(req)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return resp.StatusCode, nil
|
||||||
|
}
|
||||||
@@ -31,9 +31,29 @@ type Rule struct {
|
|||||||
Method string `toml:"method"`
|
Method string `toml:"method"`
|
||||||
MaxRetry int `toml:"max_retry"`
|
MaxRetry int `toml:"max_retry"`
|
||||||
BanTime string `toml:"ban_time"`
|
BanTime string `toml:"ban_time"`
|
||||||
|
Action []Action
|
||||||
}
|
}
|
||||||
|
|
||||||
type Metrics struct {
|
type Metrics struct {
|
||||||
Enabled bool `toml:"enabled"`
|
Enabled bool `toml:"enabled"`
|
||||||
Port int `toml:"port"`
|
Port int `toml:"port"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Actions
|
||||||
|
type Action struct {
|
||||||
|
Type string `toml:"type"`
|
||||||
|
Enabled bool `toml:"enabled"`
|
||||||
|
URL string `toml:"url"`
|
||||||
|
Headers map[string]string `toml:"headers"`
|
||||||
|
Body string `toml:"body"`
|
||||||
|
Email string `toml:"email"`
|
||||||
|
EmailSender string `toml:"email_sender"`
|
||||||
|
EmailSubject string `toml:"email_subject"`
|
||||||
|
SMTPHost string `toml:"smtp_host"`
|
||||||
|
SMTPPort int `toml:"smtp_port"`
|
||||||
|
SMTPUser string `toml:"smtp_user"`
|
||||||
|
SMTPPassword string `toml:"smtp_password"`
|
||||||
|
SMTPTLS bool `toml:"smtp_tls"`
|
||||||
|
Interpretator string `toml:"interpretator"`
|
||||||
|
Script string `toml:"script"`
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user