Rocky Linux 9 是兼容 RHEL 的免费选择:同样的软件包、同样的 dnf、同样的 firewalld 和 SELinux。如果你配置过 Debian 或 Ubuntu,步骤顺序是一样的,只是工具不同。下面是一台全新 Rocky 9 服务器上的前十分钟。
以下每条命令都在发布前于我们的 Rocky Linux 9 镜像上运行过。在一台干净的服务器上,整个流程只需几分钟。
1. 更新系统
用控制面板中的密码以 root 登录,然后更新:
dnf -y upgrade
在我们的镜像上,测试时只用了几秒,因为镜像本身已是最新。
2. 创建 sudo 用户并添加 SSH 密钥
在 Rocky 上,管理员组叫 wheel,不是 sudo:
useradd -m -G wheel deploy
passwd deploy # sudo will ask for this password
把你的公钥放到服务器上(如何创建密钥)。如果你已把它复制到 /root/key.pub:
install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
install -m 600 -o deploy -g deploy /root/key.pub /home/deploy/.ssh/authorized_keys
restorecon -R /home/deploy/.ssh
restorecon 会设置 sshd 期望的 SELinux 标签。标签不对时,密钥登录会失败,而且没有明显的错误提示。
打开第二个终端,确认 ssh deploy@YOUR.SERVER.IP 能登录、sudo -v 接受密码。在此之前保持 root 会话不要关闭。
3. 关闭 root 登录和密码登录
这里 Rocky 与教科书式修改 sshd_config 不同。设置保存在 /etc/ssh/sshd_config.d/ 下的独立文件中,sshd 采用它找到的第一个值。在我们的镜像中,第一个文件是 00-eqvps.conf,它允许 root 和密码登录,方便你第一天能进入服务器。请在那里修改:
sed -i -e 's/^PermitRootLogin .*/PermitRootLogin no/' \
-e 's/^PasswordAuthentication .*/PasswordAuthentication no/' \
/etc/ssh/sshd_config.d/00-eqvps.conf
sshd -t && systemctl reload sshd
sshd -T | grep -E '^(permitrootlogin|passwordauthentication) '
最后一条命令会显示 sshd 实际执行的设置。你应该看到:
permitrootlogin no
passwordauthentication no
此后 ssh root@… 即使用密钥也会被拒绝,deploy 只能用密钥登录。
4. 防火墙:firewalld
云镜像没有自带 firewalld。安装、启动,并只开放需要的服务:
dnf -y install firewalld
systemctl enable --now firewalld
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --remove-service=cockpit
firewall-cmd --reload
firewall-cmd --list-services
默认区域开放了 cockpit(9090 端口)和 dhcpv6-client。Cockpit 并未安装,但没有理由让它的端口开着。添加应用时用同样的方法开放端口,例如 firewall-cmd --permanent --add-service=https。
5. 自动安全更新
dnf-automatic 按定时器下载更新,但默认不安装,所以要把安装打开:
dnf -y install dnf-automatic
sed -i 's/^apply_updates = .*/apply_updates = yes/' /etc/dnf/automatic.conf
systemctl enable --now dnf-automatic.timer
systemctl list-timers dnf-automatic.timer
如果只想要安全补丁,在同一个文件里再设置 upgrade_type = security。
6. 保持 SELinux 开启
全新服务器上 getenforce 会输出 Enforcing,以上所有步骤都能在这种状态下工作。当应用需要非标准端口或目录时,解决办法是设置标签(semanage port、restorecon),而不是 setenforce 0。
选哪个套餐
Rocky 9 空闲时约用 400 MB 内存。Nano 套餐(1 GB,$3/月)足够运行一个小服务;Micro(2 GB,$5/月)还能放下一个数据库。在 NAT 套餐上,SSH 通过控制面板里显示的专属端口进入。如果需要对所有人开放 80/443 端口,请选择带独立 IPv4 的套餐,例如 Micro-IP,$10/月。
Rocky Linux 9 是 RHEL 系 OS 页面上的镜像之一,所有 VPS 套餐都可选。支付方式为 Base、Ethereum 或 Polygon 网络上的 USDT、USDC 或 ETH,无需证件,也无需银行卡。如果你更喜欢用脚本管理服务器,API 文档介绍了下单、重装和续费。
评论
暂无评论。来做第一个吧。