Set sshd(8) PermitRootLogin=no
To disable remote root login facility in sshd(8) by default.
- Targeted release: Fedora 22
- Last updated: 24 Nov 2014
- Tracker bug: <will be assigned by the Wrangler>
Sshd(8) daemon allows remote users to login as 'root' by default. This provides remote attackers an option to brute force their way into a system. Empirically it is observed that many users use their systems via 'root' login, without creating non-root user and often have weak passwords for this mighty account. sshd_config(5) has an option 'PermitRootLogin=yes|no' which controls sshd(8) behaviour; it is set to be 'Yes' by default. Disabling remote root login by setting PermitRootLogin=no would help to harden Fedora systems, moving it an inch closer towards 'secure by default' future. Users can have non-root accounts with weak passwords too, yet disabling remote root login keeps an attacker a step away from getting full control on a system. There is another option of disabling user login via password and require usage of cryptographic keys for the same. But that could a next step in future.
Benefit to Fedora
Fedora systems and in turn users benefit by being more secure and less vulnerable by default.
- Proposal owners: to communicate with the Fedora maintainers of packages: Anaconda, OpenSSH, GNOME, etc.
- Other developers: packages like Anaconda, GNOME etc. need to update their workflow to enable compulsory non-root user account creation and ensure good password strength for it.
- Release engineering: installer needs to ensure creation of non-root user account with strong password. Similarly, all Fedora images must be created with a non-root user account.
- Policies and guidelines: unknown yet.
If an old system did not have a non-root user account, disabling remote root login could practically lock users out. To avoid this from happening, we need to ensure that at least one non-root user account exists on a system that is known to all users.
How To Test
To test this feature try - $ ssh root@.... to a remote machine. It should fail with an error message like - Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
Remember that you are writing this how to for interested testers to use to check out your change implementation - documenting what you do for testing is OK, but it's much better to document what *I* can do to test your change.
Remote users would not be allowed to login using 'root' account. They would have to first connect using a non-root account and then upgrade their privileges via 'sudo(8)' or su -.
Anaconda, GNOME, openssh-client and openssh-server could be affected by this change.
- Contingency mechanism: if the feature is not complete by default, it would continue to allow 'root' login from a remote machine.
- Contingency deadline: Beta freeze
- Blocks release? No
- Blocks product? No
There is no documentation yet, but the topic has been discussed here -> https://lists.fedoraproject.org/pipermail/devel/2014-November/204530.html