Web

Purpose

Reverse proxy for different websites that handles http to https redirection and TLS handshakes. The following services are currently proxied by this system:

  • Jenkins on Jenkins

  • codedocs.cacert.org, funding.cacert.org and infradocs.cacert.org on Webstatic

The proxy should be used for all web applications that do not need access to the TLS parameters (client certificates, other peer information). Applications that need to perform TLS handshakes themselves can be proxied through Proxyin.

Administration

System Administration

Application Administration

Application

Administrator(s)

Apache httpd

Jan Dittberner

Contact

Additional People

No additional people have sudo access on that machine.

Basics

Physical Location

This system is located in an LXC container on physical machine Infra02.

Logical Location

IP Internet:

213.154.225.242

IP Intranet:

172.16.2.26

IP Internal:

10.0.0.26

IPv6:

2001:7b8:616:162:2::26

MAC address:

00:ff:c7:e5:66:ae (eth0)

See also

See Network

Monitoring

internal checks:

Monitoring checks for web.infra.cacert.org

DNS

Name

Type

Content

web.cacert.org.

IN A

213.154.225.242

web.cacert.org.

IN SSHFP

1 1 85F5338D90930200CBBFCE1AAB56988B4C8F0F22

web.cacert.org.

IN SSHFP

1 2 D39CBD51588F322F7B4384274CF0166F25B10F54A6CD153ED7251FF30B5B516E

web.cacert.org.

IN SSHFP

2 1 906F0C17BB0E233B0F52CE33CFE64038D45AC4F2

web.cacert.org.

IN SSHFP

2 2 DBF6221A8A403B4C9F537B676305FDAE07FF45A1C18D88B1141031402AF0250F

web.cacert.org.

IN SSHFP

3 1 7B62D8D1E093C28CDA0F3D2444846128B41C10DE

web.cacert.org.

IN SSHFP

3 2 0917DA677C9E6CAF1818C1151EC2A813623A2B2955A1A850F260D64EF041400B

web.intra.cacert.org.

IN A

172.16.2.26

Todo

add SSHFP for ED25519 key, remove SSHFP for DSA key, add AAAA record for IPv6

Operating System

  • Debian GNU/Linux 11 Bullseye

Services

Listening services

Port

Service

Origin

Purpose

22/tcp

ssh

ANY

admin console access

25/tcp

smtp

local

mail delivery to local MTA

80/tcp

http

ANY

redirects to https

443/tcp

https

ANY

https termination and reverse proxy

5665/tcp

icinga2

monitor

remote monitoring service

Running services

Service

Usage

Start mechanism

Apache httpd

http redirector, https reverse proxy

systemd unit apache2.service

cron

job scheduler

systemd unit cron.service

icinga2

Icinga2 monitoring agent

systemd unit icinga2.service

openssh server

ssh daemon for remote administration

systemd unit ssh.service

Postfix

SMTP server for local mail submission

systemd unit postfix.service

Puppet agent

configuration management agent

systemd unit puppet.service

rsyslog

syslog daemon

systemd unit rsyslog.service

Connected Systems

Outbound network connections

  • Infra02 as resolving nameserver

  • Emailout as SMTP relay

  • Puppet (tcp/8140) as Puppet master

  • Proxyout as HTTP proxy for APT

  • Jenkins as backend for the jenkins.cacert.org VirtualHost

  • Webstatic as backend for the codedocs.cacert.org, funding.cacert.org and infradocs.cacert.org VirtualHosts

Security

SSH host keys

Algorithm

Fingerprints

RSA

SHA256:05y9UViPMi97Q4QnTPAWbyWxD1SmzRU+1yUf8wtbUW4, MD5:6d:e5:7e:1d:72:d5:5e:f8:43:80:94:a8:b1:0d:9b:81

DSA

-

ECDSA

SHA256:CRfaZ3yebK8YGMEVHsKoE2I6KylVoahQ8mDWTvBBQAs, MD5:7f:91:92:80:f2:b5:2f:5d:8e:11:3f:9b:62:48:e7:18

ED25519

SHA256:IHm9Gjf0u753ADO+WDYLFuHwPK3ReAe101xG/NeCwYk, MD5:82:ab:13:33:ee:69:cf:09:18:20:d0:9c:b9:a0:0e:61

Non-distribution packages and modifications

The Puppet agent package and a few dependencies are installed from the official Puppet APT repository because the versions in Debian are too old to use modern Puppet features.

Risk assessments on critical packages

Apache httpd is configured with a minimum of enabled modules to allow proxying and TLS handling only to reduce potential security risks.

The system uses third party packages with a good security track record and regular updates. The attack surface is small due to the tightly restricted access to the system. The puppet agent is not exposed for access from outside the system.

Critical Configuration items

The system configuration is managed via Puppet profiles. There should be no configuration items outside of the CAcert Git repository cacert-puppet.

Keys and X.509 certificates

All keys and certificates are managed in the file hieradata/nodes/web.yaml in the CAcert Git repository cacert-puppet.

  • Certificate for CN codedocs.cacert.org, see details in the certificate list

    • certificate in file /etc/ssl/certs/codedocs.cacert.org.crt

    • private key in file /etc/ssl/private/codedocs.cacert.org.key

  • Certificate for CN funding.cacert.org, see details in the certificate list

    • certificate in file /etc/ssl/certs/funding.cacert.org.crt

    • private key in file /etc/ssl/private/funding.cacert.org.key

  • Certificate for CN infradocs.cacert.org, see details in the certificate list

    • certificate in file /etc/ssl/certs/infradocs.cacert.org.crt

    • private key in file /etc/ssl/private/infradocs.cacert.org.key

  • Certificate for CN jenkins.cacert.org, see details in the certificate list

    • certificate in file /etc/ssl/certs/jenkins.cacert.org.crt

    • private key in file /etc/ssl/private/jenkins.cacert.org.key

  • Certificate for CN web.cacert.org, see details in the certificate list

    • certificate in file /etc/ssl/certs/web.cacert.org.crt

    • private key in file /etc/ssl/private/web.cacert.org.key

  • /usr/share/ca-certificates/CAcert/class3_X0E.crt CAcert.org Class 3 certificate for server certificate chains. The file is installed from the Debian package ca-cacert

Apache httpd configuration

Apache httpd configuration is fully managed by Puppet. The VirtualHosts are defined in hieradata/nodes/web.yaml and the configuration is done via the web_proxy profile in sitemodules/profiles/manifests/web_proxy.pp of the CAcert Git repository cacert-puppet.

Tasks

Changes

Planned

System Future

  • No plans

Additional documentation

Note

The system hosted the Drupal based community portal https://www.cacert.eu/ in the past. The DNS records for this portal have been changed to point to the regular https://www.cacert.org/ site. All unreachable VirtualHosts have been archived to the backup disk at Infra02.

References