目录

一台新的Linux服务器所需的准备工作

前言

拿到一台新的 Linux 服务器应该做些什么呢?以下操作基本上是要做的,主要是保证安全及易用的一些设置,自己也刚好记录一下,这里以 CentOS 7 来做演示,其它操作系统除了部分命令不一样,其实都是一个道理。

如果还有其它您觉得有必要但没有写到的准备工作,欢迎补充。

第一步:root用户登录

首先,使用 root 用户登录远程主机(假定IP地址是111.111.111.111)。

ssh root@111.111.111.111

这时,命令行会出现警告,表示这是一个新的地址,存在安全风险。键入yes,表示接受。然后,就应该可以顺利登入远程主机。

接着,修改 root 用户的密码。

passwd

第二步:新建用户组及用户

首先,添加一个用户组(这里假定为 admin 用户组)。

groupadd admin 

然后,添加一个新用户(假定为 bill )。

useradd -d /home/bill -s /bin/bash -m bill

上面命令中,参数 d 指定用户的主目录,参数 s 指定用户的shell,参数 m 表示如果该目录不存在,则创建该目录。

接着,设置新用户的密码。

passwd bill

将新用户(bill)添加到用户组(admin)。

usermod -a -G admin bill

接着,为新用户设定 sudo 权限。

visudo

如果提示找不到 visudo,需要安装一下 sudo 这个程序。

visudo命令会打开sudo设置文件 /etc/sudoers,找到下面这一行。

root    ALL=(ALL:ALL) ALL

在这一行的下面,再添加一行。

root    ALL=(ALL:ALL) ALL
bill    ALL=(ALL) NOPASSWD: ALL

上面的 NOPASSWD 表示,切换 sudo 的时候,不需要输入密码,我喜欢这样比较省事。如果出于安全考虑,也可以强制要求输入密码。

root    ALL=(ALL:ALL) ALL
bill    ALL=(ALL:ALL) ALL

然后,先退出root用户的登录,再用新用户的身份登录,检查到这一步为止,是否一切正常。

exit
ssh bill@111.111.111.111 

第三步:SSH设置

首先,确定本机有 SSH公钥(一般是文件 ~/.ssh/id_rsa.pub),如果没有的话,使用 ssh-keygen 命令生成一个(SSH教程)。

在本机上另开一个shell窗口,将本机的公钥拷贝到服务器的 authorized_keys 文件。

cat ~/.ssh/id_rsa.pub | ssh bill@111.111.111.111 'mkdir -p .ssh && cat - >> ~/.ssh/authorized_keys'

# 或者在服务器端,运行下面命令

echo "ssh-rsa [your public key]" > ~/.ssh/authorized_keys

然后,进入服务器,编辑SSH配置文件 /etc/ssh/sshd_config

sudo cp /etc/ssh/sshd_config ~
sudo vi /etc/ssh/sshd_config

在配置文件中,将SSH的默认端口22改掉,可以改成从1025到65536之间的任意一个整数(这里假定为25000),如果改成其它值了,服务器开放端口哦,不然到时候连不上。

Port 25000

然后,检查几个设置是否设成下面这样,确保去除前面的#号。

Protocol 2

PermitRootLogin no #是否允许root用户以任何认证方式登录,有yes/no/without-password
PermitEmptyPasswords no #是否允许空密码登录
PasswordAuthentication no #是否密码认证

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

UseDNS no

上面主要是禁止root用户登录,以及禁止用密码方式登录。

接着,在配置文件的末尾,指定允许登陆的用户。

AllowUsers bill

保存后,退出文件编辑。

接着,改变 authorized_keys 文件的权限。

sudo chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh/

然后,重启SSHD。

sudo systemctl restart sshd.service

下面的一步是可选的。在本机~/.ssh文件夹下创建config文件,内容如下。

Host work1
  HostName 121.0.0.3
    User root
    Port 22

Host work2
  HostName 121.0.0.4
    User root
    Port 22

最后,在本机另开一个shell窗口,测试SSH能否顺利登录。

ssh work1

这步是通过配置后快速连接服务器,当然你也可以使用其它方法,如 alias,来实现快速连接服务器。

第四步:启用防火墙

不同发行版所使用的 iptables 前端可能是不一样的,比如 CentOS 使用的是 firewalld ,而 Ubuntu 使用的是 ufw。这里不细讲,可以自行搜索,为了安全起见,开启防火墙及放行端口配置是必须做的。

第五步:运行环境配置

登录成功后你可能会发现一个waring:

warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

解决方式:

/etc/environment 加入以下两行,重新登陆即可。

LANG=en_US.utf-8
LC_ALL=en_US.utf-8

然后,更新软件。

sudo yum update

第六步:设置时间同步

如果你买的是国外的VPS,在同步时间之前要先把时区改成中国时区:

sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

然后再输入:

sudo ntpdate us.pool.ntp.org

一般的VPS都安装有NTP,如果没有安装我们需要先安装一下:

yum install -y ntp

设置同步服务器时间,同步完毕之后,输入:

date

测试下当前时间,看看是否已经同步。

第七步:安装zsh

1. 安装zsh包

sudo yum -y install zsh

2. 切换默认shell为zsh

chsh -s /bin/zsh

3. 安装on my zsh

这一步需要安装git,sudo yum install git

curl:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

wget:

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

如果拉取ohmyzsh脚本太慢,可以将先使用gitee镜像脚本:

1.wget https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh

2.编辑下载好的install.sh,将内容 https://github.com/${REPO}.git 替换成 https://gitee.com/mirrors/oh-my-zsh.git 后保存。

3.sh install.sh

实际上到这一步 oh my zsh 就已经安装完成了。

4. 修改oh my zsh 主题

查看oh my zsh主题:

ls ~/.oh-my-zsh/themes

显示如下:

adben.zsh-theme          gallois.zsh-theme          nicoulaj.zsh-theme
af-magic.zsh-theme       garyblessington.zsh-theme  norm.zsh-theme
afowler.zsh-theme        gentoo.zsh-theme           obraun.zsh-theme
agnoster.zsh-theme       geoffgarside.zsh-theme     peepcode.zsh-theme
alanpeabody.zsh-theme    gianu.zsh-theme            philips.zsh-theme
amuse.zsh-theme          gnzh.zsh-theme             pmcgee.zsh-theme
apple.zsh-theme          gozilla.zsh-theme          pure.zsh-theme
arrow.zsh-theme          half-life.zsh-theme        pygmalion.zsh-theme

修改主题:

vim ~/.zshrc

可以看到默认的主题是 ZSH_THEME="robbyrussell" 改成自己喜欢的即可

参考资料

Linux服务器的初步配置流程

购买新的 Linux 服务器后需要做的安全措施

SSH原理与运用(一):远程登录

解决SSH免密登录配置成功后不生效问题