系统更新

新机器到手,应当立即进行软件包更新。

在更新系统之前建议先修改软件仓库的分组:

1
2
3
4
5
6
sudo vim /etc/apt/sources.list

# 在 main 后面添加 contrib non-free non-free-firmware(在 Debian12 之后 contrib 和 non-free 已经包含在 non-free-firmware 内)

# 例如:
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware

保存之后执行下面命令更新软件包:

1
sudo apt update && apt upgrade -y && apt dist-upgrade -y && apt full-upgrade -y && apt autoremove -y

更新完成后建议重启一下:

1
sudo reboot

一些恶性漏洞必须通过更新得到修补,建议不要升级大版本/更新内核,除非你的是物理服务器;各种架构的 VPS 和云主机大版本升级或者更新内核可能出现问题(专家可以忽略)

大版本升级/更新内核前务必备份重要数据!

安装常用软件:

1
apt install wget curl vim git net-tools -y

优化 vps 网络

注意:需要 4.9 及以上的内核才可以开启 BBR

执行命令

1
wget https://gist.githubusercontent.com/rand-wind/dff7ed87748e728a18f388e5a6b17c07/raw/3906efed227ee14fc5b4ac8eb4eea8855021ef19/optimize.sh && sudo bash optimize.sh

作用:

  • 更新软件源和软件包。
  • 安装 haveged 优化 Linux 随机数生成器,可以解决在某些情况下,系统熵过低的问题。
  • 内核网络参数优化,具体就是对一些 IPv4 的 TCP 参数做了调整,另外还启用了 Linux 原版 BBR 拥塞控制算法,这个算法是 Google 开发的,可以大幅度提升网络速度。

脚本来自 TaurusXin 的独立博客

检查 BBR 是否成功开启:

1
2
3
4
lsmod | grep bbr

# 返回值有 tcp_bbr 就说明 bbr 已启动,例如:
tcp_bbr                20480  29

更改 SSH 默认端口号

更改端口号可以参考这篇文章 修改 Linux 默认 SSH 端口及注意事项

新建普通用户

使用 root 用户登录和执行任务是一种非常不好的使用习惯,因为 root 拥有完整的系统权限,很容易误操作。因此,新的 VPS 到手后应该新建一个普通用户,并且授予普通用户 sudo 权限,当需要更高权限的时候使用 sudo 命令进行,这样较为安全。

为 Linux 添加新用户并且赋予 sudo 权限

SSH 安全

不要使用账户密码登录,尽量使用密钥登录

使用 SSH 密钥登录并禁止口令登录

防火墙

云服务器提供商提供了安全组/防火墙

比如 AWS 亚马逊,GCP 谷歌云,Oracle 甲骨文等等,这些云服务器厂商都默认提供了安全组/防火墙,用户基本不用另外安装防火墙。

商家默认没有安全组

如果云服务器商家没有提供默认的安全组,此时就说明你的机子是在互联网上裸奔。因此就需要我们自己在VPS上配置防火墙,这篇文章里有详细操作 Linux 防火墙类型及常用操作

Debian 默认使用的防火墙是 iptables,而 iptables 规则默认是开放所有端口,看起来效果等同于没有防火墙一样。

iptables 默认规则是需要拒绝的才去手动禁止,不然就是开放。当然也可以手动改成默认全关,手动指定放行的端口。

默认端口全开的好处自然是使用方便了,软件都是装完就能直接使用,但缺点就是存在安全隐患,比如运行数据库之类的,需要根据自己使用情况修改规则。

iptables 的优点是功能强大,不仅仅是简单作为防火墙,还可以实现其他很多功能,缺点是配置比较复杂。

特别强调: 从 Debian10 开始,默认防火墙管理则开始逐渐从 iptables 过渡到 nftables 虽然 iptables 还能继续使用,但后续肯定是会往更新的发展。