Changes/SSHD PermitRootLogin no

Revision as of 12:28, 24 November 2014 by Pjp(talk | contribs)(Created page with " <!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name. This keeps all change proposals in the same namespace --> =...")

Owner

Current status

Detailed Description

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.

Scope

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.

Upgrade/compatibility impact

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.

User Experience

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 -.

Dependencies

Anaconda, GNOME, openssh-client and openssh-server could be affected by this change.

Contingency Plan

Contingency mechanism: if the feature is not complete by default, it would continue to allow 'root' login from a remote machine.