Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 14 additions & 4 deletions _default_asg_oss.html.md.erb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Cloud Foundry preconfigures two ASGs: `public_networks` and `dns`.
Cloud Foundry preconfigures three ASGs: `public_networks`, `dns` and the experimental `public_networks_ipv6`.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It preconfigures two. The third is added via experimental opsfile, so not on by default.


Unless you modify these before your initial deployment, these ASGs are applied by default to all containers in your deployment.

Expand All @@ -9,7 +9,12 @@ Foundry blocks outgoing traffic to the following IP address ranges by specifical
* 172.16.0.0 - 172.31.255.255
* 192.168.0.0 - 192.168.255.255

* `dns`: This group allows access to DNS on port 53 for any IP address. The default ASGs are defined in the `cf-deployment.yml` file as follows:
* `dns`: This group allows access to DNS on port 53 for any IP address.

* `public_networks_ipv6`: This group is experimentally added to manage IPv6 egress traffic. It is particularly intended for experimental use,
with caution advised due to its broad scope `2000::/3` that may not align with optimal security standards in production environments.

The default ASGs are defined in the `cf-deployment.yml` file as follows:

```
security_group_definitions:
Expand All @@ -33,6 +38,11 @@ Foundry blocks outgoing traffic to the following IP address ranges by specifical
- destination: 0.0.0.0/0
ports: '53'
protocol: udp
- name: public_networks_ipv6
rules:
- destination: 2000::/3
protocol: all
```
Modify the default ASGs to block outbound traffic as necessary for your installation. To see how the ASGs are defined by
default, see the [cf-deployment.yml](https://github.com/cloudfoundry/cf-deployment/blob/main/cf-deployment.yml#L604-L627) file on GitHub.

Modify the default ASGs to block outbound traffic as necessary for your installation. To see how the ASGs are defined by
default, see the [cf-deployment.yml](https://github.com/cloudfoundry/cf-deployment/blob/main/cf-deployment.yml#L894-L914) file on GitHub.
17 changes: 17 additions & 0 deletions asg.html.md.erb
Original file line number Diff line number Diff line change
Expand Up @@ -356,6 +356,7 @@ The following table describes examples of typical ASGs. Configure your ASGs in a
| --- | ---
| `dns` | DNS, either public or private |
| `public-networks` | Public networks, excluding IaaS metadata endpoints |
| `public_networks_ipv6` | Public IPV6 networks |
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| `public_networks_ipv6` | Public IPV6 networks |
| `public_networks_ipv6` | Public IPv6 networks |

| `private-networks` | Private networks in accordance with [RFC-1918](https://tools.ietf.org/html/rfc1918#section-3) |
| `load-balancers` | The internal <%= vars.app_runtime_abbr %> load balancer and others |
| `internal-proxies` | Internal proxies |
Expand Down Expand Up @@ -416,6 +417,22 @@ The following is an example `public_networks` ASG:
]
```

### <a id='public-networks-ipv6-example'></a> Public IPv6 networks

For IPv6-enabled environments, public repositories and services are generally accessible within the range 2000::/3.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is for IPv6 networking in general, not specific to CF. The idea is that addressing was approached in a different way for IPv6, where there is a known "public" range. In IPv6 everything that is not explicitly private is public. This is not the case in IPv6.

As this configuration is in an experimental phase, the provided range is intended for testing purposes only. Before deploying in production environments, additional research on IPs to exclude for enhanced security is recommended.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"additional research" seems very vague. There are a few examples in the comment in the ops file that could be useful (i.e. things that are considered "internal" and protected otherwise, but from within the CF environment they're still reachable but shouldn't be)


The following is an example `public_networks_ipv6` ASG:

```
[
{
"destination": "2000::/3",
"protocol": "all"
}
]
```

### <a id='private-networks-example'></a> Private networks

Network connections that are commonly allowable in private networks include endpoints such as proxy servers, Docker registries, load balancers, databases, messaging servers, directory servers, and file servers. Configure appropriate private network ASGs as appropriate. You might find it helpful to use a naming convention with `private_networks` as part of the ASG name, such as `private_networks_databases`.
Expand Down