Ubuntu 服务器管理:软件安装与安全加固

FreeGuideOnline 最新 2026-06-13

Ubuntu 服务器管理:软件安装与安全加固

概述

Ubuntu Server 凭借其稳定性、庞大的社区支持和丰富的软件生态,成为众多开发者和企业的首选操作系统。本教程面向初学者,聚焦于服务器的两大核心主题:软件安装管理基础安全加固。你将学会如何高效地通过 apt 管理软件包,并掌握一系列立即可用的安全配置策略,将一台“裸机”服务器快速转变为生产就绪环境。


软件安装与管理

apt:Ubuntu 的包管理基石

Ubuntu 使用 apt(Advanced Package Tool)来管理 .deb 格式的软件包。在安装任何软件前,务必更新本地软件源索引,以确保获取到最新版本信息。

sudo apt update          # 更新可用软件包列表
sudo apt upgrade         # 升级所有已安装的软件包

推荐将两者合为一条命令:

sudo apt update && sudo apt upgrade -y

安装、卸载与搜索软件

  • 安装软件
    sudo apt install <package_name>
    
  • 卸载软件但保留配置文件
    sudo apt remove <package_name>
    
  • 彻底卸载(含配置文件)
    sudo apt purge <package_name>
    
  • 搜索软件
    apt search <keyword>
    
  • 查看已安装软件的详细信息
    apt show <package_name>
    

常用服务器软件快速部署

以下是生产环境中高频使用的软件及安装指令,可直接参考:

软件 用途 安装命令
Nginx Web 服务器 / 反向代理 sudo apt install nginx -y
Docker 容器运行时 sudo apt install docker.io -y
MySQL 关系型数据库 sudo apt install mysql-server -y
PostgreSQL 对象关系型数据库 sudo apt install postgresql postgresql-contrib -y
Node.js JavaScript 运行时 使用 NodeSource 官方源;或 sudo apt install nodejs npm -y
Git 版本控制 sudo apt install git -y
curl / wget 数据传输工具 sudo apt install curl wget -y
htop 交互式进程查看器 sudo apt install htop -y

对于需要特定版本(如 Python 3.11、Node.js 18)的场景,可使用 PPA(Personal Package Archive) 或官方维护的第三方源。比如添加 Docker 官方源:

sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y

处理依赖问题与清理

  • sudo apt --fix-broken install :修复损坏的依赖关系。
  • sudo apt autoremove :自动移除不再需要的依赖包。
  • sudo apt autoclean :清除已下载的软件包缓存。

安全加固

系统更新自动化

未打补丁的软件是最大风险之一。配置无人值守安全更新,可让系统自动安装关键补丁。

sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

选择 Yes 即可开启自动更新。配置文件位于 /etc/apt/apt.conf.d/50unattended-upgrades,可按需调整更新源(通常仅启用 -security 来源)。

防火墙配置 (UFW)

Ubuntu 内置 UFW (Uncomplicated Firewall),极大简化了 iptables 规则管理。默认规则应为 拒绝所有入站,允许所有出站,然后按需开放服务端口。

sudo ufw default deny incoming
sudo ufw default allow outgoing
# 开放 SSH、HTTP、HTTPS 端口
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 开启防火墙
sudo ufw enable
sudo ufw status verbose

常见规则示例:

  • 允许来自特定 IP 的 SSH:sudo ufw allow from 203.0.113.4 to any port 22
  • 限制连接速率(防暴力破解):sudo ufw limit 22/tcp

SSH 安全强化

OpenSSH 服务器的默认配置存在被暴力攻击的风险,建议修改以下参数(文件:/etc/ssh/sshd_config):

# 禁止 root 直接登录
PermitRootLogin no
# 禁止空密码登录
PermitEmptyPasswords no
# 禁止密码认证(启用密钥认证后)
PasswordAuthentication no
# 使用非标准端口(可减少扫描)
Port 2222
# 限制允许登录的用户
AllowUsers your_admin_user

每次修改后需重启服务:sudo systemctl restart sshd重要:在禁用密码认证前,请确保已将你的 SSH 公钥添加到 ~/.ssh/authorized_keys 并测试无误。

用户与权限管理

遵循最小权限原则:

  • 创建非 root 管理员用户:
    sudo adduser alice
    sudo usermod -aG sudo alice
    
  • 删除不必要的用户:sudo userdel -r username
  • 使用 sudo visudo 精确控制 sudo 权限,而非直接修改 /etc/sudoers
  • 设置强密码策略(编辑 /etc/login.defs/etc/pam.d/common-password):
    PASS_MAX_DAYS   90
    PASS_MIN_DAYS   7
    PASS_WARN_AGE   14
    

入侵防御工具 Fail2Ban

Fail2Ban 实时监控日志文件,对多次失败登录的 IP 实施临时封禁。

sudo apt install fail2ban -y
sudo systemctl enable fail2ban --now

默认配置即对 SSH 有效。可通过 /etc/fail2ban/jail.local 自定义保护更多服务,例如 Nginx:

[nginx-http-auth]
enabled = true
port    = http,https
filter  = nginx-http-auth
logpath = /var/log/nginx/error.log
maxretry = 5

查看封禁状态:sudo fail2ban-client status sshd

日志审计与核心防护

  • 安装并配置 logwatch 或直接使用 journalctl 定期审查系统日志。
    journalctl -u ssh --since "1 hour ago"
    
  • 启用内核安全模块 AppArmor(默认已启用并运行):
    sudo aa-status
    
  • 使用 rkhunterchkrootkit 检测 Rootkit:
    sudo apt install rkhunter -y
    sudo rkhunter --check
    

禁用不必要服务

列出所有监听端口,关闭非必需服务以减少攻击面:

sudo ss -tunlp
sudo systemctl stop <service>
sudo systemctl disable <service>

验证清单

在完成所有配置后,建议逐项核对:

  • 系统已运行 apt update && apt upgrade
  • UFW 已启用且仅必要端口开放
  • SSH 禁用 root 登录和密码认证(若使用密钥)
  • 普通管理员账户已创建并可 sudo
  • Fail2Ban 正在保护 SSH 服务
  • 自动安全更新已激活
  • 无陌生服务在监听端口

这套组合拳能让你的 Ubuntu 服务器在面对互联网时具备基础防御能力。后续可根据业务需求引入更高级的监控(如 OSSEC、Wazuh)和强制访问控制,但上述步骤已能覆盖 80% 的常见威胁场景。