Rproxy: Skillnad mellan sidversioner

Från stackenwiki
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
 
(13 mellanliggande sidversioner av en annan användare visas inte)
Rad 1: Rad 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


== Flöde ==
    # 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


Flera olika paths och domäner går igenom den här maskinen och tar olika vägar för att hitta tjänsten som ligger bakom.
Konfiguration hittar du i <code>/etc/traefik</code>


=== DNS ===
=== Fail2ban ===
    www  CNAME rproxy
    wiki CNAME rproxy


=== Traefik ===
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:
     https://www.stacken.kth.se/               ---> rproxy ---> w3
 
     https://www.stacken.kth.se/project/arla  ---> rproxy ---> cookie
    [Definition]
     https://wiki.stacken.kth.se              ---> rproxy ---> cookie
     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 ...
 
 
=== 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]]

Nuvarande version från 9 december 2025 kl. 17.15

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 ...


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.