Linux:为远程系统管理员设置
我时不时地收到奇怪的请求,要求在Linux系统上提供远程支持,故障排除和/或性能调整。 大型公司通常已经建立了完善的程序来提供对供应商/供应商的远程访问,而我只需要遵守这些程序即可。(不论结果好坏。) 另一方面,小公司和个人总是向我求教,以指导他们建立我所需要做的事情。通常,它们的服务器直接连接到Internet,现有的安全措施包括Linux发行版的默认设置。 几乎总是需要root级访问权限,而为我设置访问权限的人都不是专家级的sysadmin。我不希望他们的root密码,而且我也很确定我的行为不会是恶意的,但是我应该给什么合理的简单指示: 设置一个帐户并安全地交换凭证 设置root(sudo)访问 限制访问我的帐户 提供审核跟踪 (是的,我知道并且总是警告那些客户,一旦我具有管理员访问权限,则隐藏任何恶意操作都是微不足道的,但是让我们假设我没有什么可隐藏的,可以积极参与创建审计跟踪。) 以下步骤可以改善什么? 我当前的指令集: 设置一个帐户并安全地交换凭证 我提供了一个密码哈希,并要求我使用该加密密码来设置我的帐户,因此我们无需传输明文密码,我将是唯一知道该密码的人,并且我们不会以可预测的弱密码。 sudo useradd -p '$1$********' hbruijn 我提供了一个公共密钥SSH(每个客户端特定的密钥对),并要求他们使用该密钥设置我的帐户: sudo su - hbruijn mkdir -p ~/.ssh chmod 0700 ~/.ssh echo 'from="10.80.0.0/14,192.168.1.2" ssh-rsa AAAAB3NzaC1y***...***== hbruijn@serverfault' >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys 设置root(sudo)访问 我要求客户端使用sudo sudoedit或使用他们最喜欢的编辑器为我设置sudo并附加到/etc/sudoers: hbruijn ALL=(ALL) ALL 限制访问我的帐户 通常,客户端仍然允许基于密码的登录,我要求他们添加以下两行以/etc/ssh/sshd_config至少将我的帐户仅限制为SSH密钥: Match user hbruijn …