hardening(angie): resolve mime.types from whichever path the package ships (angie-bin=/etc/angie, Arch source=/etc/nginx via mailcap dep) — fixes 'angie -t' 'open() mime.types failed' on source path; fallback ships a minimal mime.types; ensure modules/ include dirs exist before glob
This commit is contained in:
parent
26185978ac
commit
94a0bac9f4
@ -227,6 +227,17 @@ _h_angie_config() {
|
||||
[[ -z "$angie_pid" ]] && angie_pid=/run/angie.pid
|
||||
[[ -z "$angie_err" ]] && angie_err=/var/log/angie/error.log
|
||||
|
||||
# locate mime.types: angie-bin/Debian ship /etc/angie/mime.types; the Arch source
|
||||
# 'angie' package instead pulls it from the 'mailcap' dep at /etc/nginx/mime.types
|
||||
# (and deletes its own). Pick whichever exists so 'angie -t' doesn't fail on include.
|
||||
local angie_mime=""
|
||||
for m in "$d/mime.types" /etc/nginx/mime.types /etc/mime.types; do
|
||||
[[ -f "$m" ]] && { angie_mime="$m"; break; }
|
||||
done
|
||||
[[ -z "$angie_mime" ]] && { warn "no mime.types found; installing a minimal one"; _angie_install_mime "$d/mime.types"; angie_mime="$d/mime.types"; }
|
||||
# the modules/ include dir must exist or the glob fails the config test
|
||||
sudo_ install -d -m 0755 "$d/modules" "$d/modules/http"
|
||||
|
||||
# backup the original once
|
||||
if [[ -f "$oldcfg" && ! -f "$oldcfg.orig.bootstrap" ]]; then
|
||||
sudo_ cp -a "$oldcfg" "$oldcfg.orig.bootstrap"
|
||||
@ -255,7 +266,7 @@ events {
|
||||
}
|
||||
|
||||
http {
|
||||
include /etc/angie/mime.types;
|
||||
include $angie_mime;
|
||||
default_type application/octet-stream;
|
||||
|
||||
log_format main '\$remote_addr - \$remote_user [\$time_local] "\$request" '
|
||||
@ -364,6 +375,24 @@ EOF
|
||||
# ufw already opened 80/443 in _h_ufw
|
||||
}
|
||||
|
||||
_angie_install_mime() { # dest — write a minimal mime.types if none exists on the host
|
||||
sudo_ tee "$1" >/dev/null <<'EOF'
|
||||
types {
|
||||
text/html html htm shtml;
|
||||
text/css css;
|
||||
text/xml xml;
|
||||
image/gif gif;
|
||||
image/jpeg jpeg jpg;
|
||||
image/png png;
|
||||
image/svg+xml svg svgz;
|
||||
application/javascript js;
|
||||
application/json json;
|
||||
application/pdf pdf;
|
||||
application/zip zip;
|
||||
application/octet-stream bin exe dll so deb dmg iso img;
|
||||
}
|
||||
EOF
|
||||
}
|
||||
_angie_helpers() {
|
||||
sudo_ tee /usr/local/bin/angie-enable >/dev/null <<'EOF'
|
||||
#!/usr/bin/env bash
|
||||
|
||||
Loading…
Reference in New Issue
Block a user