Firewall

Firewall includes UltimateGuard (WFP) and NetfilterSDK configuration and examples

Firewall config

Requests that presented below are uses for configure firewall:

Enable - enable firewall.

var request = new FirewallRequest { Enable = EmptyRequest.Empty, }

Disable - disables firewall (disabled all firewall features).

var request = new FirewallRequest { Disable = EmptyRequest.Empty, }

UpdateBypassDomains - updates bypass domain list, constructor contains:

var request = new FirewallRequest
    {
        UpdateBypassDomains = new UpdateBypassDomainsRequest
        {
            Domains = new List<string> { "domain", },
        }
    }

UpdateBypassProcessesRequest - updates bypass proceses list

var request = new FirewallRequest
    {
        UpdateBypassDomains = new UpdateBypassDomainsRequest
        {
            Processes = new List<string> { "PathToTheProcessExe", },
        }
    }

PermitProcess - adds a process to killswitch exceptions list

var request = new FirewallRequest
    {
        PermitProcess = new PermitProcessRequest
        {
            ProcessPath = "PathToTheProcessExe",
        }
    }

RemovePermitProcess - removes a process to killswitch exceptions list

var request = new FirewallRequest
    {
        RemoveProcessPermit= new RemoveProcessPermitRequest
        {
            ProcessPath = "PathToTheProcessExe",
        }
    }

EnableDnsMonitor - enables DNS monitor

var request = new FirewallRequest
    {
       EnableDnsMonitor = new EnableDnsMonitorRequest(),
    }

DisableDnsMonitor - disables DNS monitor

var request = new FirewallRequest
    {
       DisableDnsMonitor = new DisableDnsMonitorRequest(),
    }

GetKillSwitchState - returns killswitch state

var request = new FirewallRequest
    {
       GetKillSwitchState = EmptyRequest.Empty,
    }

ConfigureFirewallAsync

Sends firewall configuration to the service.

Example:
        var sdk = new SDK();
        var request = new FirewallRequest()
        {
            UpdateBypassDomains =
                    new UpdateBypassDomainsRequest()
                    {
                        Domains = new List<string>(),
                    },
            UpdateBypassProcesses =
                    new UpdateBypassProcessesRequest()
                    {
                        Processes = new List<string>(),
                    },
        };
        
        var configureFirewallResponse = await sdk.ConfigureFirewallAsync(request).ConfigureAwait(false);
        Console.WriteLine(configureFirewallResponse.UpdateBypassProcesses);
        Console.WriteLine(configureFirewallResponse.UpdateBypassDomains);

Last updated