我知道sudo密码可以保护我的计算机,使其免受具有物理访问权限的人的本地入侵(编辑:实际上,实际上不是)。我的密码足以达到此目的,但是我知道,如果有人可以远程强行使用它,密码还不够强大。在标准Ubuntu桌面安装中,任何人都可以使用我的sudo密码以root模式访问我的计算机,而无需物理访问该计算机?
sudo密码不仅用于本地保护,它的目的还在于为root特权使用增加一层额外的安全性。可以在这里找到很好的讨论/superuser//a/771523/467316
您的密码强度可能不如您想像的高。现在,对于我以前见过的那些,我正在破解客户端的Active Directory哈希的20-40%,对于那些密码规则不正确的哈希,则要破解70%。我建议使用16个字符的复杂密码。oclHashcat和Radeon显卡会造成很大的损害。加上过去5年中每次违规所产生的所有密码转储,您通常会获得一个很好的字典来进行工作。
如果您完全使用SSH,请在sshd_config中进行一些调整
sudo nano /etc/ssh/sshd_config
必须立即出门(如果您不使用ftp服务器,则最后一个禁用ftp服务器)。
Protocol 2
X11Forwarding no
PermitEmptyPasswords no
MaxAuthTries 5
#Subsystem sftp /usr/lib/openssh/sftp-server
保存后,重新启动ssh
sudo service ssh restart
使用公共密钥加密首先在远程计算机上创建一个密钥(使用puttygen或您的操作系统可用的任何版本)。将公共密钥复制为您要登录的用户下的Ubuntu计算机,以authorized_keys文件(您可能必须创建它)
sudo nano /home/yourdumbusername/.ssh/authorized_keys
以这种格式复制公钥
ssh-rsa 23r0jfjlawjf342rffjfa89pwfj8ewfew98pfrfj8428pfwa9fupfwfcajwfpawf8rfapfj9pf892jpfjpwafj8a where-ever-you-have-your-private-key-for-your-own-notes
保存它,并设置您的sshd_config以允许公共密钥登录
sudo nano /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
保存并重新启动ssh
sudo service ssh restart
尝试使用公钥加密从私钥计算机SSH到ubuntu主机。如果一切顺利,请返回ubuntu主机并禁用密码身份验证。
sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
保存并重新启动ssh
sudo service ssh restart
尝试再次从私钥计算机中拉出以确认。
要添加更多吗?设置一个非特权帐户,将PermitRootLogin设置为no,重新启动ssh,将您的公钥添加到新帐户的authorized_keys中,以非特权帐户登录,当您需要root权限或特权时使用su到您的root或特权帐户。