-
Notifications
You must be signed in to change notification settings - Fork 105
Review firewall requirements #4210
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
aneta-petrova
merged 22 commits into
theforeman:master
from
aneta-petrova:review-port-requirements
Sep 18, 2025
Merged
Changes from all commits
Commits
Show all changes
22 commits
Select commit
Hold shift + click to select a range
1c5af47
Move port & firewall to Planning and review it
aneta-petrova d8d4888
Review port procedure
aneta-petrova f3dc17a
Update installing postgresql to work without firewall snippets
aneta-petrova 880a236
Drop firewall-cmd snippet from provisioning
aneta-petrova 5001a48
Merge modules on opening ports
aneta-petrova 361c6ec
Rename networking sections for clarity and consistency
aneta-petrova 27cf6d4
Tweak non-satellite topology diagram introductions
aneta-petrova 8327116
Drop comments from preparing for capsule installation
aneta-petrova bc907f5
Use attribute for server
aneta-petrova 411b8c1
Drop integrated/external proxy definitions
aneta-petrova f38d86a
Open ports only for default services
aneta-petrova 18317ea
Revert "Open ports only for default services"
aneta-petrova 63d837a
Drop note about configuration-specific ports to be opened
aneta-petrova f95141e
Fix URL to networking considerations
aneta-petrova ac2faf2
Simplify introduction
aneta-petrova f7c2828
Fix link
aneta-petrova 1cb0a23
Rephrase hint about using firewall-cmd
aneta-petrova 404bfe5
Fix link again
aneta-petrova 3c96f12
Apply suggestions from style review
aneta-petrova b5ac66f
Replace SmartProxy with SmartProxyServer
aneta-petrova 92b73b5
Reword description of a smart proxy networking setup
aneta-petrova 7a35aa1
Drop obsolete information on outgoing traffic
aneta-petrova File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 7 additions & 0 deletions
7
guides/common/assembly_networking-considerations-in-project.adoc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
include::modules/con_networking-considerations-in-project.adoc[] | ||
|
||
include::modules/con_smart-proxy-networking.adoc[leveloffset=+1] | ||
|
||
include::modules/ref_project-server-port-and-firewall-requirements.adoc[leveloffset=+1] | ||
|
||
include::modules/ref_smart-proxy-port-and-firewall-requirements.adoc[leveloffset=+1] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 4 additions & 0 deletions
4
guides/common/modules/con_networking-considerations-in-project.adoc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
[id="networking-considerations-in-{project-context}"] | ||
= Networking considerations in {Project} | ||
|
||
For the components of {Project} architecture to communicate, the required network ports must be open to enable incoming and outgoing traffic between the components. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
[id="{smart-proxy-context}-networking"] | ||
= {SmartProxy} networking | ||
|
||
The communication between {ProjectServer} and hosts registered to a {SmartProxyServer} is routed through that {SmartProxyServer}. | ||
{SmartProxyServer} also provides {Project} services to hosts. | ||
|
||
ifndef::satellite[] | ||
In a topology with hosts connecting to a {SmartProxyServer}, | ||
endif::[] | ||
ifdef::satellite[] | ||
In xref:{project-context}-topology-with-hosts-connecting-to-a-{smart-proxy-context}[], | ||
endif::[] | ||
{SmartProxyServer} provides a single endpoint for all host network communications so that in remote network segments, only firewall ports to the {SmartProxyServer} itself must be open. | ||
Hosts do not need direct access to {ProjectServer}. | ||
|
||
// TODO: Replace graphic with simpler graphic and reference to "Port and firewall requirements" | ||
ifdef::satellite[] | ||
[id="{project-context}-topology-with-hosts-connecting-to-a-{smart-proxy-context}"] | ||
.{Project} topology with hosts connecting to a {SmartProxy} | ||
image::common/topology-isolated-satellite.png[{ProjectName} topology with a host] | ||
endif::[] | ||
|
||
ifndef::satellite[] | ||
In a topology with hosts connecting directly to {ProjectServer}, | ||
endif::[] | ||
ifdef::satellite[] | ||
In xref:{project-context}-topology-with-hosts-connecting-directly-to-{project-context}-server[], | ||
endif::[] | ||
hosts need direct network access to {ProjectServer}. | ||
This applies to all {SmartProxyServers} because they are hosts of {ProjectServer}. | ||
|
||
// TODO: Replace graphic with simpler graphic and reference to "Port and firewall requirements" | ||
ifdef::satellite[] | ||
[id="{project-context}-topology-with-hosts-connecting-directly-to-{project-context}-server"] | ||
.{Project} topology with hosts connecting directly to {ProjectServer} | ||
image::common/topology-direct-satellite.png[{ProjectName} topology with a direct host] | ||
endif::[] |
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
41 changes: 0 additions & 41 deletions
41
guides/common/modules/proc_enabling-client-connections-to-project-server.adoc
This file was deleted.
Oops, something went wrong.
40 changes: 0 additions & 40 deletions
40
guides/common/modules/proc_enabling-connections-to-capsule.adoc
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
:_mod-docs-content-type: PROCEDURE | ||
|
||
[id="opening-required-ports"] | ||
= Opening required ports | ||
|
||
By opening the required ports, you ensure that the components of {Project} architecture can communicate. | ||
You must also ensure that the required network ports are open on any network-based firewalls. | ||
|
||
[NOTE] | ||
==== | ||
Some cloud solutions must be specifically configured to allow communications between machines because they isolate machines similarly to network-based firewalls. | ||
If you use an application-based firewall, ensure that the application-based firewall permits all applications that are listed in the tables and known to your firewall. | ||
If possible, disable the application checking and allow open port communication based on the protocol. | ||
==== | ||
|
||
ifndef::satellite,orcharhino[] | ||
If you do not use `firewall-cmd` to configure the Linux firewall, implement using the tool of your choice. | ||
endif::[] | ||
|
||
.Procedure | ||
. If you need to prevent the DHCP {SmartProxy} from pinging hosts to check for available IP addresses, disable DHCP IP address pinging: | ||
+ | ||
[options="nowrap", subs="+quotes,attributes"] | ||
---- | ||
# {foreman-installer} --foreman-proxy-dhcp-ping-free-ip false | ||
---- | ||
+ | ||
By default, a DHCP {SmartProxy} performs ICMP ping and TCP echo connection attempts to hosts in subnets with DHCP IPAM set to find out if an IP address considered for use is free. | ||
ifdef::katello,satellite,orcharhino[] | ||
ifeval::["{context}" == "{project-context}"] | ||
. Open the ports for clients on {ProjectServer}: | ||
endif::[] | ||
ifeval::["{context}" == "{smart-proxy-context}"] | ||
. Open the ports for clients on {SmartProxyServer}: | ||
endif::[] | ||
+ | ||
[options="nowrap"] | ||
---- | ||
# firewall-cmd \ | ||
--add-port="8000/tcp" \ | ||
--add-port="9090/tcp" | ||
---- | ||
endif::[] | ||
ifeval::["{context}" == "{project-context}"] | ||
. Allow access to services on {ProjectServer}: | ||
endif::[] | ||
ifeval::["{context}" == "{smart-proxy-context}"] | ||
. Allow access to services on {SmartProxyServer}: | ||
endif::[] | ||
+ | ||
[options="nowrap"] | ||
---- | ||
# firewall-cmd \ | ||
--add-service=dns \ | ||
aneta-petrova marked this conversation as resolved.
Show resolved
Hide resolved
|
||
--add-service=dhcp \ | ||
aneta-petrova marked this conversation as resolved.
Show resolved
Hide resolved
|
||
--add-service=tftp \ | ||
aneta-petrova marked this conversation as resolved.
Show resolved
Hide resolved
|
||
--add-service=http \ | ||
--add-service=https \ | ||
aneta-petrova marked this conversation as resolved.
Show resolved
Hide resolved
|
||
ifndef::katello,satellite,orcharhino[] | ||
--add-service=foreman-proxy \ | ||
aneta-petrova marked this conversation as resolved.
Show resolved
Hide resolved
|
||
endif::[] | ||
--add-service=puppetmaster | ||
aneta-petrova marked this conversation as resolved.
Show resolved
Hide resolved
|
||
---- | ||
aneta-petrova marked this conversation as resolved.
Show resolved
Hide resolved
|
||
. Make the changes persistent: | ||
+ | ||
[options="nowrap", subs="+quotes,verbatim,attributes"] | ||
---- | ||
# firewall-cmd --runtime-to-permanent | ||
---- | ||
|
||
.Verification | ||
* View all firewall zones and allowed services: | ||
+ | ||
[options="nowrap"] | ||
---- | ||
# firewall-cmd --list-all | ||
---- | ||
|
||
.Additional resources | ||
* {PlanningDocURL}networking-considerations-in-{project-context}[Networking considerations in {Project}] | ||
ifndef::foreman-deb[] | ||
* https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/configuring_firewalls_and_packet_filters/using-and-configuring-firewalld_firewall-packet-filters[Using and configuring firewalld in _{RHEL}{nbsp}9 Configuring firewalls and packet filters_] | ||
endif::[] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For this chapter we run into the naming problem: Capsule in downstream is IMHO something quite different than a Smart Proxy.
My interpretation:
Now looking ahead we're going to make this a bigger problem. The Insights on Premise is also recognized as a Smart Proxy. Then with pulp_smart_proxy the Pulp server can identify as a Smart Proxy.
In other words: I think soon we need to have the discussion within Red Hat: where do we want to go with this. Do we stop branding Smart Proxy as Capsule?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is actionable right now but it's interesting information so I'll keep this thread open for awareness.