답변:
[편집] 이후 Ubuntu 10.04 Server 정식 버전 (2010 년 5 월 21 일)을 테스트했습니다 .
나는 나의 구성한 우분투 10.04 서버 LTS를 다음 윈도우가 홈 디렉토리 역할을 공유 마운트, Active Directory를 사용하여 인증 로그인에 Windows 네트워크에있는.
Ubuntu의 초기 설치부터 시작한 작업은 다음과 같습니다.
업데이트 받기
# sudo apt-get update && sudo apt-get upgrade
SSH 서버 설치 ( sshd
)
# sudo apt-get install openssh-server
일부는 루트 로그인을 비활성화하여 "sshd를 잠그십시오"라고 주장합니다. 루트 암호를 SSH 세션을 해킹 스마트만큼, 당신은 아마의 추가에 의해 방해하지 않을 있다면 나는 그림 PermitRootLogin no
에서 /etc/ssh/sshd_config
파일. 편집증이 있거나 단순히 확신하지 못하면 파일을 편집하거나 다음과 같이 돌리십시오.
# (grep PermitRootLogin /etc/ssh/sshd_config && sudo sed -ri 's/PermitRootLogin ).+/\1no/' /etc/ssh/sshd_conifg) || echo "PermitRootLogin not found. Add it manually."
필수 패키지 설치
# sudo apt-get install winbind samba smbfs smbclient ntp krb5-user
특정 패키지 구성을 준비하기 위해 기본 네트워킹 하우스 청소를 수행하십시오.
Windows 도메인 이름, DNS 서버 이름 및 활성 디렉토리 서버 (Samba의 경우)의 IP 주소를 결정하십시오. 편의상 Windows 도메인 및 DNS 서버에 대한 환경 변수를 설정했습니다. 나를 위해 (내 AD IP 주소는 192.168.20.11이었습니다) :
# WINDOMAIN=mydomain.local && WINDNS=srv1.$WINDOMAIN && WINDNS_IP=192.168.20.11
도메인 및 DNS 서버가 무엇인지 파악하려면 (계약자였으며 네트워크를 몰랐 음)이 유용한 참조를 확인하십시오 .
우리는 새로운 네트워크에서 리눅스 박스를 세례 화해야합니다. 이것은 호스트 파일을 편집하여 수행됩니다 (DNS의 Windows DNS의 FQDN으로 DNS를 대체하십시오).
# sudo sed -ri "s/^(127\.0\.[01]\.1[ \t]).*/\1$(hostname).$WINDOMAIN localhost $(hostname)/" /etc/hosts
또한 앞으로 나올 설치 서비스에 리더가있을 수있는 곳을 알려줘야합니다. 일부 네트워크에는 netbios 이름 조회 서비스가 있지만, 경우에 따라 /etc/hosts
파일에 명시적인 항목을 추가합니다. 내 구성에서 세 번째 항목을 추가했습니다 선:
# sudo sed -ri "3 i $WINDNS_IP $WINDNS" /etc/hosts
Windows 및 Linux 박스의 인증 및 파일 공유 프로세스는 시계의 동의가 필요합니다. NTP 서비스를 사용하여이 작업을 수행하면 서버 버전의 Ubuntu에서 NTP 서비스가 하나의 NTP 서버로 설치 및 구성됩니다 . 우분투 하나 앞에 당신을 추가하십시오 (또는 완전히 대체하십시오). 내가 참여한 네트워크에는 DNS 서버가 NTP 서비스를 제공했습니다.
# sudo sed -ri "s/^(server[ \t]+)(.+)/\1$WINDNS\n\1\2/" /etc/ntp.conf
NTP 데몬을 다시 시작하십시오.
# sudo /etc/init.d/ntp restart
Kerberos 구성.
값 : 여기에 따라 지침은 문자 그대로 수없는 MYDOMAIN.LOCAL
및 srv1.mydomain.local
사용자가 파일을 편집 할 때 네트워크에 적합한 무엇으로 대체 할 필요가 있지만, 대문자 사용 대문자가 필요하다는 메모를 할 . Kerberos를 사용
하는 동안 apt-get install
"기본 도메인"질문에 올바르게 응답 할 수있는 통찰력이 있다면 도움이됩니다. 그렇지 않으면 다음을 수행해야합니다.
(이전에 설치 한) /etc/krb5.conf
파일을 편집 하십시오.
[libdefaults]
섹션을 찾아 키 값 쌍을 변경하십시오.
[libdefaults]
default_realm = MYDOMAIN.LOCAL
[realms]
파일 섹션에 다음을 추가 하십시오.
MYDOMAIN.LOCAL = {
kdc = srv1.mydomain.local
admin_server = srv1.mydomain.local
default_domain = MYDOMAIN.LOCAL
}
[domain_realm]
파일 섹션에 다음을 추가 하십시오.
.mydomain.local = MYDOMAIN.LOCAL
mydomain.local = MYDOMAIN.LOCAL
이 시점에서 좋은 테스트는 AD 컨트롤러가 kerberos 티켓을 발급하는지 확인하는 것입니다. 꼭 필요한 것은 아니지만 일부는 어리석게 만들 수 있습니다.
# kinit <some_windows_domain_user>
그런 다음 티켓을 보려면 :
# klist
티켓 캐시와 만료 및 갱신에 대한 내용을 볼 수 있습니다. 어지럽게 가라 앉으면 티켓을 해제 / 파기 할 수 있습니다.
# kdestroy
삼바를 구성하십시오.
다음에 따르면 :
CIFS를 사용할 수 없거나 다른 네트워크 파일 시스템 선택이 더 나은 경우가 있습니다. 보안 강화를 위해 kerberos (krb5 / SPNEGO) 인증 지원이 필요한 경우 cifs
Alas 대신 Samba의 smbclient 또는 smbfs를 사용해야합니다cifs
(커널 버전 2.6.32.9 기반의 우분투 10.04에 대한 커널 지원은 버전 1.61). 커널 문서에 따르면, 실험적인 kerberos 구현은 버전 1.54부터있었습니다.
그래서 당신은 있습니다. cifs
작동 하는지 잘 모르겠으므로 samba 구성을 제공합니다.
교체하십시오 /etc/samba/smb.conf
(우분투의 깨끗한 배포판에서 일하고 있었으므로 아무것도 깨는 것에 대해 걱정하지 않았습니다) :
[global]
security = ads
realm = MYDOMAIN.LOCAL
password server = 192.168.20.11
workgroup = MYDOMAIN
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
winbind use default domain = yes
restrict anonymous = 2
다양한 서비스를 시작하고 중지하십시오.
# sudo /etc/init.d/winbind stop
# sudo service smbd restart
# sudo /etc/init.d/winbind start
인증을 설정하십시오.
을 편집하십시오 /etc/nsswitch.conf
. 필요한 것을 얻기 위해 다음 명령을 실행할 수있었습니다. 파일
# sed -ri 's/(compat)/\1 winbind/' /etc/nsswitch.conf
내용은 다음과 같습니다 /etc/nsswitch.conf
.
passwd: compat winbind
group: compat winbind
shadow: compat winbind
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
다양한 서비스를 시작하고 중지하십시오.
# sudo /etc/init.d/winbind stop
# sudo service smbd restart
# sudo /etc/init.d/winbind start
컴퓨터를 도메인에 가입시킵니다. 이것이 필요하다고 확신하지는 않습니다. 특히 smb.conf
파일 의 보안 옵션 ( security = ads
) 때문입니다. 아마도 누군가가 이것에 대해 무게를 can
# sudo net ads join -U any_domain_user_account
수 있습니다 ... 오류가 발생할 수 DNS update failed!
있지만 도메인에 가입하게 될 것입니다. 서버를 찾을 수 없다는 오류가 발생하면 DNS 레코드를 수정해야합니다. 우분투 설치 중에 네임 서버는 종종 게이트웨이를 가리키며 대부분의 라우터는 DNS 서비스를 수행합니다. Windows 서버 관리를위한 모범 사례는 ADC도 DNS를 실행해야한다는 것입니다. 내 경우에는 내 /etc/resolve.conf
다음과 같다 :
nameserver 192.168.20.11
nameserver 8.8.8.8
(가) 8.8.8.8
구글 DNS, 하나가 다운 창문 경우 상당히 안정적인 백업입니다.
이 시점에서 (재부팅 후) 로그인 할 수 있었고 홈 디렉토리는 없었지만 로그인 할 수있었습니다.
로그인시 CIFS 마운트
다음 단계는 나를위한 체리였습니다. 나는 모든 사람의 작업 디렉토리를 백업하는 책임을 원하지 않았으며 우분투가 실행되는 상자는 신뢰성 측면에서 의심 스러웠습니다. 다음 사용자는 로그인하여 Windows 사용자 디렉토리를 자동으로 볼 수 있습니다 .
pam_mount
모듈을 다운로드하십시오 .
# sudo apt-get install libpam-mount
마운트 지점이 일반적인 /home/<user>
위치에 있기를 원했습니다 .이 부분은 /etc/samba/smb.conf
파일 ( template homedir = /home/%U
)로 구성됩니다 . 그러나 공유를 뚫고 자신의 Windows 디렉토리를 가리 키기 위해 필요했습니다. 이것은 /etc/security/pam_mount.conf.xml
파일 을 편집하여 수행됩니다 (의도에도 불구하고 XML 은 사람이 읽을 수 없습니다 ).
다음에 추가 /etc/security/pam_mount.conf.xml
하고 적절하게 변경하십시오.
<volume
user="*"
server="srv1.mydomain.local"
path="UserShares"
mountpoint="home"
fstype="cifs"
/>
<cifsmount>mount -t cifs //%(SERVER)/%(VOLUME)/%(USER) %(MNTPT)/%(USER) -o "user=%(USER),uid=%(USERUID),gid=%(USERGID)%(before=\",\" OPTIONS)"</cifsmount>
구피 마운트 지점으로 인해이 줄도 추가해야했습니다.
<umount>umount %(MNTPT)/%(USER)</umount>
그리고 마운트 디렉토리에 대한 사용자 디렉토리가 자동으로 행을 찾아서 작성하도록 다음을 수행하십시오.
<mkmountpoint enable="1" remove="false" />
remove="false"
비트는 매우 중요하다 true로의 설정이 경우 pam_mount.so
디렉토리는 사용자가 여러 번 로그인 한 경우에 할 수없는 마운트 포인트를 삭제하려고합니다. 이 경우 결국 시스템에 많은 마운트 마운트가 있습니다.
pam_mount.so
여전히 약속대로 배달되지 않습니다. 현재 형태에서는 마운트가 계속 쌓이고 홈 디렉토리가 생성되지 않습니다. 여기와 10.04 서버의 이전 베타 2 릴리스 사이에서 작동했습니다. 그래도 이것을 다시 만들 수는 없습니다.
그 동안 디렉토리 생성에 의존하고 있으며 수용 pam_mkhomedir.so
하기 위해 pam_mount.so
줄 바로 앞에 줄이 붙어 있습니다.
여전히 여러 가지 마운팅 문제를 해결하지 못했습니다. 그러나 pam_mount.so
수정 될 때까지 , 이것은 내 /etc/pam.d/common-session
파일에있는 것입니다.
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session required pam_unix.so
session optional pam_winbind.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session optional pam_mount.so
그게 다야. 그것은 나를 위해 일했고, 당신이 그것을 유용하게 사용하기를 바랍니다.
내가 이것을 알아낼 수 있도록 많은 자원이 고려되었습니다. 다음은 간단한 목록입니다 (이러한 링크 중 다수는 해당 주제에 대한 질문을 나타냅니다).
sudo
d입니까, 아니면 뭔가 빠졌습니까?
sudo
' -그리고 이것이 더 낫습니다 ... 어떤 방법으로? (sudo 권한이있는 사용자 계정이 손상된 경우 기본적으로 동일합니다. 루트 나 사용자 계정을 무차별하게하는 것은 기본적으로 동일하거나 단순하지 않습니다. 가장 좋은 방법은 pub-key 전용 로그인을 설정하고 모든 암호를 비활성화하는 것입니다. 기반 로그인.)