本文记录着配置Linux服务器的初步流程,给予大家进行参考。
下面的操作针对Debian/Ubuntu系统,其他Linux系统也类似,就是部分命令稍有不同。
第一步:root用户登录。
首先,使用root用户登录远程主机(假定IP地址是128.199.209.242)。
sshroot@128.199.209.242
这时,命令行会出现警告,表示这是一个新的地址,存在安全风险。键入yes,表示接受。然后,就应该可以顺利登入远程主机。
接着,修改root用户的密码。
passwd
第二步:新建用户。
首先,添加一个用户组(这里假定为admin用户组)。
addgroupadmin
然后,添加一个新用户(假定为bill)。
useradd-d/home/bill-s/bin/bash-mbill
上面命令中,参数d指定用户的主目录,参数s指定用户的shell,参数m表示如果该目录不存在,则创建该目录。
接着,设置新用户的密码。
passwdbill
将新用户(bill)添加到用户组(admin)。
usermod-a-Gadminbill
接着,为新用户设定sudo权限。
visudo
visudo命令会打开sudo设置文件/etc/sudoers,找到下面这一行。
rootALL=(ALL:ALL)ALL
在这一行的下面,再添加一行。
rootALL=(ALL:ALL)ALL
billALL=(ALL)NOPASSWD:ALL
上面的NOPASSWD表示,切换sudo的时候,不需要输入密码,我喜欢这样比较省事。如果出于安全考虑,也可以强制要求输入密码。
rootALL=(ALL:ALL)ALL
billALL=(ALL:ALL)ALL
然后,先退出root用户的登录,再用新用户的身份登录,检查到这一步为止,是否一切正常。
exit
sshbill@128.199.209.242
第三步:SSH设置。
首先,确定本机有SSH公钥(一般是文件~/.ssh/id_rsa.pub),如果没有的话,使用ssh-keygen命令生成一个(可参考我写的SSH教程)。
在本机上另开一个shell窗口,将本机的公钥拷贝到服务器的authorized_keys文件。
cat~/.ssh/id_rsa.pub|sshbill@128.199.209.242'mkdir-p.ssh&&cat->>~/.ssh/authorized_keys'
#或者在服务器端,运行下面命令
echo"ssh-rsa[yourpublickey]">~/.ssh/authorized_keys
然后,进入服务器,编辑SSH配置文件/etc/ssh/sshd_config。
sudocp/etc/ssh/sshd_config~
sudonano/etc/ssh/sshd_config
在配置文件中,将SSH的默认端口22改掉,可以改成从1025到65536之间的任意一个整数(这里假定为25000)。
Port25000
然后,检查几个设置是否设成下面这样,确保去除前面的#号。
Protocol2
PermitRootLoginno
PermitEmptyPasswordsno
PasswordAuthenticationno
RSAAuthenticationyes
PubkeyAuthenticationyes
AuthorizedKeysFile.ssh/authorized_keys
UseDNSno
上面主要是禁止root用户登录,以及禁止用密码方式登录。
接着,在配置文件的末尾,指定允许登陆的用户。
AllowUsersbill
保存后,退出文件编辑。
接着,改变authorized_keys文件的权限。
sudochmod600~/.ssh/authorized_keys&&chmod700~/.ssh/
然后,重启SSHD。
sudoservicesshrestart
#或者
sudo/etc/init.d/sshrestart
下面的一步是可选的。在本机~/.ssh文件夹下创建config文件,内容如下。
Hosts1
HostName128.199.209.242
Userbill
Port25000
最后,在本机另开一个shell窗口,测试SSH能否顺利登录。
sshs1
第四步:运行环境配置。
首先,检查服务器的区域设置。
locale
如果结果不是en_US.UTF-8,建议都设成它。
sudolocale-genen_USen_US.UTF-8en_CA.UTF-8
sudodpkg-reconfigurelocales
然后,更新软件。
sudoapt-getupdate
sudoapt-getupgrade
最后,再根据需要,做一些安全设置,比如搭建防火墙,关闭HTTP、HTTPs、SSH以外的端口,再比如安装Fail2Ban.