Linux Security Check

Jarret B

Well-Known Member
Staff member
Joined
May 22, 2017
Messages
377
Reaction score
445
Credits
14,054
Most people feel Linux is a secure Operating System (OS). I’m definitely not trying to make anyone paranoid or worried. In some situations, such as a business environment, it is best to be safe with your servers.

The information provided by the assessing program may not be necessary for your usage, but some of it can definitely be useful to make a system more secure.

Downloading and Check Lynis

To start. You need to get the files needed. You can download Lynix from ‘https://cisofy.com/downloads/lynis/’. Also, listed on this page is the SHA256 checksum for the version ‘3.1.2 of Lynis. The checksum is ‘882c46d28005c7c35d2829e646deabbd9834358d885489f7e3a472c7c10972d4’ so once we download the file ‘lynis-3.1.2.tar.gz’, we can verify the checksum and make sure the file is correct.

To set up the checksum file, we need to run the command from a terminal:

Code:
printf "882c46d28005c7c35d2829e646deabbd9834358d885489f7e3a472c7c10972d4 lynis-3.1.2.tar.gz\0" > sha256

NOTE: You need to use ‘printf’ and not ‘echo’ to get the NULL character. A sum file can be made with multiple check sums and filenames, but the lines must end with a NULL character and not a newline.

The command will create a file named ‘sha256’ which contains a single line with the checksum, two spaces followed by the filename and ending with a NULL character (/0). All we need to do is run a checksum from the file, it will get the checksum and filename, create a checksum for the filename and compare it to the one listed in the file. To run the check:

Code:
sha256sum -c sha256

The result should be the filename followed by ‘OK’. If the response is not ‘OK’, then download the file again with the checksum. Create a new checksum file and try it all again. Keep in mind that when a new version is released, the checksum values will all change.

Extract Lynis

Once you know the file has not been tampered with, you can extract it, use the command:

Code:
tar –xvzf lynis-3.1.2.tar.gz

There should now be a folder named ‘lynis’ with multiple files and folders within it.

You are now ready to continue and get security reports for your system.

Running a Security Check

Now that everything is ready, you can run a security check.

From a Command Line Interface (CLI), type the command from the folder where ‘lynis’ is located:

Code:
sudo ./lynis audit system

There are some checks that cannot be performed if you are not running the command with elevated privileges (sudo).

Output Report

Quite a bit of information is shown on the screen and can fly by quickly after you type in the password, if needed.

A sample output is as follows:

Code:
[!] Change ownership of /home/jarret/Downloads/lynis/include/functions to 'root' or similar (found: jarret with UID 1000).
Command:
# chown 0:0 /home/jarret/Downloads/lynis/include/functions

[X] Security check failed

Why do I see this error?
-------------------------------

This is a protection mechanism to prevent the root user from executing user created files. The files may be altered, or including malicious pieces of script.

What can I do?

---------------------

Option 1) Check if a trusted user created the files (e.g. due to using Git, Homebrew or similar).

If you trust these files, you can decide to continue this run by pressing ENTER.

Option 2) Change ownership of the related files (or full directory).

Commands (full directory):

# cd ..
# chown -R 0:0 lynis
# cd lynis
# ./lynis audit system

[ Press ENTER to continue, or CTRL+C to cancel ]

[ Lynis 3.1.2 ]

################################################################################

Lynis comes with ABSOLUTELY NO WARRANTY. This is free software, and you are

welcome to redistribute it under the terms of the GNU General Public License.

See the LICENSE file for details about using this software.

2007-2024, CISOfy - https://cisofy.com/lynis/

Enterprise support available (compliance, plugins, interface and tools)

################################################################################

[+] Initializing program

------------------------------------

- Detecting OS... [ DONE ]
- Checking profiles... [ DONE ]

---------------------------------------------------

Program version: 3.1.2
Operating system: Linux
Operating system name: Ubuntu
Operating system version: 24.04
Kernel version: 6.8.0
Hardware platform: x86_64
Hostname: Triggy

---------------------------------------------------

Profiles: /home/jarret/Downloads/lynis/default.prf
Log file: /var/log/lynis.log
Report file: /var/log/lynis-report.dat
Report version: 1.0
Plugin directory: ./plugins

---------------------------------------------------

Auditor: [Not Specified]
Language: en
Test category: all
Test group: all

---------------------------------------------------

- Program update status... [ NO UPDATE ]

[+] System tools

------------------------------------

- Scanning available tools...
- Checking system binaries...

[+] Plugins (phase 1)

------------------------------------

Note: plugins have more extensive tests and may take several minutes to complete

- Plugins enabled [ NONE ]

[+] Boot and services

------------------------------------

- Service Manager [ systemd ]
- Checking UEFI boot [ ENABLED ]
- Checking Secure Boot [ DISABLED ]
- Checking presence GRUB2 [ FOUND ]
- Checking for password protection [ NONE ]
- Check running services (systemctl) [ DONE ]
Result: found 32 running services

- Check enabled services at boot (systemctl) [ DONE ]
Result: found 60 enabled services

- Check startup files (permissions) [ OK ]
- Running 'systemd-analyze security'
- ModemManager.service: [ MEDIUM ]
- NetworkManager.service: [ EXPOSED ]
- accounts-daemon.service: [ MEDIUM ]
- alsa-state.service: [ UNSAFE ]
- anacron.service: [ UNSAFE ]
- avahi-daemon.service: [ UNSAFE ]
- bluetooth.service: [ MEDIUM ]
- colord.service: [ PROTECTED ]
- cron.service: [ UNSAFE ]
- cups-browsed.service: [ UNSAFE ]
- cups.service: [ UNSAFE ]
- dbus.service: [ UNSAFE ]
- dmesg.service: [ UNSAFE ]
- emergency.service: [ UNSAFE ]
- fwupd.service: [ EXPOSED ]
- gdm.service: [ UNSAFE ]
- [email protected]: [ UNSAFE ]
- gnome-remote-desktop.service: [ UNSAFE ]
- kerneloops.service: [ UNSAFE ]
- networkd-dispatcher.service: [ UNSAFE ]
- packagekit.service: [ UNSAFE ]
- plymouth-start.service: [ UNSAFE ]
- polkit.service: [ PROTECTED ]
- power-profiles-daemon.service: [ MEDIUM ]
- rc-local.service: [ UNSAFE ]
- rescue.service: [ UNSAFE ]
- rsyslog.service: [ MEDIUM ]
- rtkit-daemon.service: [ MEDIUM ]
- snapd.service: [ UNSAFE ]
- sssd-autofs.service: [ UNSAFE ]
- sssd-nss.service: [ UNSAFE ]
- sssd-pac.service: [ UNSAFE ]
- sssd-pam.service: [ UNSAFE ]
- sssd-ssh.service: [ UNSAFE ]
- sssd-sudo.service: [ UNSAFE ]
- sssd.service: [ EXPOSED ]
- switcheroo-control.service: [ EXPOSED ]
- systemd-ask-password-console.service: [ UNSAFE ]
- systemd-ask-password-plymouth.service: [ UNSAFE ]
- systemd-ask-password-wall.service: [ UNSAFE ]
- systemd-bsod.service: [ UNSAFE ]
- systemd-fsckd.service: [ UNSAFE ]
- systemd-initctl.service: [ UNSAFE ]
- systemd-journald.service: [ PROTECTED ]
- systemd-logind.service: [ PROTECTED ]
- systemd-networkd.service: [ PROTECTED ]
- systemd-oomd.service: [ PROTECTED ]
- systemd-resolved.service: [ PROTECTED ]
- systemd-rfkill.service: [ UNSAFE ]
- systemd-timesyncd.service: [ PROTECTED ]
- systemd-udevd.service: [ MEDIUM ]
- thermald.service: [ UNSAFE ]
- tpm-udev.service: [ UNSAFE ]
- ubuntu-advantage.service: [ UNSAFE ]
- udisks2.service: [ UNSAFE ]
- unattended-upgrades.service: [ UNSAFE ]
- upower.service: [ PROTECTED ]
- [email protected]: [ UNSAFE ]
- uuidd.service: [ MEDIUM ]
- vboxautostart-service.service: [ UNSAFE ]
- vboxballoonctrl-service.service: [ UNSAFE ]
- vboxdrv.service: [ UNSAFE ]
- vboxweb-service.service: [ UNSAFE ]
- whoopsie.service: [ UNSAFE ]
- wpa_supplicant.service: [ UNSAFE ]

[+] Kernel

------------------------------------

- Checking default runlevel [ runlevel 5 ]
- Checking CPU support (NX/PAE)
CPU support: PAE and/or NoeXecute supported [ FOUND ]

- Checking kernel version and release [ DONE ]
- Checking kernel type [ DONE ]
- Checking loaded kernel modules [ DONE ]
Found 150 active modules

- Checking Linux kernel configuration file [ FOUND ]
- Checking default I/O kernel scheduler [ NOT FOUND ]
- Checking for available kernel update [ OK ]
- Checking core dumps configuration
- configuration in systemd conf files [ DEFAULT ]
- configuration in /etc/profile [ DEFAULT ]
- 'hard' configuration in /etc/security/limits.conf [ DEFAULT ]
- 'soft' configuration in /etc/security/limits.conf [ DEFAULT ]
- Checking setuid core dumps configuration [ PROTECTED ]
- Check if reboot is needed [ YES ]

[+] Memory and Processes

------------------------------------

- Checking /proc/meminfo [ FOUND ]
- Searching for dead/zombie processes [ NOT FOUND ]
- Searching for IO waiting processes [ NOT FOUND ]
- Search prelink tooling [ NOT FOUND ]

[+] Users, Groups and Authentication

------------------------------------

- Administrator accounts [ OK ]
- Unique UIDs [ OK ]
- Consistency of group files (grpck) [ OK ]
- Unique group IDs [ OK ]
- Unique group names [ OK ]
- Password file consistency [ OK ]
- Password hashing methods [ SUGGESTION ]
- Checking password hashing rounds [ DISABLED ]
- Query system users (non daemons) [ DONE ]
- NIS+ authentication support [ NOT ENABLED ]
- NIS authentication support [ NOT ENABLED ]
- Sudoers file(s) [ FOUND ]
- Permissions for directory: /etc/sudoers.d [ WARNING ]
- Permissions for: /etc/sudoers [ OK ]
- Permissions for: /etc/sudoers.d/README [ OK ]
- PAM password strength tools [ OK ]
- PAM configuration files (pam.conf) [ FOUND ]
- PAM configuration files (pam.d) [ FOUND ]
- PAM modules [ FOUND ]
- LDAP module in PAM [ NOT FOUND ]
- Accounts without expire date [ SUGGESTION ]
- Accounts without password [ OK ]
- Locked accounts [ OK ]
- Checking user password aging (minimum) [ DISABLED ]
- User password aging (maximum) [ DISABLED ]
- Checking expired passwords [ OK ]
- Checking Linux single user mode authentication [ OK ]
- Determining default umask
- umask (/etc/profile) [ NOT FOUND ]
- umask (/etc/login.defs) [ SUGGESTION ]
- LDAP authentication support [ NOT ENABLED ]
- Logging failed login attempts [ ENABLED ]

[+] Kerberos

------------------------------------

- Check for Kerberos KDC and principals [ NOT FOUND ]

[+] Shells

------------------------------------

- Checking shells from /etc/shells
Result: found 7 shells (valid shells: 7).

- Session timeout settings/tools [ NONE ]
- Checking default umask values
- Checking default umask in /etc/bash.bashrc [ NONE ]
- Checking default umask in /etc/profile [ NONE ]

[+] File systems

------------------------------------

- Checking mount points
- Checking /home mount point [ SUGGESTION ]
- Checking /tmp mount point [ SUGGESTION ]
- Checking /var mount point [ SUGGESTION ]
- Query swap partitions (fstab) [ OK ]
- Testing swap partitions [ OK ]
- Testing /proc mount (hidepid) [ SUGGESTION ]
- Checking for old files in /tmp [ OK ]
- Checking /tmp sticky bit [ OK ]
- Checking /var/tmp sticky bit [ OK ]
- ACL support root file system [ ENABLED ]
- Mount options of / [ OK ]
- Mount options of /dev [ PARTIALLY HARDENED ]
- Mount options of /dev/shm [ PARTIALLY HARDENED ]
- Mount options of /run [ HARDENED ]
- Total without nodev:11 noexec:33 nosuid:27 ro or noexec (W^X): 15 of total 50
- JBD driver is not loaded [ CHECK NEEDED ]
- Disable kernel support of some filesystems

[+] USB Devices

------------------------------------

- Checking usb-storage driver (modprobe config) [ NOT DISABLED ]
- Checking USB devices authorization [ ENABLED ]
- Checking USBGuard [ NOT FOUND ]

[+] Storage

------------------------------------

- Checking firewire ohci driver (modprobe config) [ DISABLED ]

[+] NFS

------------------------------------

- Check running NFS daemon [ NOT FOUND ]

[+] Name services

------------------------------------

- Checking search domains [ FOUND ]
- Checking /etc/resolv.conf options [ FOUND ]
- Searching DNS domain name [ UNKNOWN ]
- Checking /etc/hosts
- Duplicate entries in hosts file [ NONE ]
- Presence of configured hostname in /etc/hosts [ FOUND ]
- Hostname mapped to localhost [ NOT FOUND ]
- Localhost mapping to IP address [ OK ]

[+] Ports and packages

------------------------------------

- Searching package managers
- Searching dpkg package manager [ FOUND ]
- Querying package manager
- Query unpurged packages [ FOUND ]
- Checking security repository in sources.list.d directory [ OK ]
- Checking APT package database [ OK ]
- Checking vulnerable packages [ OK ]
- Checking upgradeable packages [ SKIPPED ]
- Checking package audit tool [ INSTALLED ]
Found: apt-check

- Toolkit for automatic upgrades (unattended-upgrade) [ FOUND ]

[+] Networking

------------------------------------

- Checking IPv6 configuration [ ENABLED ]
Configuration method [ AUTO ]
IPv6 only [ NO ]
- Checking configured nameservers
- Testing nameservers
Nameserver: 127.0.0.53 [ OK ]

- DNSSEC supported (systemd-resolved) [ UNKNOWN ]
- Checking default gateway [ DONE ]
- Getting listening ports (TCP/UDP) [ DONE ]
- Checking promiscuous interfaces [ OK ]
- Checking waiting connections [ OK ]
- Checking status DHCP client [ NOT ACTIVE ]
- Checking for ARP monitoring software [ NOT FOUND ]
- Uncommon network protocols [ 0 ]

[+] Printers and Spools

------------------------------------

- Checking cups daemon [ RUNNING ]
- Checking CUPS configuration file [ OK ]
- File permissions [ WARNING ]
- Checking CUPS addresses/sockets [ FOUND ]
- Checking lp daemon [ NOT RUNNING ]

[+] Software: e-mail and messaging

------------------------------------

[+] Software: firewalls

------------------------------------

- Checking iptables kernel module [ FOUND ]
- Checking iptables policies of chains [ FOUND ]
- Checking for empty ruleset [ WARNING ]
- Checking for unused rules [ OK ]
- Checking host based firewall [ ACTIVE ]

[+] Software: webserver

------------------------------------

- Checking Apache [ NOT FOUND ]
- Checking nginx [ NOT FOUND ]

[+] SSH Support

------------------------------------

- Checking running SSH daemon [ NOT FOUND ]

[+] SNMP Support

------------------------------------

- Checking running SNMP daemon [ NOT FOUND ]

[+] Databases

------------------------------------

No database engines found

[+] LDAP Services

------------------------------------

- Checking OpenLDAP instance [ NOT FOUND ]

[+] PHP

------------------------------------

- Checking PHP [ NOT FOUND ]

[+] Squid Support

------------------------------------

- Checking running Squid daemon [ NOT FOUND ]

[+] Logging and files

------------------------------------

- Checking for a running log daemon [ OK ]
- Checking Syslog-NG status [ NOT FOUND ]
- Checking systemd journal status [ FOUND ]
- Checking Metalog status [ NOT FOUND ]
- Checking RSyslog status [ FOUND ]
- Checking RFC 3195 daemon status [ NOT FOUND ]
- Checking minilogd instances [ NOT FOUND ]
- Checking wazuh-agent daemon status [ NOT FOUND ]
- Checking logrotate presence [ OK ]
- Checking remote logging [ NOT ENABLED ]
- Checking log directories (static list) [ DONE ]
- Checking open log files [ DONE ]
- Checking deleted files in use [ FILES FOUND ]

[+] Insecure services

------------------------------------

- Installed inetd package [ NOT FOUND ]
- Installed xinetd package [ OK ]
- xinetd status [ NOT ACTIVE ]
- Installed rsh client package [ OK ]
- Installed rsh server package [ OK ]
- Installed telnet client package [ OK ]
- Installed telnet server package [ NOT FOUND ]
- Checking NIS client installation [ OK ]
- Checking NIS server installation [ OK ]
- Checking TFTP client installation [ OK ]
- Checking TFTP server installation [ OK ]

[+] Banners and identification

------------------------------------

- /etc/issue [ FOUND ]
- /etc/issue contents [ WEAK ]
- /etc/issue.net [ FOUND ]
- /etc/issue.net contents [ WEAK ]

[+] Scheduled tasks

------------------------------------

- Checking crontab and cronjob files [ DONE ]

[+] Accounting

------------------------------------

- Checking accounting information [ NOT FOUND ]
- Checking sysstat accounting data [ DISABLED ]
- Checking auditd [ NOT FOUND ]

[+] Time and Synchronization

------------------------------------

- NTP daemon found: systemd (timesyncd) [ FOUND ]
- Checking for a running NTP daemon or client [ OK ]
- Last time synchronization [ 1109s ]

[+] Cryptography

------------------------------------

- Checking for expired SSL certificates [0/151] [ NONE ]

[WARNING]: Test CRYP-7902 had a long execution: 14.624171 seconds

- Kernel entropy is sufficient [ YES ]

- HW RNG & rngd [ NO ]

- SW prng [ NO ]

MOR-bit set [ YES ]

[+] Virtualization

------------------------------------

[+] Containers

------------------------------------

[+] Security frameworks

------------------------------------

- Checking presence AppArmor [ FOUND ]

- Checking AppArmor status [ ENABLED ]

Found 127 unconfined processes

- Checking presence SELinux [ NOT FOUND ]

- Checking presence TOMOYO Linux [ NOT FOUND ]

- Checking presence grsecurity [ NOT FOUND ]

- Checking for implemented MAC framework [ OK ]

[+] Software: file integrity

------------------------------------

- Checking file integrity tools

- Checking presence integrity tool [ NOT FOUND ]

[+] Software: System tooling

------------------------------------

- Checking automation tooling

- Automation tooling [ NOT FOUND ]

- Checking for IDS/IPS tooling [ NONE ]

[+] Software: Malware

------------------------------------

- Malware software components [ NOT FOUND ]

[+] File Permissions

------------------------------------

- Starting file permissions check

File: /boot/grub/grub.cfg [ OK ]

File: /etc/crontab [ SUGGESTION ]

File: /etc/group [ OK ]

File: /etc/group- [ OK ]

File: /etc/hosts.allow [ OK ]

File: /etc/hosts.deny [ OK ]

File: /etc/issue [ OK ]

File: /etc/issue.net [ OK ]

File: /etc/passwd [ OK ]

File: /etc/passwd- [ OK ]

Directory: /root/.ssh [ OK ]

Directory: /etc/cron.d [ SUGGESTION ]

Directory: /etc/cron.daily [ SUGGESTION ]

Directory: /etc/cron.hourly [ SUGGESTION ]

Directory: /etc/cron.weekly [ SUGGESTION ]

Directory: /etc/cron.monthly [ SUGGESTION ]

[+] Home directories

------------------------------------

- Permissions of home directories [ OK ]

- Ownership of home directories [ OK ]

- Checking shell history files [ OK ]

[+] Kernel Hardening

------------------------------------

- Comparing sysctl key pairs with scan profile

- dev.tty.ldisc_autoload (exp: 0) [ DIFFERENT ]

- fs.protected_fifos (exp: 2) [ DIFFERENT ]

- fs.protected_hardlinks (exp: 1) [ OK ]

- fs.protected_regular (exp: 2) [ OK ]

- fs.protected_symlinks (exp: 1) [ OK ]

- fs.suid_dumpable (exp: 0) [ DIFFERENT ]

- kernel.core_uses_pid (exp: 1) [ DIFFERENT ]

- kernel.ctrl-alt-del (exp: 0) [ OK ]

- kernel.dmesg_restrict (exp: 1) [ OK ]

- kernel.kptr_restrict (exp: 2) [ DIFFERENT ]

- kernel.modules_disabled (exp: 1) [ DIFFERENT ]

- kernel.perf_event_paranoid (exp: 2 3 4) [ OK ]

- kernel.randomize_va_space (exp: 2) [ OK ]

- kernel.sysrq (exp: 0) [ DIFFERENT ]

- kernel.unprivileged_bpf_disabled (exp: 1) [ DIFFERENT ]

- kernel.yama.ptrace_scope (exp: 1 2 3) [ OK ]

- net.core.bpf_jit_harden (exp: 2) [ DIFFERENT ]

- net.ipv4.conf.all.accept_redirects (exp: 0) [ DIFFERENT ]

- net.ipv4.conf.all.accept_source_route (exp: 0) [ OK ]

- net.ipv4.conf.all.bootp_relay (exp: 0) [ OK ]

- net.ipv4.conf.all.forwarding (exp: 0) [ OK ]

- net.ipv4.conf.all.log_martians (exp: 1) [ DIFFERENT ]

- net.ipv4.conf.all.mc_forwarding (exp: 0) [ OK ]

- net.ipv4.conf.all.proxy_arp (exp: 0) [ OK ]

- net.ipv4.conf.all.rp_filter (exp: 1) [ DIFFERENT ]

- net.ipv4.conf.all.send_redirects (exp: 0) [ DIFFERENT ]

- net.ipv4.conf.default.accept_redirects (exp: 0) [ DIFFERENT ]

- net.ipv4.conf.default.accept_source_route (exp: 0) [ DIFFERENT ]

- net.ipv4.conf.default.log_martians (exp: 1) [ DIFFERENT ]

- net.ipv4.icmp_echo_ignore_broadcasts (exp: 1) [ OK ]

- net.ipv4.icmp_ignore_bogus_error_responses (exp: 1) [ OK ]

- net.ipv4.tcp_syncookies (exp: 1) [ OK ]

- net.ipv4.tcp_timestamps (exp: 0 1) [ OK ]

- net.ipv6.conf.all.accept_redirects (exp: 0) [ DIFFERENT ]

- net.ipv6.conf.all.accept_source_route (exp: 0) [ OK ]

- net.ipv6.conf.default.accept_redirects (exp: 0) [ DIFFERENT ]

- net.ipv6.conf.default.accept_source_route (exp: 0) [ OK ]

[+] Hardening

------------------------------------

- Installed compiler(s) [ FOUND ]

- Installed malware scanner [ NOT FOUND ]

- Non-native binary formats [ FOUND ]

[+] Custom tests

------------------------------------

- Running custom tests... [ NONE ]

[+] Plugins (phase 2)

------------------------------------

================================================================================

-[ Lynis 3.1.2 Results ]-

Warnings (2):

----------------------------

! Reboot of system is most likely needed [KRNL-5830]

- Solution : reboot

https://cisofy.com/lynis/controls/KRNL-5830/

! iptables module(s) loaded, but no rules active [FIRE-4512]

https://cisofy.com/lynis/controls/FIRE-4512/

Suggestions (36):

----------------------------

* Set a password on GRUB boot loader to prevent altering boot configuration (e.g. boot in single user mode without password) [BOOT-5122]

https://cisofy.com/lynis/controls/BOOT-5122/

* Consider hardening system services [BOOT-5264]

- Details : Run '/usr/bin/systemd-analyze security SERVICE' for each service

https://cisofy.com/lynis/controls/BOOT-5264/

* If not required, consider explicit disabling of core dump in /etc/security/limits.conf file [KRNL-5820]

https://cisofy.com/lynis/controls/KRNL-5820/

* Check PAM configuration, add rounds if applicable and expire passwords to encrypt with new values [AUTH-9229]

https://cisofy.com/lynis/controls/AUTH-9229/

* Configure password hashing rounds in /etc/login.defs [AUTH-9230]

https://cisofy.com/lynis/controls/AUTH-9230/

* When possible set expire dates for all password protected accounts [AUTH-9282]

https://cisofy.com/lynis/controls/AUTH-9282/

* Configure minimum password age in /etc/login.defs [AUTH-9286]

https://cisofy.com/lynis/controls/AUTH-9286/

* Configure maximum password age in /etc/login.defs [AUTH-9286]

https://cisofy.com/lynis/controls/AUTH-9286/

* Default umask in /etc/login.defs could be more strict like 027 [AUTH-9328]

https://cisofy.com/lynis/controls/AUTH-9328/

* To decrease the impact of a full /home file system, place /home on a separate partition [FILE-6310]

https://cisofy.com/lynis/controls/FILE-6310/

* To decrease the impact of a full /tmp file system, place /tmp on a separate partition [FILE-6310]

https://cisofy.com/lynis/controls/FILE-6310/

* To decrease the impact of a full /var file system, place /var on a separate partition [FILE-6310]

https://cisofy.com/lynis/controls/FILE-6310/

* The JBD (Journal Block Device) driver is not loaded. [FILE-6398]

- Details : Since boot-time, you have not been using any filesystems with journaling. Alternatively, reason could be driver is blacklisted.

https://cisofy.com/lynis/controls/FILE-6398/

* Disable drivers like USB storage when not used, to prevent unauthorized storage or data theft [USB-1000]

https://cisofy.com/lynis/controls/USB-1000/

* Check DNS configuration for the dns domain name [NAME-4028]

https://cisofy.com/lynis/controls/NAME-4028/

* Purge old/removed packages (3 found) with aptitude purge or dpkg --purge command. This will cleanup old configuration files, cron jobs and startup scripts. [PKGS-7346]

https://cisofy.com/lynis/controls/PKGS-7346/

* Install debsums utility for the verification of packages with known good database. [PKGS-7370]

https://cisofy.com/lynis/controls/PKGS-7370/

* Install package apt-show-versions for patch management purposes [PKGS-7394]

https://cisofy.com/lynis/controls/PKGS-7394/

* Determine if protocol 'dccp' is really needed on this system [NETW-3200]

https://cisofy.com/lynis/controls/NETW-3200/

* Determine if protocol 'sctp' is really needed on this system [NETW-3200]

https://cisofy.com/lynis/controls/NETW-3200/

* Determine if protocol 'rds' is really needed on this system [NETW-3200]

https://cisofy.com/lynis/controls/NETW-3200/

* Determine if protocol 'tipc' is really needed on this system [NETW-3200]

https://cisofy.com/lynis/controls/NETW-3200/

* Access to CUPS configuration could be more strict. [PRNT-2307]

https://cisofy.com/lynis/controls/PRNT-2307/

* Enable logging to an external logging host for archiving purposes and additional protection [LOGG-2154]

https://cisofy.com/lynis/controls/LOGG-2154/

* Check what deleted files are still in use and why. [LOGG-2190]

https://cisofy.com/lynis/controls/LOGG-2190/

* Add a legal banner to /etc/issue, to warn unauthorized users [BANN-7126]

https://cisofy.com/lynis/controls/BANN-7126/

* Add legal banner to /etc/issue.net, to warn unauthorized users [BANN-7130]

https://cisofy.com/lynis/controls/BANN-7130/

* Enable process accounting [ACCT-9622]

https://cisofy.com/lynis/controls/ACCT-9622/

* Enable sysstat to collect accounting (disabled) [ACCT-9626]

https://cisofy.com/lynis/controls/ACCT-9626/

* Enable auditd to collect audit information [ACCT-9628]

https://cisofy.com/lynis/controls/ACCT-9628/

* Install a file integrity tool to monitor changes to critical and sensitive files [FINT-4350]

https://cisofy.com/lynis/controls/FINT-4350/

* Determine if automation tools are present for system management [TOOL-5002]

https://cisofy.com/lynis/controls/TOOL-5002/

* Consider restricting file permissions [FILE-7524]

- Details : See screen output or log file

- Solution : Use chmod to change file permissions

https://cisofy.com/lynis/controls/FILE-7524/

* One or more sysctl values differ from the scan profile and could be tweaked [KRNL-6000]

- Solution : Change sysctl value or disable test (skip-test=KRNL-6000:<sysctl-key>)

https://cisofy.com/lynis/controls/KRNL-6000/

* Harden compilers like restricting access to root user only [HRDN-7222]

https://cisofy.com/lynis/controls/HRDN-7222/

* Harden the system by installing at least one malware scanner, to perform periodic file system scans [HRDN-7230]

- Solution : Install a tool like rkhunter, chkrootkit, OSSEC, Wazuh

https://cisofy.com/lynis/controls/HRDN-7230/

Follow-up:

----------------------------

- Show details of a test (lynis show details TEST-ID)

- Check the logfile for all details (less /var/log/lynis.log)

- Read security controls texts (https://cisofy.com)

- Use --upload to upload data to central system (Lynis Enterprise users)

================================================================================

Lynis security scan details:

Hardening index : 64 [############ ]

Tests performed : 251

Plugins enabled : 0

Components:

- Firewall [V]

- Malware scanner [X]

Scan mode:

Normal [V] Forensics [ ] Integration [ ] Pentest [ ]

Lynis modules:

- Compliance status [?]

- Security audit [V]

- Vulnerability scan [V]

Files:

- Test and debug information : /var/log/lynis.log

- Report data : /var/log/lynis-report.dat

================================================================================

Lynis 3.1.2

Auditing, system hardening, and compliance for UNIX-based systems

(Linux, macOS, BSD, and others)

2007-2024, CISOfy - https://cisofy.com/lynis/

Enterprise support available (compliance, plugins, interface and tools)

================================================================================

[TIP]: Enhance Lynis audits by adding your settings to custom.prf (see /home/jarret/Downloads/lynis/default.prf for all settings)

There are two security issues that come up right away at the beginning of the output. These deal with the ownership of the ‘lynis’ files.

Let’s look towards the end of the list. There is the line ‘Suggestions (36):’ showing I have 36 suggestions for improving the security of the system.

Updating Security

Since there are 36 possible updates, let’s look at one of them. The security suggestion is:

Code:
Check what deleted files are still in use and why. [LOGG-2190]

https://cisofy.com/lynis/controls/LOGG-2190/

Apparently there are deleted files still being used by the system. There is a web link to a page to give more details.

By looking at the page, I am told that I can find the files with the command ‘lsof’ that shows all opened files in use. Unfortunately, this produces a very long list, so I can cut it down using:

Code:
lsof | grep /tmp

I can now see what files in the ‘/tmp’ folder are being used. To help, I can delete all files in ‘/tmp’ and reboot. Once the system is up and running again, I can clear out ‘/tmp’ if anything is left.

Another common one, that didn’t show up on this system is Vulnerable Packages. The web link is:

Code:
https://cisofy.com/lynis/controls/PKGS-7392

Here it tells you how to set your system up for unattended updates.

Conclusion

Testing your system for security issues and updating these issues can help make your system more secure. This can be useful for critical systems in a business.

After making updates that are suggested, you should probably keep running the tests until only issues that aren’t major to you are left in the list.
 


Most people feel Linux is a secure Operating System (OS). I’m definitely not trying to make anyone paranoid or worried. In some situations, such as a business environment, it is best to be safe with your servers.

The information provided by the assessing program may not be necessary for your usage, but some of it can definitely be useful to make a system more secure.

Downloading and Check Lynis

To start. You need to get the files needed. You can download Lynix from ‘https://cisofy.com/downloads/lynis/’. Also, listed on this page is the SHA256 checksum for the version ‘3.1.2 of Lynis. The checksum is ‘882c46d28005c7c35d2829e646deabbd9834358d885489f7e3a472c7c10972d4’ so once we download the file ‘lynis-3.1.2.tar.gz’, we can verify the checksum and make sure the file is correct.

To set up the checksum file, we need to run the command from a terminal:

Code:
printf "882c46d28005c7c35d2829e646deabbd9834358d885489f7e3a472c7c10972d4 lynis-3.1.2.tar.gz\0" > sha256

NOTE: You need to use ‘printf’ and not ‘echo’ to get the NULL character. A sum file can be made with multiple check sums and filenames, but the lines must end with a NULL character and not a newline.

The command will create a file named ‘sha256’ which contains a single line with the checksum, two spaces followed by the filename and ending with a NULL character (/0). All we need to do is run a checksum from the file, it will get the checksum and filename, create a checksum for the filename and compare it to the one listed in the file. To run the check:

Code:
sha256sum -c sha256

The result should be the filename followed by ‘OK’. If the response is not ‘OK’, then download the file again with the checksum. Create a new checksum file and try it all again. Keep in mind that when a new version is released, the checksum values will all change.

Extract Lynis

Once you know the file has not been tampered with, you can extract it, use the command:

Code:
tar –xvzf lynis-3.1.2.tar.gz

There should now be a folder named ‘lynis’ with multiple files and folders within it.

You are now ready to continue and get security reports for your system.

Running a Security Check

Now that everything is ready, you can run a security check.

From a Command Line Interface (CLI), type the command from the folder where ‘lynis’ is located:

Code:
sudo ./lynis audit system

There are some checks that cannot be performed if you are not running the command with elevated privileges (sudo).

Output Report

Quite a bit of information is shown on the screen and can fly by quickly after you type in the password, if needed.

A sample output is as follows:

Code:
[!] Change ownership of /home/jarret/Downloads/lynis/include/functions to 'root' or similar (found: jarret with UID 1000).
Command:
# chown 0:0 /home/jarret/Downloads/lynis/include/functions

[X] Security check failed

Why do I see this error?
-------------------------------

This is a protection mechanism to prevent the root user from executing user created files. The files may be altered, or including malicious pieces of script.

What can I do?

---------------------

Option 1) Check if a trusted user created the files (e.g. due to using Git, Homebrew or similar).

If you trust these files, you can decide to continue this run by pressing ENTER.

Option 2) Change ownership of the related files (or full directory).

Commands (full directory):

# cd ..
# chown -R 0:0 lynis
# cd lynis
# ./lynis audit system

[ Press ENTER to continue, or CTRL+C to cancel ]

[ Lynis 3.1.2 ]

################################################################################

Lynis comes with ABSOLUTELY NO WARRANTY. This is free software, and you are

welcome to redistribute it under the terms of the GNU General Public License.

See the LICENSE file for details about using this software.

2007-2024, CISOfy - https://cisofy.com/lynis/

Enterprise support available (compliance, plugins, interface and tools)

################################################################################

[+] Initializing program

------------------------------------

- Detecting OS... [ DONE ]
- Checking profiles... [ DONE ]

---------------------------------------------------

Program version: 3.1.2
Operating system: Linux
Operating system name: Ubuntu
Operating system version: 24.04
Kernel version: 6.8.0
Hardware platform: x86_64
Hostname: Triggy

---------------------------------------------------

Profiles: /home/jarret/Downloads/lynis/default.prf
Log file: /var/log/lynis.log
Report file: /var/log/lynis-report.dat
Report version: 1.0
Plugin directory: ./plugins

---------------------------------------------------

Auditor: [Not Specified]
Language: en
Test category: all
Test group: all

---------------------------------------------------

- Program update status... [ NO UPDATE ]

[+] System tools

------------------------------------

- Scanning available tools...
- Checking system binaries...

[+] Plugins (phase 1)

------------------------------------

Note: plugins have more extensive tests and may take several minutes to complete

- Plugins enabled [ NONE ]

[+] Boot and services

------------------------------------

- Service Manager [ systemd ]
- Checking UEFI boot [ ENABLED ]
- Checking Secure Boot [ DISABLED ]
- Checking presence GRUB2 [ FOUND ]
- Checking for password protection [ NONE ]
- Check running services (systemctl) [ DONE ]
Result: found 32 running services

- Check enabled services at boot (systemctl) [ DONE ]
Result: found 60 enabled services

- Check startup files (permissions) [ OK ]
- Running 'systemd-analyze security'
- ModemManager.service: [ MEDIUM ]
- NetworkManager.service: [ EXPOSED ]
- accounts-daemon.service: [ MEDIUM ]
- alsa-state.service: [ UNSAFE ]
- anacron.service: [ UNSAFE ]
- avahi-daemon.service: [ UNSAFE ]
- bluetooth.service: [ MEDIUM ]
- colord.service: [ PROTECTED ]
- cron.service: [ UNSAFE ]
- cups-browsed.service: [ UNSAFE ]
- cups.service: [ UNSAFE ]
- dbus.service: [ UNSAFE ]
- dmesg.service: [ UNSAFE ]
- emergency.service: [ UNSAFE ]
- fwupd.service: [ EXPOSED ]
- gdm.service: [ UNSAFE ]
- [email protected]: [ UNSAFE ]
- gnome-remote-desktop.service: [ UNSAFE ]
- kerneloops.service: [ UNSAFE ]
- networkd-dispatcher.service: [ UNSAFE ]
- packagekit.service: [ UNSAFE ]
- plymouth-start.service: [ UNSAFE ]
- polkit.service: [ PROTECTED ]
- power-profiles-daemon.service: [ MEDIUM ]
- rc-local.service: [ UNSAFE ]
- rescue.service: [ UNSAFE ]
- rsyslog.service: [ MEDIUM ]
- rtkit-daemon.service: [ MEDIUM ]
- snapd.service: [ UNSAFE ]
- sssd-autofs.service: [ UNSAFE ]
- sssd-nss.service: [ UNSAFE ]
- sssd-pac.service: [ UNSAFE ]
- sssd-pam.service: [ UNSAFE ]
- sssd-ssh.service: [ UNSAFE ]
- sssd-sudo.service: [ UNSAFE ]
- sssd.service: [ EXPOSED ]
- switcheroo-control.service: [ EXPOSED ]
- systemd-ask-password-console.service: [ UNSAFE ]
- systemd-ask-password-plymouth.service: [ UNSAFE ]
- systemd-ask-password-wall.service: [ UNSAFE ]
- systemd-bsod.service: [ UNSAFE ]
- systemd-fsckd.service: [ UNSAFE ]
- systemd-initctl.service: [ UNSAFE ]
- systemd-journald.service: [ PROTECTED ]
- systemd-logind.service: [ PROTECTED ]
- systemd-networkd.service: [ PROTECTED ]
- systemd-oomd.service: [ PROTECTED ]
- systemd-resolved.service: [ PROTECTED ]
- systemd-rfkill.service: [ UNSAFE ]
- systemd-timesyncd.service: [ PROTECTED ]
- systemd-udevd.service: [ MEDIUM ]
- thermald.service: [ UNSAFE ]
- tpm-udev.service: [ UNSAFE ]
- ubuntu-advantage.service: [ UNSAFE ]
- udisks2.service: [ UNSAFE ]
- unattended-upgrades.service: [ UNSAFE ]
- upower.service: [ PROTECTED ]
- [email protected]: [ UNSAFE ]
- uuidd.service: [ MEDIUM ]
- vboxautostart-service.service: [ UNSAFE ]
- vboxballoonctrl-service.service: [ UNSAFE ]
- vboxdrv.service: [ UNSAFE ]
- vboxweb-service.service: [ UNSAFE ]
- whoopsie.service: [ UNSAFE ]
- wpa_supplicant.service: [ UNSAFE ]

[+] Kernel

------------------------------------

- Checking default runlevel [ runlevel 5 ]
- Checking CPU support (NX/PAE)
CPU support: PAE and/or NoeXecute supported [ FOUND ]

- Checking kernel version and release [ DONE ]
- Checking kernel type [ DONE ]
- Checking loaded kernel modules [ DONE ]
Found 150 active modules

- Checking Linux kernel configuration file [ FOUND ]
- Checking default I/O kernel scheduler [ NOT FOUND ]
- Checking for available kernel update [ OK ]
- Checking core dumps configuration
- configuration in systemd conf files [ DEFAULT ]
- configuration in /etc/profile [ DEFAULT ]
- 'hard' configuration in /etc/security/limits.conf [ DEFAULT ]
- 'soft' configuration in /etc/security/limits.conf [ DEFAULT ]
- Checking setuid core dumps configuration [ PROTECTED ]
- Check if reboot is needed [ YES ]

[+] Memory and Processes

------------------------------------

- Checking /proc/meminfo [ FOUND ]
- Searching for dead/zombie processes [ NOT FOUND ]
- Searching for IO waiting processes [ NOT FOUND ]
- Search prelink tooling [ NOT FOUND ]

[+] Users, Groups and Authentication

------------------------------------

- Administrator accounts [ OK ]
- Unique UIDs [ OK ]
- Consistency of group files (grpck) [ OK ]
- Unique group IDs [ OK ]
- Unique group names [ OK ]
- Password file consistency [ OK ]
- Password hashing methods [ SUGGESTION ]
- Checking password hashing rounds [ DISABLED ]
- Query system users (non daemons) [ DONE ]
- NIS+ authentication support [ NOT ENABLED ]
- NIS authentication support [ NOT ENABLED ]
- Sudoers file(s) [ FOUND ]
- Permissions for directory: /etc/sudoers.d [ WARNING ]
- Permissions for: /etc/sudoers [ OK ]
- Permissions for: /etc/sudoers.d/README [ OK ]
- PAM password strength tools [ OK ]
- PAM configuration files (pam.conf) [ FOUND ]
- PAM configuration files (pam.d) [ FOUND ]
- PAM modules [ FOUND ]
- LDAP module in PAM [ NOT FOUND ]
- Accounts without expire date [ SUGGESTION ]
- Accounts without password [ OK ]
- Locked accounts [ OK ]
- Checking user password aging (minimum) [ DISABLED ]
- User password aging (maximum) [ DISABLED ]
- Checking expired passwords [ OK ]
- Checking Linux single user mode authentication [ OK ]
- Determining default umask
- umask (/etc/profile) [ NOT FOUND ]
- umask (/etc/login.defs) [ SUGGESTION ]
- LDAP authentication support [ NOT ENABLED ]
- Logging failed login attempts [ ENABLED ]

[+] Kerberos

------------------------------------

- Check for Kerberos KDC and principals [ NOT FOUND ]

[+] Shells

------------------------------------

- Checking shells from /etc/shells
Result: found 7 shells (valid shells: 7).

- Session timeout settings/tools [ NONE ]
- Checking default umask values
- Checking default umask in /etc/bash.bashrc [ NONE ]
- Checking default umask in /etc/profile [ NONE ]

[+] File systems

------------------------------------

- Checking mount points
- Checking /home mount point [ SUGGESTION ]
- Checking /tmp mount point [ SUGGESTION ]
- Checking /var mount point [ SUGGESTION ]
- Query swap partitions (fstab) [ OK ]
- Testing swap partitions [ OK ]
- Testing /proc mount (hidepid) [ SUGGESTION ]
- Checking for old files in /tmp [ OK ]
- Checking /tmp sticky bit [ OK ]
- Checking /var/tmp sticky bit [ OK ]
- ACL support root file system [ ENABLED ]
- Mount options of / [ OK ]
- Mount options of /dev [ PARTIALLY HARDENED ]
- Mount options of /dev/shm [ PARTIALLY HARDENED ]
- Mount options of /run [ HARDENED ]
- Total without nodev:11 noexec:33 nosuid:27 ro or noexec (W^X): 15 of total 50
- JBD driver is not loaded [ CHECK NEEDED ]
- Disable kernel support of some filesystems

[+] USB Devices

------------------------------------

- Checking usb-storage driver (modprobe config) [ NOT DISABLED ]
- Checking USB devices authorization [ ENABLED ]
- Checking USBGuard [ NOT FOUND ]

[+] Storage

------------------------------------

- Checking firewire ohci driver (modprobe config) [ DISABLED ]

[+] NFS

------------------------------------

- Check running NFS daemon [ NOT FOUND ]

[+] Name services

------------------------------------

- Checking search domains [ FOUND ]
- Checking /etc/resolv.conf options [ FOUND ]
- Searching DNS domain name [ UNKNOWN ]
- Checking /etc/hosts
- Duplicate entries in hosts file [ NONE ]
- Presence of configured hostname in /etc/hosts [ FOUND ]
- Hostname mapped to localhost [ NOT FOUND ]
- Localhost mapping to IP address [ OK ]

[+] Ports and packages

------------------------------------

- Searching package managers
- Searching dpkg package manager [ FOUND ]
- Querying package manager
- Query unpurged packages [ FOUND ]
- Checking security repository in sources.list.d directory [ OK ]
- Checking APT package database [ OK ]
- Checking vulnerable packages [ OK ]
- Checking upgradeable packages [ SKIPPED ]
- Checking package audit tool [ INSTALLED ]
Found: apt-check

- Toolkit for automatic upgrades (unattended-upgrade) [ FOUND ]

[+] Networking

------------------------------------

- Checking IPv6 configuration [ ENABLED ]
Configuration method [ AUTO ]
IPv6 only [ NO ]
- Checking configured nameservers
- Testing nameservers
Nameserver: 127.0.0.53 [ OK ]

- DNSSEC supported (systemd-resolved) [ UNKNOWN ]
- Checking default gateway [ DONE ]
- Getting listening ports (TCP/UDP) [ DONE ]
- Checking promiscuous interfaces [ OK ]
- Checking waiting connections [ OK ]
- Checking status DHCP client [ NOT ACTIVE ]
- Checking for ARP monitoring software [ NOT FOUND ]
- Uncommon network protocols [ 0 ]

[+] Printers and Spools

------------------------------------

- Checking cups daemon [ RUNNING ]
- Checking CUPS configuration file [ OK ]
- File permissions [ WARNING ]
- Checking CUPS addresses/sockets [ FOUND ]
- Checking lp daemon [ NOT RUNNING ]

[+] Software: e-mail and messaging

------------------------------------

[+] Software: firewalls

------------------------------------

- Checking iptables kernel module [ FOUND ]
- Checking iptables policies of chains [ FOUND ]
- Checking for empty ruleset [ WARNING ]
- Checking for unused rules [ OK ]
- Checking host based firewall [ ACTIVE ]

[+] Software: webserver

------------------------------------

- Checking Apache [ NOT FOUND ]
- Checking nginx [ NOT FOUND ]

[+] SSH Support

------------------------------------

- Checking running SSH daemon [ NOT FOUND ]

[+] SNMP Support

------------------------------------

- Checking running SNMP daemon [ NOT FOUND ]

[+] Databases

------------------------------------

No database engines found

[+] LDAP Services

------------------------------------

- Checking OpenLDAP instance [ NOT FOUND ]

[+] PHP

------------------------------------

- Checking PHP [ NOT FOUND ]

[+] Squid Support

------------------------------------

- Checking running Squid daemon [ NOT FOUND ]

[+] Logging and files

------------------------------------

- Checking for a running log daemon [ OK ]
- Checking Syslog-NG status [ NOT FOUND ]
- Checking systemd journal status [ FOUND ]
- Checking Metalog status [ NOT FOUND ]
- Checking RSyslog status [ FOUND ]
- Checking RFC 3195 daemon status [ NOT FOUND ]
- Checking minilogd instances [ NOT FOUND ]
- Checking wazuh-agent daemon status [ NOT FOUND ]
- Checking logrotate presence [ OK ]
- Checking remote logging [ NOT ENABLED ]
- Checking log directories (static list) [ DONE ]
- Checking open log files [ DONE ]
- Checking deleted files in use [ FILES FOUND ]

[+] Insecure services

------------------------------------

- Installed inetd package [ NOT FOUND ]
- Installed xinetd package [ OK ]
- xinetd status [ NOT ACTIVE ]
- Installed rsh client package [ OK ]
- Installed rsh server package [ OK ]
- Installed telnet client package [ OK ]
- Installed telnet server package [ NOT FOUND ]
- Checking NIS client installation [ OK ]
- Checking NIS server installation [ OK ]
- Checking TFTP client installation [ OK ]
- Checking TFTP server installation [ OK ]

[+] Banners and identification

------------------------------------

- /etc/issue [ FOUND ]
- /etc/issue contents [ WEAK ]
- /etc/issue.net [ FOUND ]
- /etc/issue.net contents [ WEAK ]

[+] Scheduled tasks

------------------------------------

- Checking crontab and cronjob files [ DONE ]

[+] Accounting

------------------------------------

- Checking accounting information [ NOT FOUND ]
- Checking sysstat accounting data [ DISABLED ]
- Checking auditd [ NOT FOUND ]

[+] Time and Synchronization

------------------------------------

- NTP daemon found: systemd (timesyncd) [ FOUND ]
- Checking for a running NTP daemon or client [ OK ]
- Last time synchronization [ 1109s ]

[+] Cryptography

------------------------------------

- Checking for expired SSL certificates [0/151] [ NONE ]

[WARNING]: Test CRYP-7902 had a long execution: 14.624171 seconds

- Kernel entropy is sufficient [ YES ]

- HW RNG & rngd [ NO ]

- SW prng [ NO ]

MOR-bit set [ YES ]

[+] Virtualization

------------------------------------

[+] Containers

------------------------------------

[+] Security frameworks

------------------------------------

- Checking presence AppArmor [ FOUND ]

- Checking AppArmor status [ ENABLED ]

Found 127 unconfined processes

- Checking presence SELinux [ NOT FOUND ]

- Checking presence TOMOYO Linux [ NOT FOUND ]

- Checking presence grsecurity [ NOT FOUND ]

- Checking for implemented MAC framework [ OK ]

[+] Software: file integrity

------------------------------------

- Checking file integrity tools

- Checking presence integrity tool [ NOT FOUND ]

[+] Software: System tooling

------------------------------------

- Checking automation tooling

- Automation tooling [ NOT FOUND ]

- Checking for IDS/IPS tooling [ NONE ]

[+] Software: Malware

------------------------------------

- Malware software components [ NOT FOUND ]

[+] File Permissions

------------------------------------

- Starting file permissions check

File: /boot/grub/grub.cfg [ OK ]

File: /etc/crontab [ SUGGESTION ]

File: /etc/group [ OK ]

File: /etc/group- [ OK ]

File: /etc/hosts.allow [ OK ]

File: /etc/hosts.deny [ OK ]

File: /etc/issue [ OK ]

File: /etc/issue.net [ OK ]

File: /etc/passwd [ OK ]

File: /etc/passwd- [ OK ]

Directory: /root/.ssh [ OK ]

Directory: /etc/cron.d [ SUGGESTION ]

Directory: /etc/cron.daily [ SUGGESTION ]

Directory: /etc/cron.hourly [ SUGGESTION ]

Directory: /etc/cron.weekly [ SUGGESTION ]

Directory: /etc/cron.monthly [ SUGGESTION ]

[+] Home directories

------------------------------------

- Permissions of home directories [ OK ]

- Ownership of home directories [ OK ]

- Checking shell history files [ OK ]

[+] Kernel Hardening

------------------------------------

- Comparing sysctl key pairs with scan profile

- dev.tty.ldisc_autoload (exp: 0) [ DIFFERENT ]

- fs.protected_fifos (exp: 2) [ DIFFERENT ]

- fs.protected_hardlinks (exp: 1) [ OK ]

- fs.protected_regular (exp: 2) [ OK ]

- fs.protected_symlinks (exp: 1) [ OK ]

- fs.suid_dumpable (exp: 0) [ DIFFERENT ]

- kernel.core_uses_pid (exp: 1) [ DIFFERENT ]

- kernel.ctrl-alt-del (exp: 0) [ OK ]

- kernel.dmesg_restrict (exp: 1) [ OK ]

- kernel.kptr_restrict (exp: 2) [ DIFFERENT ]

- kernel.modules_disabled (exp: 1) [ DIFFERENT ]

- kernel.perf_event_paranoid (exp: 2 3 4) [ OK ]

- kernel.randomize_va_space (exp: 2) [ OK ]

- kernel.sysrq (exp: 0) [ DIFFERENT ]

- kernel.unprivileged_bpf_disabled (exp: 1) [ DIFFERENT ]

- kernel.yama.ptrace_scope (exp: 1 2 3) [ OK ]

- net.core.bpf_jit_harden (exp: 2) [ DIFFERENT ]

- net.ipv4.conf.all.accept_redirects (exp: 0) [ DIFFERENT ]

- net.ipv4.conf.all.accept_source_route (exp: 0) [ OK ]

- net.ipv4.conf.all.bootp_relay (exp: 0) [ OK ]

- net.ipv4.conf.all.forwarding (exp: 0) [ OK ]

- net.ipv4.conf.all.log_martians (exp: 1) [ DIFFERENT ]

- net.ipv4.conf.all.mc_forwarding (exp: 0) [ OK ]

- net.ipv4.conf.all.proxy_arp (exp: 0) [ OK ]

- net.ipv4.conf.all.rp_filter (exp: 1) [ DIFFERENT ]

- net.ipv4.conf.all.send_redirects (exp: 0) [ DIFFERENT ]

- net.ipv4.conf.default.accept_redirects (exp: 0) [ DIFFERENT ]

- net.ipv4.conf.default.accept_source_route (exp: 0) [ DIFFERENT ]

- net.ipv4.conf.default.log_martians (exp: 1) [ DIFFERENT ]

- net.ipv4.icmp_echo_ignore_broadcasts (exp: 1) [ OK ]

- net.ipv4.icmp_ignore_bogus_error_responses (exp: 1) [ OK ]

- net.ipv4.tcp_syncookies (exp: 1) [ OK ]

- net.ipv4.tcp_timestamps (exp: 0 1) [ OK ]

- net.ipv6.conf.all.accept_redirects (exp: 0) [ DIFFERENT ]

- net.ipv6.conf.all.accept_source_route (exp: 0) [ OK ]

- net.ipv6.conf.default.accept_redirects (exp: 0) [ DIFFERENT ]

- net.ipv6.conf.default.accept_source_route (exp: 0) [ OK ]

[+] Hardening

------------------------------------

- Installed compiler(s) [ FOUND ]

- Installed malware scanner [ NOT FOUND ]

- Non-native binary formats [ FOUND ]

[+] Custom tests

------------------------------------

- Running custom tests... [ NONE ]

[+] Plugins (phase 2)

------------------------------------

================================================================================

-[ Lynis 3.1.2 Results ]-

Warnings (2):

----------------------------

! Reboot of system is most likely needed [KRNL-5830]

- Solution : reboot

https://cisofy.com/lynis/controls/KRNL-5830/

! iptables module(s) loaded, but no rules active [FIRE-4512]

https://cisofy.com/lynis/controls/FIRE-4512/

Suggestions (36):

----------------------------

* Set a password on GRUB boot loader to prevent altering boot configuration (e.g. boot in single user mode without password) [BOOT-5122]

https://cisofy.com/lynis/controls/BOOT-5122/

* Consider hardening system services [BOOT-5264]

- Details : Run '/usr/bin/systemd-analyze security SERVICE' for each service

https://cisofy.com/lynis/controls/BOOT-5264/

* If not required, consider explicit disabling of core dump in /etc/security/limits.conf file [KRNL-5820]

https://cisofy.com/lynis/controls/KRNL-5820/

* Check PAM configuration, add rounds if applicable and expire passwords to encrypt with new values [AUTH-9229]

https://cisofy.com/lynis/controls/AUTH-9229/

* Configure password hashing rounds in /etc/login.defs [AUTH-9230]

https://cisofy.com/lynis/controls/AUTH-9230/

* When possible set expire dates for all password protected accounts [AUTH-9282]

https://cisofy.com/lynis/controls/AUTH-9282/

* Configure minimum password age in /etc/login.defs [AUTH-9286]

https://cisofy.com/lynis/controls/AUTH-9286/

* Configure maximum password age in /etc/login.defs [AUTH-9286]

https://cisofy.com/lynis/controls/AUTH-9286/

* Default umask in /etc/login.defs could be more strict like 027 [AUTH-9328]

https://cisofy.com/lynis/controls/AUTH-9328/

* To decrease the impact of a full /home file system, place /home on a separate partition [FILE-6310]

https://cisofy.com/lynis/controls/FILE-6310/

* To decrease the impact of a full /tmp file system, place /tmp on a separate partition [FILE-6310]

https://cisofy.com/lynis/controls/FILE-6310/

* To decrease the impact of a full /var file system, place /var on a separate partition [FILE-6310]

https://cisofy.com/lynis/controls/FILE-6310/

* The JBD (Journal Block Device) driver is not loaded. [FILE-6398]

- Details : Since boot-time, you have not been using any filesystems with journaling. Alternatively, reason could be driver is blacklisted.

https://cisofy.com/lynis/controls/FILE-6398/

* Disable drivers like USB storage when not used, to prevent unauthorized storage or data theft [USB-1000]

https://cisofy.com/lynis/controls/USB-1000/

* Check DNS configuration for the dns domain name [NAME-4028]

https://cisofy.com/lynis/controls/NAME-4028/

* Purge old/removed packages (3 found) with aptitude purge or dpkg --purge command. This will cleanup old configuration files, cron jobs and startup scripts. [PKGS-7346]

https://cisofy.com/lynis/controls/PKGS-7346/

* Install debsums utility for the verification of packages with known good database. [PKGS-7370]

https://cisofy.com/lynis/controls/PKGS-7370/

* Install package apt-show-versions for patch management purposes [PKGS-7394]

https://cisofy.com/lynis/controls/PKGS-7394/

* Determine if protocol 'dccp' is really needed on this system [NETW-3200]

https://cisofy.com/lynis/controls/NETW-3200/

* Determine if protocol 'sctp' is really needed on this system [NETW-3200]

https://cisofy.com/lynis/controls/NETW-3200/

* Determine if protocol 'rds' is really needed on this system [NETW-3200]

https://cisofy.com/lynis/controls/NETW-3200/

* Determine if protocol 'tipc' is really needed on this system [NETW-3200]

https://cisofy.com/lynis/controls/NETW-3200/

* Access to CUPS configuration could be more strict. [PRNT-2307]

https://cisofy.com/lynis/controls/PRNT-2307/

* Enable logging to an external logging host for archiving purposes and additional protection [LOGG-2154]

https://cisofy.com/lynis/controls/LOGG-2154/

* Check what deleted files are still in use and why. [LOGG-2190]

https://cisofy.com/lynis/controls/LOGG-2190/

* Add a legal banner to /etc/issue, to warn unauthorized users [BANN-7126]

https://cisofy.com/lynis/controls/BANN-7126/

* Add legal banner to /etc/issue.net, to warn unauthorized users [BANN-7130]

https://cisofy.com/lynis/controls/BANN-7130/

* Enable process accounting [ACCT-9622]

https://cisofy.com/lynis/controls/ACCT-9622/

* Enable sysstat to collect accounting (disabled) [ACCT-9626]

https://cisofy.com/lynis/controls/ACCT-9626/

* Enable auditd to collect audit information [ACCT-9628]

https://cisofy.com/lynis/controls/ACCT-9628/

* Install a file integrity tool to monitor changes to critical and sensitive files [FINT-4350]

https://cisofy.com/lynis/controls/FINT-4350/

* Determine if automation tools are present for system management [TOOL-5002]

https://cisofy.com/lynis/controls/TOOL-5002/

* Consider restricting file permissions [FILE-7524]

- Details : See screen output or log file

- Solution : Use chmod to change file permissions

https://cisofy.com/lynis/controls/FILE-7524/

* One or more sysctl values differ from the scan profile and could be tweaked [KRNL-6000]

- Solution : Change sysctl value or disable test (skip-test=KRNL-6000:<sysctl-key>)

https://cisofy.com/lynis/controls/KRNL-6000/

* Harden compilers like restricting access to root user only [HRDN-7222]

https://cisofy.com/lynis/controls/HRDN-7222/

* Harden the system by installing at least one malware scanner, to perform periodic file system scans [HRDN-7230]

- Solution : Install a tool like rkhunter, chkrootkit, OSSEC, Wazuh

https://cisofy.com/lynis/controls/HRDN-7230/

Follow-up:

----------------------------

- Show details of a test (lynis show details TEST-ID)

- Check the logfile for all details (less /var/log/lynis.log)

- Read security controls texts (https://cisofy.com)

- Use --upload to upload data to central system (Lynis Enterprise users)

================================================================================

Lynis security scan details:

Hardening index : 64 [############ ]

Tests performed : 251

Plugins enabled : 0

Components:

- Firewall [V]

- Malware scanner [X]

Scan mode:

Normal [V] Forensics [ ] Integration [ ] Pentest [ ]

Lynis modules:

- Compliance status [?]

- Security audit [V]

- Vulnerability scan [V]

Files:

- Test and debug information : /var/log/lynis.log

- Report data : /var/log/lynis-report.dat

================================================================================

Lynis 3.1.2

Auditing, system hardening, and compliance for UNIX-based systems

(Linux, macOS, BSD, and others)

2007-2024, CISOfy - https://cisofy.com/lynis/

Enterprise support available (compliance, plugins, interface and tools)

================================================================================

[TIP]: Enhance Lynis audits by adding your settings to custom.prf (see /home/jarret/Downloads/lynis/default.prf for all settings)

There are two security issues that come up right away at the beginning of the output. These deal with the ownership of the ‘lynis’ files.

Let’s look towards the end of the list. There is the line ‘Suggestions (36):’ showing I have 36 suggestions for improving the security of the system.

Updating Security

Since there are 36 possible updates, let’s look at one of them. The security suggestion is:

Code:
Check what deleted files are still in use and why. [LOGG-2190]

https://cisofy.com/lynis/controls/LOGG-2190/

Apparently there are deleted files still being used by the system. There is a web link to a page to give more details.

By looking at the page, I am told that I can find the files with the command ‘lsof’ that shows all opened files in use. Unfortunately, this produces a very long list, so I can cut it down using:

Code:
lsof | grep /tmp

I can now see what files in the ‘/tmp’ folder are being used. To help, I can delete all files in ‘/tmp’ and reboot. Once the system is up and running again, I can clear out ‘/tmp’ if anything is left.

Another common one, that didn’t show up on this system is Vulnerable Packages. The web link is:

Code:
https://cisofy.com/lynis/controls/PKGS-7392

Here it tells you how to set your system up for unattended updates.

Conclusion

Testing your system for security issues and updating these issues can help make your system more secure. This can be useful for critical systems in a business.

After making updates that are suggested, you should probably keep running the tests until only issues that aren’t major to you are left in the list.
You can get an SHA256 message digest hash by using: /usr/bin/openssl dgst filenamehere

Signed,

Matthew Campbell
 

Members online


Top