在Debian上对Laravel项目进行安全加固是一个多层面的过程,涉及系统配置、Laravel应用设置以及安全最佳实践。以下是一些关键步骤和建议:
sudo apt update && sudo apt upgrade
composer update
sudo apt install ufw
sudo ufw enable
sudo ufw allow 22/tcp # 允许SSH连接
sudo ufw allow 80/tcp # 允许HTTP连接
sudo ufw allow 443/tcp # 允许HTTPS连接
sudo apt-get install libpam-cracklib
sudo nano /etc/pam.d/common-password
编辑 /etc/pam.d/common-password
文件,设置密码策略,如最小长度、复杂度等。sudo nano /etc/ssh/sshd_config
禁用root远程登录:PermitRootLogin no
sudo nano /etc/ssh/sshd_config
Port 2222 # 修改端口
PermitRootLogin no
namespace App\Http\Middleware;
use Closure;
class ContentSecurityPolicy {
public function handle($request, Closure $next) {
return response()->headers->set('content-security-policy', "default-src 'self'; script-src 'self' 'nonce-" . base64_encode(random_bytes(16)) . "'");
}
}
在 kernel.php
中注册中间件:protected $middleware = [
\App\Http\Middleware\ContentSecurityPolicy::class,
];
.env
文件中设置:APP_URL=https://yourdomain.com
创建并注册 forcehttps
中间件,确保所有HTTP请求重定向到HTTPS。enlightn/security-checker
进行安全扫描。composer require --dev enlightn/security-checker
php artisan security:check
通过上述步骤,可以显著提高Debian系统上Laravel应用的安全性,保护应用程序免受常见的网络攻击。