Debian LAMP中Linux系统如何加固
系统更新与维护
保持系统及软件包最新是安全加固的基础,定期更新可修复已知漏洞。使用以下命令手动更新:sudo apt update &
&
sudo apt full-upgrade -y
;为避免遗漏安全更新,建议安装unattended-upgrades
包并启用自动更新:sudo apt install unattended-upgrades -y
,随后配置自动安全更新策略。
用户权限与SSH安全
- 限制root远程登录:编辑
/etc/ssh/sshd_config
文件,设置PermitRootLogin no
,禁止root用户通过SSH直接登录;若需root权限,建议使用普通用户登录后通过sudo
命令提权。 - 使用SSH密钥对认证:生成密钥对(
ssh-keygen
),将公钥(id_rsa.pub
)复制到服务器~/.ssh/authorized_keys
文件中,替换密码认证以提升安全性;同时修改SSH配置文件,设置PasswordAuthentication no
禁用密码登录。 - 强密码策略:通过PAM模块强化密码复杂度,编辑
/etc/pam.d/common-password
文件,添加或修改minlen=12
(密码最小长度)、ucredit=-1
(至少1个大写字母)、lcredit=-1
(至少1个小写字母)、dcredit=-1
(至少1个数字)等参数,要求密码包含多种字符类型且长度足够。
防火墙配置
使用ufw
(Uncomplicated Firewall)简化防火墙管理,仅开放必要端口(HTTP 80、HTTPS 443、SSH 22)。执行以下命令:sudo ufw enable
启用防火墙;sudo ufw allow 22/tcp
允许SSH;sudo ufw allow 80/tcp
允许HTTP;sudo ufw allow 443/tcp
允许HTTPS;sudo ufw deny in on any
拒绝其他未授权流量。定期检查防火墙规则,确保无多余开放端口。
服务与组件安全加固
- Apache安全配置:禁用不必要的模块(如
status
、autoindex
),执行sudo a2dismod status autoindex
;通过.htaccess
文件限制目录访问,设置Deny from all
禁止未授权访问,或允许特定IP;关闭目录列表,编辑Apache配置文件(/etc/apache2/apache2.conf
),添加Options -Indexes
。 - MySQL/MariaDB安全配置:运行
mysql_secure_installation
脚本,完成root密码修改、匿名用户删除、远程root登录禁用等基础安全设置;限制数据库访问,仅允许特定IP连接,执行GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'strongpassword'; FLUSH PRIVILEGES;
,若需远程访问,将localhost
替换为具体IP。 - PHP安全配置:编辑
php.ini
文件,禁用危险函数(如exec
、system
、shell_exec
),设置disable_functions = exec,passthru,shell_exec,system
;限制上传文件大小,设置upload_max_filesize = 2M
、post_max_size = 8M
,防止恶意文件上传。
加密与认证
为网站启用SSL/TLS加密,保护数据传输安全。使用Let’s Encrypt免费证书,执行sudo apt install certbot python3-certbot-apache -y
安装Certbot;申请证书:sudo certbot --apache -d yourdomain.com
,按照提示完成配置。证书到期前会自动提醒,也可设置自动续订。
日志与监控
- 日志审计:定期查看系统日志(
/var/log/syslog
、/var/log/auth.log
)和Web服务日志(/var/log/apache2/error.log
、/var/log/apache2/access.log
),分析异常登录(如多次失败尝试)、未授权访问等行为。 - 恶意IP阻止:使用
fail2ban
工具监控日志,自动封禁频繁尝试登录的恶意IP。安装fail2ban
:sudo apt install fail2ban -y
;配置SSH防护,编辑/etc/fail2ban/jail.local
,设置[sshd]
部分的enabled = true
、maxretry = 3
(3次失败后封禁),封禁时间bantime = 3600
(1小时)。 - 实时监控:使用
Prometheus
+Grafana
搭建监控系统,监控服务器CPU、内存、磁盘使用率及网络流量,及时发现异常负载。
其他安全措施
- 定期备份:使用
rsync
或tar
工具定期备份关键数据(网站文件、数据库),例如备份网站目录:sudo tar -czvf /backup/site-$(date +%F).tar.gz /var/www/html
;备份数据库:mysqldump -u username -p database_name > /backup/db-$(date +%F).sql
,将备份文件存储在异地或云存储中。 - 禁用不必要的服务:使用
systemctl list-unit-files --type=service
查看所有服务,禁用不需要的服务(如FTP、Telnet),执行sudo systemctl stop service_name
停止服务,sudo systemctl disable service_name
禁用开机自启,减少攻击面。 - 启用SELinux/AppArmor:SELinux(Security-Enhanced Linux)或AppArmor是Linux强制访问控制(MAC)机制,可限制进程权限。Debian默认使用AppArmor,编辑
/etc/apparmor.d/
下的配置文件,自定义规则;若使用SELinux,安装selinux-basics
包并启用:sudo apt install selinux-basics selinux-policy-default -y
,sudo setenforce 1
。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian LAMP中Linux系统如何加固
本文地址: https://pptw.com/jishu/733663.html