ubuntu24.04 如何加强防御?
美国、香港服务器
ubuntu24.04 如何加强防御?
07-04 来源:
一、网络层防御(第一道防线:UFW 防火墙最小权限)
1. 配置安全默认策略
bash
运行
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 放行本地回环
sudo ufw allow in on lo
# 放行已建立连接,优化防火墙性能
sudo ufw allow state RELATED,ESTABLISHED
2. 仅放行可信流量,杜绝全网开放高危端口
SSH 只放行固定运维公网 IP + 自定义端口(禁止 22 端口全网放行)
bash
运行
sudo ufw allow from 你的运维公网IP to any port 22345/tcp comment "运维SSH白名单"
Web 80/443 仅放行 Cloudflare 回源 IP,禁止公网直连源站
bash
运行
for ip in $(curl -s https://www.cloudflare.com/ips-v4);do sudo ufw allow from $ip to any port 80,443/tcp;done
for ip in $(curl -s https://www.cloudflare.com/ips-v6);do sudo ufw allow from $ip to any port 80,443/tcp;done
3. 防火墙连接跟踪内核优化,防 CC、防连接表打满丢包
bash
运行
sudo nano /etc/sysctl.conf
写入参数:
ini
# 防御SYN洪水
net.ipv4.tcp_syncookies = 1
# 关闭ICMP重定向
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# 连接跟踪优化
net.netfilter.nf_conntrack_max = 131072
net.netfilter.nf_conntrack_tcp_timeout_established = 3600
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 30
net.netfilter.nf_conntrack_helper = 0
# 复用TIME_WAIT连接
net.ipv4.tcp_tw_reuse = 1
生效:
bash
运行
sudo sysctl -p
4. 部署 Fail2ban 自动拦截暴力破解
bash
运行
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
# 复制默认配置
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
核心配置:
ini
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
[sshd]
enabled = true
port = 22345
filter = sshd
logpath = /var/log/auth.log
[nginx-http-auth]
enabled = true
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
重启服务:
bash
运行
sudo systemctl restart fail2ban
二、SSH 远程登录硬核加固(防暴力入侵最关键)
bash
运行
sudo nano /etc/ssh/sshd_config
修改配置:
ini
Port 22345
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
# 仅允许密钥登录
PubkeyAuthentication yes
# 闲置超时自动断开
ClientAliveInterval 300
ClientAliveCountMax 2
# 禁止空密码账号登录
PermitEmptyPasswords no
# 限制最大并发连接
MaxStartups 3:10:100
# 只允许指定普通用户SSH登录
AllowUsers 你的用户名
Ubuntu24.04 必须同步修改 ssh.socket
bash
运行
sudo nano /lib/systemd/system/ssh.socket
# 将两处ListenStream=0.0.0.0:22、[::]:22 改为22345
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket ssh
# 校验配置
sudo sshd -t
三、系统账号与权限加固
禁用无用账号,锁定 root 远程登录
bash
运行
sudo passwd -l root
# 查看可登录shell账号
cat /etc/passwd | grep -E "/bin/bash|/bin/sh"
# 删除可疑无用账号:userdel -r 用户名
锁定关键系统文件防止篡改
bash
运行
sudo chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/sudoers
如需修改先解锁:sudo chattr -i 文件名
3. 普通用户最小权限,禁止随意赋予 sudo 权限,定期审计 sudo 用户列表
bash
运行
getent group sudo
四、临时目录安全防护(防挖矿木马、恶意脚本执行)
bash
运行
# 挂载临时目录禁止可执行、SUID权限
sudo mount -o remount,noexec,nosuid,nodev /tmp
sudo mount -o remount,noexec,nosuid,nodev /var/tmp
# 永久写入fstab开机生效
sudo nano /etc/fstab
追加:
plaintext
/tmp /tmp tmpfs defaults,noexec,nosuid,nodev 0 0
/var/tmp /var/tmp tmpfs defaults,noexec,nosuid,nodev 0 0
五、Nginx Web 服务 + CDN 安全加固
隐藏 Nginx 版本号,防止漏洞探测
bash
运行
sudo nano /etc/nginx/nginx.conf
http {
server_tokens off;
}
配置 CDN 真实 IP 解析,日志记录访客真实 IP,接入 WAF 防护
禁止目录浏览、上传目录禁止脚本执行、限制请求大小防上传木马
配置 Nginx 请求限速,防御 CC 攻击
nginx
limit_req_zone $binary_remote_addr zone=cc:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=conn:10m;
全站强制 HTTPS,CDN 设置 SSL 严格模式,开启防盗链
六、日志审计 + 入侵监控(事后溯源 + 异常告警)
Nginx 开启 JSON 结构化日志,chattr +a锁定日志防止攻击者删除篡改
bash
运行
sudo chattr +a /var/log/nginx/access.log /var/log/auth.log
使用 GoAccess 可视化分析 Web 访问日志,监控异常高频 IP、扫描 URL
配置 SSH 异地登录、多次失败登录钉钉 / 邮件告警
定期巡检:开放端口、自启服务、定时任务、异常进程
bash
运行
ss -ntulp
systemctl list-unit-files | grep enabled
crontab -l
sudo chkrootkit
七、系统更新 + 恶意程序查杀
开启自动安全补丁更新
bash
运行
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades
定期全盘查杀 Rootkit、木马
bash
运行
sudo apt install chkrootkit rkhunter -y
sudo chkrootkit
sudo rkhunter --update && sudo rkhunter --check
禁用 Telnet、FTP 等明文不安全服务,无用服务执行systemctl mask --now 服务名彻底屏蔽
八、数据备份兜底防护
网站、数据库定时本地 + 异地对象存储双备份
备份文件设置权限 600,禁止其他用户读取
定期测试备份可恢复性,避免勒索病毒、误删数据无法挽回
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快