ubuntu 服务器版本网络安全

1. 系统更新与补丁管理

定期更新系统

bash 复制代码
sudo apt update && sudo apt upgrade -y  # 更新所有软件包
sudo apt autoremove  # 清理旧内核和依赖

启用自动安全更新

修改 /etc/apt/apt.conf.d/50unattended-upgrades,确保安全更新自动安装:

bash 复制代码
Unattended-Upgrade::Allowed-Origins {
    "Ubuntu:$(lsb_release -sc)-security";
};

2. 防火墙配置(UFW)

启用并配置防火墙

bash 复制代码
sudo ufw enable
sudo ufw default deny incoming  # 默认拒绝所有入站
sudo ufw default allow outgoing # 允许所有出站
sudo ufw allow 22/tcp  # 开放SSH端口(建议后续更改为非默认端口)

限制特定IP访问

bash 复制代码
sudo ufw allow from 192.168.1.0/24 to any port 22  # 仅允许内网IP访问SSH

3. SSH 安全加固

修改默认端口

编辑 /etc/ssh/sshd_config:

bash 复制代码
Port 2222  # 改为非标准端口(如2222)

禁用Root登录与密码认证

bash 复制代码
PermitRootLogin no
PasswordAuthentication no  # 强制使用密钥登录

生成SSH密钥对

bash 复制代码
ssh-keygen -t ed25519  # 本地生成密钥,上传公钥到服务器 ~/.ssh/authorized_keys

4. 用户权限管理

使用普通用户与sudo权限

bash 复制代码
sudo adduser username  # 创建新用户
sudo usermod -aG sudo username  # 赋予sudo权限

限制sudo权限

编辑 /etc/sudoers 或使用 visudo,限制特定命令:

bash 复制代码
username ALL=(ALL) /usr/bin/apt, /usr/bin/systemctl

5. 入侵防护与监控

安装 Fail2Ban

bash 复制代码
sudo apt install fail2ban
sudo systemctl enable fail2ban

配置 /etc/fail2ban/jail.local 防止SSH暴力破解:

bash 复制代码
[sshd]
enabled = true
port = 2222  # 与SSH端口一致
maxretry = 3
bantime = 1h

安装并配置入侵检测(AIDE)

bash 复制代码
sudo apt install aide
sudo aideinit  # 初始化数据库
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db

定期检查文件完整性:

bash 复制代码
sudo aide.wrapper --check

6. 服务最小化与暴露面缩减

关闭不必要的服务

bash 复制代码
sudo systemctl list-unit-files --state=enabled  # 查看已启用服务
sudo systemctl disable apache2  # 示例:禁用不需要的服务

使用SSH隧道访问内部服务

避免将数据库(如MySQL)、管理面板(如Portainer)直接暴露在公网,通过SSH隧道访问:

bash 复制代码
ssh -L 3306:localhost:3306 user@server_ip  # 本地访问远程MySQL

7. 加密与证书

强制HTTPS(使用Let's Encrypt)

bash 复制代码
sudo apt install certbot
sudo certbot --nginx -d example.com  # 自动配置Nginx SSL

加密磁盘(LUKS)

在安装Ubuntu时选择加密磁盘选项,或后续手动配置。

8. 日志监控与分析

集中日志管理(如ELK Stack)

使用 rsyslog 或 journald 转发日志到远程服务器。

实时监控日志

bash 复制代码
sudo tail -f /var/log/auth.log  # 监控SSH登录尝试
sudo grep "Failed password" /var/log/auth.log  # 查找失败登录

9. 备份与灾难恢复

自动化备份

使用 rsync 或 borgbackup 定期备份到远程存储:

bash 复制代码
sudo apt install borgbackup
borg init --encryption=repokey /backup
borg create /backup::"{now}" /path/to/data

测试恢复流程

定期验证备份文件的完整性和可恢复性。

10. 高级安全工具

AppArmor/SELinux

Ubuntu 默认启用 AppArmor,限制进程权限:

bash 复制代码
sudo aa-status  # 查看状态

网络隔离(Docker/VLAN)

将敏感服务部署在独立网络或使用Docker隔离。

总结

综合策略:结合防火墙、最小权限、加密和监控,形成纵深防御。

定期审计:使用工具如 lynis 进行安全扫描:

bash 复制代码
sudo apt install lynis
sudo lynis audit system

保持警惕:订阅安全公告(如 Ubuntu Security Notices)。

相关推荐
Data analyse4565 分钟前
Nginx日志访客识别的边界处理
大数据·运维·服务器·数据库·数据分析
无足鸟ICT12 分钟前
【RHCA+】patch命令(更新补丁)
linux·运维·服务器
X1A0RAN30 分钟前
Linux nohup 命令完全指南
linux·运维·服务器
xiaobobo333037 分钟前
Ubuntu 26.04环境下使用vim软件编辑文档的一些不常用用法
ubuntu·vim常用用法
Shadow(⊙o⊙)39 分钟前
仿muduo实现高并发服务器——读写缓冲区Buffer.hpp
运维·服务器
黄焖鸡能干四碗40 分钟前
大数据平台安全防护策略方案(PPT)
大数据·运维·网络·安全·web安全·制造
C++ 老炮儿的技术栈1 小时前
char 造成的数据溢出
linux·服务器·c语言·c++·算法·c
是枚小菜鸡儿吖1 小时前
听歌截图太普通?我把MusicCard部署到极空间,把歌曲做成随时可开的音乐海报页
服务器·人工智能·后端·ai·大模型
虎鲸不是鱼1 小时前
【虎鲸进化论 13】CI/CD:它在服务器上铺了条流水线
服务器·人工智能·ci/cd·大模型·自进化agent
Bruce_Liuxiaowei3 小时前
2026年10月第3周网络安全形势周报
安全·web安全·网络安全