Advanced Plus Security Victor M Fedora 44 KDE Configuration

Last updated
Jun 6, 2026
How it's used?
For work or educational use
Operating system
Linux
On-device encryption
Other full-disk drive encryption software
Log-in security
    • Hardware security key
    • Basic account password (insecure)
Security updates
Allow security updates
Update channels
Allow stable updates only
User Access Control
N/A - Linux / Mac / Other operating system
Smart App Control
N/A - Linux / Mac / Other operating system
Network firewall
Enabled
Real-time security
SELinux daemon & browser & user profiles
Systemd hardening
Firewall-cmd
Firewall security
Built-in Firewall for Mac/Linux
About custom security
SELinux daemon & browser & user profiles
Systemd hardening
Blacklisted unused network protocols
Firewall-cmd set to zone=drop
Browser can only touch Downloads dir
Seperate user_u account for daily use
Procedural security control forbids admin acc browser use.
Sudo command and logins require Yubikey
Periodic malware scanners
clamav
Malware sample testing
I do not participate in malware testing
Environment for malware testing
n/a
Browser(s) and extensions
SafeToOpen
Ublock Origin
Privacy Badger
Secure DNS
quad9
Desktop VPN
ProtonVPN
Password manager
keepass
File and Photo backup
file copy
Subscriptions
    • Google One Premium 2TB
System recovery
Clonezilla
Risk factors
    • Browsing to popular websites
    • Working from home
    • Making audio/video calls
    • Buying from online stores, entering banks card details
Computer specs
Dell Latitude
What I'm looking for?

Looking for maximum feedback.

Victor M

Level 26
Thread author
Verified
Top Poster
Well-known
Oct 3, 2022
1,523
5,681
2,469
Have just "finished" preparing my Fedora 44 KDE Plasma machine. It's not that I like KDE; my red team sorta made me rebuild the OS because they were incrementally hacking it. And I lacked detailed steps to re-create Fedora 44 Gnome's SELinux configuration. Since the forum is saying KDE is sleek, much improved, and so forth; I decided to take a look. This time I documented the configuration steps :)

Out of the box, Fedora makes user accounts with the unconfined profile. It has no restrictions. Just like Windows' first user account.

I confined the admin account to the staff_u profile, and confined my second daily use user account to the user_u profile. The staff_u can do admin things, and can sudo. But there should be some limitations that I haven't experienced yet. The user_u cannot do admin things.
sudo semanage login -a -s staff_u <admin acc name>
sudo restorecon -RFv /home/<admin account name>/

sudo semanage login -a -s user_u <user acc name>
sudo restorecon -RFv /home/<user account name>/
The semanage command changes the profile, and the restorecon command relabels the directories and files. Simplistically speaking, SELinux labels everything and enforce whitelist rules that says what can interact with what.

These profiles are pre-made; comes with SELinux. However, some things aren't fully working. ChatGPT says these profiles are fully supported on Red Hat Linux. But on Fedora it has some rough edges.

To see what label you are, type id -Z
To see what labels are in a directory type ls -laZ

Then I made sudo require Yubikey, and sign in also requires Yubikey. This is a important part that foils remote hacking. One needs to touch the Yubikey as 2FA to complete a sudo command. This is configured via modification to PAM files in /etc/pam.d/

Done hardening it similar to what I did for Ubuntu: Setup Idea - Ubuntu Hardening

Except I cannot use Firejail, because it thinks SELinux profiles are a kind of virtualization and it exits.

Instead of firejail, SELinux has a mozilla_t profile. So instead of firejail's very minimized containment environment, I now have SELinux rules that whitelists allowed tasks.

Also, one has to make staff_u and user_u transition Firefox into mozilla_t. (That's the rough edges I was talking about) This mozilla_t is a pre-made profile. But is lacking a rule to make it work under user_u and staff_u. Ask your AI on how to do that. It needs a small rule file which you then apply.

There is also a SELinux boolean (global selinux var) that can be turned off with 'setsebool -P unconfined_mozilla_plugin_transition off' ChatGPT explains that it is only needed for old browser plugins like Flash and allows much expanded rights for plugins.

Looking for Max Feedback
 
Last edited:
Speaking of Browser Extensions; it is a hacker trick to install extensions into your browser. Extensions may have high privileges to read all your traffic, stored passwords etc. And it can stay there unseen forever if you don't check. The best thing to do is to make a policy that restricts all the extensions to your list. Firefox has a json file format and Chrome has another one. Ask your AI about the syntax and where to put the policy file.
 
Congratulations on your security setup.
The browser is not specified.
If you're using Firefox, there's no need to use PB, since Firefox already has a built-in anti-tracking feature that can be enhanced using filter lists in uBo.
 
Nice setup @Victor M, just one question in section "about custom security", you said " Firewall-cmd set to zone=drop", i guess is for your LAN (ethernet), you know that FirewallD secure network by zone, so i wonder how did you set the loopback zone (lo) ? normally you must set it to trusted network (to avoid some strengh behaviour) even if the external is set to drop, this what i do for years.
 
@7Oz-64 I have never touched loopback. It is not reachable from the internet. It is for addresses like 127.0.0.1 .
 
  • Like
Reactions: simmerskool
Lesson learned the hard way: never use your browser; which is a very attackable piece, from your admin account. If you have to debug with AI, use the Office Write to ferry pages back and forth from your surfing account.

Let me put it this way. During my previous Fedora 44 KDE install, I used only 3 apps, libreoffice-write, dnf, firefox. And my red team got me. All the frameworks warrned about this, But I thought hey i got to debug so that's acceptable use, right ? Wrong.
 
Last edited:
@7Oz-64 I have never touched loopback. It is not reachable from the internet. It is for addresses like 127.0.0.1 .
This is why i ask :
Important to set as trusted for proper internal action functionning : systemd-resolved (if your using it), PostgreSQL, MariaDB, Redis, Nginx, Apache, Docker, Podman, internals services.
 
  • Like
Reactions: Zero Knowledge
Currently running generation 3 install of Fedora 44 KDE. Except for package installation, was prepared totally offline.
 
Last edited:
  • Like
Reactions: Moonhorse
After doing CIS Baseline, my lynis hardening index = 71
my fedora 44_VM / gnome sudo lynis audit system > Hardening index : 77 [############### ] from april 2026 -- lately I'm running fedora 44 kinoite_VM KDE and its score is 65 but so far haven't made an effort to increase it (other than adding lynis).
 
I may have shot myself in the foot, but I removed the suid bit from a bunch of programs. I left only sudo, and passwd intact.
People would jump up and say but mount needs suid. And yes it does, but I don't manually mount. And all the mounting during boot is done by root. And USB sticks auto mount correctly when inserted. So I am happy.
I know hackers abuse suid executables.
 
Last edited:
Maybe I should engineer myself out of a job like good engineers are supposed to do. Automate my role with AI and methodologically close off all attack vectors and automate the findings and patching of new vulnerabilities ( which is doable already ). And self monitor for out of normal conditions and remediate. A sort of self healing system. Then I could retire and die a happy man. :)
 
Last edited:
  • +Reputation
Reactions: simmerskool