在 KPCOS/炎帝 1.01 中开启 Samba 服务的步骤如下,包含关键配置优化和安全设置:
1. 安装 Samba
sudo apt update
sudo apt install samba samba-common-bin smbclient -y
2. 配置 Samba
编辑主配置文件:
sudo nano /etc/samba/smb.conf
在 [global] 区块添加优化参数:
[global]
   workgroup = WORKGROUP    # 与 Windows 工作组一致
   server string = Samba %v on Debian 12
   security = user          # 使用用户认证
   map to guest = bad user  # 匿名访问处理
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   server role = standalone server
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   socket options = TCP_NODELAY SO_RCVBUF=524288 SO_SNDBUF=524288  # 性能优化
   min protocol = SMB2            # 强制使用 SMB2+(安全)
   guest account = nobody
添加共享示例(按需修改):
[SecureShare]
   comment = Secure Shared Folder
   path = /srv/samba/secure
   browseable = yes
   writable = yes
   valid users = @sambashare
   force group = sambashare
   create mask = 0660
   directory mask = 2770
   inherit permissions = yes      # 保持权限一致性
[Public]
   comment = Public Share
   path = /srv/samba/public
   browseable = yes
   writable = yes
   guest ok = yes
   guest only = yes
   create mask = 0664
   directory mask = 0775
3. 创建目录并设置权限
# 安全共享目录(需认证)
sudo mkdir -p /srv/samba/secure
sudo groupadd --system sambashare
sudo chgrp sambashare /srv/samba/secure
sudo chmod 2770 /srv/samba/secure  # SGID 保留组权限
# 公共目录(匿名访问)
sudo mkdir -p /srv/samba/public
sudo chown nobody:nogroup /srv/samba/public
sudo chmod 2775 /srv/samba/public
4. 添加 Samba 用户
# 先创建系统用户(不创建家目录)
sudo useradd --system --no-create-home --shell /usr/sbin/nologin username
# 添加为 Samba 用户(需交互式设置密码)
sudo smbpasswd -a username
注意:
- 用户必须是系统已存在用户
 - 使用
 sudo pdbedit -L查看已添加用户
5. 启用并启动服务
sudo systemctl enable --now smbd nmbd
sudo systemctl restart smbd nmbd  # 应用配置更改
6. 防火墙配置(nftables)
# 允许 Samba 端口
sudo nft add rule inet filter input tcp dport {139,445} ct state new,established accept
sudo nft add rule inet filter input udp dport {137,138} accept
# 保存规则
sudo nft list ruleset > /etc/nftables.conf
7. 客户端访问测试
Linux 客户端:
smbclient //炎帝主机ip/SecureShare -U username
Windows:
\\炎帝主机ip\SecureShare
macOS:
访达 → 前往 → 连接服务器 → 输入 smb://炎帝主机ip/SecureShare
8. 高级配置
绑定特定网卡(多网络环境):
[global]
   interfaces = eth0 192.168.1.0/24
   bind interfaces only = yes
启用 Samba 内置用户管理:
sudo samba-tool user add newuser
sudo samba-tool group addmembers "Domain Users" newuser
9. 故障排查
- 
检查服务状态:
sudo systemctl status smbd nmbd sudo journalctl -u smbd -f # 实时日志 - 
验证配置文件:
sudo testparm -s # 检查语法错误 - 
权限问题:
# 查看目录 SELinux 上下文(若启用) ls -ldZ /srv/samba/secure # 临时禁用 ACL 检查(测试用) sudo setenforce 0 - 
端口检测:
sudo ss -tulpn | grep -E '139|445|137|138' 
10. 安全加固建议
- 
禁用 SMB1(默认已禁用):
[global] server min protocol = SMB2 - 
启用加密传输:
smb encrypt = required # 强制加密 - 
限制访问 IP:
hosts allow = 192.168.1.0/24 127.0.0.1 - 
定期更新:
sudo apt upgrade samba -y 
提示:完整配置参考
man smb.conf或访问 Samba 官方文档

Leave a Reply