在 KPCOS/炎帝 1.01 中开启 Samba 服务

在 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. 故障排查

  1. 检查服务状态

    sudo systemctl status smbd nmbd
    sudo journalctl -u smbd -f  # 实时日志
  2. 验证配置文件

    sudo testparm -s  # 检查语法错误
  3. 权限问题

    # 查看目录 SELinux 上下文(若启用)
    ls -ldZ /srv/samba/secure
    # 临时禁用 ACL 检查(测试用)
    sudo setenforce 0
  4. 端口检测

    sudo ss -tulpn | grep -E '139|445|137|138'

10. 安全加固建议

  1. 禁用 SMB1(默认已禁用):

    [global]
    server min protocol = SMB2
  2. 启用加密传输

    smb encrypt = required  # 强制加密
  3. 限制访问 IP

    hosts allow = 192.168.1.0/24 127.0.0.1
  4. 定期更新

    sudo apt upgrade samba -y

提示:完整配置参考 man smb.conf 或访问 Samba 官方文档


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

zh_CN简体中文