[服务器初体验] SSH登录成功后,我的新Linux服务器“空空如也”?三件必做的事让它安全又顺手

更多云服务器知识,尽在hostol.com

嘿,各位新晋的服务器"岛主"们!当你满怀期待地拿下一台全新的Linux服务器,通过SSH工具敲下用户名和密码(或者加载了密钥),屏幕上终于跳出那熟悉的命令行提示符时,是不是既有点小激动,又有点小迷茫?"我成功进来了!然后呢......?" 看着这台"一穷二白"、仿佛"毛坯房"一样的服务器,你可能在想,接下来该干点啥才能让它既安全可靠,用起来又得心应手呢?别急,万事开头难,但只要掌握了要领,后续就能顺风顺水啦!今天,Hostol就来给你支支招,告诉你SSH登录成功后,有三件"头等大事"你必须立刻安排上,它们是后续所有精彩操作的坚实基础!


第一件大事:给系统"沐浴更衣"------全面更新软件包

拿到新服务器,就像拿到一部新手机或者新电脑,第一件事干嘛?对,检查更新!服务器也是一个道理。

1. 为什么要先更新?------ 安全与稳定的"地基"

你拿到的服务器镜像(操作系统安装盘)可能已经制作了一段时间了,从它被制作出来到你手上,这段时间里,操作系统本身以及它所包含的成百上千个软件包可能已经发布了N个安全补丁和重要的错误修复。不先更新,就等于把你的"新家"大门敞开,还可能留着几个"后窗户"没关严实,这可不行!

更新的好处,就像给你的新家来一次彻底的大扫除和安防升级:

  • 堵上安全漏洞: 这是最重要的!很多黑客攻击利用的就是已知的、但尚未修复的系统漏洞。
  • 修复已知Bug: 新版本软件通常会修复旧版本中发现的各种奇奇怪怪的问题,让系统运行更稳定。
  • 获取最新功能(有时): 虽然我们主要追求稳定和安全,但有时更新也会带来一些有用的新特性。

所以,别犹豫,连接成功后的第一把火,就应该烧向"更新"!

2. 动手时刻:不同发行版的更新指令

Linux发行版众多,咱们挑最常见的Debian/Ubuntu系和Red Hat系(CentOS, AlmaLinux, Rocky Linux等)来说:

对于 Debian/Ubuntu 系统:

复制代码
# 首先,刷新本地的可用软件包列表信息
sudo apt update

# 然后,升级所有已安装的软件包到最新版本
sudo apt upgrade -y
# 或者,更彻底一点,处理可能因依赖关系变化而需要增删包的情况
# sudo apt full-upgrade -y

这里的sudo是以管理员权限执行命令,apt update是"查查最近有哪些新货和补丁",apt upgrade是"把能升级的都给我换成最新的",-y参数表示自动确认,省得你一直按"Y"。

对于 CentOS/RHEL/AlmaLinux/Rocky Linux 系统:

复制代码
# 检查并升级所有软件包
sudo dnf update -y
# 或者在一些老版本的CentOS上,可能是yum
# sudo yum update -y

dnf (或 yum) 会自动处理更新列表和升级软件包的过程。

这个过程可能会花几分钟到十几分钟不等,取决于你的网络速度和需要更新的软件包数量。泡杯茶,耐心等待它完成吧!

3. (小提示)内核更新与重启

如果在更新过程中,你看到有Linux内核(kernel)相关的软件包被升级了,那么通常建议你在所有更新完成后重启一下服务器,以使新的内核生效。

复制代码
sudo reboot

这就像电脑系统更新后提示你"立即重启"一样。当然,如果你的服务不能随便重启,那就得计划一个维护窗口了。


第二件大事:创建你的"日常管家"------普通用户与Sudo权限

很多云服务器提供商,默认给你的可能是root用户直接登录。root用户,那可是Linux世界里的"皇帝",拥有一切至高无上的权力,想干啥干啥。听起来很爽,对吧?但正因为如此,直接用root用户进行日常操作,其实是个非常危险的习惯!

1. 告别"裸奔"的root:为何不应直接用root操作?

想象一下,如果你是皇帝,会亲自下御膳房炒菜,或者亲自去城门口站岗吗?肯定不会嘛!风险太高了!

  • 误操作风险: 人非圣贤孰能无过。万一你一不小心敲错一条命令(比如rm -rf /* 这个传说中的"删库跑路"命令),以root身份执行,那后果不堪设 meninas。用普通用户,权限受限,很多危险操作会被直接拒绝。
  • 安全风险: 如果黑客通过某种方式获取了你root用户的密码或SSH密钥,那你的服务器就彻底"裸奔"了,人家想怎么折腾就怎么折腾。
  • 审计追踪困难: 如果多个人都用root登录,出了问题很难追查是谁干的。

所以,最佳实践是:创建一个普通的、非root的用户用于日常登录和操作,当确实需要管理员权限时,再通过sudo命令临时"借用"一下root的权力。这叫"最小权限原则",是安全的基本功。

2. 三步打造你的安全账户

步骤一:添加新用户,比如叫"管家张三" (adduser的亲切问候)

咱们来创建一个名为hostoladmin(你可以换成你喜欢的名字)的新用户:

复制代码
sudo adduser hostoladmin

执行后,系统会引导你设置新用户的密码,并填写一些可选的个人信息(可以直接回车跳过)。记住,给这个新用户设置一个超级强壮的密码!

步骤二:授予Sudo"令牌",让张三能"代行皇权" (usermod的神奇力量)

光有普通用户还不行,他得能在需要的时候"摇身一变"成管理员。这就需要把他加入到特定的用户组里,这个组的成员可以使用sudo命令。

对于 Debian/Ubuntu 系统,这个组通常叫 sudo:

复制代码
sudo usermod -aG sudo hostoladmin

对于 CentOS/RHEL/AlmaLinux/Rocky Linux 系统,这个组通常叫 wheel:

复制代码
sudo usermod -aG wheel hostoladmin

-aG参数的意思是"追加(append)到辅助组(Group)"。现在,hostoladmin用户就可以在需要时,在命令前加上sudo来执行管理员任务了,比如sudo apt update。

测试一下: 先退出当前SSH会话,然后用新创建的hostoladmin用户和其密码重新登录。登录后,尝试执行一个需要管理员权限的命令,比如sudo apt update或者sudo ls /root。如果系统提示你输入hostoladmin的密码,并且命令成功执行,那就说明sudo配置成功啦!

步骤三:(强烈推荐)给root的"大门"加把锁:禁用root直接SSH登录

既然我们有了可以sudo的普通用户,那root用户直接通过SSH登录的"大门"就可以考虑关上了,这样更安全。

重要警告:在执行这一步之前,请务必、务必、务必确认你的新用户(如hostoladmin)能够成功登录,并且能够正常使用sudo获取root权限!否则,你可能会把自己锁在服务器外面!就像把家门反锁了,结果发现钥匙锁屋里了,那就糗大了!

确认无误后,操作如下:

  1. 用你的新用户(如hostoladmin)SSH登录到服务器。
  2. 编辑SSH服务的配置文件: sudo nano /etc/ssh/sshd_config
  3. 在文件里找到类似PermitRootLogin yes或者PermitRootLogin prohibit-password这样的行。把它修改为: PermitRootLogin no 如果找不到这行,就手动在文件末尾添加一行。
  4. 保存文件并退出编辑器 (Nano编辑器是Ctrl+O保存,回车确认,然后Ctrl+X退出)。
  5. 重启SSH服务使配置生效: sudo systemctl restart sshd # 或者在一些老系统上可能是: # sudo service ssh restart

现在,尝试用root用户直接SSH登录,应该会被拒绝了。以后你就都用新创建的普通用户登录,需要时再sudo,是不是感觉专业多了?更进一步的安全措施是为你的普通用户配置SSH密钥登录,彻底告别密码(这是另一个话题,但非常推荐!)。


第三件大事:筑起第一道"防火墙"------UFW/firewalld基础配置

服务器暴露在公网上,就像一座没有城墙的城市,各路"牛鬼蛇神"(恶意扫描、黑客攻击)都可能来"串门"。防火墙就是你服务器的第一道"城防系统",它能帮你决定哪些"访客"(网络连接)可以进来,哪些得拒之门外。

1. 防火墙:不请自来的"访客"的克星

防火墙的基本工作原则通常是"默认拒绝所有入站连接,按需允许特定服务"。这就像小区保安,不认识的人一律不让进,除非你有通行证(允许规则)或者要去拜访的业主(特定服务端口)打了招呼。

2. UFW上手指南 (以Ubuntu为例,Debian也适用)

UFW (Uncomplicated Firewall) 是Ubuntu上一个非常简单易用的防火墙管理工具,对新手特别友好。

步骤一:安装与检查状态 (通常已预装)
复制代码
sudo apt install ufw  # 如果还没装的话
sudo ufw status verbose # 查看当前防火墙状态和规则 (verbose会显示更详细信息)

初始状态通常是Status: inactive。

步骤二:设定"门禁规则":默认拒绝入,允许出

这是个好习惯,先关上所有"未经许可"的门。

复制代码
sudo ufw default deny incoming   # 拒绝所有未经明确允许的入站连接
sudo ufw default allow outgoing  # 允许所有出站连接 (服务器主动向外发起的连接通常是安全的)
步骤三:给"自己人"开门:放行SSH和其他必要服务

最最最重要的一步!在你启用防火墙之前,一定要先允许SSH连接,否则你启用防火墙的瞬间,就会把自己踢出门外,再也连不上了!

复制代码
sudo ufw allow ssh  # 允许默认的SSH端口 (22)
# 或者,如果你修改了SSH端口,比如改成了2222:
# sudo ufw allow 2222/tcp

如果你的服务器要跑网站,通常还需要允许HTTP和HTTPS:

复制代码
sudo ufw allow http   # 允许HTTP (80端口)
sudo ufw allow https  # 允许HTTPS (443端口)

UFW很聪明,它知道ssh, http, https这些常用服务的默认端口。你也可以直接指定端口号,比如sudo ufw allow 8080/tcp。

步骤四:启动!防火墙正式上岗

确认你已经允许了SSH之后,就可以大胆启用防火墙了:

复制代码
sudo ufw enable

系统会提示你"这可能会中断现有连接",输入y确认。然后再次检查状态:

复制代码
sudo ufw status verbose

你应该能看到状态是active,并且列出了你允许的规则。

3. CentOS/RHEL/AlmaLinux/Rocky Linux的伙伴:firewalld简介

在这些发行版上,更常用的防火墙管理工具是firewalld。它的概念和UFW略有不同,引入了"区域"(zones)的概念,但基本目标一致。

简单操作示例:

复制代码
# 启动并设置开机自启 (通常已默认启动)
sudo systemctl start firewalld
sudo systemctl enable firewalld

# 允许SSH服务 (public区域是默认区域)
sudo firewall-cmd --permanent --zone=public --add-service=ssh
# 允许HTTP和HTTPS
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https

# 重新加载防火墙规则使其生效
sudo firewall-cmd --reload

# 查看当前规则
sudo firewall-cmd --list-all

firewalld功能更强大,但初上手可能比UFW稍微复杂一点点。


三件事之后,焕然一新!接下来呢?

恭喜你!完成了这三件大事------系统更新、创建安全的日常用户、配置基础防火墙------你的新Linux服务器已经从一个"毛坯房"变成了一个有基本安防的"简装房"了,安全性和易用性都上了一个大台阶!

但这只是一个开始。接下来,你可能还需要:

  • 设置正确的时区: sudo timedatectl set-timezone 'Asia/Shanghai' (替换成你需要的时区)。
  • 修改一个好记的主机名: sudo hostnamectl set-hostname 'my-awesome-server'。
  • 进行更深入的安全加固: 比如我们之前聊过的Fail2Ban防暴力破解、更精细的SSH配置、定期安全审计等。
  • 部署你的应用程序: Web服务、数据库、或者其他你需要的服务。
  • 配置监控和备份: 确保你能及时了解服务器状态,并且数据高枕无忧。

这些都是后续可以逐步探索和实践的。但无论如何,今天这"三板斧"是你踏上愉快服务器管理之路不可或缺的第一步!


是不是感觉没那么难?新服务器到手,不再是"老虎吃天,无从下口"了。记住这三件法宝:先给系统"大保健"清爽一下,再给自己配个"安全小马甲"日常穿着,最后给家门装个"智能门禁"。做完这些,你就可以更安心、更从容地在你的Linux服务器上施展拳脚,搭建你的数字世界了!Hostol祝你的服务器之旅一切顺利,如果你在后续的使用中遇到任何问题,或者想了解更多服务器运维的干货,随时欢迎回来看看我们的分享哦!

相关推荐
雯宝11 分钟前
mnt_init 函数
linux
律宏阔6 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔6 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴6 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千7 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei377 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei377 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei377 小时前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化
GeW7 小时前
制造业高端化,为什么必须重估Linux和数据库?
linux
百万蹄蹄向前冲7 小时前
双端同步!云服务器装最新Node.js v26.10全过程追踪
服务器·人工智能·node.js