From 11c323015056181b3862b496f7f9cfbcccdc7c61 Mon Sep 17 00:00:00 2001
From: kytv <kytv@mail.i2p>
Date: Tue, 14 Apr 2015 01:00:10 +0000
Subject: [PATCH] updates to apparmor profiles

- hardening (restrict access to proc to owner)
- removing files covered by abstractions
- indentation per apparmor profile style
---
 apps/apparmor/home.i2p.i2prouter  |  25 +++----
 debian/apparmor/i2p               | 106 +++++++++++++++---------------
 debian/apparmor/usr.bin.i2prouter |   8 ++-
 3 files changed, 67 insertions(+), 72 deletions(-)

diff --git a/apps/apparmor/home.i2p.i2prouter b/apps/apparmor/home.i2p.i2prouter
index 561709d7f1..b31f3adbaa 100644
--- a/apps/apparmor/home.i2p.i2prouter
+++ b/apps/apparmor/home.i2p.i2prouter
@@ -1,4 +1,4 @@
-# Last Modified: Mon, 16 Feb 2015
+# Last Modified: Sun Apr 12 22:08:32 2015
 # vim:syntax=apparmor et ts=8 sw=4
 
 #include <tunables/global>
@@ -18,20 +18,20 @@ $INSTALL_PATH/{i2prouter,runplain.sh} flags=(complain) {
   owner $INSTALL_PATH/**                                  rwklm,
 
   # Needed for Java
-  @{PROC}                                                 r,
-  @{PROC}/[0-9]*/net/if_inet6                             r,
-  @{PROC}/[0-9]*/net/ipv6_route                           r,
-  @{PROC}/[0-9]*/status                                   r,
-  @{PROC}/[0-9]*/stat                                     r,
-  @{PROC}/[0-9]*/cmdline                                  r,
-  @{PROC}/1/comm                                          r,
+  owner @{PROC}                                           r,
+  owner @{PROC}/[0-9]*/                                   r,
+  owner @{PROC}/[0-9]*/status                             r,
+  owner @{PROC}/[0-9]*/stat                               r,
+  owner @{PROC}/[0-9]*/cmdline                            r,
   @{PROC}/uptime                                          r,
   @{PROC}/sys/kernel/pid_max                              r,
   /sys/devices/system/cpu/                                r,
   /sys/devices/system/cpu/**                              r,
+
   /dev/random                                             r,
   /dev/urandom                                            r,
 
+  @{PROC}/1/comm                                          r,
 
   /etc/ssl/certs/java/**                                  r,
   /etc/timezone                                           r,
@@ -51,16 +51,7 @@ $INSTALL_PATH/{i2prouter,runplain.sh} flags=(complain) {
 
 
   # Fonts are needed for I2P's graphs
-  /etc/fonts/**                                           r,
-  /usr/share/fontconfig/                                  r,
-  /usr/share/fontconfig/**                                r,
-  /usr/share/fonts/                                       r,
-  /usr/share/fonts/**                                     r,
-  /usr/share/fonts/truetype/                              r,
-  /usr/share/fonts/truetype/**                            r,
   /usr/share/java/java-atk-wrapper.jar                    r,
-  /var/cache/fontconfig/                                  r,
-  /var/cache/fontconfig/**                                r,
 
   # Used by some plugins
   /usr/share/java/eclipse-ecj-*.jar                       r,
diff --git a/debian/apparmor/i2p b/debian/apparmor/i2p
index 3c20c88f4d..c0a9edec9b 100644
--- a/debian/apparmor/i2p
+++ b/debian/apparmor/i2p
@@ -1,4 +1,4 @@
-# Last Modified: Thu Jan 29 03:17:01 2015
+# Last Modified: Sun Apr 12 22:08:32 2015
 # vim:syntax=apparmor et ts=4 sw=4
 
 #include <abstractions/base>
@@ -10,54 +10,56 @@
 network inet stream,
 network inet6 stream,
 
-# Needed for Java
-@{PROC}                                                 r,
-@{PROC}/[0-9]*/net/if_inet6                             r,
-@{PROC}/[0-9]*/net/ipv6_route                           r,
-@{PROC}/[0-9]*/status                                   r,
-/dev/random                                             r,
-/dev/urandom                                            r,
-/sys/devices/system/cpu/                                r,
-/sys/devices/system/cpu/**                              r,
-
-/etc/ssl/certs/java/**                                  r,
-/etc/timezone                                           r,
-/usr/share/javazi/**                                    r,
-
-/etc/java-*-openjdk/**                                  r,
-/usr/lib/jvm/default-java/jre/bin/java                  rix,
-/usr/lib/jvm/java-*-openjdk-*/jre/bin/java              rix,
-/usr/lib/jvm/java-*-openjdk-*/jre/lib/i386/client/classes.jsa m,
-/usr/lib/jvm/java-*-openjdk-*/jre/bin/keytool           rix,
-
-# Oracle Java is needed on the Raspberry Pi and is included in Raspbian's repositories
-/usr/lib/jvm/jdk-*-oracle-*/jre/bin/java                rix,
-/usr/lib/jvm/jdk-*-oracle-*/jre/bin/keytool             rix,
-
-# needed for I2P's graphs
-/etc/fonts/**                                            r,
-/usr/share/java/java-atk-wrapper.jar                     r,
-
-# I2P specific
-/etc/default/i2p                                        r,
-/usr/share/i2p/**                                       r,
-# Used by some plugins
-/usr/share/java/eclipse-ecj-*.jar                       r,
-
-# Tanuki java wrapper
-/etc/i2p/wrapper.config                                 r,
-/usr/sbin/wrapper                                       rix,
-/usr/share/java/wrapper*.jar                            r,
-
-/{,var/}tmp/                                            rwm,
-owner /{,var/}tmp/**                                    rwklm,
-
-# Prevent spamming the logs
-deny /dev/tty                                           rw,
-deny @{PROC}/[0-9]*/fd/                                 r,
-deny /usr/sbin/                                         r,
-deny /var/cache/fontconfig/                             wk,
-
-# Used by some versions of the Tanuki wrapper, not needed by I2P
-deny /usr/share/java/hamcrest*.jar                      r,
-deny /usr/share/java/junit*.jar                         r,
+  # Needed by Java
+  owner @{PROC}                                           r,
+  owner @{PROC}/[0-9]*/                                   r,
+  owner @{PROC}/[0-9]*/status                             r,
+  /dev/random                                             r,
+  /dev/urandom                                            r,
+  /sys/devices/system/cpu/                                r,
+  /sys/devices/system/cpu/**                              r,
+
+  /etc/ssl/certs/java/**                                  r,
+  /etc/timezone                                           r,
+  /usr/share/javazi/**                                    r,
+
+  /etc/java-*-openjdk/**                                  r,
+  /usr/lib/jvm/default-java/jre/bin/java                  rix,
+  /usr/lib/jvm/java-*-openjdk-*/jre/bin/java              rix,
+  /usr/lib/jvm/java-*-openjdk-*/jre/bin/keytool           rix,
+
+  # Oracle Java is needed on the Raspberry Pi and is included in Raspbian's repositories
+  /usr/lib/jvm/jdk-*-oracle-*/jre/bin/java                rix,
+  /usr/lib/jvm/jdk-*-oracle-*/jre/bin/keytool             rix,
+
+  # */client/classes.jsa is only found (and needed) in 32-bit JVMs.
+  /usr/lib/jvm/java-*-openjdk-*/jre/lib/i386/client/classes.jsa m,
+  /usr/lib/jvm/java-*-oracle-*/jre/lib/i386/client/classes.jsa m,
+
+  # needed for I2P's graphs
+  /usr/share/java/java-atk-wrapper.jar                    r,
+
+  # I2P specific
+  /usr/share/i2p/**                                       r,
+
+  # Used by some plugins
+  /usr/share/java/eclipse-ecj-*.jar                       r,
+
+  # Tanuki java wrapper
+  /etc/i2p/wrapper.config                                 r,
+  /usr/sbin/wrapper                                       rix,
+  /usr/share/java/wrapper*.jar                            r,
+
+  # 'm' is needed by the I2P-Bote plugin
+  /{,var/}tmp/                                            rwm,
+  owner /{,var/}tmp/**                                    rwklm,
+
+  # Prevent spamming the logs
+  deny /dev/tty                                           rw,
+  deny @{PROC}/[0-9]*/fd/                                 r,
+  deny /usr/sbin/                                         r,
+  deny /var/cache/fontconfig/                             wk,
+
+  # Used by some versions of the Tanuki wrapper, not needed by I2P
+  deny /usr/share/java/hamcrest*.jar                      r,
+  deny /usr/share/java/junit*.jar                         r,
diff --git a/debian/apparmor/usr.bin.i2prouter b/debian/apparmor/usr.bin.i2prouter
index b33d796316..ae1b1e2bbe 100644
--- a/debian/apparmor/usr.bin.i2prouter
+++ b/debian/apparmor/usr.bin.i2prouter
@@ -1,4 +1,4 @@
-# Last Modified: Thu Jan 29 03:17:01 2015
+# Last Modified: Sun Apr 12 22:08:32 2015
 # vim:syntax=apparmor et ts=8 sw=4
 
 #include <tunables/global>
@@ -9,8 +9,10 @@
 
   /usr/bin/i2prouter                    r,
 
-  @{PROC}/[0-9]*/stat                   r,
-  @{PROC}/[0-9]*/cmdline                r,
+  @{PROC}/1/comm                        r,
+  owner @{PROC}/[0-9]*/                 r,
+  owner @{PROC}/[0-9]*/stat             r,
+  owner @{PROC}/[0-9]*/cmdline          r,
   @{PROC}/uptime                        r,
   @{PROC}/sys/kernel/pid_max            r,
 
-- 
GitLab