对一台新服务器的简单的配置

Linode

虽然不是专业的系统管理员,作为程序员还是会经常折腾一些VPS,势必要学会怎么配置一台服务器,而且,对于公司面试,掌握基本的系统管理知识还是有利的。况且,如今的网络安全环境下,掌握一些服务器安全方面的配置是非常有必要的。

1. 远程登录用户

在使用SSH远程登录时,由于root用户有着无限的权利,它能执行任何命令,所以尽量不要使用root用户登录。

Ubuntu
1
2
adduser jack  //创建非根用户
usermod -a -G sudo jack // 让jack用户拥有sudo权限(即通过密码认证后可以执行特殊的权限的命令)
CentOS
1
2
3
adduser jack
passwd jack // 为jack用户设置密码
usermod -a -G wheel jack // 把jack加入wheel用户组

2. SSH密钥对认证

上面创建完jack用户后,就可以执行下面的命令登录:

1
ssh jack@123.123.78.90

此时,会要求你输入jack的密码,但密码认证也有漏洞,而且会受到暴力破解,不怀好意的人会不断尝试猜测你的密码,而且,每次登录时都要求你输入密码,是不是很麻烦呢?这时我们就需要创建SSH密码对认证(所谓密钥对,就是一对“密钥”,其中一个是私钥,保存在自己的电脑中,另一个是公钥,保存在服务器中,公钥加密的消息只能使用对应的私钥解密)。

1
ssh-keygen  // 创建密钥对

然后按照屏幕提示输入所需要的信息,这个命令会在电脑创建两个文件:~/.ssh/id_rsa.pub(公钥)~/.ssh/id.rsa(私钥),私钥应该保存在本地电脑中,公钥上传到服务器。

1
2
// 把公钥上传到服务器中jack用户的家目录,后面一定要有":"
sup ~/.ssh/id_rsa.pub [email protected]123.123.78.90:

登录服务器,创建.ssh目录:

1
mkdir ~/.ssh

创建~/.ssh/authorized_keys文件,这个文件的内容是一系列允许登录这台服务器的公钥:

1
touch ~/.ssh/authorized_keys

把上传的公钥添加到~/.ssh/authorized_keys文件中:

1
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

最后修改下面几个目录和文件的访问权限,让jack用户访问~/.ssh目录和~/.ssh/ahthorized_keys文件:

1
2
3
chown -R jack:jack ~/.ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

禁用密码和根用户登录

为了让服务器再安全一些,我们要禁止用户通过密码登录,还要禁止根用户登录。

1
vim /etc/ssh/sshd_config

上打开的配置文件中,这样修改:

1
2
3
// /etc/ssh/sshd_config
PasswordAuthentication no // 或者注释掉
PermitRootLogin no // 或者注释掉

改动之后,重启ssh服务:

1
2
3
4
5
# ubuntu
sudo service ssh restart

# CentOS
sudo systemctl restart sshd.service

运行完上面的命令,我们的服务器就安全很多了。


欢迎阅读本篇文章,如有兴趣可以关注博主公众号哦: