Skip to content

Commit

Permalink
revisited docs for release
Browse files Browse the repository at this point in the history
  • Loading branch information
metablaster committed Jan 18, 2021
1 parent cecaa4e commit 95584d9
Show file tree
Hide file tree
Showing 17 changed files with 61 additions and 60 deletions.
15 changes: 8 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Here is a list of most relevant things to keep in mind.
## Table of Contents

- [How to contribute](#how-to-contribute)
- [Table of Contents](#table-of-contents)
- [Table of Contents](#table-of-contents)
- [General guidelines](#general-guidelines)
- [Environment setup](#environment-setup)
- [Code style](#code-style)
Expand Down Expand Up @@ -259,8 +259,8 @@ All of the scripts should use the same code style and order of code, without wri
of preferred code style it should be enough to take a look at the existing scripts and figure it
out right away.

Code in scripts is ordered into "sections" which depends script and purpose, in the following way
and may be different if needed for what ever reason:
Code in scripts is ordered into "sections" which depends on script and purpose, in the following
way and may be different if needed for what ever reason:

1. License notice
2. Comment based help
Expand Down Expand Up @@ -451,8 +451,9 @@ Tests must pass both Desktop and Core editions of PowerShell on multiple Windows
successful.

To test code on different OS editions you should use Hyper-V and set up virtual machines, to help
you initialize environment on target VM there is a script `Initialize-Development.ps1` which will
set up git, similarly you would run `Initialize-Project` afterwards to finish setting up environment.
you initialize development environment on target VM there is a script `Initialize-Development.ps1`
which will set up git, gpg, ssh, update or install missing modules and start requires system
services.

A hint to quickly run any function from any module in this repository is to run following command
in ex. integrated terminal in VSCode (assuming PowerShell prompt is at project root):
Expand Down Expand Up @@ -490,8 +491,8 @@ If you decide to do so it is mandatory that these code additions are done on sep
should then be regularly maintained and merged with develop branch for new changes, up until you are
done.

The plan is to expand this project to manage [nftables][nftables] firewall on linux and other
systems.
It is desired to expand this project to manage [nftables][nftables] firewall on linux and other
systems, but this likely won't happen any time soon.

[Table of Contents](#table-of-contents)

Expand Down
6 changes: 3 additions & 3 deletions Config/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@

Contains configuration files for this project and external programs.

Most of these settings are highly specialized for firewall management, which helps to reduce
the pain of settings these things over and over again.
Most of these settings are specialized for firewall management, which helps to reduce
the need to set these things over and over again.

1. `ProjectSettings.ps1` script globally affects all scripts in this repository.
2. `PSScriptAnalyzerSettings.psd1` contains PowerShell analyzer and code formatting rules.
2. `PSScriptAnalyzerSettings.psd1` contains rules for static code analysis and formatting.
3. `HelpContent` constains cabinet help content which is at the moment of no use.
4. `mTail` contains settings for mTail program.
5. `sysinternals` contains settings for tools form Microsoft's sysinternals suite.
Expand Down
5 changes: 3 additions & 2 deletions Exports/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@

# Exports directory

Exported firewall rules and settings are save to this directory.\
Can be reimported automatically, or manually if multiple candidate exports exist.
Exported firewall rules and settings are saved to this directory.

These exports can be reimported automatically, or manually if multiple candidate exports exist.
3 changes: 2 additions & 1 deletion Logs/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@

# Logs directory

Errors, warning and information logs made by scripts
Errors, warning and information logs made by scripts and modules are
all saved to this directory.
6 changes: 2 additions & 4 deletions Modules/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@

# Modules directory

Root directory for all project modules
Root directory for modules that are part of this repository.

Each module by convention must have it's own folder of same name.

`External` subfolders are 3rd party scripts which are dot sourced into modules.
Each module by design must have it's own folder of same name.
37 changes: 17 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,11 +87,10 @@ to your firewall.

## Core benefits of this firewall

1. System administrators would usually evade setting up detailed firewall because detailed firewall
configuration is time consuming process, takes a lot of troubleshooting, changes require
testing and security auditing and it only gets worse if you want to deploy firewall to hundreds or
thousands of remote computers, for example not all computers might have same software or restriction
requirements.
1. Detailed firewall configuration is time consuming process, takes a lot of troubleshooting,
changes require testing and security auditing and it only gets worse if you need to deploy firewall
to hundreds or thousands of remote computers, for example not all computers might have same software
or restriction requirements.

2. Unlike firewall rules in control panel, these rules are loaded into GPO firewall
(Local Group Policy), meaning system settings changes or random programs which install rules as
Expand All @@ -111,18 +110,18 @@ additional work.
due to ex. uninstalled program, a missing system service which no longer exists, renamed
executable after Windows update and similar reasons.

6. Unlike default (predefined) Windows firewall rules, these rules are more restrictive such as,
6. Unlike predefined Windows firewall rules, these rules are more restrictive such as,
tied to explicit user accounts, rules apply to specific ports, network interfaces, specific
executables, services etc. all of which is learned automatically from target system.

7. Updating, filtering or searching rules and attributes such as ports, addresses and similar is
much easier since these rules are in scripts (serialized), you can use editor tools such as regex,
multicursor or `CTRL + F` to perform bulk operations on your rules, doing this in any firewall GUI
is beyond all pain or not possible due to interface limitations.
much easier since these rules are in scripts, you can use editor tools such as regex, multicursor
or `CTRL + F` to perform bulk operations on your rules, doing this in any firewall UI is not always
possible due to interface limitations.

8. A good portion of code is dedicated to provide cross platform and automated solution to build and
define firewall specialized for target system and users, minimizing the need to do something
manually thus saving you much valuable administration time.
8. A good portion of code is dedicated to provide automated solution to build and define firewall
specialized for target system and users, minimizing the need to do something manually thus saving
you much valuable administration time.

[Table of Contents](#table-of-contents)

Expand All @@ -134,13 +133,11 @@ This project `Windows Firewall Ruleset` is licensed under the `MIT` license.

License and Copyright notices are maintained **"per file"**.

[Table of Contents](#table-of-contents)

## Requirements

Following table lists currently tested operating systems

| OS | Edition | Build | Architecture |
| OS | Edition | Version | Architecture |
| ------------------- | ------------- | ----------- | ------------ |
| Windows 10 | Pro | 1809 - 20H2 | x64 |
| Windows 10 | Pro Education | 20H2 | x64 |
Expand All @@ -165,7 +162,7 @@ Following table lists currently tested operating systems

- All operating systems 10.0 (Major 10, Minor 0) and above are supported,
but only those editions listed in the table above are actively tested.\
"Build" column indicates tested releases, however only latest builds continue to be tested.\
The "Version" column lists tested releases, however only latest OS builds continue to be tested.\
A list of other untested but supported systems and features is in [The future](#the-future)
- PowerShell "Core" is not built into Windows, you will need to install it separately or use
[Windows PowerShell](Readme/WindowsPowerShell.md) which is part of operating system.
Expand All @@ -178,8 +175,8 @@ to easily switch between branches or to contribute code.
own needs or contribution.
- If you get VSCode, you'll also need PowerShell extension for code navigation and PowerShell
language features.
- To navigate and edit code with VSCode, `PSScriptAnalyzer` is recommended otherwise editing
experience may behave really odd due to other project settings.
- To navigate and edit code with VSCode `PSScriptAnalyzer` is requirement, otherwise editing
experience may behave really odd due to various repository settings.
- There are no hardware requirements but if you plan to write code recommendation is min. 8GB of
memory and SSD drive to comfortably work on project, otherwise to just deploy rules to your personal
firewall less than that will work just fine.
Expand Down Expand Up @@ -241,7 +238,7 @@ contains rules will be significantly slower (depends on number of existing rules
- All errors and warnings will be saved to `Logs` directory, you can review these logs later if you
want to fix some problem, most warnings can be safely ignored but errors should be resolved.
- Any rule that results in "Access is denied" while loading should be reloaded by executing specific
script again, see [FAQ.md](Readme/FAQ.md) for more information on why this may happen.
script again, see [FAQ](Readme/FAQ.md) for more information on why this may happen.
- If the project was manually downloaded, transferred from another computer or media then you should\
unblock all files in project first to avoid YES/NO spam questions for every executing script,
by running `Scripts\Unblock-Project.ps1`\
Expand All @@ -255,7 +252,7 @@ PowerShell console may need to be restarted for "Controlled folder access" chang
user that is Administrator, if you're Administrator on your computer you'll have to either create
standard user account and use that for your everyday life or modify code to allow Administrator
online access.\
See [FAQ entry](Readme/FAQ.md#does-this-firewall-project-give-me-the-right-protection) for more
See [FAQ](Readme/FAQ.md#does-this-firewall-project-give-me-the-right-protection) for more
information why using Administrator account is not recommended for security reasons.
- Software or Windows updates may rename executables or their locations, also user accounts may be
renamed by Administrator, therefore it's important to reload specific rules from time to time as
Expand Down
13 changes: 6 additions & 7 deletions Readme/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@

# Changelog

Here is a list of changes for each of the releases.\
Here is a list of changes for each of the releases.

If you would like to see fresh changes done since last release you can do so on "develop" branch
[HERE][changelog]

## Table of Contents

- [Changelog](#changelog)
- [Table of Contents](#table-of-contents)
- [v0.10.0 (develop branch)](#v0100-develop-branch)
- [v0.9.0 (current release)](#v090-current-release)
- [v0.10.0 (current release)](#v0100-current-release)
- [v0.9.0](#v090)
- [v0.8.0](#v080)
- [v0.7.0](#v070)
- [v0.6.0](#v060)
Expand All @@ -20,9 +21,7 @@ If you would like to see fresh changes done since last release you can do so on
- [v0.3.0](#v030)
- [v0.2](#v02)

## v0.10.0 (develop branch)

**NOTE:** Changes for unreleased version (develop branch) may change or be announced upfront
## v0.10.0 (current release)

- Modules

Expand Down Expand Up @@ -94,7 +93,7 @@ If you would like to see fresh changes done since last release you can do so on

[Table of Contents](#table-of-contents)

## v0.9.0 (current release)
## v0.9.0

- Rules

Expand Down
11 changes: 6 additions & 5 deletions Readme/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@

# Readme directory

Here you will find documentation and reference for things such as
This directory contains project documentation such as:

1. Firewall troubleshooting
2. Windows firewall reference
3. Project changelog
4. Random firewall and project related documentation
- Network setup guide
- Development references
- Firewall troubleshooting
- Firewall reference
- Project changelog
2 changes: 1 addition & 1 deletion Rules/IPv4/Inbound/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

# Inbound directory

Root directory for all inbound IPv4 rules
Root directory for all inbound IPv4 firewall rules
2 changes: 1 addition & 1 deletion Rules/IPv4/Inbound/Software/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

# Software directory

Root directory for all inbound IPv4 rules for 3rd party software
Root directory for all inbound IPv4 rules based on software
2 changes: 1 addition & 1 deletion Rules/IPv4/Outbound/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

# Outbound directory

Root directory for all outbound IPv4 rules
Root directory for all outbound IPv4 firewall rules
2 changes: 1 addition & 1 deletion Rules/IPv4/Outbound/Software/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

# Software directory

Root directory for all outbound IPv4 rules for 3rd party software
Root directory for all outbound IPv4 rules based on software
2 changes: 1 addition & 1 deletion Rules/IPv4/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

# IPv4 directory

Root directory for all IPv4 rules
Root directory for all IPv4 firewall rules
2 changes: 1 addition & 1 deletion Rules/IPv6/Inbound/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

# Inbound directory

Root directory for all IPv6 inbound rules
Root directory for all inbound IPv6 firewall rules
2 changes: 1 addition & 1 deletion Rules/IPv6/Outbound/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

# Outbound directory

Root directory for all IPv6 outbound rules
Root directory for all outbound IPv6 firewall rules
6 changes: 3 additions & 3 deletions Templates/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

# Templates directory

Contains template scripts and modules for this project
Contains template scripts and modules for this repository

In addition in helping to type less, these templates also adopt
project code and formatting style.
In addition in helping to type less, these templates also adopt latest
code and formatting style used by this repository.
5 changes: 4 additions & 1 deletion Test/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,8 @@

Root directory for all unit tests

Subfolders represent tests for individual modules.\
Subfolders represent tests for individual modules or scripts.\
Root directory contains general non module tests.

**NOTE:** Not all tests will run clean and some unit tests do not run by default
such as tests for experimental or unfinished code.

0 comments on commit 95584d9

Please sign in to comment.