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

相关推荐
REDcker4 小时前
gRPC开发者快速入门
服务器·c++·后端·grpc
符哥20084 小时前
Ubuntu 常用指令集大全(附实操实例)
数据库·ubuntu·postgresql
陌上花开缓缓归以5 小时前
linux mtd-utils使用源码分析(ubuntu测试版)
linux·arm开发·ubuntu
江湖有缘5 小时前
零基础入门:使用 Docker 快速部署 Organizr 个人主页
java·服务器·docker
wangjialelele5 小时前
Linux下的IO操作以及ext系列文件系统
linux·运维·服务器·c语言·c++·个人开发
kali-Myon5 小时前
2025春秋杯网络安全联赛冬季赛-day2
python·安全·web安全·ai·php·pwn·ctf
HypoxiaDream5 小时前
LINUX-Ext系列⽂件系统
linux·运维·服务器
李斯啦果6 小时前
【Linux】Linux目录配置
linux·运维·服务器
AI+程序员在路上6 小时前
linux下线程中pthread_detach与pthread_join区别
linux·运维·服务器
独行soc6 小时前
2026年渗透测试面试题总结-19(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮