Fedora 26에서 NFS + Kerberos를 얻는 방법

Fedora 26에서 NFS + Kerberos를 얻는 방법

Fedora 26에서 +를 설정하는 데 nfs문제가 있습니다 .kerberos

나는 이 튜토리얼을 따랐습니다:

RHEL7: Kerberos를 사용하여 NFS 네트워크 공유에 대한 액세스 제어 |

현재 순수 NFS는 잘 작동하고, kinit단독으로도 잘 작동하는데, 마운트하려고 하면 여전히 권한이 안 나오고 /var/log/krb5kdc.log.

krb5kdc[12560](info): AS_REQ (8 etypes {18 17 16 23 25 26 20 19}) 192.168.0.13: NEEDED_PREAUTH: nfs/rbenedettin.local@LOCAL for krbtgt/LOCAL@LOCAL, Additional pre-authentication required                        
krb5kdc[12560](info): preauth (encrypted_timestamp) verify failure: Preauthentication failed                                                                                                                      
krb5kdc[12560](info): AS_REQ (8 etypes {18 17 16 23 25 26 20 19}) 192.168.0.13: PREAUTH_FAILED: nfs/rbenedettin.local@LOCAL for krbtgt/LOCAL@LOCAL, Preauthentication failed

그것을 사용하고 싶습니다 zero-config. 그것을 사용하지 않고 시도했지만(편집 /etc/hosts) 문제가 지속되고 일부 다른 튜토리얼에서는 이를 지적 authconfig-gui하지만 authconfig-tuiFedora 26에는 더 이상 이 기능이 없습니다. 최신 Fedora 버전과 nfs+kerberos에 대한 정보는 웹상에 거의 없기 때문에 정보를 주시면 정말 감사하겠습니다.

답변1

문제는 어디에 있습니까?

실제로 이 튜토리얼에서는 많은 필수 요소( 등)를 완전히 무시했는데 sssd, pam초점이 RHEL 시험에 있는 것처럼 보이기 때문에 요점이 아닐 수도 있습니다. 나는 시스템 관리자가 아니기 때문에(그리고 잠시 후 많은 질문이 있기 때문에) 이 작업과 관련된 모든 도구에 대해 여전히 약간 감을 잃었지만 작동하게 만들었습니다. 대부분 의 덕분입니다 freeIPA.

나는 여기에 내가 한 일을 넣으려고 노력할 것입니다. Fedora 26 또는 25 이상에서 Kerberos 기반 NFS 환경을 얻는 방법을 이해하는 데 도움이 되기를 바랍니다.부적절한 절차를 발견하시면 수정해 주시기 바랍니다.이는 구성이 전혀 없고 SELinux 환경에는 영향을 주지 않으므로 격차를 해소할 수 있는 사람은 누구나 이를 수정할 수 있습니다.

당신이 엉망이라면

많은 일을 시도할 만큼 용감하다면 결과가 없는 OpenLDAP 서버를 설정하더라도 모두 삭제하고 구성 파일과 캐시를 Kerberos삭제 OpenLDAP하고 NFS 서버가 이미 작동하고 있다면 Kerberos를 유지 관리할 수 있습니다. /etc/sssd를 삭제하고 패키지를 다시 설치하려는 경우./etc/var/lib/sssd


Fedora 26에서 NFS + Kerberos를 얻는 방법

간단한 설명에는 다음이 필요합니다.

  1. CPU 이름(관찰 내용 읽기)
  2. NFS 서버가 작동 중입니다.
  3. 무료 IPA 설치
  4. IPA + Kerberos + NFS 구성
  5. 관찰 결과

CPU 이름

계속하기 전에 답변 끝에 있는 호스트 이름 관련 관찰 내용을 읽어보세요.

언급했듯이 설정을 원합니다 zero-conf. 내 컴퓨터에 이름을 지정하고 avahi서비스를 활성화/차단 해제했습니다. 재고가 있는 Fedora 설치 Avahi가 켜져 있어야 합니다.

를 사용하여 호스트 이름을 얻거나 변경할 수 있습니다 hostnamectl.

$ hostnamectl set-hostname "myhostname"

덕분에 avahi모든 로컬 네트워킹이 종료됩니다 .현지의도메인을 사용하면 컴퓨터는 다음과 같은 주소를 갖게 됩니다.귀하의호스트이름.로컬. 두 대의 컴퓨터를 사용하여 설정을 계속하겠습니다.

서버 로컬-> 서버

로컬 클라이언트-> 클라이언트

Kerberos(freeIPA 서버)는 세 번째 컴퓨터에 있을 수 있지만 단순화를 위해 두 컴퓨터 모두 하나의 컴퓨터에서 서비스 freeIPA됩니다 NFS.

NFS 서버

  • 서비스 터미널

NFSv4를 사용하는 척한다고 가정하므로 다음 사항만 필요합니다.

$ dnf install  nfs-utils

$ systemctl enable nfs-server
$ systemctl start nfs-server

$ firewall-cmd --permanent --add-service=nfs
$ firewall-cmd --reload

내보내기 편집 /etc/exports:

# if using "sec=krb5p" your will need Kerberos, remove it for tests
/path/to/exported/dir client.local(rw,sync,sec=krb5p)

내보내기 디렉터리:

$ exportfs -avr
$ systemctl restart nfs-server
  • 고객

필수 패키지를 설치합니다:

$ dnf install nfs-utils

다음을 사용하여 이를 테스트할 수 있습니다.

$ mount -t nfs server.local:/path/to/exported/dir /path/to/local/dir

무료 IPA 설치

  • 서비스 터미널

설치 freeipa-server하고 명확한 답변을 제공했습니다.

$ dnf install freeipa-server
$ ipa-server-install
...
Do you want to configure integrated DNS (BIND)? [no]: **no**
...
Server host name [server.local]: **press enter**    
...
Please confirm the domain name [local]: **press enter**
...
Please provide a realm name [LOCAL]: **press enter**
...
Directory Manager password: *******
Password (confirm): *******
...
IPA admin password: *******
Password (confirm): *******
...
Continue to configure the system with these values? [no]: **yes**

필요한 방화벽 포트를 엽니다.

$ firewall-cmd --add-service={freeipa-ldap,freeipa-ldaps} --permanent 
$ firewall-cmd --reload 
  • 고객

설치 freeipa-client하고 명확한 답변을 제공했습니다.

$ dnf install freeipa-client
$ ipa-client-install --server=serve.local --domain LOCAL
... 
Proceed with fixed values and no DNS discovery? [no]: **yes**
...
Continue to configure the system with these values? [no]: **yes**
...
User authorized to enroll computers: **admin**
...
Password for [email protected]: ******

IPA + Kerberos + NFS 구성

이 시점에서 작동 중인 Kerberos 서버와 클라이언트를 갖게 됩니다.사용자서버와 클라이언트에서.

  • 서비스 터미널

관리자로 인증해야 합니다.

$ kinit admin
Password for [email protected]: *****

다음을 통해 인증되었는지 확인할 수 있습니다 klist.

$ klist
Ticket cache: KEYRING:persistent:1000:krb_ccache_######       
Default principal: admin@LOCAL                            

Valid starting       Expires              Service principal    
17-10-2017 20:41:20  18-10-2017 20:41:17  krbtgt/LOCAL@LOCAL       

이제 사용자 주체를 추가할 수 있습니다. Unix 사용자와 동일한 이름과 비밀번호를 사용하는 것이 좋습니다.

$ ipa user-add user [email protected] --first=User --last="Foo" --password
password: ******

서비스 주체 추가 NFS:

# --force is needed otherwise will complain about DNS record missing
$ ipa service-add nfs/server.local --force

호스트 및 서비스 키를 가져옵니다.

$ ipa-getkeytab -s server.local -p host/server.local -k /etc/krb5.keytab
Keytab successfully retrieved and stored in: /etc/krb5.keytab

$ ipa-getkeytab -s server.local -p nfs/server.local -k /etc/krb5.keytab
Keytab successfully retrieved and stored in: /etc/krb5.keytab
  • 고객

    서버 측에서와 마찬가지로 관리자로 인증하고 클라이언트 호스트를 추가합니다.

    $ kinit 관리자 비밀번호[이메일 보호됨]: *****

    $ ipa-getkeytab -s server.local -p host/client.local -k /etc/krb5.keytab 키탭이 성공적으로 검색되어 /etc/krb5.keytab에 저장되었습니다.

sec=krb5pfreeIPA 및 기타 모든 항목을 구성한 후 서버에 추가하는 것을 잊지 마십시오 . /etc/export서버와 클라이언트를 다시 시작하거나 NFS서비스를 다시 시작하십시오 IPA. 이 시점에서 클라이언트 측에 원격 폴더를 탑재할 수 있습니다.

$ mount -v -t nfs -o sec=krb5p server.local:/path/to/exported/dir /path/to/local/dir

관찰 결과

제로 구성 설정이 잘 안되네요...

안타깝게도 FreeIPA는 BINDDNS 서버에 크게 의존하는 것 같습니다. 안타깝게도 가정용으로는 너무 많이 사용하고 저가형 장치에 성능 부담을 줍니다. 가장 간단한 해결책은 를 사용하지 않고 dhcp모든 시스템에 고정 IP를 설정하고 "/etc/hosts"에 별칭을 정의하는 것입니다.

x.x.x.x server.local server      
y.y.y.y client.local client 

로그인할 때 Kerberos 인증을 받을 수 있도록 pam을 구성해 보는 것은 어떨까요?

우리가 볼 수 있는 한여기freeipa를 사용하는 경우에는 sssd필요하지 않습니다 authconfig --enablekrb5 --update.

파티션이 마운트되었지만 디렉터리에 액세스할 때 "권한 없음" 및 빈 폴더가 나타납니다.

사용자는 마스터 키에 액세스해야 할 수 있으며(루트만 액세스 권한이 있음 ) 매뉴얼 페이지 /etc/krb5.keytab에 따르면 사용자의 기본 위치 는 %{UID}이며 사용자의 사용자 ID입니다.krb5.confsssdkeytab/var/kerberos/krb5/user/%{UID}/client.keytab

$ ipa-getkeytab -s server.local -p user -k /var/kerberos/krb5/user/%{UID}/client.keytab --password
password: ******
Keytab successfully retrieved and stored in: /var/kerberos/krb5/user/%{UID}/client.keytab 

unix 사용자와 동일한 비밀번호를 사용하여 -r을 사용할 수 있지만 이는 권장되지 않으며 실제로 서버에서 기존 키를 검색하려면(사용자를 추가할 때부터) 추가 명령이 필요합니다.

타이밍 또는 NTP? ? ?

freeIPA가 제대로 작동할지 잘 모르겠습니다 . 새 버전을 교체 chrony해야 할 수도 있습니다.--force-ntpdchronyNTP

관련 정보