分类: 网络服务

  • Ubuntu 上配置 Samba 文件共享

    Samba 适合在 Linux 与 Windows 之间共享文件。一个可维护的共享应先明确目录所有者、Linux 权限和允许访问的网络范围,再写 smb.conf。

    安装并准备目录

    apt update
    apt install samba
    install -d -m 2770 -o root -g sambashare /srv/share
    usermod -aG sambashare alice
    smbpasswd -a alice

    目录上的 SGID 位会让新文件继承组,便于多人协作。Samba 密码与 Linux 登录密码是两套凭据,不要因为方便而设置成相同的弱口令。

    一个简单的共享段

    [files]
        path = /srv/share
        browseable = yes
        read only = no
        guest ok = no
        valid users = @sambashare
        force group = sambashare
        create mask = 0660
        directory mask = 2770

    保存后先运行 testparm 检查配置,再执行 systemctl reload smbd。如果启用了 UFW,只应对可信局域网开放 Samba,而不是直接暴露到公网:

    ufw allow from 192.168.1.0/24 to any app Samba

    常见故障顺序

    Windows 无法写入时,同时检查 Samba 用户、valid users、Linux 目录权限和父目录的执行权限。能通过 IP 访问但不能通过名称访问,通常是名称解析问题,不应先改文件权限。

    共享数据仍需独立备份。Samba 提供访问通道,不会自动防止误删除、勒索软件或磁盘损坏。

  • OpenSSH 密钥登录与最小化配置

    SSH 暴露在公网时,最重要的不是换一个看起来不常见的端口,而是使用可靠的密钥认证、限制可登录账户,并在每次修改后保留可恢复路径。

    客户端生成和使用密钥

    ssh-keygen -t ed25519 -a 100
    ssh-copy-id user@server
    ssh -i ~/.ssh/id_ed25519 user@server

    私钥只应保存在可信设备上,并设置合适的文件权限。服务器的 authorized_keys 目录通常为 700,文件通常为 600。

    服务端基线

    PasswordAuthentication no
    KbdInteractiveAuthentication no
    PermitRootLogin prohibit-password
    PubkeyAuthentication yes

    是否允许 root 使用密钥应根据运维方式决定。更严格的方案是使用普通管理员账户配合 sudo。无论选择哪种方式,都应先在新的终端确认密钥可以登录,再关闭现有会话。

    修改后的验证

    sshd -t
    sshd -T | grep -E 'passwordauthentication|permitrootlogin'
    systemctl reload ssh

    sshd -t 只检查语法,sshd -T 可以查看最终生效值。Ubuntu 的配置可能来自 sshd_config.d,而 OpenSSH 对部分指令采用“首次取得的值”,因此只查看主文件可能得出错误结论。

    最后再检查防火墙、失败登录日志和主机密钥指纹。密钥认证降低了口令攻击风险,但私钥泄露仍然是严重事件,备份和撤销机制同样重要。