[ubuntu-hardened] a question
js at johest.de
js at johest.de
Thu Dec 12 07:07:10 UTC 2013
Hi Seth,
comments inline
On 12.12.2013 03:54, Seth Arnold wrote:
> On Wed, Dec 11, 2013 at 10:29:06PM +0100, js at johest.de wrote:
>> i just started on an apparmor profile for postgresql, which seemed
>> not to be in progress (according to website). As i dont know how to
>> "upload" it, i will attach it to the mail.
>
> Many of the "enthusiast" profiles are stored in bazaar,
> https://code.launchpad.net/~apparmor-dev/apparmor-profiles/master
>
> For postgresql, debfx has started a profile:
>
> http://bazaar.launchpad.net/~apparmor-dev/apparmor-profiles/master/view/head:/ubuntu/14.04/usr.lib.postgresql.bin.postgres
>
> (At least your profile name looks related to his, abstractions look the
> same...)
Yep, debfx pointed me to the page yesterday in the chat, and i took some
of his code cause it looked good :-)
Or looked at that stage better then mine.
>
>> Is my first try so please dont kill me.
>>
>> I guess i need to improve on the several libaries and mask the
>> version numbers, or is there any guide for that, regarding the
>> lifetime and the expectet version changes within an release? The
>> profile is working so far, apparmor doesnt complain and postgresql
>> is working.
>
> Nice! A few comments inline:
>
>> # Author: Joerg Stephan <js at johest.de>
>>
>>
>> #include <tunables/global>
>>
>> /usr/lib/postgresql/[0-9.]*/bin/postgres flags=(complain) {
>>
>> #include <abstractions/base>
>> #include <abstractions/nameservice>
>> #include <abstractions/ssl_keys>
>>
>> network,
>
> It'd be nice to have this as tight as possible. This grants a fair
> amount
> of networking access.
>
>>
>>
>> /etc/postgresql/[0-9.]*/main/** r,
>> /var/lib/postgresql/[0-9.]*/main/** rw,
>> /var/run/postgresql/** rw,
>> /run/postgresql/** rw,
>> /usr/share/postgresql/[0-9.}*/** r,
>
> I'd be tempted to simplify these to:
>
> /etc/postgresql/** r,
> /var/lib/postgresql/** rw,
> /{var,}/run/postgresql/** rw,
> /usr/share/postgresql/** r,
>
> I don't think the version numbers contribute enough to carry them
> around.
> Postgresql might as well own all the files in directories given to it..
>
>>
>> @{PROC}/ r,
>> owner @{PROC}/[0-9]*/com_adj rw,
>> owner @{PROC}/[0-9]*/oom_adj rw,
>
> The com_adj line can be deleted, there's no com_adj control file.
>
>
>> /lib/x86_64-linux-gnu/libssl.so.1.0.0 rm,
>> /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 rm,
>> /lib/x86_64-linux-gnu/libpam.so.0.83.0 rm,
>> /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.1 rm,
>> /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2 rm,
>> /lib/x86_64-linux-gnu/libcom_err.so.2.1 rm,
>> /lib/x86_64-linux-gnu/libc-2.17.so rm,
>> /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2.8.3 rm,
>> /lib/x86_64-linux-gnu/libm-2.17.so rm,
>> /lib/x86_64-linux-gnu/libdl-2.17.so rm,
>> /usr/lib/x86_64-linux-gnu/libkrb5.so.3.3 rm,
>> /usr/lib/x86_64-linux-gnu/libkrb5.so.26.0.0 rm,
>> /usr/lib/x86_64-linux-gnu/libk5crypto.so.3.1 rm,
>> /lib/x86_64-linux-gnu/libaudit.so.1.0.0 rm,
>> /lib/x86_64-linux-gnu/liblzma.so.5.0.0 rm,
>> /lib/x86_64-linux-gnu/libz.so.1.2.8 rm,
>> /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2.8.3 rm,
>> /lib/x86_64-linux-gnu/libpthread-2.17.so rm,
>> /lib/x86_64-linux-gnu/libresolv-2.17.so rm,
>> /lib/x86_64-linux-gnu/libkeyutils.so.1.4 rm,
>> /usr/lib/x86_64-linux-gnu/libkrb5support.so.0.1 rm,
>> /usr/lib/x86_64-linux-gnu/libsasl2.so.2.0.25 rm,
>> /usr/lib/x86_64-linux-gnu/libgssapi.so.3.0.0 rm,
>> /usr/lib/x86_64-linux-gnu/libgnutls.so.26.22.6 rm,
>> /lib/x86_64-linux-gnu/libgcrypt.so.11.7.0 rm,
>> /usr/lib/x86_64-linux-gnu/libheimntlm.so.0.1.0 rm,
>> /usr/lib/x86_64-linux-gnu/libheimbase.so.1.0.0 rm,
>> /usr/lib/x86_64-linux-gnu/libasn1.so.8.0.0 rm,
>> /usr/lib/x86_64-linux-gnu/libhcrypto.so.4.1.0 rm,
>> /usr/lib/x86_64-linux-gnu/libroken.so.18.1.0 rm,
>> /usr/lib/x86_64-linux-gnu/libtasn1.so.3.2.0 rm,
>> /usr/lib/x86_64-linux-gnu/libp11-kit.so.0.0.0 rm,
>> /lib/x86_64-linux-gnu/libgpg-error.so.0.10.0 rm,
>> /usr/lib/x86_64-linux-gnu/libwind.so.0.0.0 rm,
>> /usr/lib/x86_64-linux-gnu/libhx509.so.5.0.0 rm,
>> /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6 rm,
>> /lib/x86_64-linux-gnu/libcrypt-2.17.so rm,
>
> All the libraries should already be covered by <abstractions/base> --
> it
> grants, e.g.,
>
> /lib/@{multiarch}/lib*.so* mr,
> ...
> /usr/lib{,32,64}/*.so* mr,
>
> I believe that all of these can be removed from the profile.
>
>> /usr/lib/locale/locale-archive rm,
>
> This one ought to be covered by the <abstractions/base> rule:
>
> /usr/lib{,32,64}/locale/** mr,
>
>> /etc/ld.so.cache r,
>>
>
> And again, covered by <abstractions/base>:
>
> /etc/ld.so.cache mr,
>
>
>> }
>>
Well okay, maybe as an hint,
i just switched apparmor to complain mode and so took all the used files
from the syslog. Even with the abstract rules above it still complained
about the files i added below than.
>
> It might be nice to add something like:
>
> #include <local/postgresql>
>
> so local modifications can be made without too much trouble.
>
> Perhaps a <tunables/postgresql> to allow specifying a socket for the
> server and clients to use? Or a storage path to databases?
>
Okay, sounds fair
> Thanks!
Thanks to you
Jörg
More information about the ubuntu-hardened
mailing list