在 Ubuntu 系统中,spool 通常指打印队列(/var/spool/cups、/var/spool/lpd 等)或邮件队列(/var/spool/mail),也可能涉及其他服务(如 cron、at)。spool 目录的安全配置核心目标是:防止未授权访问、提权、信息泄露或滥用系统资源。下面按常见场景系统说明。
示例:
ls -ld /var/spool/*
正确示例(print/mail):
drwxr-x--- root lp /var/spool/cups
drwxrws--- root mail /var/spool/mail
chmod 750 /var/spool/cups
chown root:lp /var/spool/cups
spool 目录附近常存在特权程序(如 lpr, sendmail):
find /usr -perm -4000 -type f 2>/dev/null
原则:
/var/spool/cups
/etc/cups
✅ 只允许本地或受信任用户访问
sudo cupsctl --no-remote-admin
✅ 修改 cupsd.conf
sudo nano /etc/cups/cupsd.conf
推荐配置:
<Location />
Order allow,deny
Allow localhost
</Location>
<Location /admin>
AuthType Default
Require user @SYSTEM
</Location>
重启:
sudo systemctl restart cups
✅ 限制 spool 权限
sudo chown -R root:lp /var/spool/cups
sudo chmod 750 /var/spool/cups
sudo cupsctl --no-share-printers
ls -ld /var/spool/mail
安全权限应为:
drwxrwsr-x root mail
修复:
sudo chown root:mail /var/spool/mail
sudo chmod 2775 /var/spool/mail
sudo apt install postfix
sudo postfix check
目录:
/var/spool/cron/crontabs
权限应为:
drwx-wx--T root crontab
修复:
sudo chown root:crontab /var/spool/cron/crontabs
sudo chmod 1730 /var/spool/cron/crontabs
✅ 禁用普通用户 crontab(如需要):
sudo bash -c 'echo "cron.deny" > /etc/cron.deny'
sudo chown root:daemon /var/spool/cron/atjobs
sudo chmod 700 /var/spool/cron/atjobs
Ubuntu 自带 AppArmor,应启用:
sudo systemctl enable apparmor
sudo systemctl status apparmor
检查 CUPS profile:
sudo aa-status | grep cups
如未启用:
sudo aa-enforce /etc/apparmor.d/usr.sbin.cupsd
sudo apt install auditd
sudo auditctl -w /var/spool -p rwxa -k spool_access
查看:
sudo ausearch -k spool_access
find /var/spool -type f -perm /111
find /var/spool -mtime -1
Ubuntu 默认不用 SELinux,除非你手动开启。
更推荐 AppArmor + 最小权限。
# 基本权限
sudo chown -R root:lp /var/spool/cups
sudo chmod 750 /var/spool/cups
# 邮件
sudo chown root:mail /var/spool/mail
sudo chmod 2775 /var/spool/mail
# cron
sudo chmod 1730 /var/spool/cron/crontabs
# 审计
sudo auditctl -w /var/spool -p rwxa -k spool_access
| 风险 | 后果 | 防护 |
|---|---|---|
| spool 可写 | 提权、写恶意 job | 最小权限 |
| 匿名打印 | 资源滥用 | 关闭 remote |
| 邮件泄露 | 敏感信息 | 严格权限 |
| SUID 滥用 | root 提权 | 禁用无用 SUID |
| 软链接攻击 | 写任意文件 | 正确所有者和 sticky bit |
如果你能说明 具体是哪种 spool(打印 / 邮件 / cron / at / 其他),我可以给你 一份针对性的加固脚本或企业级安全配置方案。