feat: 封装防火墙 firewalld 相关操作

This commit is contained in:
ssongliu
2023-03-24 23:19:17 +08:00
committed by ssongliu
parent a434bbbc12
commit a2fcdabb7b
5 changed files with 403 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
package firewall
import (
"errors"
"os"
"github.com/1Panel-dev/1Panel/backend/utils/firewall/client"
)
type FirewallClient interface {
Start() error
Stop() error
Reload() error
Status() (string, error)
ListPort() ([]client.FireInfo, error)
ListRichRules() ([]client.FireInfo, error)
Port(port client.FireInfo, operation string) error
RichRules(rule client.FireInfo, operation string) error
PortForward(info client.Forward, operation string) error
}
func NewFirewallClient() (FirewallClient, error) {
if _, err := os.Stat("/usr/sbin/firewalld"); err == nil {
return client.NewFirewalld()
}
// if _, err := os.Stat("/usr/sbin/ufw"); err == nil {
// return client.NewUfw()
// }
return nil, errors.New("no such type")
}