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)。

相关推荐
知北游天11 分钟前
Linux:基础IO---软硬链接&&动静态库前置知识
linux·运维·服务器
云途行者19 分钟前
GitLab 17.x 在 Ubuntu 24.04 上安装配置
linux·ubuntu·gitlab
偏执的执41 分钟前
linux常见命令
linux·运维·服务器
Wind哥1 小时前
C++在Linux上生成动态库并调用接口测试
linux·服务器·c++
IT信息技术学习圈2 小时前
网络安全课程笔记整理
网络·笔记·web安全
猫头虎2 小时前
最新如何在服务器中解决FFmpeg下载、安装和配置问题教程(Linux|Windows|Mac|Ubuntu)
linux·服务器·windows·ffmpeg·音视频·pip·视频编解码
AugustShuai2 小时前
服务器DNS失效
运维·服务器·dns·dns解析异常
您8132 小时前
十八、TCP多线程、多进程并发服务器
linux·服务器·网络协议
code monkey.2 小时前
【寻找Linux的奥秘】第四章:基础开发工具(下)
linux·运维·服务器
Arkmornings2 小时前
大语言模型,网络安全提示词prompt
web安全·prompt