about summary refs log tree commit diff stats
path: root/core/hardening.html
diff options
context:
space:
mode:
Diffstat (limited to 'core/hardening.html')
-rw-r--r--core/hardening.html144
1 files changed, 130 insertions, 14 deletions
diff --git a/core/hardening.html b/core/hardening.html
index 1455398..d94cda6 100644
--- a/core/hardening.html
+++ b/core/hardening.html
@@ -2,30 +2,146 @@
 <html dir="ltr" lang="en">
     <head>
         <meta charset='utf-8'>
-        <title>2.2. Hardening</title>
+        <title>2.6. Hardening</title>
     </head>
     <body>
 
         <a href="index.html">Core OS Index</a>
 
-        <h1>2.2. Hardening</h1>
+        <h1>2.6. Hardening</h1>
 
-        <p>Check <a href="apparmor.html">apparmor</a>,
-        <a href="sysctl.html">sysctl</a>, 
-        <a href="toolchain.html">toolchain</a> and
-        <a href="samhain.html">samhain</a> before running tests.</p>
+        <h2>2.6.0.2 System security</h2>
 
-        <p>Mount some filesystems in read only</p>
-        <p>Check processes running as root</p>
-        <p>Check processes users premissions</p>
+        <dl>
+            <dt>File systems</dt>
+            <dd>Check <a href="install.html#fstab">fstab</a> and current mount options. Mount filesystems in read only, only strict necessary in rw.</dd>
+            <dt>Sys</dt>
+            <dd>Check kernel settings with <a href="sysctl.html">sysctl</a>.</dd>
+            <dd>kernel.yama.ptrace_scope breaks gdb, strace, perf trace and reptyr.</dd>
+            <dt>Iptables</dt>
+            <dd>Check if <a href="network.html#iptables">iptables</a> rules are loaded and are correctly logging.(firewald works as API to iptables).</dd>
+            <dt>Apparmor</dt>
+            <dd>Check if <a href="apparmor.html">apparmor</a> is active and enforcing policies.</dd>
+            <dt>Samhain</dt>
+            <dd>Check if <a href="samhain.html">samhain</a> is running.</dd>
+            <dt>Toolchain</dt>
+            <dd>Build ports using hardened <a href="toolchain.html">toolchain</a> settings.</dd>
+        </dl>
+
+
+        <pre>
+        $ sudo prt-get depinst checksec
+        </pre>
+
+        <h2>2.6.0.1 System configuration</h2>
+
+        <h3>1.1 - Users groups, passwords and sudo.</h3>
+
+        <p>Check "normal" users groups, make sure they are not admin or wheel group; ps -U root -u root u, ps axl | awk '$7 != 0 &amp;&amp; $10 !~ "Z"', process permission; ps -o gid,rdig,supgid -p "$pid"</p>
+
+        <p>Maintain, secure with hash, and enforce secure passwords with pam-cracklib.</p>
+
+
+        <h3>1.2 - Linux PAM</h3>
+
+        <p>Cat /etc/pam.d/system-auth. Check pam modules, test on virtual machine, user can lockout during tests.</p>
+
+        <p>Check files (processes) set uid and set gid;</p>
+
+        <pre>
+        # find / -perm -4000 >> /root/setuid_files
+        # find / -perm 2000 >> /root/setguid_files
+        </pre>
+
+        <p>To setuid (4744);</p>
+
+        <pre>
+        # chmod u+s filename
+        </pre>
+
+        <p>To remove (0664) from su and Xorg (user must be part of input and video for xorg to run);</p>
+
+        <pre>
+        # chmod u-s /usr/bin/su
+        # chmod u-s /usr/bin/X
+        </pre>
+
+        <p>To set gid (2744)</p>
+        <pre>
+        # chmod g+s filename
+        </pre>
+        <p>To remove (0774);</p>
+        <pre>
+        # chmod g-s filename
+        </pre>
+
+        <p>Check files (processes); getfacl filename.</p>
+        , disable admins and root from sshd.</p>
+
+        <h3>1.3. Capabilities</h3>
+
+        <p>Check capabilities;</p>
+        <pre>
+        # getcap filename
+        </pre>
+
+            <dd>1.9 - Limit number of processes.</dd>
+            <dd>1.10 - Lock user after 3 failed loggins.</dd>
+            <dd>1.8 - Block host ip based on iptable and services
+            abuse.</dd>
+        </dl>
+
+        <h3>1.4 Sudo</h3>
+
+        <p>Check sudo, sudoers and sudo replay.</p>
+
+        <p>Don't run editor as root, instead run sudoedit filename or sudo --edit filename. Editor can be set as a environment variable;</p>
+
+        <pre>
+        $ export SUDO_EDITOR=vim
+        </pre>
+
+        <p>Set rvim as default on sudo config;</p>
+
+        <pre>
+        # visudo
+
+        Defaults editor=/usr/bin/rvim
+        </pre>
+
+        <p>Once sudo is correctly configured, disable root login;</p>
+
+        <pre>
+        # passwd --lock root
+        </pre>
+
+        <h3>1.5 Auditd</h3>
+
+        <pre>
+        $ prt-get depinst audit
+        </pre>
+
+        <p>Example audit when file /etc/passwd get modified;</p>
+
+        <pre>
+        $ auditctl -w /etc/passwd -p wa -k passwd_changes
+        </pre>
+
+        <p>Audit when a module get's loaded;</p>
+
+        <pre>
+        # auditctl -w /sbin/insmod -p x -k module_insertion
+        </pre>
+
+        <h2>2.6.0.2 Lynis</h2>
 
         <pre>
-        $ sudo prt-get depinst checksec lynis
+        $ sudo prt-get depinst lynis
         </pre>
 
-        <p>Lynis gives a view of system overall configuration, without changing
-        default profile it runs irrelevant tests. Create a lynis profile by
-        coping default one and run lynis;</p>
+        <p>Lynis gives a view of system overall configuration,
+        without changing default profile it runs irrelevant tests.
+        Create a lynis profile by coping default one and run lynis;</p>
 
         <pre>
         $ sudo cp /etc/lynis/default.prf /etc/lynis/custom.prf
@@ -44,7 +160,7 @@
 
         <a href="index.html">Core OS Index</a>
         <p>This is part of the Hive System Documentation.
-        Copyright (C) 2018
+        Copyright (C) 2019
         Hive Team.
         See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
         for copying conditions.</p>