服务器安全是每个运维和后端程序员必须重视的问题。一台暴露在公网的Linux服务器,如果不做安全加固,很容易被黑客攻击入侵。今天就来分享一些Linux服务器安全加固的实用技巧。
1. 账号安全
禁用root远程登录:
# 编辑sshd配置
vi /etc/ssh/sshd_config
# 修改
PermitRootLogin no
# 重启sshd
systemctl restart sshd使用普通用户+sudo:
# 创建用户
useradd admin
passwd admin
# 添加sudo权限
usermod -aG wheel admin禁用无用账号:
# 查看所有用户
cat /etc/passwd
# 禁用用户
usermod -L username密码策略:
# 编辑密码策略
vi /etc/login.defs
# 密码最长有效期
PASS_MAX_DAYS 90
# 密码最短长度
PASS_MIN_LEN 122. SSH安全
修改默认端口:
vi /etc/ssh/sshd_config
Port 2222
systemctl restart sshd使用密钥登录:
# 本地生成密钥
ssh-keygen -t rsa -b 4096
# 上传公钥到服务器
ssh-copy-id -p 2222 admin@server_ip
# 禁用密码登录
vi /etc/ssh/sshd_config
PasswordAuthentication no
systemctl restart sshd限制登录尝试:
vi /etc/ssh/sshd_config
MaxAuthTries 3
LoginGraceTime 30安装fail2ban:
yum install fail2ban
systemctl start fail2ban
systemctl enable fail2ban3. 防火墙配置
使用firewalld或iptables:
# firewalld
systemctl start firewalld
systemctl enable firewalld
# 开放端口
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload
# 查看规则
firewall-cmd --list-all只开放必要端口,关闭所有不需要的端口。
4. 系统更新
定期更新系统:
# CentOS
yum update -y
# Ubuntu
apt update && apt upgrade -y配置自动安全更新:
# CentOS
yum install yum-cron
systemctl start yum-cron
systemctl enable yum-cron5. 文件权限
检查SUID/SGID文件:
find / -perm /6000 -type f 2>/dev/null关键目录权限:
chmod 700 /root
chmod 700 /home/admin
chmod 600 /etc/shadow
chmod 644 /etc/passwd隐藏敏感文件:
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh6. 服务安全
关闭不必要的服务:
# 查看运行的服务
systemctl list-units --type=service --state=running
# 禁用服务
systemctl disable servicename
systemctl stop servicenameWeb服务器安全:
# Nginx配置
server_tokens off;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";数据库安全:
- 数据库只监听本地,不暴露公网
- 设置强密码
- 删除默认数据库和用户
- 定期备份
7. 日志监控
配置日志轮转:
vi /etc/logrotate.conf安装日志监控工具:
# 安装logwatch
yum install logwatch
# 每日发送日志报告到邮箱关键日志文件:
- /var/log/secure - 登录日志
- /var/log/messages - 系统日志
- /var/log/nginx/ - Nginx日志
- /var/log/mysql/ - MySQL日志
8. 入侵检测
安装rkhunter:
yum install rkhunter
rkhunter --check安装AIDE:
yum install aide
aide --init
aide --check9. 备份策略
定期备份:
- 数据库每日备份
- 网站文件每周备份
- 配置文件备份
- 备份异地存储
备份脚本示例:
#!/bin/bash
DATE=$(date +%Y%m%d)
# 备份数据库
mysqldump -u root -ppassword dbname > /backup/db_$DATE.sql
# 备份网站文件
tar -czf /backup/web_$DATE.tar.gz /var/www/html
# 删除30天前的备份
find /backup -name "*.sql" -mtime +30 -delete
find /backup -name "*.tar.gz" -mtime +30 -delete10. 其他安全措施
- 安装DDoS防护:使用云服务商的DDoS防护
- 配置CDN:隐藏源站IP,加速访问
- SSL证书:全站HTTPS加密
- 定期安全扫描:使用安全扫描工具检查漏洞
- 最小权限原则:每个服务只给必要的权限
- 隔离运行环境:使用Docker或虚拟机隔离服务
总结
Linux服务器安全加固是一个系统工程,需要从账号、SSH、防火墙、系统更新、文件权限、服务安全、日志监控、入侵检测、备份等多个方面入手。安全没有一劳永逸,需要持续关注和维护。
希望这篇文章能帮助大家提升服务器安全性,避免被黑客攻击。
评论(0)
暂无评论,快来抢沙发~
评论功能仅对会员开放,请先登录
登录