삼바+OPEnldap 파일 공유 서버 구축 문제

여기 서 제 가 사용 하 는 것 은 삼바(파일 공유 서비스)v 4.9.1+OPEnldap(백 엔 드 데이터베이스 소프트웨어)v 2.4.44+smbldap-tools(백 엔 드 데이터베이스 관리 소프트웨어)v 0.9.11+CentOS 7 입 니 다.만약 다르다 면 일부 문제 가 있 을 수 있다.
주:
  • 삼바 의 기능 은 파일 공유 뿐만 아니 라 윈도 도 메 인 구성원,심지어 윈도 도 메 인 컨트롤 러 로 도 사용 할 수 있 습 니 다.삼바 가 파일 공유 서비스 라 고 생각 하지 마 세 요.
  • 삼바 의 파일 공유 기능 을 사용 하여 파일 권한 과 직접적인 관 계 를 가지 기 때문에 삼바 에서 사용 하 는 사용 자 는 리 눅 스에 서 조회 할 수 있어 야 합 니 다.삼바 의 백 엔 드 데이터베이스 로 OPEnldap 를 사 용 했 기 때문에,우 리 는 리 눅 스 를 설정 해서 OPEnldap 의 사용자 정 보 를 조회 할 수 있 습 니 다.즉,NSS 를 설정 해 야 합 니 다.NSS 부분 설정 은 smbldap-tools 에서 ldap 데이터 베 이 스 를 초기 화한 후 NSS 부분 설정 을 완료 해 야 합 니 다.주의!!
  • 삼바 에는 인증 모듈 로 PAM 을 사용 하고 자체 인증 프로그램 을 사용 합 니 다.CentOS 에서 컴 파일 할 때 자체 인증 프로그램 을 사용 하기 때문에 PAM 설정 은 생략 할 수 있 습 니 다.
  • OPEnldap 에 있 는 사용 자 를 설정 하려 면 시스템 에 로그 인 할 수 있 습 니 다.이 글 을 찾 아 볼 수 있 습 니 다:<LDAP 사용자 인증 사용 Linux 설정>,이 설정 은 본 논문 의 설정 과 다 릅 니 다.주의 하 셔 야 합 니 다!!
  • 설정 초기 화
    yum 소스 와 네트워크 설정 생략.
    
    yum -y install samba openldap-servers openldap-clients smbldap-tools nss-pam-ldapd
    OPEnldap 서비스 설정
    간단 한 서비스 설정 만 진행 합 니 다.데이터베이스 설정 은 smbldap-tools 로 설정 합 니 다.OPEnldap 을 모 르 면 이 글 을 보 세 요.
    OPEnldap 의 모든 설정 을 비우 고 다시 설정 합 니 다.
    
    #       ,      
    mkdir /root/back
    tar -Jcvf /root/back/slapd.config-`date '+(%Y.%m.%d_%H:%M:%S)'`.tar.xz /etc/openldap/slapd.d/
    tar -Jcvf /root/back/slapd.data-`date '+(%Y.%m.%d_%H:%M:%S)'`.tar.xz /var/lib/ldap/
    #          
    rm -rf /etc/openldap/slapd.d/*
    rm -rf /var/lib/ldap/*
    #     samba schema  
    cp /usr/share/doc/samba-4.9.1/LDAP/samba.ldif /etc/openldap/schema/
    이 프로필 은/usr/share/openldap-servers/slapd.ldif에서 복사 되 어 다음 과 같이 수정 되 었 습 니 다.주로 baseDN(suffix),OPENLDAPTLS,olcRootPW(비밀 번 호 는 slappasswd 로 생 성 되 었 으 며,본 논문 의 비밀 번 호 는 123456)과 include 입 니 다.
    
    # file: /tmp/slapd.ldif
    
    dn: cn=config
    objectClass: olcGlobal
    cn: config
    olcArgsFile: /var/run/openldap/slapd.args
    olcPidFile: /var/run/openldap/slapd.pid
    
    dn: cn=schema,cn=config
    objectClass: olcSchemaConfig
    cn: schema
    
    include: file:///etc/openldap/schema/core.ldif
    include: file:///etc/openldap/schema/cosine.ldif
    include: file:///etc/openldap/schema/nis.ldif
    include: file:///etc/openldap/schema/inetorgperson.ldif
    include: file:///etc/openldap/schema/samba.ldif
    
    dn: olcDatabase=frontend,cn=config
    objectClass: olcDatabaseConfig
    objectClass: olcFrontendConfig
    olcDatabase: frontend
    
    dn: olcDatabase=config,cn=config
    objectClass: olcDatabaseConfig
    olcDatabase: config
    olcAccess: to * 
     by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage 
     by * none
    
    dn: olcDatabase=monitor,cn=config
    objectClass: olcDatabaseConfig
    olcDatabase: monitor
    olcAccess: to * 
     by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read 
     by dn.base="cn=Manager,dc=black,dc=com" read 
     by * none
    
    dn: olcDatabase=hdb,cn=config
    objectClass: olcDatabaseConfig
    objectClass: olcHdbConfig
    olcDatabase: hdb
    olcSuffix: dc=black,dc=com
    olcRootDN: cn=Manager,dc=black,dc=com
    olcRootPW: {SSHA}l1vBI/HOMKLEiQZgcm3Co+hFQI68rH1Q
    olcDbDirectory: /var/lib/ldap
    olcDbIndex: objectClass eq,pres
    olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub,uid
    설정 에 따라 서버 프로필 생 성
    
    slapadd -F "/etc/openldap/slapd.d/" -b "cn=config" -l /tmp/slapd.ldif
    #              root ,     openldap
    chown -R ldap:ldap /etc/openldap/slapd.d/*
    #          
    systemctl start slapd
    _#################### 100.00% eta none elapsed none fast!
    Closing DB...
    주:OPEnldap 의 서비스 설정 부분 만 설정 되 어 있 고 OPEnldap 의 데이터 베 이 스 는 설정 되 어 있 지 않 습 니 다.다시 한 번 강조 하 겠 습 니 다.
    삼바 설정
    삼바 와 OPEnldap 의 사용 을 테스트 하기 위해 서 입 니 다.너무 복잡 한 파일 공유 설정 은 하지 않 고 한 사용자 의 집 디 렉 터 리 만 공유 합 니 다.테스트 만 가능 합 니 다.
    
    # file: /etc/samba/smb.conf
    
    [global]
     workgroup = MYGROUP #        。
     server string = Samba Server Version %v
     log file = /var/log/samba/log #   
     security = user #        User
     passdb backend = ldapsam:ldap://127.0.0.1 #   passdb         ldapsam
     ldap suffix = dc=black,dc=com #   ldap  suffix
     ldap user suffix = ou=People #       suffix    ou=People        suffix  。
     ldap group suffix = ou=Group #   ,       。
     ldap admin dn = cn=Manager,dc=black,dc=com #     ldap          
     ldap ssl = no #      SSL  。
     load printers = no #           。
    [homes]
     comment = Home Directories
     browseable = no
     writable = yes
     create mask = 0600
     directory mask = 700
    
    smbpasswd -w 123456 #        LDAP        ,!!!    ,      smb  。
    삼바 서비스 시작
    
    systemctl start nmb
    systemctl start smb
    smbldap-tools 설정
    여기 서 smbldap-tools 를 사용 하여 삼바 서비스 에 필요 한 데이터 정 보 를 신속하게 완성 하 는 동시에 smblda-tools 를 통 해 사용자 세그먼트 관 리 를 진행 합 니 다.그러나 smbldap-tools 는 로 컬 사용자 가 같은 UID 나 GID 가 있 는 지 에 관 계 없 이 충돌 할 수 있 으 므 로 주의해 야 한 다 는 단점 이 있 습 니 다.
    smbldap 는/etc/samba/smb.conf 에서 일부 정 보 를 읽 기 때문에 삼바 를 설정 하고 smbldap-tools 서 비 스 를 설정 해 야 합 니 다.
    
    smbldap-config #    smbldap-tools    ,    smbldap-conifg     。

    아래 설정 과정 을 생략 하고 모 르 는 기본 값 으로 하면 됩 니 다.
    
    smbldap-populate #       OPENldap    。

    다음 테스트 에 사용 할 사용 자 를 다시 만 듭 니 다.
    
    smbldap-useradd -a -m User1 #     User2
    # -a:           Windows,  samba         。
    # -m:            。
    smbldap-passwd User1 #           
    이 사용자 의 암호 수정 과정 을 생략 합 니 다.
    이렇게 하면 OPEnldap 의 데이터 베 이 스 를 초기 화하 면 OPEnldap 의 내용 을 조회 할 수 있 습 니 다.아래 그림 은smbldap-populate만 든 내용 입 니 다.아래 그림 은 apache Directory Studio 입 니 다.관심 이 있 으 면 을 연구 해 보 세 요.

    그림 에서 UID=root 와 nobody 의 사용 자 를 볼 수 있 습 니 다.저 는 이 특수 사용 자 를 서버 에 로그 인하 고 싶 지 않 기 때문에 아래 설정 에서 fliter 를 통 해 이 두 사용 자 를 걸 러 냅 니 다.
    NSS 설정
    이 NSS 설정 은 주로 설정 이 필요 합 니 다.NSS 는 LDAP 의 요청 을 nslcd 에 전송 하고 nslcd 에서 OPEnldap 의 사용자 정 보 를 조회 합 니 다.
    우선 NSS 를 설정 합 니 다.passwd 세그먼트 와 group 세그먼트 의 ldap 인증 만 추가 하면 됩 니 다.
    
    # file: /etc/nsswitch.conf
    
    passwd: files ldap
    shadow: files
    group: files ldap
    hosts: files dns myhostname
    bootparams: nisplus [NOTFOUND=return] files
    ethers: files
    netmasks: files
    networks: files
    protocols: files
    rpc: files
    services: files sss
    netgroup: nisplus sss
    publickey: nisplus
    automount: files nisplus sss
    aliases: files nisplus
    그리고 nslcd 를 설정 합 니 다.nslcd 는 daemon 형식 으로 실행 되 며,주요 설정 후 다시 시작 합 니 다.
    
    # file:/etc/nslcd.conf
    
    uid nslcd
    gid ldap
    uri ldap://127.0.0.1/ # ldap URL  
    base dc=black,dc=com # base dn   
    binddn cn=Manager,dc=black,dc=com #        
    bindpw 123456 #     
    ssl no  #       SSL     。
    filter passwd (&(objectClass=posixAccount)(uidNumber>=1000)) #    passwd      。
    filter group (&(objectClass=posixGroup)(gidNumber>=500)) #   ,     group
    Copy
    chmod 600 /etc/nslcd.conf #       ,    ,        。
    systemctl start nslcd #    nslcd   。
    NSS 설정 을 사용 할 수 있 는 지 테스트 합 니 다.
    
    getent passwd User1
    User1:*:1001:513:System User:/var/smb/User1:/bin/bash
    위 에서 보 듯 이 저희 가 설정 한 NSS 와 OPEnldap 서비스 가 이미 효력 이 발생 했 습 니 다.다음 에 삼바 를 계속 설정 해서 사용 할 수 있 도록 하 겠 습 니 다.
    삼바 권한 설정
    자세히 보면 사용자 의 홈 디 렉 터 리 위 치 를/var/smb위치 에 저장 한 것 을 알 수 있 습 니 다.주로 시스템 의 사용자 와 헷 갈 리 지 않 기 위해 서 입 니 다.또한 이렇게 하면 SELinux 를 통 해 삼바 의 접근 금지/home경로 에 있 는 자원 을 격 리 할 수 있 습 니 다.자세 한 내용 은 아래 작업 을 보십시오.
    
    #      smbldap-useradd   ,        home   ,
    #         SELinux       。
    semanage fcontext -a -t samba_share_t '/var/smb(/.*)?' #   /var/smb      type,     samba      type,SELinux         type  
    #     samba      /home       samba_enable_home_dirs    bool  。
    #              samba_share_t    type   ,          bool  ,     samba      /var/smb   samba       。
    restorecon -R /var/smb/ #         /var/smb     SELinux type     。
    Copy
    #         samba    
    smbclient -L //127.0.0.1/ -U User1

    여기에서 도 볼 수 있 습 니 다.User 1 사용 자 는 공유 디 렉 터 리 에 로그 인하 여 조회 할 수 있 습 니 다.
    그러면 우 리 는 여기에 직접 로그 인하 여 파일 을 올 려 테스트 를 합 니 다.

    OK,그러면 삼바 의 파일 공유 가 완 료 됩 니 다.

    총결산
    위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 삼바+OPEnldap 파일 공유 서버 구축 문 제 를 상세 하 게 설명 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기