On Fre, Nov 30, 2001 at 11:31:08 +1000, [EMAIL PROTECTED] wrote:
> I just wanted to know if anyone is using this and what they think of
> it. 

I think it's a good protection that bring's a linux system a step
further in the direction of having a finer tuneable system that doesn't
depend too much on a single user.

> Is it hard to set up? 

It would be *very* nice to have labor to test this stuff out. To
effectively configure it, you must have a real world load on the machine
where many users try to access their data. This was, for me, a hairy
step.

First, you download the patch. You patch the kernel and set
configuration options. Then the usual compile run.

After you setup up a LIDS protected kernel, you boot the system without
LIDS enabled. This is option "security=0" (e.g. at lilo stage). Then you
boot it. Set the password which protect your kernel from root.

Then you set which capabilities should be enabled/disabled by the
kernel. Then you set basic configuration.

First, imagine what capabilities a daemon should have for the daemons
that need additional access. This will never work from just imagine it.
In the FAQ/HOWTO there are several examples of configurations for
specific daemons and/or programs. If you wann be on the secure way,
disable every capability that you don't need and don't configure any
capabilties further. Configure it later on a per-need basis.

Second, you set up basic mandatory ACL. Protect /etc, /bin, /usr and so
on. This is well documented on the homepage and the LIDS distribution
comes with good basic configuration.

After you have a mini LIDS configured system, with basicly configured
filesystem and daemons, you boot the system.

Many daemons will fail to boot at this step (because e.g. they could not
bind to port 80 'cause lack of access the capability
CAP_NET_SYS_BIND_SERVICE). Try to login (hope, you have configured
/bin/login properly). If something goes wrong, you can reboot with LIDS
disabled and do admin stuff as usual.

Setup LIDS logging (important). Perhaps remote or via printk/klogd
(stuff goes to /var/log/kern.log)

Now you can try to access some files/directories which you have
protected or you try someting you disabled (e.g. try ping to access raw
sockets). LIDS should generate an alert, even for root.

Then you do a LFS (LIDS free session). Check documentation (as you
should already really have at this stage).

Start every daemon that could not be started at boot stage. 

Activate LIDS and monitor where the daemons fail to do their job.
Configure the daemons with lidsadm.

After the daemons run smootly in a configured LIDS, you set up them so
they can start automatically. In my setup, i changed start sequence so
every daemon which e.g. have to bind to a privileged port in single user
mode. LIDS will be sealed at the finish of single user mode boot stage.
Background: don't give daemons to much access if they don't need it
really for daily business operations.

Run the system with maximum protection and change perms on a per-need
basis.

After things go well, you protected filesystem and capabilites and the
system runs with required security, you can fine tune it. "Does this
daemon really need it for running? Can this file/directory be secured
and everything runs well?"

If you do it the first time, it will be a time consuming process to
monitor it and to configure it properly. After experience grow, it will
be easier and easier to secure your machine.

The main purpose i use LIDS, is to protect the person who administrate
the machine from the root user wich have to run service daemons. Cause
in a properly setup system, these are not the same (with LIDS), i can
sleep well bacause they [the attacker] will bite into stone, even they
get root access.

One very cool feature is to terminate session on violation. On thing
access even which root should not have and you have your session
terminated.

> What happens when you do an apt-get
> dist-upgrade - will it refuse to change the binaries you want to
> upgrade?

This depend.

In an activateed environment, you login as root and upgrade, it will
fail. The filesystem is in this situation protected even for root.

If you disable it locally, say your current shell and child-processes
have LIDS deactivated, it will work. With my version (i used it on 2.2)
it will update the files without problems. 

Problems could occur on restarting the daemons. I had to disable it
globally and restart the daemons by hand (and of course ractivate it
later, say it's insecure).

> Is something like Tripwire / AIDE better because it doesn't
> stop root from changing/deleting files but will tell you later which
> ones have changed.

I use both. The access control lists are mandatory. This means they're
compulsory even for root. In an normal kernel, discretionary control is
used, which mean root can evade it.

LIDS protect from actually restricted access and, this is very nice,
have a logging facility wich report every policy violation. So, a script
kiddiy ist accessing a read-only /usr, he will raise alert on write
access the whole /usr sub-directory (this is different from mounting it
read-only. You can remount it in this situation. With LIDS this is not
possible).

LIDS is for protection and real-time logging. The checksum is for
verifiyng the storage. LIDS goes further, but also does have logging
facilites.

> Anyone with any experience in using this LIDS?

Yes, i do.

Some off-topic (personal) info:

I had a talk at my local user group. The response, actually from people
who administrate systems with over 300 users, was very good. I had  the
next LIDS presenation at the ETH in zurich. Then David Spreen contacted
me. He creates the inofficial debian LIDS packages at
http://netzwurm.cc/computer/lids.html

If everything goes well, we'll have a speak together at the Chaos
Communication Congress 2001 (18C3) about LIDS. I'll have a computer with
LIDS there and will hand-out root passwort to everybody. The challenge
root-vs-kernel will begin :)

Reply via email to