Am instalat un proxy squid pentru a filtra traficul de ieșire din docker.
Mai exact, am creat un mediu jupyterhub cu docker pentru a izola fiecare utilizator și a le oferi mediul virtual.
Acum aș dori să filtrez traficul de ieșire, astfel încât aceștia să poată accesa doar anumite domenii și serviciul instalat local cu docker-ul jupyterhub.
Apelarea proxy-ului cu cURL funcționează bine. Permite doar domeniile introduse și ne face să accesăm serviciul jupyterhub local. Totuși, când îl deschidem din interfața web, apare această eroare:
Am activat serviciul ip 172.17.0.1 și portul 8081 și testul cUrl funcționează.
Cum o pot repara?
unele configuratii:
config.json (~/.config.json):
{
„proxy”:
{
"Mod implicit":
{
"httpProxy": "http://127.0.0.1:3128",
„httpsProxy”: „http://127.0.0.1:3128”,
„noProxy”: „127.0.0.0/8”
}
}
}
squid.conf (/etc/squid/squid.conf):
acl localnet src 10.0.0.0/8 # RFC1918 posibilă rețea internă
acl localnet src 172.16.0.0/12 # RFC1918 posibilă rețea internă
acl localnet src 192.168.0.0/16 # RFC1918 posibilă rețea internă
acl localnet src fc00::/7 # RFC 4193 interval de rețea privată locală
acl localnet src fe80::/10 # RFC 4291 link-local mașini (conectate direct)
acl localnet src 172.17.0.1/32
acl SSL_ports portul 443
acl Safe_ports port 80 # http
acl Safe_ports port 443 # https
acl CONNECT metoda CONECTARE
#### 23/06/2021 #############
acl jupyterhub_port portul 8081
acl jupyterhub_addr dst 172.17.0.1
http_access permit jupyterhub_port jupyterhub_addr
# Respinge cererile către anumite porturi nesigure
http_access deny !Safe_ports
# Interzice CONNECT-ul la alte porturi SSL decât cele securizate
http_access deny CONNECT !SSL_ports
# Permite accesul cachemgr numai de la localhost
http_access permite managerul localhost
http_access manager de refuz
###### 18/06/2021
acl lista albă dstdomain .python.org .pypi.org .pythonhosted.org .pypa.io .yahoo.com
http_access permite lista albă
# Și, în cele din urmă, refuza orice alt acces la acest proxy
http_access deny all
# Squid ascultă în mod normal portul 3128
http_port 3128
# Lăsați coredumps în primul director cache
coredump_dir /var/spool/squid
# Adăugați oricare dintre propriile intrări refresh_pattern deasupra acestora.
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
curl prin proxy:
curl http://172.17.0.1:8081/hub/api --proxy 127.0.0.1:3128
{"versiune": "1.4.1"}