integrating iptables/nft checks

This commit is contained in:
afeiszli 2022-08-22 09:34:43 -04:00
parent 484b628848
commit b72fa12470

View file

@ -113,15 +113,23 @@ func GetWireGuard() string {
// IsNFTablesPresent - returns true if nftables is present, false otherwise. // IsNFTablesPresent - returns true if nftables is present, false otherwise.
// Does not consider OS, up to the caller to determine if the OS supports nftables/whether this check is valid. // Does not consider OS, up to the caller to determine if the OS supports nftables/whether this check is valid.
func IsNFTablesPresent() bool { func IsNFTablesPresent() bool {
nftFound := FileExists("/usr/sbin/nft") found := false
logger.Log(3, "nftables found:", strconv.FormatBool(nftFound)) _, err := exec.LookPath("nft")
return nftFound if err == nil {
found = true
}
return found
} }
// IsIPTablesPresent - returns true if iptables is present, false otherwise // IsIPTablesPresent - returns true if iptables is present, false otherwise
// Does not consider OS, up to the caller to determine if the OS supports iptables/whether this check is valid. // Does not consider OS, up to the caller to determine if the OS supports iptables/whether this check is valid.
func IsIPTablesPresent() bool { func IsIPTablesPresent() bool {
return FileExists("/usr/sbin/iptables") found := false
_, err := exec.LookPath("iptables")
if err == nil {
found = true
}
return found
} }
// IsKernel - checks if running kernel WireGuard // IsKernel - checks if running kernel WireGuard
@ -523,16 +531,7 @@ func CheckUID() {
// CheckFirewall - checks if iptables of nft install, if not exit // CheckFirewall - checks if iptables of nft install, if not exit
func CheckFirewall() { func CheckFirewall() {
found := false if !IsIPTablesPresent() && !IsNFTablesPresent() {
_, err := exec.LookPath("iptables")
if err == nil {
found = true
}
_, err = exec.LookPath("nft")
if err == nil {
found = true
}
if !found {
log.Fatal("neither iptables nor nft is installed - please install one or the other and try again") log.Fatal("neither iptables nor nft is installed - please install one or the other and try again")
} }
} }