Ubuntu系统安全防护设置指南
保持系统最新是防范已知漏洞的核心措施。定期运行以下命令更新软件包及安全补丁:
sudo apt update && sudo apt upgrade -y
启用自动安全更新(仅安装安全相关补丁),减少手动维护成本:
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
通过上述配置,系统会自动下载并安装Ubuntu官方发布的安全更新,确保系统始终处于最新安全状态。
Ubuntu默认使用**UFW(Uncomplicated Firewall)**作为防火墙工具,通过简单命令即可实现流量管控。
sudo apt install ufw
sudo ufw enable # 启用防火墙(首次启用需确认是否允许现有SSH连接)
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh # 或 sudo ufw allow 22/tcp
sudo ufw allow http # 允许Web服务(80/tcp)
sudo ufw allow https # 允许加密Web服务(443/tcp)
sudo ufw status(简要)或 sudo ufw status verbose(详细);sudo ufw delete allow 22/tcp(按端口)或 sudo ufw delete 1(按规则编号);sudo ufw allow from 192.168.1.100(仅允许该IP访问所有端口)。SSH是远程管理的主要通道,需通过以下设置降低被暴力破解的风险:
/etc/ssh/sshd_config),将PermitRootLogin设置为no:sudo nano /etc/ssh/sshd_config
# 找到并修改以下行
PermitRootLogin no
重启SSH服务使配置生效:sudo systemctl restart sshd。ssh-keygen -t rsa -b 4096 -C "your_email@example.com";ssh-copy-id user@server_ip;/etc/ssh/sshd_config):PasswordAuthentication no,重启SSH服务。sudo nano /etc/ssh/sshd_config
# 修改以下行
Port 2222
重启SSH服务后,需用ssh -p 2222 user@server_ip连接。/etc/ssh/sshd_config中添加AllowUsers或AllowGroups,仅允许指定用户/组从特定IP访问:AllowUsers your_username@192.168.1.100
重启SSH服务。遵循最小权限原则,避免过度授权导致的安全风险:
sudo adduser your_username # 创建用户
sudo usermod -aG sudo your_username # 添加到sudo组
sudo passwd -l root # 锁定root账户
755(所有者可读写执行,其他用户可读执行):chmod 755 /path/to/directory;644(所有者可读写,其他用户可读):chmod 644 /path/to/file;/etc/shadow)权限设为600:chmod 600 /etc/shadow。dev访问/var/www目录):sudo setfacl -m u:dev:rwx /var/www # 给用户dev读写执行权限
sudo setfacl -m d:u:dev:rwx /var/www # 设置默认ACL(新文件继承)
通过工具实时监控系统活动,及时发现并阻止恶意行为:
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
配置文件位于/etc/fail2ban/jail.local,可根据需求调整封禁阈值(如maxretry = 3表示3次失败后封禁)。sudo apt install chkrootkit rkhunter
sudo chkrootkit # 检测rootkit
sudo rkhunter --check # 检测rootkit和后门
journalctl查看系统日志,或安装logwatch自动生成日志报告:sudo apt install logwatch
sudo logwatch --output mail # 通过邮件发送日志摘要(需配置邮件服务)
sudo cryptsetup luksFormat /dev/sda1 # 加密分区(替换为实际分区)
sudo cryptsetup open /dev/sda1 secure_disk # 打开加密分区
sudo mkfs.ext4 /dev/mapper/secure_disk # 格式化加密分区
或使用ecryptfs加密Home目录(适用于已有系统)。rsync或tar备份重要数据(如/home、/etc),并将备份存储在异地(如云存储):sudo rsync -avz --delete /home /mnt/backup/home # 本地备份
sudo rsync -avz --delete /home user@remote_backup:/backup/home # 远程备份
定期测试备份恢复流程,确保备份有效性。sudo systemctl stop ftp # 停止FTP服务
sudo systemctl disable ftp # 禁止开机启动
使用systemctl list-unit-files --type=service查看所有服务,禁用无用服务。sudo sysctl -w net.ipv4.icmp_echo_ignore_all=1 # 临时生效
echo "net.ipv4.icmp_echo_ignore_all=1" | sudo tee -a /etc/sysctl.conf # 永久生效
sudo sysctl -p # 加载配置
sudo aa-status查看状态;sudo apt install selinux,配置策略后启用sudo setenforce 1。