Az volt a feladat, hogy naplózzuk a Web-es forgalmat (http, https), erre Squid proxy, syslog-ng, valamint az automatikus proxy beállításhoz nginx került beállításra.

Első alkalommal

ssh docker
git clone https://github.com/csepely/arosa-compose.git
# build
sudo docker-compose build
# extract - személyre szabottan
sudo tar -Jxf arosa-logging.tar.xz

Szolgáltatás indítása

# üres beállításokkal
sudo docker-compose up -d
# személyre szabottan
sudo docker-compose -f docker-compose-arosa.yml up -d

Az egyedi beállítások ./data könyvtár alatt, szolgáltatásonkénti mappákban.

Szolgáltatások

syslog-ng

./data/syslog-ng

Naplózási feladatok

  • nem konténerben futó szolgáltatásoktól érkező napló bejegyzések tárolása

    /var/log/<év>/<hó>/<nap>/<ip>/<facility>.log formátumban

  • konténerektől érkező napló bejegyzések tárolása (515/udp port)

    /var/log/<év>/<hó>/<nap>/containers/<konténer neve>/<hosztnév>/<facility>.log formátumban

nginx

./data/nginx

Tanusítványok kezelése

  • Belépés a konténerbe
    ssh docker
    sudo docker exec -ti arosa-compose_nginx_1 /bin/bash
    
  • Frissítés
    certbot renew --post-hook "nginx -s reload"
    
  • Új tanusítvány kérése
    • A szükséges domain feloldások beállítása. (WebDNS)
    • A szükséges nginx konfiguráció elvégzése. (Látsd lentebb…)
cd /etc/nginx/sites-available/
ngConf pelda.hu
ln -sf pelda-hu ../sites-enabled/pelda-hu
nginx -t
# ha nem volt hiba
nginx -s reload
certbot certonly --webroot /var/lib/letsencrypt -d pelda.hu
# ssl konfig generálás, engedélyezés
ngConf pelda.hu true
ln -sf pelda-hu-ssl ../sites-enabled/pelda-hu-ssl
nginx -t
nginx -s reload
  • Reverse proxy feladatok ellátása
    • Új domain esetén nginx config állomány generálás
function ngConf {
# domain
d=$1
# redirect_to
r=$2
# SSL?
[[ -z "$1" ]] || [[ -z "$2" ]] && echo ":: ngConf <domain> <redirect_to> [true|false]" && return
# default values
l="listen 80;"
[[ "$3" == "true" ]] && l="listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/${d}/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/${d}/privkey.pem;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;"
cat <<EOF > ${1/./-}${3/true/-ssl}
server {
    ${l}
    server_name ${1};
    include snippets/letsencrypt.conf;
    location / {
        include proxy_params;
        proxy_pass ${2};
    }
}

EOF
}
  • SSL jellegű webes tartalmak kiszolgálásához az aktuális tanusítvány biztosítása (kliens oldalon)
    • A Squid SSL-Bump szolgáltatáshoz a böngészőbe telepíteni kell az általunk létrehozott tanusítványt, ami az alábbi URL-en érhető el: http://docker/certs/CA.der

squid

./data/squid

A szolgáltatás használata automatikus proxy beállításokkal vehető igénybe, tűzfalak megfelelő szabályainak kialakításával.

  • HTTP, HTTPS portok közvetlen elérésének letiltása
  • dhcp szerveren 252 kód beállításával hirdethető a proxy pac fájl
  • a fentebb említett Squid által használt tanusítvány telepítése a böngészőbe

Az automatikus proxy konfigurációs URL böngészőben való beállításához: http://docker/proxy.pac