summaryrefslogtreecommitdiff
path: root/docs/systems/infra03.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/systems/infra03.rst')
-rw-r--r--docs/systems/infra03.rst259
1 files changed, 259 insertions, 0 deletions
diff --git a/docs/systems/infra03.rst b/docs/systems/infra03.rst
new file mode 100644
index 0000000..aafa6c7
--- /dev/null
+++ b/docs/systems/infra03.rst
@@ -0,0 +1,259 @@
+.. index::
+ single: Systems; Infra03
+
+=======
+Infra03
+=======
+
+Purpose
+=======
+
+The infrastructure host system Infra03 is a dedicated physical machine for the
+CAcert infrastructure.
+
+.. index::
+ single: nftables
+ single: LXC
+
+Infra03 is a host system for infrustructure :term:`containers <Container>`. The
+containers are setup using the Linux kernel's :term:`LXC` system. The firewall
+for the running containers is maintained using nftables_. The machine provides
+a DNS resolver based on dnsmasq_ and gives answers for the internal zone
+infra.cacert.org.
+
+.. _nftables: https://wiki.nftables.org/
+.. _dnsmasq: https://www.thekelleys.org.uk/dnsmasq/doc.html
+
+.. todo::
+ implement synchronization between :doc:`infra02`'s dnsmasq and this system's
+ dnsmasq
+
+Administration
+==============
+
+System Administration
+---------------------
+
+* Primary: :ref:`people_jandd`
+* Secondary: :ref:`people_dirk`
+
+Contact
+-------
+
+* infrastructure-admin@cacert.org
+
+Basics
+======
+
+Physical Location
+-----------------
+
+The machine is located in a server rack at BIT B.V. in the Netherlands.
+
+Physical Configuration
+----------------------
+
+The machine has the following hardware parameters:
+
+:Mainboard: IBM System x3550 M2 49Y6512
+:CPU: Intel(R) Xeon(R) CPU E5506 @ 2.13GHz (4 Cores, 4 Threads)
+:RAM: 48 GiB (8 GB DDR3-1600 Registered ECC)
+:Disks: 3 x 1TB Seagate Constellation 2 SATA ST91000640NS
+:NIC:
+
+ * eno1 Broadcom Limited NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
+ * eno2 Broadcom Limited NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
+
+.. seealso::
+
+ See :wiki:`SystemAdministration/EquipmentList`
+
+Logical Location
+----------------
+
+:IP Internet: None yet
+:IP Intranet: :ip:v4:`172.16.2.3`
+:IP Internal: :ip:v4:`10.0.3.1`
+:IPv6: :ip:v6:`2001:7b8:616:162:1::9`
+:MAC address:
+
+ * :mac:`e4:1f:13:2e:67:86` (eno2)
+ * :mac:`fe:2c:b2:f9:c5:41` (br0)
+
+.. seealso::
+
+ See :doc:`../network`
+
+.. index::
+ single: Monitoring; Infra03
+
+Monitoring
+----------
+
+:internal checks: :monitor:`infra03.infra.cacert.org`
+:external checks: :monitor:`infra03.cacert.org`
+
+DNS
+---
+
+.. index::
+ single: DNS records; Infra03
+
+.. ========================== ======== ==========================================
+.. Name Type Content
+.. ========================== ======== ==========================================
+.. ========================== ======== ==========================================
+
+.. todo:: add DNS records for Infra03
+
+.. seealso::
+
+ See :wiki:`SystemAdministration/Procedures/DNSChanges`
+
+Operating System
+----------------
+
+.. index::
+ single: Debian GNU/Linux; Buster
+ single: Debian GNU/Linux; 10.9
+
+* Debian GNU/Linux 10.9
+
+Services
+========
+
+Listening services
+------------------
+
++----------+---------+----------+-----------------------------------------+
+| Port | Service | Origin | Purpose |
++==========+=========+==========+=========================================+
+| 22/tcp | ssh | ANY | admin console access |
++----------+---------+----------+-----------------------------------------+
+| 25/tcp | smtp | local | mail delivery to local MTA |
++----------+---------+----------+-----------------------------------------+
+| 53/tcp | dns | internal | DNS resolver for infra.cacert.org |
+| 53/udp | | | |
++----------+---------+----------+-----------------------------------------+
+| 123/udp | ntp | ANY | network time protocol for host, |
+| | | | listening on the Internet IPv6 and IPv4 |
+| | | | addresses |
++----------+---------+----------+-----------------------------------------+
+
+Running services
+----------------
+
+.. index::
+ single: cron
+ single: dbus
+ single: dm-event
+ single: dnsmasq
+ single: exim4
+ single: ntp
+ single: openssh
+ single: puppet
+ single: rsyslog
+ single: smartd
+
++----------------+---------------------------------------+----------------------------------+
+| Service | Usage | Start mechanism |
++================+=======================================+==================================+
+| cron | job scheduler | systemd unit ``cron.service`` |
++----------------+---------------------------------------+----------------------------------+
+| dbus-daemon | System message bus | systemd unit ``dbus.service`` |
++----------------+---------------------------------------+----------------------------------+
+| Exim | SMTP server for local mail submission | systemd unit ``exim4.service`` |
++----------------+---------------------------------------+----------------------------------+
+| openssh server | ssh daemon for remote administration | systemd unit ``ssh.service`` |
++----------------+---------------------------------------+----------------------------------+
+| Puppet agent | configuration management agent | systemd unit ``puppet.service`` |
++----------------+---------------------------------------+----------------------------------+
+| rsyslog | syslog daemon | systemd unit ``rsyslog.service`` |
++----------------+---------------------------------------+----------------------------------+
+
+.. todo:: add Icinga 2 system monitoring
+
+.. Running Guests
+ --------------
+
+ .. some directive to list guests here
+
+Connected Systems
+-----------------
+
+.. * :doc:`monitor`
+
+None yet
+
+Outbound network connections
+----------------------------
+
+* DNS (53) resolving nameservers 172.16.2.2 and 172.16.2.3
+* :doc:`emailout` as SMTP relay
+* :doc:`puppet` (tcp/8140) as Puppet master
+
+.. * :doc:`proxyout` as HTTP proxy for APT
+.. * crl.cacert.org (rsync) for getting CRLs
+
+.. todo:: use proxyout for outgoing http/https traffic
+
+Security
+========
+
+.. sshkeys::
+ :RSA: SHA256:zdFI2N/R/yT5n+KbeQh+qXJ3p/bjp+A8BOyTeN+Eh3g MD5:bb:00:36:35:8c:02:97:7d:1b:c4:25:77:60:e6:ec:19
+ :ECDSA: SHA256:In12bkuY6JktIOpsBw5By89ip6ovWhi4Er8GaQzsbrI MD5:1b:32:4d:f3:83:28:04:ac:cf:4f:a9:48:80:b2:2b:0b
+ :ED25519: SHA256:m2CBwhLqO47H5iiEoS7YK7mAgoXLeIEjmEdhzNImTPQ MD5:e8:c5:9c:ce:f3:5f:52:98:78:c8:5e:88:b6:e2:3c:37
+
+Dedicated user roles
+--------------------
+
+* None
+
+Non-distribution packages and modifications
+-------------------------------------------
+
+* None
+
+Risk assessments on critical packages
+-------------------------------------
+
+The system is the host system for other infrastructure systems. Access to this
+system has to be tightly controlled.
+
+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.
+
+Critical Configuration items
+============================
+
+The system configuration is managed via Puppet profiles. There should be no
+configuration items outside of the :cacertgit:`cacert-puppet`.
+
+Tasks
+=====
+
+Adding a new container
+----------------------
+
+.. todo::
+
+ describe how to add a new container, setup nftables rules, routing,
+ proxying, outgoing mail and monitoring
+
+Changes
+=======
+
+Planned
+-------
+
+* Setup Icinga2 monitoring
+* Setup containers for MariaDB, Nextcloud, Taiga.io and other services
+
+Additional documentation
+========================
+
+.. seealso::
+
+ * :wiki:`Exim4Configuration`