48
Hardening Arch Linux
(monero.town)
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
There are also some kernel settings that you may find useful. Currently I am on the mobile and cannot remember the names. Text me if you need help
Network:
Enable rp and arp filter
Disable IP forwarding if you don't use docker
Disable tcp timestamp
Disable icmp broadcast
Enable syncookies
Enable source route checking
Other:
Enable hard and soft link protection (it is may broke your system, use carefully)
Enable kptr restrict
Disable kexec
Disable sysrq
Enable randomize virtual memory address
Disable JIT for ebpf programms
Disable loading drivers via modprobe in live kernel.
Also check which hardware mitigations is disabled in your kernel. (Spectre, meltdawn) You may enable KASL
Also use selinux or apparmor. I prefer Selinux.
Enable auditd and configure it for auditing actions that your find useful.
Thank you for the list! Do you maybe know where can I find explanations what does each option do? I know only half of them and I already use some of them.
I will describe settings that are not so easy to google and a few new thoughts.
kptr restrict:
https://wiki.archlinux.org/title/security
https://lwn.net/Articles/420403/
Kexec:
You may google about mechanics, but basically, it is just a mechanism to 'reexec' your kernel to something different, usually another kernel, but you can boot netboot.xyz, for example.
But now imagine that it will boot a kernel that will dump the output of all your traffic, or will dump all your keyboard keypresses (keylogger).
These are unlikely scenarios. But I prefer to disable this feature since I don't use it anyway.
Also, about keyloggers. Any program inside your X session may grab all your keyboard events. Literally last week I wrote a keylogger in rust in 70 lines of code. Therefore, use Wayland.
Ebpf JIT:
There I misleaded you.
There is some new information about JIT and security. See https://youtu.be/kvt4wdXEuRU?si=3imn8PAEbvgjWTU3
According to the update, you need to set bpf_jit_harden=2 and unprivileged_bpf_disabled=1. (Even unprivileged ebpf may crash your kernel. For some unknown reason, this is not recognized as a problem.)
Randomize virtual memory address:
https://www.techtarget.com/searchsecurity/definition/address-space-layout-randomization-ASLR#:~:text=Address%20space%20layout%20randomization%20(ASLR)%20is%20a%20memory%2Dprotection,executables%20are%20loaded%20into%20memory.
systemd
If you use systemd your can use systemd-analyze tool to harden your units settings.
Also, I remember the tool you can use.
There are some security certifications - most used are pcidss or stig. There are guidelines to improve security.
You can use openscap with a profile (pcidss or stig or both) and it will check if your system satisfies these guidelines.
This may give you some thoughts.
Here is an alternative Piped link(s):
https://piped.video/kvt4wdXEuRU?si=3imn8PAEbvgjWTU3
Piped is a privacy-respecting open-source alternative frontend to YouTube.
I'm open-source; check me out at GitHub.
Thank you very much for this detailed explanation! Looks like kptr and kexec are already disabled and enabled randomized virtual memory address in the hardened kernel. I will check for ebpf. Security certs seem interesting, I will defenetly look into them.