-
Notifications
You must be signed in to change notification settings - Fork 2
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
Review traefik
configuration, preferably implement a completely dynamic configuration
#62
Comments
this starts a traefik configuration baesd purely on labels to achieve a secure template for reverse proxies used by anomaly projects, the request follows anomaly/lab-python-server#62 prototype was started in repository for simplicity sake as it has a dummy container based appliation
Letsencrypt has a staging environment which allows you to negate any rate limits when prototyping or testing your configuration. |
further onto the work on porting the traefik configuration to completely be dynamic as reported in anomaly/lab-python-server#62 this refactor moves the ssl provisioning configuration to labels and ensures that all security parameters are properly applied to the reverse proxy e.g tls version the api reverse proxies properly from the container and there's configuration for the web client to be proixed from a bucket which at the moment is not working, the configuration does not error but the gateway times out
configuration of traefik entirely via labels on docker, so far ssl comes up and the api can proxyed to the client, the bucket is yet to be served across the configuration now follows conventions found in this article and is still pending proper documentation https://jensknipper.de/blog/traefik-http-to-https-redirect/
Everything but proxying the bucket via This was discovered following my discussion on their forums. See issue: Allow to configure server URLs with label providers Awaiting this fix before we can move completely to labels.
In the meantime, I will refactor everything else but the load balancer configuration to labels. This is reflective of how the original configuration was without any documentation on why it was maintained that way. A current set of labels are maintained by traefik |
See #78 as moving to Kubernetes might invalidate this requirements. We are no longer going to use |
Is your feature request related to a problem? Please describe.
The current
traefik
configuration is a relic from when the team was working on projects and deploying them viadocker-compose
onLinode
servers.The first issues as amongst many of the things that I took handovers on is inconsistency. For example here there are various elements configured via the
dynamic
route and then others via thestatic
route.Here's an extract from the current production
docker-compose
file for production:this shows how there are a couple of different ways configurations are being read.
Further there are various security concerns in the configuration:
HSTS
headers are missingTLS
that are known to have security vulnerabilitiesX-Frame-Options
to be set toDENY
Describe the solution you'd like
Ideally we want to use a completely
dynamic
configuration based on thedocker
orkubernetes
providers. A dynamic configuration would allow us to use variables which would make the configuration generic for all our projects.Secondly we need to review the labels associated to the API container. These are a relic from when the team was working on in the applications in 2021.
Properly review the security requirements of modern web applications:
The ultimate aim of the template is to achieve
A+
security rating on any testing platform.Reverse proxy considerations
Our configure should provide reverse proxy configurations:
HSTS configuration
Label based configuration for HSTS, as per this article (again this is subject to be reviewed after my research)
Describe alternatives you've considered
None as this is the template that should serve our other applications
Additional context
As realised with much of the work that was done in 2021, these configurations are uniformed from a security standpoints and should be abandoned and built from the ground up.
Ultimately we should put the configuration through SSLlabs and see it meets the A+ requirements of a modern web application.
The text was updated successfully, but these errors were encountered: