Jenkins Linux版安全运行清单
一 身份与访问控制
二 通信加密与网络隔离
三 系统与运行环境加固
四 审计、备份与持续运营
五 快速加固命令示例
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
server {
listen 80; server_name jenkins.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2; server_name jenkins.example.com;
ssl_certificate /etc/letsencrypt/live/jenkins.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/jenkins.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 600;
}
}
sudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/
sudo systemctl reload nginx
pipeline {
agent any
stages {
stage('Deploy') {
steps {
withCredentials([
usernamePassword(
credentialsId: 'deploy-creds',
usernameVariable: 'DEPLOY_USER',
passwordVariable: 'DEPLOY_PASS'
)
]) {
sh 'sshpass -p "$DEPLOY_PASS" scp -r target/app $DEPLOY_USER@prod:/opt/app'
}
}
}
}
}