Hálózati naplózás bevezetése
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