在 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 官方文档
发表回复