Network services provided by FSMG¶
rsync¶
Plaintext anonymous rsync is available from rsync://mirror.fsmg.org.nz. The rsync paths are configured by Ansible and should match what is available via the web.
HTTP and HTTPS¶
Both HTTP and HTTPS access is available via https://mirror.fsmg.org.nz/. While we would encourage as many people as possible to use HTTPS we also fully support HTTP for those systems where HTTPS mirroring is not yet considered necessary.
To allow for identical configuration between HTTP and HTTPs the configuration for the sites themselves is stored in /etc/apache2/includes/mirror.conf
and /etc/apache2/includes/website.conf
. These files are managed by Ansible.
If you visit one of the direct node hostnames it will still work (to allow for monitoring by our upstreams) but you will see a banner asking you to use the anycast hostname.
Both nodes are also configured to answer for ftp.nz.debian.org
as we are candidates for this service, but obviously HTTPS will not work there (and that is fine)
Apache configuration¶
Because most HTTPS connections to FSMG are relatively long lived we need to increase the maximum number of simultaneous connections to deal with peak load.
Currently we configure mpm_event
with:
<IfModule mpm_event_module>
StartServers 3
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 200
MaxConnectionsPerChild 0
</IfModule>
HTTPS certificates¶
Certbot is used to issue Let’s Encrypt certificates. It’s configured to use a DNS API hook with Catalyst to perform dns-01
challenges.
In /etc/letsencrypt/cli.ini
this is set up as:
rsa-key-size = 4096
preferred-challenges = dns
manual-auth-hook = /opt/fsmg/bin/catalyst-certbot-hook auth
manual-cleanup-hook = /opt/fsmg/bin/catalyst-certbot-hook cleanup
manual-public-ip-logging-ok = True
The Catalyst certbot hook is kept at https://gitlab.com/fsmg/private/blob/master/catalyst-certbot-hook.
FTP¶
We will not be providing FTP service.
SSH for push mirroring¶
We accept SSH to our anycast address to allow for “push mirroring” for projects that support it, and to our individual node addresses for those projects who preferred that.