Difference between revisions of "Rproxy"

(Created page with "rproxy är en maskin som agerar reverse proxy för ett flertalet tjänster på Stacken. Det är bland annat den som syr ihop www.stacken.kth.se till en site. == Design == Mas...")
 
 
(15 intermediate revisions by the same user not shown)
Line 1: Line 1:
rproxy är en maskin som agerar reverse proxy för ett flertalet tjänster på Stacken. Det är bland annat den som syr ihop www.stacken.kth.se till en site.
+
rproxy är en maskin som agerar reverse proxy för ett flertalet tjänster på Stacken. De klassiska IP-numren <code>130.237.234.40</code> samt <code>2001:6b0:1:ea::40</code> pekar på den. Många av stackens webbsidor, t.ex. den här wikin körs genom rproxy.
  
== Design ==
+
== Konfiguration ==
Maskinen är ett VM, på det VM:et körs sedan Docker där [https://traefik.io/ traefik] körs.
 
  
 +
=== Hårdvara ===
 +
Maskinen är ett VM
 +
 +
=== OS m.m. ===
 
* Ubuntu 18.04 LTS
 
* Ubuntu 18.04 LTS
* Automatiska säkerhetsuppdateringar
+
** Automatiska säkerhetsuppdateringar
 +
 
 +
=== Docker ===
 +
 
 
* docker-bench-security körd och Docker är lite mer nerlåst
 
* docker-bench-security körd och Docker är lite mer nerlåst
 +
 +
    # daemon.json
 +
    {
 +
      "userns-remap": "dockremap",
 +
      "live-restore": true,
 +
      "userland-proxy": false,
 +
      "no-new-privileges": true
 +
    }
 +
 +
=== Traefik ===
 +
 +
Traefik används för att ta i mot trafik samt terminera TLS. Det finns en systemd unit med samma namn som ser ut så här:
 +
 +
    # /etc/systemd/system/traefik.service
 +
    [Unit]
 +
    Description=Traefik Reverse Proxy
 +
    After=network.target
 +
   
 +
    [Service]
 +
    Type=notify
 +
    ExecStart=/usr/local/bin/traefik --configFile=/etc/traefik/traefik.toml
 +
    Restart=always
 +
    WatchdogSec=60s
 +
    NoNewPrivileges=yes
 +
    ProtectSystem=strict
 +
    ReadWritePaths=/etc/traefik/state/
 +
    ProtectHome=yes
 +
   
 +
    [Install]
 +
    WantedBy=multi-user.target
 +
 +
Konfiguration hittar du i <code>/etc/traefik</code>
 +
 +
=== Fail2ban ===
 +
 +
Förutom sshd som är på som standard på Debian så har jag skapat ett filter som heter <code>filter.d/shakespeer-ip.conf</code> som ser ut så här:
 +
 +
    [Definition]
 +
    failregex = ^<HOST>.+\/~mhe\/ip.shtml.+\"shakespeer\/.+$
 +
    ignoreregex =
 +
 +
Set är sedan laddat från <code>jail.d/customisation.local</code> så här:
 +
 +
    [traefik-shakespeer]
 +
    enabled = true
 +
    filter = shakespeer-ip
 +
    logpath = /var/log/traefik/access.log
 +
    maxretry = 3
 +
    findtime = 60
 +
    bantime = 6h
 +
    port = http,https
 +
 +
Det lägger iptables-regler som blockar alla som kör programmet Shakespeer som spammar sönder oss med att försöka använda ip.shtml som inte har funkat på många, många år ...
 +
 +
=== Mediawiki ===
 +
 +
Mediawiki körs i en Docker container och startas med Docker Compose. Du hittar konfigurationen för det i <code>/etc/mediawiki</code>. Bilderna ligger i <code>/var/mediawiki/images</code>.
 +
 +
=== Bucky ===
 +
 +
Bucky används som en statsd till carbon relay som Traefik använder för att att skicka in data till [[Graphite]]. Den kör i Docker och startas med Docker Compose och ligger i <code>/etc/bucky</code>.
  
 
[[Category: Maskiner]]
 
[[Category: Maskiner]]

Latest revision as of 14:15, 29 December 2018

rproxy är en maskin som agerar reverse proxy för ett flertalet tjänster på Stacken. De klassiska IP-numren 130.237.234.40 samt 2001:6b0:1:ea::40 pekar på den. Många av stackens webbsidor, t.ex. den här wikin körs genom rproxy.

Konfiguration

Hårdvara

Maskinen är ett VM

OS m.m.

  • Ubuntu 18.04 LTS
    • Automatiska säkerhetsuppdateringar

Docker

  • docker-bench-security körd och Docker är lite mer nerlåst
   # daemon.json 
   {
     "userns-remap": "dockremap",
     "live-restore": true,
     "userland-proxy": false,
     "no-new-privileges": true
   }

Traefik

Traefik används för att ta i mot trafik samt terminera TLS. Det finns en systemd unit med samma namn som ser ut så här:

   # /etc/systemd/system/traefik.service
   [Unit]
   Description=Traefik Reverse Proxy
   After=network.target
   
   [Service]
   Type=notify
   ExecStart=/usr/local/bin/traefik --configFile=/etc/traefik/traefik.toml
   Restart=always
   WatchdogSec=60s
   NoNewPrivileges=yes
   ProtectSystem=strict
   ReadWritePaths=/etc/traefik/state/
   ProtectHome=yes
   
   [Install]
   WantedBy=multi-user.target

Konfiguration hittar du i /etc/traefik

Fail2ban

Förutom sshd som är på som standard på Debian så har jag skapat ett filter som heter filter.d/shakespeer-ip.conf som ser ut så här:

   [Definition]
   failregex = ^<HOST>.+\/~mhe\/ip.shtml.+\"shakespeer\/.+$
   ignoreregex = 

Set är sedan laddat från jail.d/customisation.local så här:

   [traefik-shakespeer]
   enabled = true
   filter = shakespeer-ip
   logpath = /var/log/traefik/access.log
   maxretry = 3
   findtime = 60
   bantime = 6h
   port = http,https

Det lägger iptables-regler som blockar alla som kör programmet Shakespeer som spammar sönder oss med att försöka använda ip.shtml som inte har funkat på många, många år ...

Mediawiki

Mediawiki körs i en Docker container och startas med Docker Compose. Du hittar konfigurationen för det i /etc/mediawiki. Bilderna ligger i /var/mediawiki/images.

Bucky

Bucky används som en statsd till carbon relay som Traefik använder för att att skicka in data till Graphite. Den kör i Docker och startas med Docker Compose och ligger i /etc/bucky.