Walter.Web.FireWall.DiskLogger 2022.11.27.1059

The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org. Prefix Reserved
.NET 6.0
dotnet add package Walter.Web.FireWall.DiskLogger --version 2022.11.27.1059
NuGet\Install-Package Walter.Web.FireWall.DiskLogger -Version 2022.11.27.1059
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Walter.Web.FireWall.DiskLogger" Version="2022.11.27.1059" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Walter.Web.FireWall.DiskLogger --version 2022.11.27.1059
#r "nuget: Walter.Web.FireWall.DiskLogger, 2022.11.27.1059"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Walter.Web.FireWall.DiskLogger as a Cake Addin
#addin nuget:?package=Walter.Web.FireWall.DiskLogger&version=2022.11.27.1059

// Install Walter.Web.FireWall.DiskLogger as a Cake Tool
#tool nuget:?package=Walter.Web.FireWall.DiskLogger&version=2022.11.27.1059

Windows firewall management

You can use the windows firewall from as shown in this class The NuGet package uses the PowerShell command s in combination with a file watcher but there are several ways to interact with a physical firewall from code

/*
To use windows Firewall com object add a reference to %system32%\FirewallAPI.dll 
*/
    class FireWallHelper
    {
        const string guidFWPolicy2 = "{E2B3C97F-6AE1-41AC-817A-F6F92166D7DD}";
        const string guidRWRule = "{2C5BC43E-3369-4C33-AB0C-BE9469677AF4}";
        static Type typeFWPolicy2;
        static Type typeFWRule;
        static INetFwPolicy2 fwPolicy2;
        static FireWallHelper()
        {
            typeFWPolicy2 = Type.GetTypeFromCLSID(new Guid(guidFWPolicy2));
            typeFWRule = Type.GetTypeFromCLSID(new Guid(guidRWRule));
            fwPolicy2 = (INetFwPolicy2)Activator.CreateInstance(typeFWPolicy2);

        }
        public static bool IsPortOpen(int port)
        {
            EnsureSetup();

            Type progID = Type.GetTypeFromProgID("HNetCfg.FwMgr");
            INetFwMgr firewall = Activator.CreateInstance(progID) as INetFwMgr;
            INetFwOpenPorts ports = firewall.LocalPolicy.CurrentProfile.GloballyOpenPorts;
            IEnumerator portEnumerate = ports.GetEnumerator();
            while ((portEnumerate.MoveNext()))
            {
                INetFwOpenPort currentPort = portEnumerate.Current as INetFwOpenPort;
                if (currentPort.Port == port)
                    return true;
            }
            return false;
        }
        static INetFwRule MakeRule(IPAddress remoteIP, string ruleName = null)
        {
            INetFwRule rule = (INetFwRule)Activator.CreateInstance(typeFWRule);
            rule.Name = ruleName ?? $"Inbound block IP {remoteIP}";
            rule.Description = $"Block inbound traffic from {remoteIP} over TCP port";
            rule.Protocol = (int)NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_ANY;
            rule.RemoteAddresses = remoteIP.ToString();
            rule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN;
            rule.Enabled = true;
            rule.Grouping = "@firewallapi.dll,-23255";
            rule.Profiles = fwPolicy2.CurrentProfileTypes;
            return rule;
        }
        static INetFwRule MakeRule(int port, IPAddress remoteIP, string ruleName = null)
        {
            INetFwRule rule = (INetFwRule)Activator.CreateInstance(typeFWRule);
            rule.Name = ruleName ?? $"Inbound block IP {remoteIP}";
            rule.Description = $"Block inbound traffic from {remoteIP} over TCP port {port}";
            rule.Protocol = (int)NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_ANY;
            rule.LocalPorts = port.ToString();
            rule.RemoteAddresses = remoteIP.ToString();
            rule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN;
            rule.Enabled = true;
            rule.Grouping = "@firewallapi.dll,-23255";
            rule.Profiles = fwPolicy2.CurrentProfileTypes;
            return rule;
        }

        public static void OpenPort(int port, IPAddress remoteIP, string ruleName = null)
        {
            EnsureSetup();
            var newRule = MakeRule(port, remoteIP, ruleName);
            newRule.Enabled = false;
            newRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW;
            fwPolicy2.Rules.Add(newRule);
        }
        public static void ClosePort(int port, IPAddress remoteIP, string ruleName)
        {
            EnsureSetup();
            var newRule = MakeRule(port, remoteIP, ruleName);

            newRule.Action = NET_FW_ACTION_.NET_FW_ACTION_BLOCK;
            fwPolicy2.Rules.Add(newRule);

        }

        public static void CloseIP(IPAddress remoteIP, string ruleName)
        {
            EnsureSetup();
            var newRule = MakeRule(remoteIP, ruleName);

            newRule.Action = NET_FW_ACTION_.NET_FW_ACTION_BLOCK;
            fwPolicy2.Rules.Add(newRule);
        }

        public static void OpenIP(IPAddress remoteIP, string ruleName)
        {
            EnsureSetup();

            var newRule = MakeRule(remoteIP, ruleName);

            newRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW;
            fwPolicy2.Rules.Add(newRule);
        }

        public static void OpenPort(int port, string applicationName)
        {
            EnsureSetup();

            if (IsPortOpen(port))
                return;

            INetFwOpenPort openPort = GetInstance("INetOpenPort") as INetFwOpenPort;
            openPort.Port = port;
            openPort.Protocol = NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP;
            openPort.Name = applicationName;

            INetFwOpenPorts openPorts = sm_fwProfile.GloballyOpenPorts;
            openPorts.Add(openPort);
        }

        public static void ClosePort(int port)
        {
            EnsureSetup();

            if (!IsPortOpen(port))
                return;

            INetFwOpenPorts ports = sm_fwProfile.GloballyOpenPorts;
            ports.Remove(port, NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP);
        }

        private static object GetInstance(string typeName)
        {
            Type tpResult = null;
            switch (typeName)
            {
                case "INetFwMgr":
                    tpResult = Type.GetTypeFromCLSID(new Guid("{304CE942-6E39-40D8-943A-B913C40C9CD4}"));
                    return Activator.CreateInstance(tpResult);
                case "INetAuthApp":
                    tpResult = Type.GetTypeFromCLSID(new Guid("{EC9846B3-2762-4A6B-A214-6ACB603462D2}"));
                    return Activator.CreateInstance(tpResult);
                case "INetOpenPort":
                    tpResult = Type.GetTypeFromCLSID(new Guid("{0CA545C6-37AD-4A6C-BF92-9F7610067EF5}"));
                    return Activator.CreateInstance(tpResult);
                default:
                    throw new Exception("Unknown type name: " + typeName);
            }
        }

        private static void EnsureSetup()
        {
            if (sm_fwProfile != null)
                return;

            INetFwMgr fwMgr = GetInstance("INetFwMgr") as INetFwMgr;
            sm_fwProfile = fwMgr.LocalPolicy.CurrentProfile;
        }

        private static INetFwProfile sm_fwProfile = null;

    }


Product Versions
.NET net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2022.11.27.1059 57 11/27/2022
2022.11.21.338 58 11/21/2022
2022.11.14.1819 72 11/14/2022
2022.11.13.917 77 11/13/2022
2022.10.31.740 98 11/1/2022
2022.10.15.652 140 10/15/2022
2022.10.1.810 178 10/1/2022
2022.9.26.1444 177 9/26/2022
2022.9.14.1508 243 9/14/2022
2022.9.14.809 238 9/14/2022
2022.9.8.1009 238 9/8/2022
2022.8.20.1007 213 8/20/2022
2022.8.1.1 224 7/31/2022
2022.7.1300 234 7/1/2022
2022.7.31.1016 232 7/31/2022
2022.7.15.841 240 7/15/2022
2022.6.21.647 255 6/21/2022
2022.5.18.638 258 5/19/2022
2022.5.16.853 260 5/19/2022
2022.5.16.816 293 5/16/2022
2022.5.4.1010 271 5/4/2022
2022.4.10.947 314 4/10/2022
2022.4.10.925 317 4/10/2022
2022.4.10.828 331 4/10/2022
2022.4.1.1545 365 4/1/2022
2022.3.31.823 313 3/31/2022
2022.3.26.1103 332 3/26/2022
2022.3.26.820 362 3/26/2022
2022.3.25.840 334 3/26/2022
2022.2.16.1131 367 2/17/2022
2022.2.16.834 351 2/17/2022
2022.2.5.1114 383 2/5/2022
2022.1.17.1158 391 1/17/2022
2022.1.10.1505 444 1/10/2022
2022.1.10.537 436 1/10/2022
2022.1.5.1139 470 1/8/2022
2021.12.28.1452 596 12/28/2021
2021.12.16.812 486 12/16/2021
2021.11.23.1528 6,666 11/24/2021
2021.11.21.925 554 11/22/2021
2021.11.19.1503 661 11/22/2021
2021.11.19.847 652 11/19/2021
2021.11.18.1824 446 11/16/2021
2021.11.10.852 572 11/10/2021
2021.11.9.2021 773 11/9/2021
2021.11.8.2109 323 11/9/2021
2021.11.8.1612 354 11/8/2021
2021.11.7.1021 373 11/8/2021
2021.11.3.1612 402 11/4/2021
2021.11.1.1102 428 11/1/2021
2021.10.25.1206 463 10/25/2021
2021.10.23.1310 415 10/25/2021
2021.10.19.1522 401 10/19/2021
2021.10.16.1325 401 10/18/2021
2021.10.6.1546 386 10/6/2021
2021.10.5.1450 524 10/5/2021
2021.10.4.1155 462 10/5/2021
2021.10.1.753 397 10/1/2021
2021.9.27.1005 387 9/28/2021
2021.9.26.1913 461 9/26/2021
2021.9.19.1015 450 9/19/2021
2021.9.17.1702 431 9/17/2021
2021.9.17.1449 379 9/17/2021
2021.9.13.1600 409 9/13/2021
2021.9.12.1100 448 9/13/2021
2021.9.11.2004 473 9/11/2021
2021.9.9.1110 514 9/9/2021
2021.9.7.1901 594 9/8/2021
2021.9.7.1121 430 9/7/2021
2021.9.6.1518 468 9/7/2021
2021.9.4.1124 571 9/4/2021
2021.9.2.708 439 9/4/2021
2021.9.0.1259 407 9/2/2021
2021.8.2200 379 8/23/2021
2021.8.2100 379 8/23/2021
2021.8.22.900 430 8/22/2021
2021.8.18.1500 444 8/18/2021
2021.8.18.930 521 8/18/2021
2021.8.14.1600 474 8/16/2021
2021.8.9.1105 422 8/9/2021
2021.8.8.1612 441 8/8/2021
2021.8.8.1138 555 8/8/2021
2021.8.6.1044 478 8/6/2021
2021.8.4.1355 484 8/5/2021
2021.7.30.2118 557 7/31/2021
2021.7.27.926 414 7/28/2021
2021.7.23.931 457 7/26/2021
2021.7.22.1456 438 7/23/2021
2021.7.15.1547 544 7/15/2021
2021.7.13.812 476 7/13/2021
2021.7.8.1527 502 7/10/2021
2021.7.5.1649 380 7/5/2021
2021.6.29.1453 469 6/30/2021
2021.6.26.1753 552 6/27/2021
2021.6.25.1849 541 6/25/2021
2021.6.24.1518 435 6/24/2021
2021.6.20.729 479 6/20/2021
2021.6.15.2006 487 6/15/2021
2021.6.14.2025 477 6/15/2021
2021.6.13.2035 430 6/14/2021
2021.6.12.1154 471 6/13/2021
2021.6.9.1120 392 6/9/2021
2021.6.3.1509 427 6/3/2021
2021.5.31.1533 469 5/31/2021
2021.5.31.1415 427 5/31/2021
2021.5.24.1128 462 5/24/2021
2021.5.24.1019 417 5/24/2021
2021.5.12.1054 367 5/12/2021
2021.5.12.637 426 5/12/2021
2021.5.10.1442 552 5/11/2021
2021.5.8.1226 368 5/8/2021
2021.5.6.2037 407 5/6/2021
2021.5.5.1901 389 5/6/2021
2021.5.3.1621 398 5/4/2021
2021.5.1.905 447 5/1/2021
2021.4.28.1511 382 4/28/2021
2021.4.20.1520 407 4/21/2021
2021.4.16.738 371 4/21/2021
2021.4.14.1216 458 4/16/2021
2021.4.9.1538 365 4/13/2021
2021.4.8.947 402 4/13/2021
2021.4.6.1235 414 4/6/2021
2021.4.5.1653 385 4/5/2021
2021.4.1.913 350 4/1/2021
2021.3.31.2003 411 4/1/2021
2021.3.18.1622 395 3/18/2021
2021.3.3.1259 382 3/3/2021
2021.3.2.1415 403 3/2/2021
2021.3.1.11 422 2/28/2021
2021.3.1.1 400 2/27/2021
2021.3.1 423 2/27/2021
2021.2.23.6 452 2/23/2021
2021.2.21.1 390 2/21/2021
2021.2.20.1 401 2/20/2021
2021.2.19.2 397 2/19/2021
2021.2.18.6 394 2/19/2021
2021.2.16.1 407 2/16/2021
2021.2.15.3 404 2/15/2021
2021.2.15.1 399 2/14/2021
2021.2.14.3 418 2/14/2021
2021.2.12.6 383 2/12/2021
2021.2.12.2 392 2/12/2021
2021.2.11.1 423 2/11/2021
2021.2.10.1 409 2/10/2021
2021.2.8.1 465 2/9/2021
2021.2.7.2 438 2/7/2021
2021.2.7.1 412 2/6/2021
2020.12.27.6 499 12/27/2020
2020.12.27.1 448 12/27/2020
2020.12.26.7 478 12/27/2020
2020.12.26.5 413 12/27/2020
2020.12.26.3 468 12/27/2020
2020.12.19.1 564 12/19/2020
2020.12.16.1 424 12/16/2020
2020.12.15.1 436 12/15/2020
2020.12.14.5 431 12/14/2020
2020.12.14.4 480 12/14/2020
2020.12.14.3 450 12/14/2020
2020.12.5.1 480 12/5/2020
2020.12.4.4 476 12/4/2020
2020.12.4.3 461 12/4/2020
2020.12.4.1 498 12/4/2020
2020.12.3.1 501 12/3/2020
2020.12.2.4 421 12/2/2020
2020.12.2.3 513 12/2/2020
2020.12.1.1 462 12/1/2020
2020.11.28.1 447 11/28/2020
2020.11.27.2 485 11/27/2020
2020.11.27.1 468 11/27/2020
2020.11.25.1 447 11/25/2020
2020.11.22.3 501 11/23/2020
2020.11.20.1 510 11/21/2020
2020.11.19.3 478 11/19/2020
2020.11.19.1 490 11/19/2020
2020.11.18.2 502 11/18/2020
2020.11.17.2 504 11/17/2020
2020.11.17.1 429 11/17/2020
2020.11.15.1 480 11/15/2020
2020.11.14.1 523 11/14/2020
2020.11.13.2 466 11/13/2020
2020.11.13.1 466 11/13/2020
2020.11.12.1 474 11/12/2020
2020.11.11.1 432 11/11/2020
2020.11.8.1 519 11/8/2020
2020.11.7.1 480 11/7/2020
2020.11.5.1 448 11/5/2020
2020.11.3.1 490 11/3/2020
2020.11.1.3 488 11/1/2020
2020.11.1.2 503 11/1/2020
2020.11.1.1 443 11/1/2020
2020.10.30.1 518 11/1/2020
2020.10.15.3 485 10/15/2020
2020.10.15.2 475 10/15/2020
2020.10.14.1 455 10/14/2020
2020.10.13.1 477 10/13/2020
2020.10.12.2 494 10/12/2020
2020.10.12.1 455 10/12/2020
2020.10.10.1 611 10/10/2020
2020.10.9.6 452 10/9/2020
2020.10.9.2 449 10/9/2020
2020.10.9.1 472 10/9/2020
2020.10.8.1 452 10/8/2020
2020.10.6.8 476 10/7/2020
2020.10.6.6 455 10/7/2020
2020.10.6.5 519 10/7/2020
2020.10.6.4 446 10/7/2020
2020.10.6.3 544 10/7/2020
2020.10.6.2 494 10/7/2020
2020.10.6.1 498 10/7/2020
2020.10.5.1 525 10/6/2020
2020.10.1.3 441 10/1/2020
2020.10.1.2 437 10/1/2020
2020.10.1.1 445 10/1/2020
2020.9.29.10 511 9/29/2020
2020.9.29.9 523 9/29/2020
2020.9.28.2 481 9/28/2020
2020.9.28.1 515 9/28/2020
2020.9.25.1 604 9/26/2020
2020.9.24.2 460 9/24/2020
2020.9.24 438 9/24/2020
2020.9.23.2 456 9/23/2020
2020.9.23.1 470 9/23/2020
2020.9.22.1 497 9/22/2020
2020.9.21.1 503 9/21/2020
2020.9.17.2 523 9/17/2020
2020.9.16.1 525 9/16/2020
2020.9.16 506 9/16/2020

Major releases that add functionality other than optimization and minor bug fixing
14 November 2022
- Update NuGet Packages

6 November 2022
- Add support for .Net 7

15 November 2022
- Update NuGet package references

1 October 2022
- Update build with new SDK
- Update code sign certificates

14 September 2022
- Update to include new package 6.0.X and Microsoft CVE-2022-38013

02 September 2022
- Please make sure to update servers using this packages due to a security bug in .net
> System.Security.Cryptography.Xml      4.5.0      Moderate   https://github.com/advisories/GHSA-2m65-m22p-9wjw
     > System.Text.Encodings.Web             4.5.0      Critical   https://github.com/advisories/GHSA-ghhp-997w-qr28

15 June 2022
- Update to support .net 6.0.7 and 3.1.27
- Update package references

4 May 2022
- Update NuGet References

15 March 2022
- update to 6.0.3

16 December 2021
- Update to .Net SDK update 14 December for .NET CORE 3.1.416, and .NET 5.0.404 and 6.0.101

9 November 2021
- Fix package dependency on vulnerable packages from Microsoft by upgrading vulnerable packages

08 November 2021
- Update to .Net NuGet packages .NET 6.0.0, .NET 5.0.403 and core 3.1.415

19 September
- Update NuGet packages release for .Net 5.0.10

8 Aug 2021
- update to .NET 6.0 SDK (v6.0.100-preview.6)

30 June 2021
- Add .Net 6.0 binaries to the NuGet package

15 June 2021
- Update to .Net Core 3.1.17 and .Net 5.0.8 SDK

09 June 2021
- Update to .Net SDK 5.0.301 and 3.1.410

31 April 2021
- Update debugger display to improve debugging experience
- Update on incident and communication interfaces
- Improved IFireWall WHOIS query method and include ISP counters

12 April 2021
- Update to new code base after .net security violation fix

22 March 2021
- Performance update

05 March 2021
- Update package reference

12 February 2021
- Framework extension changes
- Update package references

02 January 2021
- Updated terms and conditions to REL. 2021.01.02

29 December 2020
- Update package reference

23 December 2020
- Update package reference

19 December 2020
- Update package references

14 December 2020
- Update package references

12 December 2020
- Update package references
- Compile with Language version 9.0

04 December 2020
- Update package references

22 November 2020
- Update compiler hints improving .net Core 3.1 and .Net 5.0 compiled binaries

11 November 2020
- Update packages and support .Net 5.0

08 November 2020
- Update signatures and NuGet package references

14 October 2020
- Update to .net core 3.1.4

05 October 2020
- Update terms
- update NuGet package references

16 September 2020
- Add post processes support via options
- separate the Firewall integrated disk logging infrastructure to an external NuGet package to align licensing