Samba 공유에 액세스할 수 있지만 공유를 나열할 수는 없습니다.

Samba 공유에 액세스할 수 있지만 공유를 나열할 수는 없습니다.

Samba용으로 구성된 공유가 몇 개 있고(아직 테스트 중) 전체 경로(예: \testserver\publicshare)를 작성하면 Windows 컴퓨터에서 공유에 액세스할 수 있지만 \testserver\에 액세스하면 권한 오류가 발생합니다. 해당 삼바 서버의 모든 공유를 볼 수 없습니다.

뭐가 문제 야?

이것은 내 구성 파일입니다.

# Samba configuration -- Managed by Ansible, please don't edit manually
# vim: ft=samba
#
# Ansible managed

[global]
  # Server information
  netbios name = testserver
  workgroup = WORKGROUP
  server string = Fileserver %m

  fruit:aapl = yes

  # Logging
  logging = syslog

  # Authentication
  security = user
  passdb backend = tdbsam
  map to guest = Never
  guest account = server

  # Name resolution: make sure \\NETBIOS_NAME\ works
  wins support = yes
  local master = yes
  domain master = yes
  preferred master = yes

  # Don't load printers
  load printers = no
  printing = bsd
  printcap name = /dev/null
  disable spoolss = yes

  # Fix for CVE-2017-7494 in Samba versions from 3.5.0 and before 4.6.4
  # https://access.redhat.com/security/cve/cve-2017-7494
  nt pipe support = no


## Make home directories accessible
[homes]
  comment = Home Directories
  browseable = no
  writable = yes


## Shared directories
[publicshare]
  comment = Public share, writeable by all members of group ‘users’
  path = /home/server/samba/shares/public
  public = yes
  write list = +users
  force group = users
  browseable = yes
  create mode = 0664
  force create mode = 0664
  directory mode = 0775
  force directory mode = 0775

[TimeMachine]
  comment = Share useable as a TimeMachine backup target on MacOS
  vfs objects = fruit streams_xattr 
  fruit:time machine = yes
  path = /home/server/samba/shares/tm
  public = no
  write list = server
  force group = server
  guest ok = no
  browseable = no
  create mode = 0664
  force create mode = 0664
  directory mode = 0775
  force directory mode = 0775

저는 실제로 Ansible을 사용하여 Samba를 배포하고 있습니다. 이것은 내 yaml 파일입니다.

---

# samba.yml

- name: Samba
  hosts: localhost
  connection: local
  become: true

  roles:
    - role: "bertvv.samba"
      tags: ["system"]
  vars:
      samba_apple_extensions: "yes"
      samba_guest_account: "server"
      samba_load_homes: true
      samba_netbios_name: "testserver"
      samba_shares:
      - name: publicshare
        comment: 'Public share, writeable by all members of group ‘users’'
        public: 'yes'
        write_list: +users
        group: users
        setype: public_content_t
        browseable: 'yes'
        path: /home/server/samba/shares/public
      - name: TimeMachine
        comment: 'Share useable as a TimeMachine backup target on MacOS'
        vfs_objects:
          - name: fruit
            options:
              - name: time machine
                value: 'yes'
          - name: streams_xattr
        path: /home/server/samba/shares/tm
        write_list: server
        owner: server
        group: server
        public: 'no'
        guest_ok: 'no'
        browseable: 'no'
      samba_map_to_guest: Never
      samba_users:
      - name: server
        password: -----

편집하다: 그것을 발견! 이 매개변수는 다음과 같습니다.

nt pipe support = no

답변1

문제는 다음 매개변수에 있습니다.

nt pipe support = no

이것은 제가 사용하고 있는 Ansible 삼바 역할에서 가져온 것입니다(https://galaxy.ansible.com/bertvv/samba)

CVE-2017-7494 원격 코드 실행 취약점은 Samba 서버 설치에 영향을 줄 수 있습니다. Samba 버전 3.5.0 및 4.6.4 이전 버전이 영향을 받습니다. 시스템에 SELinux가 활성화되어 있으면 취약하지 않습니다.

이 역할은 설치된 Samba 버전이 취약점의 영향을 받는지 확인하고 권장 해결 방법을 적용합니다.nt 파이프 지원 추가 = 아니요구성의 [global] 섹션으로 이동합니다. 참고하세요 이렇게 하면 Windows 클라이언트에 대한 공유 탐색이 비활성화됩니다..

필요한 경우 역할 변수 samba_mitigate_cve_2017_7494를 false로 설정하여 교정을 명시적으로 비활성화할 수 있습니다.

관련 정보