서버 설정 · 4 min read · Dec 12, 2025

CentOS 5.x Samba 도메인 컨트롤러 LDAP 백엔드 - 2페이지

ldap 디렉토리의 원격 관리 설정

/etc/php.ini를 편집하고 memory_limit가 최소 32MB로 설정되어 있는지 확인합니다:

memory_limit = 32M

마지막으로 확인했을 때, yum을 통해 사용할 수 있는 phpldapadmin 버전이 깨져 있었으므로, 최신 버전을 다운로드하여 추출하겠습니다: http://sourceforge.net/project/showfiles.php?group_id=61828&package_id=177751로 이동하여 최신 버전을 다운로드합니다. 제 경우에는 다음 명령어가 실행되었습니다. 귀하의 패키지는 더 최신일 수 있습니다:

mkdir /var/www/html/samba && cd /var/www/html/samba  
wget http://softlayer.dl.sourceforge.net/sourceforge/phpldapadmin/phpldapadmin-1.1.0.7.tar.gz  
tar zxf phpldapadmin-1.1.0.7.tar.gz  
ln -s phpldapadmin-1.1.0.7 pla  
cp pla/config/config.php.example pla/config/config.php

이제 ./pla/config/config.php를 편집하고 다음 줄의 주석을 제거합니다:

$config->custom->jpeg['tmpdir'] = "/tmp";

새로 설정한 소프트웨어 사용 가능하게 만들기

service httpd restart  
chkconfig httpd on

/etc/sysconfig/iptables를 편집하고 ssh에 대한 줄을 복사하여 수정합니다 (–dport 22 -j ACCEPT), 그리고 그 뒤에 다음을 추가합니다 (CentOS 설치가 기본 iptables 파일을 생성했다고 가정):

#Https:// 허용
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
#samba 허용:
-A RH-Firewall-1-INPUT -m multiport -p udp --dport 137,138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m multiport -p tcp --dport 139,445 -j ACCEPT

이제 웹 브라우저를 열고 https://192.168.0.5/samba/pla/를 방문하여 사용자 이름 cn=root,dc=DOMAINNAME 및 비밀번호로 로그인합니다. 주변을 둘러보고 약간의 쓰레기를 볼 수 있어야 합니다.

ldap 및 Samba 통합

mv /etc/samba/smb.conf /etc/samba/smb.conf.dist  
cp /usr/share/doc/smbldap-tools-0.9.5/smb.conf /etc/samba/smb.conf

/etc/samba/smb.conf를 원하는 대로 편집합니다. 기본 ldap 부분은 괜찮아야 합니다.
[global] 아래에 기본적으로 없는 세 가지 설정을 추가해야 합니다:


ldap ssl = off
nt acl support = yes

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 SO_KEEPALIVE

cp /usr/share/doc/smbldap-tools-0.9.5/smbldap.conf /etc/smbldap-tools/smbldap.conf  
net getlocalsid

참고, net getlocalsid는 아직 samba를 완전히 구성하지 않았기 때문에 끝까지 오류가 발생할 것입니다 – 하지만 다음 단계에 필요한 sid를 생성할 것입니다.

/etc/smbldap-tools/smbldap.conf를 편집하고 sid, domain, etc를 파일 끝까지 삽입합니다.

/etc/smbldap-tools/smbldap_bind.conf를 편집하고 두 개의 해당 줄을 변경하여 “secret”을 비밀번호로 변경합니다.

chmod 644 /etc/smbldap-tools/smbldap.conf  
chmod 600 /etc/smbldap-tools/smbldap_bind.conf  
authconfig-tui

authconfig-tui의 출력에 다음이 포함되어 있는지 확인합니다:

[ ] 로컬 인증이 충분합니다

이제 samba 구성을 테스트합니다:

testparm
smbpasswd -w YOUR_ROOT_LDAP_PASS_HERE  
smbldap-populate

smbldap-populate는 비밀번호를 요청할 것이며, 입력합니다.

LDAP Samba 설치 시작하기

/etc/init.d/smb start  
chkconfig smb on

사용자/그룹 추가, unix와 ldap 간의 상관관계:

useradd user1  
smbldap-useradd -a -G 'Domain Users' -m -s /bin/bash -d /home/user2 -F "" -P user1

LDAP가 가정하는 아직 없는 UNIX 그룹의 그림을 얻습니다:

net groupmap list

출력은 다음과 같습니다:

Domain Admins (S-1-5-21-990788473-1556064292-4137819756-512) -> domain_admins
Domain Users (S-1-5-21-990788473-1556064292-4137819756-513) -> domain_users
Domain Guests (S-1-5-21-990788473-1556064292-4137819756-514) -> 514
Domain Computers (S-1-5-21-990788473-1556064292-4137819756-515) -> 515
Administrators (S-1-5-32-544) -> 544
Account Operators (S-1-5-32-548) -> 548
Print Operators (S-1-5-32-550) -> 550
Backup Operators (S-1-5-32-551) -> 551
Replicators (S-1-5-32-552) -> 552

제안된 GID를 사용하여 unix에 상관관계 그룹을 추가합니다:

groupadd -g 514 samba_domain_guests  
groupadd -g 515 samba_domain_computers  
groupadd -g 544 samba_administrator  
groupadd -g 548 samba_account_operators  
groupadd -g 550 samba_print_operators  
groupadd -g 551 samba_backup_operators  
groupadd -g 552 samba_replicators

LDAP/Samba에 내장되지 않은 그룹을 추가하려면, 예를 들어 어떤 사용자가 공유에서 파일을 읽거나 쓸 수 있는지를 제어하기 위해 그룹에 따라 결정하도록 하려면:

smbldap-groupadd -a "우리 사무실의 사람들"

그런 다음 net groupmap list의 출력을 다시 얻고 새로 생성된 그룹 번호를 상관관계 지어 unix 시스템에 그룹을 추가합니다:

groupadd -g 1001 samba_people_in_our_office

웹 인터페이스를 통해 LDAP 그룹에 사용자를 추가한 다음, unix에서 상관관계를 지어줍니다:

usermod -a -G UNIX_GROUP_NAME UNIX_USERNAME

또한 위에서 언급한 “samba_domain_computers” 그룹을 사용하여 unix에 컴퓨터 계정을 추가하고, 허용된 컴퓨터 이름이 “$”로 끝나는 경우:

useradd -M -g 515 -s /bin/false officecomp1$

마지막으로, 반드시 필요하지는 않지만, CentOS가 기본적으로 실행하는 불필요한 서비스를 끄고 싶을 수 있습니다. 저는 가 특별히 다음의 어떤 것도 필요하지 않다고 판단했습니다. 귀하의 경우 다를 수 있으므로 끄기 전에 확인하십시오:

chkconfig ntpd off  
chkconfig bluetooth off  
chkconfig xinetd off  
chkconfig smartd off  
chkconfig yum-updatesd off  
chkconfig rpcidmapd off  
chkconfig rpcgssd off  
chkconfig restorecond off  
chkconfig portmap off  
chkconfig pcscd off  
chkconfig nfslock off  
chkconfig mcstrans off  
chkconfig mdmonitor off  
chkconfig irqbalance off  
chkconfig kudzu off  
chkconfig ip6tables off  
chkconfig hidd off  
chkconfig gpm off  
chkconfig haldaemon off  
chkconfig autofs off  
chkconfig avahi-daemon off  
service ntpd stop  
service bluetooth stop  
service xinetd stop  
service smartd stop  
service yum-updatesd stop  
service rpcidmapd stop  
service rpcgssd stop  
service restorecond stop  
service portmap stop  
service pcscd stop  
service nfslock stop  
service mcstrans stop  
service mdmonitor stop  
service irqbalance stop  
service kudzu stop  
service ip6tables stop  
service hidd stop  
service gpm stop  
service haldaemon stop  
service autofs stop  
service avahi-daemon stop

(선택 사항) Windows 7 컴퓨터가 도메인에 가입할 수 있도록 Samba 업그레이드

/etc/samba/smb.conf에서 ldap ssl = off가 설정되어 있는지 확인합니다. 이는 CentOS 배포판 버전의 Samba가 제대로 실행되기 위해 필요하지 않았지만, 업그레이드 후에는 필요할 것입니다 (3.0.x 대 3.3.x, Windows 7을 지원합니다).

Sernet에서 CentOS용으로 빌드된 최신 samba RPM을 가져오겠습니다:

cd /etc/yum.repos.d/  
wget http://ftp.sernet.de/pub/samba/3.3/centos/5/sernet-samba.repo  
yum update

귀하의 samba 패키지는 Sernet 저장소에서 업데이트됩니다.
업그레이드 이후, 우리의 CentOS samba 서비스가 사라졌습니다. 다시 추가합시다:

chkconfig --add smb  
chkconfig smb on

이제 Windows 7 컴퓨터를 Unix에 추가합니다 (도메인 컴퓨터 그룹 이름이 “samba_domain_computers”라고 가정):

useradd -M -g `cat /etc/group|grep samba_domain_computers|cut -d: -f3` -s /bin/false win7-computername$  
usermod -a -G samba_domain_computers win7-computername$

이제 이 공식 Samba 미니 가이드를 사용하여 Windows 7 PC를 도메인에 가입시킵니다:
http://wiki.samba.org/index.php/Windows7

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.