systemd 服务管理与开机自启配置详解

编写一个基础 unit 文件 # /etc/systemd/system/myapp.service [Unit] Description=My Application After=network.target [Service] Type=simple User=appuser Group=appuser WorkingDirectory=/opt/myapp ExecStart=/opt/myapp/venv/bin/python app.py Restart=on-failure RestartSec=5 Environment=PYTHONUNBUFFERED=1 EnvironmentFile=-/opt/myapp/.env [Install] WantedBy=multi-user.target 关键字段说明: Type=simple:主进程即服务本身,适合大多数常驻程序 Restart=on-failure:进程异常退出时自动重启,避免服务假死 EnvironmentFile=-:前缀 - 表示文件不存在也不报错 常用管理命令 sudo systemctl daemon-reload # 修改 unit 文件后重新加载 sudo systemctl start myapp sudo systemctl enable myapp # 设置开机自启 sudo systemctl status myapp sudo systemctl restart myapp sudo systemctl stop myapp sudo systemctl disable myapp 查看日志 journalctl -u myapp -f # 实时跟踪日志 journalctl -u myapp --since today journalctl -u myapp -p err # 只看错误级别日志 资源限制 对 AI 推理等资源密集型服务,建议在 unit 中限制资源占用,避免单个服务拖垮整机: ...

2026-07-27 · 1 min · 118 words · ITNote

SSH 安全配置最佳实践

使用密钥认证替代密码登录 # 本地生成密钥对(推荐 ed25519) ssh-keygen -t ed25519 -C "your_email@example.com" # 上传公钥到服务器 ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server /etc/ssh/sshd_config 关键配置 # 禁用密码登录,强制密钥认证 PasswordAuthentication no PermitEmptyPasswords no # 禁止 root 远程登录 PermitRootLogin no # 更改默认端口,降低自动化扫描命中率(非核心防护手段,只是降噪) Port 22022 # 限制协议版本与登录尝试 Protocol 2 MaxAuthTries 3 LoginGraceTime 30 # 仅允许特定用户/组登录 AllowUsers deploy admin 修改后重启服务: sudo systemctl restart sshd 注意:修改端口或禁用密码登录前,务必保留一个已登录的会话窗口,避免配置错误导致无法远程访问。 使用 fail2ban 防暴力破解 sudo apt install fail2ban # /etc/fail2ban/jail.local [sshd] enabled = true port = 22022 maxretry = 5 bantime = 3600 findtime = 600 sudo systemctl enable --now fail2ban sudo fail2ban-client status sshd 双因素认证(可选增强) 对高安全要求场景,可结合 libpam-google-authenticator 实现 SSH 二次验证,在密钥认证基础上再叠加一层动态口令。 ...

2026-07-27 · 1 min · 110 words · ITNote

Linux 系统安全加固基础清单

账户与权限 禁用 root 直接远程登录,改用普通账户 + sudo 为每个人员/服务分配独立账户,避免共享凭证 定期审查 sudo -l 权限范围,遵循最小权限原则 # 检查是否有异常的 sudo 权限 sudo -l -U username 更新与补丁 sudo apt update && sudo apt upgrade -y # 开启无人值守安全更新(Debian/Ubuntu) sudo apt install unattended-upgrades sudo dpkg-reconfigure --priority=low unattended-upgrades 文件与目录权限 # 查找全局可写的敏感文件 find / -xdev -type f -perm -0002 -not -path "/proc/*" 2>/dev/null # 查找 SUID/SGID 程序,核对是否为预期程序 find / -xdev \( -perm -4000 -o -perm -2000 \) -type f 2>/dev/null 关闭不必要的服务 systemctl list-unit-files --type=service --state=enabled sudo systemctl disable <不需要的服务> 内核参数加固(/etc/sysctl.conf) # 禁止 IP 转发(非路由器场景) net.ipv4.ip_forward = 0 # 防止 SYN Flood net.ipv4.tcp_syncookies = 1 # 忽略 ICMP 广播请求 net.ipv4.icmp_echo_ignore_broadcasts = 1 # 禁用来源路由 net.ipv4.conf.all.accept_source_route = 0 sudo sysctl -p 日志与审计 安装 auditd 记录关键系统调用与文件访问,配合 journalctl 定期审查异常登录尝试: ...

2026-07-27 · 1 min · 125 words · ITNote