如何设置一台新的云服务器? 以 CentOS7 为例

  • 1. 引言
  • 2. 云服务器网站设置
    • 2.1 防火墙
    • 2.2 root密码
  • 3. 服务器设置
    • 3.1 用户管理
    • 3.2 sshd配置
    • 3.3 服务器防火墙
    • 3.4 其他设置
  • 4. 结语

1. 引言

我们拿到一台新的云服务器之后, 应该如何设置, 使服务器更适合自己使用? 本文将以 CentOS7 为例, 介绍如何设置新服务器.

2. 云服务器网站设置

本章节的操作都是在云服务商所提供的网页控制台上操作.

2.1 防火墙

除了Linux系统的防火墙, 大部分云服务提供商还额外加了一道防火墙, 这个防火墙是通过云服务提供商来配置的: 如果我们想访问服务器, 需要先经过云服务提供商的防火墙, 还需要再通过Linux系统的防火墙, 才能访问到服务器.

我所使用的某讯云防火墙和iptables等防火墙工具比起来, 功能比较简单, 适合不太了解防火墙的人使用.

因为后面我们会通过命令行来配置防火墙, 所以云服务提供商的防火墙就可以关了, 有一个防火墙就够了. 云服务提供商的防火墙关了的意思是, 把所有端口都放开, 如下图所示. 各位读者可以根据自身实际情况选择.

2.2 root密码

其次我们还需要知道root密码. 我所使用的某讯云是需要自己预设密码.

其他的云服务商, 如果预设了root密码则找到预设的密码, 如果没有设置root密码则需要设置密码, 否则, 没有密码我们登录不了服务器.

3. 服务器设置

设置好密码后, 我们就可以登录服务器了, 本章节都是通过root用户在服务器上的操作.

3.1 用户管理

部分云服务提供商会预设一个用户, 比如某讯云轻量服务器的lighthouse. 使用预设用户, 有较大安全的风险, 所以我们需要删除预设用户, 并自己创建一个用户.

通过以下命令找到预设用户, 第一个字段是用户名, 第三个字段小于1000的是Linux系统的预设用户, 大于等于1000就是云服务提供商预设的用户了, 我们要删除的是云服务提供商预设的用户.

$ cat /etc/passwd
...
lighthouse:x:1000:1000::/home/lighthouse:/bin/bash
...

我们使用userdel命令删除用户, -r选项表示将用户的家目录也一并删除

$ userdel -r lighthouse

使用useradd新增一个用户:

  • -d选项指定家目录
  • -G选项指定组, 加入到wheel, 是因为wheel组中的所有用户都可以拥有sudoer权限, 而无需在去修改sudoers文件了
  • -s选项指定默认shell
  • 最后的xxx表示用户名
$ useradd -d /home/ypl/ -G wheel -s /bin/bash xxx

添加好用户之后, 需要修改新用户的密码

$ passwd xxx

3.2 sshd配置

接下来配置sshd, 也是为了提高安全性. 修改配置文件之前备份下, 这是个好习惯

$ cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org

备份好之后, 再来修改sshd的配置文件, 下面是我常用的配置, 各位读者可以根据自己的习惯来配置.

$ vim /etc/ssh/sshd_config

$ cat /etc/ssh/sshd_config
......
Port 13513                # 监听端口
MaxAuthTries 3            # 登录尝试次数
PrintLastLog yes          # 显示最后一次登录的日期和时间
PermitRootLogin no        # 禁止root登录
PasswordAuthentication no # 禁止密码登录
PermitEmptyPasswords no   # 禁止空白密码登录
PubkeyAuthentication yes  # 使用密钥登录
AllowTcpForwarding yes    # 用于端口转发, 允许端口转发
GatewayPorts yes          # 用于端口转发
TCPKeepAlive yes          # 保持连接
ClientAliveInterval 20    # 心跳时间, 单位为s
ClientAliveCountMax 3     # 心跳失败次数

修改后重启sshd服务, 使刚刚的修改生效

$ systemctl restart sshd.service 

最后添加个人电脑的公钥, 就可以免密登录服务器了, root和刚刚创建的用户都要加, 不要忘记了

$ cd ~
$ touch .ssh
$ chmod 700 .ssh/
$ cd .ssh/
$ touch authorized_keys
$ chmod 600 authorized_keys
$ vim authorized_key
# 此处需要注意, 因为我们是root用户, 创建的文件也属于root用户, 配置好普通用户的ssh设置后, 需要将创建的文件的所有者修改为普通用户
$ chown -R xxx .ssh/

3.3 服务器防火墙

首先检查下防火墙有没有启动, 没有启动的话先启动

$ systemctl enable firewalld.service 
$ systemctl start firewalld.service 

注意: 若刚才防火墙没有启动, 手动启动后会登入不了服务器, 因为防火墙没有做任何配置, 会拒绝所有入站流量!

但是不要慌, 有种登录方式叫做VNC登录, 通过VNC登录可以绕过防火墙登录上服务器. 用通俗的话来说:

  • ssh登录: 类似于Windows登录后, 在通过QQ的使用远程控制, QQ就相当于ssh, 需要经过防火墙
  • VNC登录: 相当于云服务提供商把服务器屏幕投影给用户, 类似于坐在电脑旁本地登录Windows, 所以不会经过防火墙

接下来再把ssh的端口打开, 要和之前配置的一样

$ firewall-cmd --add-port=13513/tcp --permanent 
$ firewall-cmd --reload
$ firewall-cmd --list-all

3.4 其他设置

通过以下命令设置主机名

$ hostnamectl set-hostname xxxxxx

安装需要的软件

$ yum install htop tree git 

检查crontab, 删除默认脚本

$ crontab -e

4. 结语

在本文结束前, 在告诉大家一个小技巧:

本地机器(不是服务器, 就是自己的笔记本电脑)修改 hosts 文件, 之后就可以使用 域名 的访问服务器了.

例如, 在hosts文件中加入192.168.1.xxx wbourne.com, 我们就可以通过ssh root@wbourne.com来登录服务器了, 想怎么取怎么取!

原文地址:https://www.cnblogs.com/wbourne/archive/2022/11/26/16927730.html