在 CentOS 上搭建 LAMP(Linux + Apache + MySQL/MariaDB + PHP) 环境后,安全管理非常重要。下面从 系统层、服务层、应用层、运维层 四个维度,给你一套实用、可落地的 CentOS LAMP 安全管理方案。
一、系统层安全(基础)
1. 系统更新
yum update -y
定期检查并更新安全补丁(建议开启自动更新或定时任务)。
2. 禁用 root 远程登录
编辑 SSH 配置:
vi /etc/ssh/sshd_config
修改:
PermitRootLogin no
PasswordAuthentication no
使用 SSH 密钥登录 更安全。
3. 创建普通用户
useradd admin
passwd admin
usermod -aG wheel admin
4. 防火墙(firewalld)
只开放必要端口:
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --permanent --remove-service=ssh --zone=public
firewall-cmd --reload
5. 禁用不必要服务
systemctl list-unit-files | grep enabled
关闭如 telnet、ftp 等老旧服务。
二、Apache 安全
1. 隐藏版本信息
vi /etc/httpd/conf/httpd.conf
ServerTokens Prod
ServerSignature Off
2. 禁止目录浏览
Options -Indexes
3. 限制管理目录访问
示例(phpMyAdmin):
<Directory "/usr/share/phpmyadmin">
Require ip 192.168.1.0/24
4. 使用 HTTPS(强烈建议)
- 使用 Let’s Encrypt:
yum install certbot python2-certbot-apache
certbot --apache
三、MySQL / MariaDB 安全
1. 初始化安全设置
mysql_secure_installation
- 设置 root 密码
- 禁止远程 root 登录
- 删除 test 库
2. 创建专用数据库用户
CREATE USER 'appuser'@'localhost' IDENTIFIED BY '强密码';
GRANT SELECT,INSERT,UPDATE ON appdb.* TO 'appuser'@'localhost';
3. 禁止远程访问(如不需要)
bind-address=127.0.0.1
四、PHP 安全
1. 关闭危险函数
vi /etc/php.ini
disable_functions = exec,passthru,shell_exec,system,proc_open,popen
2. 关闭错误显示
display_errors = Off
log_errors = On
3. 文件上传限制
upload_max_filesize = 2M
post_max_size = 8M
4. 使用最新稳定 PHP 版本
避免使用 CentOS 默认过旧的 PHP(如 5.x)。
五、网站文件与权限安全
1. 正确的文件权限
chown -R apache:apache /var/www/html
chmod -R 755 /var/www/html
禁止 777
2. 分离上传目录
上传目录不给执行权限:
<Directory "/var/www/html/uploads">
php_admin_flag engine off
六、日志与监控
1. 开启日志
- Apache:
/var/log/httpd/ - MySQL:
/var/log/mariadb/ - PHP:
/var/log/php_errors.log
2. 安装 fail2ban
防止暴力破解:
yum install epel-release
yum install fail2ban
systemctl enable fail2ban
3. 定期备份
mysqldump -u root -p appdb > backup.sql
tar czf html.tar.gz /var/www/html
七、常见安全建议总结
✅ 不用 root
✅ 不用弱密码
✅ 不开放多余端口
✅ 不上线测试环境
✅ 定期更新和备份
如果你愿意,我可以:
- 帮你 一步一步配置 CentOS 7/8 LAMP 安全加固
- 给你一份 LAMP 安全检查清单
- 针对 WordPress / 自建 PHP 项目 做专项安全方案
你现在是 CentOS 几?LAMP 用在什么场景?