Re: Reverse proxy met tellende portier functie

2023-12-28 Berichten over hetzelfde onderwerp Geert Stappers
On Thu, Dec 28, 2023 at 08:53:23AM +0100, Martijn van de Streek wrote:
> Geert Stappers schreef op wo 27-12-2023 om 11:40 [+0100]:
> > Waar de "portier" op moet letten is vanaf waar een HTTP request komt.
> > En bij meer dan N verzoeken in tijdsbestek "tijd van alleen halen is
> > voorbij" antwoorden.
> > 
> > 
> > Welke richting zoek ik verder moeten zoeken?
> 
> Optie 1: Authorisatie
> 
> Authorisatie kun je heel groots aanpakken met een Keycloak of Ory
> server en dan elk request de OAuth2/OIDC tokens verifiëren, of heel
> simpel met HTTP Basic Authorization waarmee je voor elke legitieme
> gebruiker een gebruikersnaam + wachtwoord maakt (".htaccess" noemen
> sommige mensen dit nog, uit de tijd dat alle webservers Apache waren).
> 
> OAuth2 vereist wel dat je API-servers of reverse proxy dit ook
> ondersteunen.

Oja, in eerste bericht niet vertelt wat er achter de reverse proxy zit.
Dat zijn zaken waar geen account voor nodig is,
bijvoorbeeld "apt install"

 
> Optie 2: Rate limiting
> 
> Rate limiting kunnen de meeste reverse proxies op basis van allerlei
> criteria. De meeste reverse proxies ondersteunen dit:
> 
> Nginx: https://nginx.org/en/docs/http/ngx_http_limit_conn_module.html
> Traefik: https://doc.traefik.io/traefik/middlewares/http/ratelimit/
> 
> Optie 3: Blokkeerlijst
> 
> Je kunt ook een statische of dynamische blokkeerlijst bijhouden van IP-
> adressen van bekende misbruikers, en de reverse proxy zo instellen dat
> die áltijd een foutmelding krijgen.
> 
> Met een programma als fail2ban kun je loganalyse doen en daarmee een
> dynamische blokkeerlijst maken (detecteer scrapen = 24 uur IP ban, dat
> idee).



Het nieuwe inzicht is dat ik vooral de webservice moet gaan bouwen
die ik zelf wil hebben.  En _nu niet_ druk maken over free riders.

 
> Groeten,
> Martijn 

Dank


Groeten
Geert Stappers
-- 
Silence is hard to parse



Re: Reverse proxy met tellende portier functie

2023-12-28 Berichten over hetzelfde onderwerp Martijn van de Streek
Geert Stappers schreef op wo 27-12-2023 om 11:40 [+0100]:
> Waar de "portier" op moet letten is vanaf waar een HTTP request komt.
> En bij meer dan N verzoeken in tijdsbestek "tijd van alleen halen is
> voorbij" antwoorden.
> 
> 
> Welke richting zoek ik verder moeten zoeken?

Optie 1: Authorisatie

Authorisatie kun je heel groots aanpakken met een Keycloak of Ory
server en dan elk request de OAuth2/OIDC tokens verifiëren, of heel
simpel met HTTP Basic Authorization waarmee je voor elke legitieme
gebruiker een gebruikersnaam + wachtwoord maakt (".htaccess" noemen
sommige mensen dit nog, uit de tijd dat alle webservers Apache waren).

OAuth2 vereist wel dat je API-servers of reverse proxy dit ook
ondersteunen. Nginx kan dit (ik weet niet hoe goed dit werkt, heb het
zelf nooit gebruikt):
https://nginx.org/en/docs/http/ngx_http_auth_jwt_module.html

Optie 2: Rate limiting

Rate limiting kunnen de meeste reverse proxies op basis van allerlei
criteria. De meeste reverse proxies ondersteunen dit:

Nginx: https://nginx.org/en/docs/http/ngx_http_limit_conn_module.html
Traefik: https://doc.traefik.io/traefik/middlewares/http/ratelimit/

Optie 3: Blokkeerlijst

Je kunt ook een statische of dynamische blokkeerlijst bijhouden van IP-
adressen van bekende misbruikers, en de reverse proxy zo instellen dat
die áltijd een foutmelding krijgen.

Met een programma als fail2ban kun je loganalyse doen en daarmee een
dynamische blokkeerlijst maken (detecteer scrapen = 24 uur IP ban, dat
idee).

Groeten,
Martijn 



Reverse proxy met tellende portier functie

2023-12-27 Berichten over hetzelfde onderwerp Geert Stappers
Hoi,


Welke software is te gebruiken als reverse web proxy
met een ingebouwde (of aan te bouwen) portier functie?

Met reverse web proxy is een daemon bedoelt die HTTP requests
opvangt, uitsplitst en doorgeeft aan achterliggende HTTP services.

Bij portier moet je deze keer ook denken aan persoon die toegangscontrole
doet. Iemand/iets wat bepaalt "wel of niet naar binnen".

Mijn inschatting is de dat Apaches, Nginxs, Caddies en Traefiks wel iets
hebben waar te configureren is welke HTTP requests nog "fair use" zijn.
Maar hoe noemen zij dan hun portier functie? Is het reeds aanwezig
of moet je een of andere module activeren? Hoe heet die dan?


Probleem wat ik voorzie, probleem wat ik wil voorkomen, is dat
webservices die ik voor mezelf en wat vrienden neerzet, dat ie ook
gebruikt worden door "ik wil het wel hebben, maar er niets voor doen"
types. Misbruikt, uitgebuit, door zulke types. Aan hun wil een HTTP 409
of HTTP 451 met bij behorende pagina teruggeven.

Waar de "portier" op moet letten is vanaf waar een HTTP request komt.
En bij meer dan N verzoeken in tijdsbestek "tijd van alleen halen is
voorbij" antwoorden.


Welke richting zoek ik verder moeten zoeken?


Groeten
Geert Stappers
-- 
Silence is hard to parse