summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorP. J. McDermott <pj@pehjota.net>2018-06-15 18:52:31 (EDT)
committer P. J. McDermott <pj@pehjota.net>2018-06-15 18:53:29 (EDT)
commitc2f4a52d064511b3564e75b383115d02d15a9856 (patch)
tree1279f65aeefd2d3805242997e7765b63e9f6cdbb
parent44dde70123e2e6eead6f93e7632bddd4a16aff87 (diff)
downloadpc-inst-c2f4a52d064511b3564e75b383115d02d15a9856.zip
pc-inst-c2f4a52d064511b3564e75b383115d02d15a9856.tar.gz
pc-inst-c2f4a52d064511b3564e75b383115d02d15a9856.tar.bz2
logi1: Increase ImageMagick resource limits
-rw-r--r--hosts/logi1/im6-policy.xml73
-rw-r--r--hosts/logi1/postinst4
2 files changed, 77 insertions, 0 deletions
diff --git a/hosts/logi1/im6-policy.xml b/hosts/logi1/im6-policy.xml
new file mode 100644
index 0000000..e729b0e
--- /dev/null
+++ b/hosts/logi1/im6-policy.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE policymap [
+<!ELEMENT policymap (policy)+>
+<!ELEMENT policy (#PCDATA)>
+<!ATTLIST policy domain (delegate|coder|filter|path|resource) #IMPLIED>
+<!ATTLIST policy name CDATA #IMPLIED>
+<!ATTLIST policy rights CDATA #IMPLIED>
+<!ATTLIST policy pattern CDATA #IMPLIED>
+<!ATTLIST policy value CDATA #IMPLIED>
+]>
+<!--
+ Configure ImageMagick policies.
+
+ Domains include system, delegate, coder, filter, path, or resource.
+
+ Rights include none, read, write, and execute. Use | to combine them,
+ for example: "read | write" to permit read from, or write to, a path.
+
+ Use a glob expression as a pattern.
+
+ Suppose we do not want users to process MPEG video images:
+
+ <policy domain="delegate" rights="none" pattern="mpeg:decode" />
+
+ Here we do not want users reading images from HTTP:
+
+ <policy domain="coder" rights="none" pattern="HTTP" />
+
+ Lets prevent users from executing any image filters:
+
+ <policy domain="filter" rights="none" pattern="*" />
+
+ The /repository file system is restricted to read only. We use a glob
+ expression to match all paths that start with /repository:
+
+ <policy domain="path" rights="read" pattern="/repository/*" />
+
+ Let's prevent possible exploits by removing the right to use indirect reads.
+
+ <policy domain="path" rights="none" pattern="@*" />
+
+ Any large image is cached to disk rather than memory:
+
+ <policy domain="resource" name="area" value="1GB"/>
+
+ Define arguments for the memory, map, area, width, height, and disk resources
+ with SI prefixes (.e.g 100MB). In addition, resource policies are maximums
+ for each instance of ImageMagick (e.g. policy memory limit 1GB, -limit 2GB
+ exceeds policy maximum so memory limit is 1GB).
+-->
+<policymap>
+ <!-- <policy domain="resource" name="temporary-path" value="/tmp"/> -->
+ <policy domain="resource" name="memory" value="16GiB"/>
+ <policy domain="resource" name="map" value="16GiB"/>
+ <policy domain="resource" name="width" value="16KP"/>
+ <policy domain="resource" name="height" value="16KP"/>
+ <policy domain="resource" name="area" value="16GiB"/>
+ <policy domain="resource" name="disk" value="16GiB"/>
+ <!-- <policy domain="resource" name="file" value="768"/> -->
+ <!-- <policy domain="resource" name="thread" value="4"/> -->
+ <!-- <policy domain="resource" name="throttle" value="0"/> -->
+ <!-- <policy domain="resource" name="time" value="3600"/> -->
+ <!-- <policy domain="system" name="precision" value="6"/> -->
+ <!-- not needed due to the need to use explicitly by mvg: -->
+ <!-- <policy domain="delegate" rights="none" pattern="MVG" /> -->
+ <!-- use curl -->
+ <policy domain="delegate" rights="none" pattern="URL" />
+ <policy domain="delegate" rights="none" pattern="HTTPS" />
+ <policy domain="delegate" rights="none" pattern="HTTP" />
+ <!-- in order to avoid to get image with password text -->
+ <policy domain="path" rights="none" pattern="@*"/>
+ <policy domain="cache" name="shared-secret" value="passphrase" stealth="true"/>
+</policymap>
diff --git a/hosts/logi1/postinst b/hosts/logi1/postinst
index 4ed9153..95c813e 100644
--- a/hosts/logi1/postinst
+++ b/hosts/logi1/postinst
@@ -105,6 +105,10 @@ Section "Device"
EndSection
EOF
+# Increase ImageMagick resource limits.
+install -u 0 -g 0 -m 0644 "$(dirname "${0}")/hosts/${host}/im6-policy.xml" \
+ "${target}/etc/ImageMagick-6/policy.xml"
+
# Add user to groups created by postinst_pkgs.
in_target adduser pj scanner || return 1
in_target adduser pj wireshark || return 1