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로 설정하여 교정을 명시적으로 비활성화할 수 있습니다.