如何设置一台新的云服务器? 以 CentOS7 为例
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
来登录服务器了, 想怎么取怎么取!