Identity Management에서 DNS 작업
RHEL IdM에 통합된 DNS 서비스 관리
초록
Red Hat 문서에 관한 피드백 제공 링크 복사링크가 클립보드에 복사되었습니다!
문서 개선을 위한 의견에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.
Jira를 통해 피드백 제출 (계정 필요)
- Jira 웹 사이트에 로그인합니다.
- 상단 탐색 바에서 생성을 클릭합니다.
- 요약 필드에 설명 제목을 입력합니다.
- 설명 필드에 개선을 위한 제안을 입력합니다. 문서의 관련 부분에 대한 링크를 포함합니다.
- 대화 상자 하단에서 생성 을 클릭합니다.
1장. Ansible 플레이북을 사용하여 IdM의 글로벌 DNS 구성 관리 링크 복사링크가 클립보드에 복사되었습니다!
freeipa.ansible_freeipa.dnsconfig Ansible 모듈을 사용하면 RHEL IdM(Identity Management) DNS에 대한 글로벌 구성을 구성할 수 있습니다. 글로벌 DNS 구성에 정의된 설정은 모든 IdM DNS 서버에 적용됩니다. 그러나 글로벌 구성은 특정 IdM DNS 영역의 구성보다 우선 순위가 낮습니다.
dnsconfig 모듈은 다음 변수를 지원합니다.
- 글로벌 전달자, 특히 IP 주소 및 통신에 사용되는 포트입니다.
- 글로벌 전달 정책: only, first, or none. 이러한 유형의 DNS 전달 정책에 대한 자세한 내용은 IdM의 DNS 전달 정책을 참조하십시오.
- 정방향 조회 및 역방향 조회 영역의 동기화입니다.
사전 요구 사항
DNS 서비스는 IdM 서버에 설치됩니다. 통합 DNS를 사용하여 IdM 서버를 설치하는 방법에 대한 자세한 내용은 다음 링크 중 하나를 참조하십시오.
1.1. IdM을 통해 /etc/resolv.conf의 글로벌 전달자가 NetworkManager에 의해 제거되지 않도록 하는 방법 링크 복사링크가 클립보드에 복사되었습니다!
통합 DNS를 사용하여 RHEL IdM(Identity Management)을 설치하면 127.0.0.1 localhost 주소를 가리키도록 /etc/resolv.conf 파일이 구성됩니다.
# Generated by NetworkManager
search idm.example.com
nameserver 127.0.0.1
DHCP( Dynamic Host Configuration Protocol )를 사용하는 네트워크와 같은 특정 환경에서는 NetworkManager 서비스가 /etc/resolv.conf 파일의 변경 사항을 되돌릴 수 있습니다. DNS 구성을 영구적으로 만들기 위해 IdM DNS 설치 프로세스도 다음과 같은 방식으로 NetworkManager 서비스를 구성합니다.
DNS 설치 스크립트는
/etc/NetworkManager/conf.d/zzz-ipa.confNetworkManager구성 파일을 생성하여 검색 순서 및 DNS 서버 목록을 제어합니다.# auto-generated by IPA installer [main] dns=default [global-dns] searches=$DOMAIN [global-dns-domain-*] servers=127.0.0.1-
NetworkManager서비스가 다시 로드됩니다. 이 파일은 항상/etc/NetworkManager/conf.d/디렉터리에 있는 마지막 파일의 설정으로/etc/resolv.conf파일을 생성합니다. 이 경우zzz-ipa.conf파일입니다.
/etc/resolv.conf 파일을 수동으로 수정하지 마십시오.
1.2. Ansible을 사용하여 IdM에 DNS 글로벌 전달자가 있는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 플레이북을 사용하여 IdM에 DNS 글로벌 전달자가 있는지 확인하려면 다음 절차를 따르십시오. 아래 예제 절차에서는 IdM 관리자가 인터넷 프로토콜(IP) v4 주소 7.7.9.9 및 포트 53 의 IP v6 주소 2001:db8::1:0 을 사용하여 DNS 서버에 DNS 글로벌 전달자가 있는지 확인합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다.
프로세스
~/MyPlaybooks/ 디렉터리로 이동합니다.
$ cd ~/MyPlaybooks/관련 collections 디렉터리에서 forwarders-absent.yml Ansible 플레이북 파일의 사본을 만들고 이름을 바꿉니다. 예를 들면 다음과 같습니다.
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig/forwarders-absent.yml ensure-presence-of-a-global-forwarder.yml-
편집을
위해 ensure-presence-of-global-forwarder.yml파일을 엽니다. 다음 변수를 설정하여 파일을 조정합니다.
-
플레이북의
name변수를Playbook으로 변경하여 IdM DNS에 글로벌 전달자가 있는지 확인합니다. -
tasks섹션에서DNS 글로벌 전달자가 있는지 확인하도록 작업의.이름을변경합니다. 포트 53의 7.7.9.9 및 2001:db8::1:0 freeipa.ansible_freeipa.ipadnsconfig부분의전달자섹션에서 다음을 수행합니다.-
첫 번째
ip_address값을 글로벌 전달자의 IPv4 주소로 변경합니다.7.7.9.9. -
두 번째
ip_address값을 글로벌 전달자2001:db8::1:0의 IPv6 주소로 변경합니다. -
port값이53으로 설정되어 있는지 확인합니다.
-
첫 번째
state를present로 변경합니다.현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
--- - name: Playbook to ensure the presence of a global forwarder in IdM DNS hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure the presence of a DNS global forwarder to 7.7.9.9 and 2001:db8::1:0 on port 53 freeipa.ansible_freeipa.ipadnsconfig: forwarders: - ip_address: 7.7.9.9 - ip_address: 2001:db8::1:0 port: 53 state: present-
플레이북의
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-presence-of-a-global-forwarder.yml
1.3. Ansible을 사용하여 IdM에 DNS 글로벌 전달자가 있는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 플레이북을 사용하여 IdM에 DNS 글로벌 전달자가 없는지 확인하려면 다음 절차를 따르십시오. 아래 예제 절차에서는 IdM 관리자가 인터넷 프로토콜(IP) v4 주소가 8.8.6.6 이고 IP v6 주소가 2001:4860:4860::8800 인 DNS 글로벌 전달자가 없는지 확인합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다.
프로세스
~/MyPlaybooks/ 디렉터리로 이동합니다.
$ cd ~/MyPlaybooks/관련 collections 디렉터리에서 forwarders-absent.yml Ansible 플레이북 파일의 사본을 만들고 이름을 바꿉니다. 예를 들면 다음과 같습니다.
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig/forwarders-absent.yml ensure-absence-of-a-global-forwarder.yml-
편집을
위해 ensure-absence-of-global-forwarder.yml파일을 엽니다. 다음 변수를 설정하여 파일을 조정합니다.
-
IdM DNS에 글로벌 전달자가 없는지 확인하기 위해 플레이북의변경합니다.name변수를 Playbook로 -
tasks섹션에서 DNS 글로벌 전달자가 없는지 확인하려면 포트 53의 DNS 글로벌 전달자가 8.8.6.6 및 2001:4860:4860::8800으로 변경되도록작업이름을변경합니다. freeipa.ansible_freeipa.ipadnsconfig부분의전달자섹션에서 다음을 수행합니다.-
첫 번째
ip_address값을 글로벌 전달자의 IPv4 주소로 변경합니다.8.8.6.6. -
두 번째
ip_address값을 글로벌 전달자2001:4860:4860::8800의 IPv6 주소로 변경합니다. -
port값이53으로 설정되어 있는지 확인합니다.
-
첫 번째
-
action변수를member로 설정합니다. -
상태가absent로 설정되어 있는지 확인합니다.
현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
--- - name: Playbook to ensure the absence of a global forwarder in IdM DNS hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure the absence of a DNS global forwarder to 8.8.6.6 and 2001:4860:4860::8800 on port 53 freeipa.ansible_freeipa.ipadnsconfig: forwarders: - ip_address: 8.8.6.6 - ip_address: 2001:4860:4860::8800 port: 53 action: member state: absent중요action: member를 사용하지 않고 플레이북에서state: absent옵션만 사용하면 플레이북이 실패합니다.-
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-absence-of-a-global-forwarder.yml
1.4. ipadnsconfig ansible-freeipa 모듈의 action: member 옵션 링크 복사링크가 클립보드에 복사되었습니다!
ansible-freeipa ipadnsconfig 모듈을 사용하여 RHEL IdM(Identity Management)에서 글로벌 전달자를 제외하려면 state: absent 옵션 외에 action: member 옵션을 사용해야 합니다. action: member 를 사용하지 않고 플레이북에서 state: absent 만 사용하는 경우 플레이북이 실패합니다. 따라서 모든 글로벌 전달자를 제거하려면 플레이북에서 모든 전달자를 개별적으로 지정해야 합니다. 반대로 state: present 옵션은 action: member 를 필요로 하지 않습니다.
다음 표에서 는 action: member 옵션의 올바른 사용을 보여주는 DNS 글로벌 전달자 추가 및 제거에 대한 구성 예제를 제공합니다. 테이블은 각 줄에서 다음을 보여줍니다.
- 플레이북을 실행하기 전에 구성된 글로벌 전달자
- 플레이북에서 발췌한 내용
- 플레이북을 실행한 후 구성된 글로벌 전달자
| 이전 버전 | 플레이북 발췌 내용 | 이후 전달자 |
|---|---|---|
| 8.8.6.6 |
| 8.8.6.7 |
| 8.8.6.6 |
| 8.8.6.6, 8.8.6.7 |
| 8.8.6.6, 8.8.6.7 |
| 플레이북을 실행하려고 하면 오류가 발생합니다. 원래 구성 - 8.8.6.6, 8.8.6.7은 변경되지 않습니다. |
| 8.8.6.6, 8.8.6.7 |
| 8.8.6.6 |
1.5. IdM의 DNS 전달 정책 링크 복사링크가 클립보드에 복사되었습니다!
IdM은 첫 번째 및 표준 BIND 전달 정책과 none IdM 특정 전달 정책을 지원합니다.
- 정방향 첫 번째 (기본값)
-
IdM BIND 서비스는 DNS 쿼리를 구성된 전달자에게 전달합니다. 서버 오류 또는 시간 초과로 인해 쿼리가 실패하면 BIND는 인터넷의 서버를 사용하여 재귀 확인으로 대체됩니다.
forward 첫 번째정책은 기본 정책이며 DNS 트래픽을 최적화하는 데 적합합니다. - 앞으로만 해당
-
IdM BIND 서비스는 DNS 쿼리를 구성된 전달자에게 전달합니다. 서버 오류 또는 시간 초과로 인해 쿼리가 실패하면 BIND에서 클라이언트에 오류를 반환합니다. 분할 DNS 구성이 있는 환경에만
forward only정책을 사용하는 것이 좋습니다. - none (전달 비활성화)
-
DNS 쿼리는
none전달 정책으로 전달되지 않습니다. 전달 비활성화는 글로벌 전달 구성에 대한 영역별 재정의로만 유용합니다. 이 옵션은 BIND 구성에 빈 전달자 목록을 지정하는 것과 동일한 IdM 옵션입니다.
전달을 사용하여 IdM의 데이터를 다른 DNS 서버의 데이터와 결합할 수 없습니다. IdM DNS의 기본 영역의 특정 하위 영역에 대한 쿼리를 전달할 수 있습니다.
쿼리된 DNS 이름이 IdM 서버가 권한이 있는 영역에 속하는 경우 기본적으로 BIND 서비스는 쿼리를 다른 서버에 전달하지 않습니다. 이러한 상황에서 쿼리된 DNS 이름을 IdM 데이터베이스에서 찾을 수 없는 경우 NXDOMAIN 응답이 반환됩니다. 전달은 사용되지 않습니다.
예 1.1. 시나리오 예
IdM 서버는 test.example에 대한 권한이 있습니다. DNS 영역. BIND는 192.0.2.254 IP 주소를 사용하여 DNS 서버로 쿼리를 전달하도록 구성됩니다.
클라이언트에서 존재하지 않는.test.example에대한 쿼리를 전송하는 경우 DNS 이름, BIND는 IdM 서버가 test.example. 영역에 대한 권한이 있음을 감지하고 쿼리를 192.0.2.254. 서버로 전달하지 않습니다. 결과적으로 DNS 클라이언트는 NXDomain 오류 메시지를 수신하여 사용자에게 쿼리된 도메인이 존재하지 않음을 알립니다.
1.6. Ansible 플레이북을 사용하여 forward 첫 번째 정책이 IdM DNS 글로벌 구성에 설정되어 있는지 확인합니다. 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 플레이북을 사용하여 IdM DNS의 글로벌 전달 정책이 먼저 전달되도록 설정하려면 다음 절차를 따르십시오.
정방향 첫 번째 DNS 전달 정책을 사용하면 DNS 쿼리가 구성된 전달자로 전달됩니다. 서버 오류 또는 시간 초과로 인해 쿼리가 실패하면 BIND는 인터넷의 서버를 사용하여 재귀 확인으로 대체됩니다. forward 첫 번째 정책은 기본 정책입니다. 트래픽 최적화에 적합합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다. - IdM 환경에는 통합된 DNS 서버가 포함되어 있습니다.
프로세스
~/MyPlaybooks/ 디렉터리로 이동합니다.
$ cd ~/MyPlaybooks/관련 collections 디렉터리에서 set-configuration.yml Ansible 플레이북 파일의 사본을 만들고 이름을 바꿉니다. 예를 들면 다음과 같습니다.
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig/set-configuration.yml set-forward-policy-to-first.yml- 편집할 set-forward-policy-to-first.yml 파일을 엽니다.
freeipa.ansible_freeipa.ipadnsconfig작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.-
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. forward_policy변수를 첫 번째로 설정합니다.관련 없는 원래 플레이북의 다른 모든 행을 삭제합니다. 현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
--- - name: Playbook to set global forwarding policy to first hosts: ipaserver become: true tasks: - name: Set global forwarding policy to first. freeipa.ansible_freeipa.ipadnsconfig: ipaadmin_password: "{{ ipaadmin_password }}" forward_policy: first-
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file set-forward-policy-to-first.yml
1.7. Ansible 플레이북을 사용하여 IdM DNS에서 글로벌 전달자가 비활성화되었는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 플레이북을 사용하여 IdM DNS에서 글로벌 전달자가 비활성화되었는지 확인하려면 다음 절차를 따르십시오. 비활성화는 forward_policy 변수를 none 으로 설정하여 수행됩니다.
글로벌 전달자를 비활성화하면 DNS 쿼리가 전달되지 않습니다. 전달 비활성화는 글로벌 전달 구성에 대한 영역별 재정의로만 유용합니다. 이 옵션은 BIND 구성에 빈 전달자 목록을 지정하는 것과 동일한 IdM 옵션입니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다. - IdM 환경에는 통합된 DNS 서버가 포함되어 있습니다.
프로세스
~/MyPlaybooks/ 디렉터리로 이동합니다.
$ cd ~/MyPlaybooks/관련 collections 디렉터리에서 disable-global-forwarders.yml Ansible 플레이북 파일을 복사합니다. 예를 들면 다음과 같습니다.
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig/disable-global-forwarders.yml disable-global-forwarders-copy.yml- 편집할 disable-global-forwarders-copy.yml 파일을 엽니다.
freeipa.ansible_freeipa.ipadnsconfig작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.-
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. forward_policy변수를 none 으로 설정합니다.현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
--- - name: Playbook to disable global DNS forwarders hosts: ipaserver become: true tasks: - name: Disable global forwarders. freeipa.ansible_freeipa.ipadnsconfig: ipaadmin_password: "{{ ipaadmin_password }}" forward_policy: none-
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file disable-global-forwarders-copy.yml
1.8. Ansible 플레이북을 사용하여 IdM DNS에서 정방향 및 역방향 조회 영역의 동기화가 비활성화되었는지 확인합니다. 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 플레이북을 사용하여 IdM DNS에서 정방향 및 역방향 조회 영역이 동기화되지 않도록 하려면 다음 절차를 따르십시오.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다. - IdM 환경에는 통합된 DNS 서버가 포함되어 있습니다.
프로세스
~/MyPlaybooks/ 디렉터리로 이동합니다.
$ cd ~/MyPlaybooks/관련 collections 디렉터리에서 disallow-reverse-sync.yml Ansible 플레이북 파일을 복사합니다. 예를 들면 다음과 같습니다.
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig/disallow-reverse-sync.yml disallow-reverse-sync-copy.yml- 편집할 disallow-reverse-sync-copy.yml 파일을 엽니다.
freeipa.ansible_freeipa.ipadnsconfig작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.-
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. allow_sync_ptr변수를 no 로 설정합니다.현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
--- - name: Playbook to disallow reverse record synchronization hosts: ipaserver become: true tasks: - name: Disallow reverse record synchronization. freeipa.ansible_freeipa.ipadnsconfig: ipaadmin_password: "{{ ipaadmin_password }}" allow_sync_ptr: no-
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file disallow-reverse-sync-copy.yml
2장. IdM에서 DNS 영역 관리 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management) DNS 영역을 IdM 관리자로 관리하는 방법을 알아봅니다.
사전 요구 사항
DNS 서비스는 IdM 서버에 설치됩니다. 통합 DNS를 사용하여 IdM 서버를 설치하는 방법에 대한 자세한 내용은 다음 링크 중 하나를 참조하십시오.
- IdM에서 지원되는 DNS 영역 유형을 파악합니다.
2.1. IdM 웹 UI에 기본 DNS 영역 추가 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management) 웹 UI를 사용하여 기본 DNS 영역을 추가하려면 다음 절차를 따르십시오.
사전 요구 사항
- IdM 관리자로 로그인되어 있습니다.
프로세스
IdM 웹 UI에서
네트워크 서비스→DNS→DNS 영역을클릭합니다.그림 2.1. IdM DNS 기본 영역 관리
- 모든 영역 목록의 맨 위에 있는 를 클릭합니다.
영역 이름을 제공합니다.
그림 2.2. 새 IdM 기본 영역 입력
- 를 클릭합니다.
2.2. IdM CLI에서 기본 DNS 영역 추가 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management) CLI(명령줄 인터페이스)를 사용하여 기본 DNS 영역을 추가하려면 다음 절차를 따르십시오.
사전 요구 사항
- IdM 관리자로 로그인되어 있습니다.
프로세스
ipa dnszone-add명령은 DNS 도메인에 새 영역을 추가합니다. 새 영역을 추가하려면 새 하위 도메인의 이름을 지정해야 합니다. 명령을 사용하여 하위 도메인 이름을 직접 전달할 수 있습니다.$ ipa dnszone-add newzone.idm.example.comipa dnszone-add에 이름을 전달하지 않으면 스크립트에서 자동으로 해당 이름을 입력하라는 메시지를 표시합니다.
2.3. IdM 웹 UI에서 기본 DNS 영역 제거 링크 복사링크가 클립보드에 복사되었습니다!
IdM 웹 UI를 사용하여 RHEL IdM(Identity Management)에서 기본 DNS 영역을 제거하려면 다음 절차를 따르십시오.
사전 요구 사항
- IdM 관리자로 로그인되어 있습니다.
프로세스
-
IdM 웹 UI에서
네트워크 서비스→DNS→DNS 영역을클릭합니다. 영역 이름으로 확인란을 선택하고 를 클릭합니다.
그림 2.3. 기본 DNS 영역 제거
- Remove DNS zones dialog 창에서 선택한 영역을 삭제하도록 확인합니다.
2.4. IdM CLI에서 기본 DNS 영역 제거 링크 복사링크가 클립보드에 복사되었습니다!
IdM CLI(명령줄 인터페이스)를 사용하여 RHEL IdM(Identity Management)에서 기본 DNS 영역을 제거하려면 다음 절차를 따르십시오.
사전 요구 사항
- IdM 관리자로 로그인되어 있습니다.
프로세스
기본 DNS 영역을 제거하려면
ipa dnszone-del명령 다음에 제거할 영역의 이름을 입력합니다. 예를 들면 다음과 같습니다.$ ipa dnszone-del idm.example.com
2.5. DNS 구성 우선순위 링크 복사링크가 클립보드에 복사되었습니다!
다음 수준에서 많은 DNS 구성 옵션을 구성할 수 있습니다. 각 수준은 다른 우선 순위를 갖습니다.
- 영역별 구성
-
IdM에 정의된 특정 영역에 대한 구성 수준은 우선 순위가 가장 높습니다.
ipa dnszone-*및ipa dnsforwardzone-*명령을 사용하여 영역별 구성을 관리할 수 있습니다. - 서버별 구성
-
IdM 서버를 설치하는 동안 서버별 전달자를 정의해야 합니다.
ipa dnsserver-*명령을 사용하여 서버별 전달자를 관리할 수 있습니다. 복제본을 설치할 때 서버별 전달자를 설정하지 않으려면--no-forwarder옵션을 사용할 수 있습니다. - 글로벌 DNS 구성
-
영역별 구성이 정의되지 않은 경우 IdM은 LDAP에 저장된 글로벌 DNS 구성을 사용합니다.
ipa dnsconfig-*명령을 사용하여 글로벌 DNS 구성을 관리할 수 있습니다. 글로벌 DNS 구성에 정의된 설정은 모든 IdM DNS 서버에 적용됩니다. /etc/named.conf의 구성각 IdM DNS 서버의
/etc/named.conf파일에 정의된 구성의 우선 순위가 가장 낮습니다. 각 서버에 대해 고유하며 수동으로 편집해야 합니다./etc/named.conf파일은 일반적으로 로컬 DNS 캐시로 DNS 전달을 지정하는 데만 사용됩니다. 기타 옵션은 위에서 언급한 영역별 및 글로벌 DNS 구성에 대해 명령을 사용하여 관리합니다.
동시에 여러 수준에서 DNS 옵션을 구성할 수 있습니다. 이러한 경우 우선 순위가 가장 높은 구성이 더 낮은 수준에서 정의된 구성보다 우선합니다.
2.6. 기본 IdM DNS 영역의 구성 속성 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management)은 새로 고침 기간, 전송 설정 또는 캐시 설정과 같은 특정 기본 구성을 사용하여 새 영역을 생성합니다. IdM DNS 영역 속성에서 는 다음 옵션 중 하나를 사용하여 수정할 수 있는 기본 영역 구성의 속성을 찾을 수 있습니다.
-
명령줄(CLI)의
dnszone-mod명령입니다. 자세한 내용은 IdM CLI에서 기본 DNS 영역의 구성 편집을 참조하십시오. - IdM 웹 UI입니다. 자세한 내용은 IdM 웹 UI의 기본 DNS 영역 구성 편집을 참조하십시오.
영역에 대한 실제 정보를 설정하는 것과 함께 설정은 DNS 서버가 권한 시작 (SOA) 레코드 항목을 처리하는 방법과 DNS 이름 서버에서 레코드를 업데이트하는 방법을 정의합니다.
| 속성 | 명령줄 옵션 | 설명 |
|---|---|---|
| 권한 있는 이름 서버 |
| SOA MNAME이라고도 하는 기본 DNS 이름 서버의 도메인 이름을 설정합니다.
기본적으로 각 IdM 서버는 SOA MNAME 필드에 자신을 알립니다. 결과적으로 |
| 관리자 이메일 주소 |
| 영역 관리자에게 사용할 이메일 주소를 설정합니다. 기본값은 호스트의 root 계정입니다. |
| SOA 직렬 |
| SOA 레코드에서 일련 번호를 설정합니다. IdM은 버전 번호를 자동으로 설정하고 사용자는 수정할 필요가 없습니다. |
| SOA 새로 고침 |
| 보조 DNS 서버가 기본 DNS 서버에서 업데이트를 요청하기 전에 대기하는 간격(초)을 설정합니다. |
| SOA 재시도 |
| 실패한 새로 고침 작업을 다시 시도하기 전에 대기하는 시간(초)을 설정합니다. |
| SOA 만료 |
| 작업 시도를 종료하기 전에 보조 DNS 서버가 새로 고침 업데이트를 수행하려고 하는 시간(초)을 설정합니다. |
| SOA 최소 |
| RFC 2308 에 따른 음수 캐싱을 위해 time을 live(TTL) 값으로 설정합니다. |
| SOA 시간 |
|
영역 apex에서 레코드에 대한 TTL을 초 단위로 설정합니다. 영역 |
| 기본 활성화 시간 |
| 이전에 설정한 개별 TTL 값이 없는 영역의 모든 값에 대한 음수 캐싱의 경우 기본값을 live(TTL) 값으로 설정합니다. |
| BIND 업데이트 정책 |
| DNS 영역에서 클라이언트에 허용되는 권한을 설정합니다. |
| 동적 업데이트 |
| 클라이언트의 DNS 레코드에 대한 동적 업데이트를 활성화합니다. 이 값을 false로 설정하면 IdM 클라이언트 시스템에서 IP 주소를 추가하거나 업데이트할 수 없습니다. |
| 전송 허용 |
| 지정된 영역(;)으로 구분된 지정된 영역을 전송할 수 있는 IP 주소 또는 네트워크 이름 목록을 지정합니다.
영역 전송은 기본적으로 비활성화되어 있습니다. 기본값 |
| 쿼리 허용 |
| parameters(;)로 구분된 DNS 쿼리를 실행할 수 있는 IP 주소 또는 네트워크 이름 목록을 제공합니다. |
| PTR 동기화 허용 |
| 영역의 A 또는 AAAA 레코드(전달 레코드)가 PTR(반복) 레코드와 자동으로 동기화되는지 여부를 설정합니다. |
| 영역 전달자 |
| DNS 영역에 대해 특별히 구성된 전달자를 지정합니다. 이는 IdM 도메인에 사용된 글로벌 전달자와 다릅니다. 여러 전달자를 지정하려면 옵션을 여러 번 사용합니다. |
| 전달 정책 |
| 전달 정책을 지정합니다. 지원되는 정책에 대한 자세한 내용은 IdM의 DNS 전달 정책을 참조하십시오. |
2.7. IdM 웹 UI에서 기본 DNS 영역의 구성 편집 링크 복사링크가 클립보드에 복사되었습니다!
IdM 웹 UI를 사용하여 기본 RHEL IdM(Identity Management) DNS의 구성 속성을 편집하려면 다음 절차를 따르십시오.
사전 요구 사항
- IdM 관리자로 로그인되어 있습니다.
프로세스
IdM 웹 UI에서
네트워크 서비스→DNS→DNS 영역을클릭합니다.그림 2.4. DNS 기본 영역 관리
DNS 영역섹션에서 모든 영역 목록에서 영역 이름을 클릭하여 DNS 영역 페이지를 엽니다.그림 2.5. 기본 영역 편집
설정을
클릭합니다.그림 2.6. 기본 영역 편집 페이지의 설정 탭
필요에 따라 영역 구성을 변경합니다.
사용 가능한 설정에 대한 자세한 내용은 IdM DNS 영역 특성을 참조하십시오.
클릭하여 새 구성을 확인합니다.
참고영역의 기본 시간 (TTL)을 변경하는 경우 모든 IdM DNS 서버에서
named서비스를 다시 시작하여 변경 사항이 적용됩니다. 다른 모든 설정은 즉시 자동으로 활성화됩니다.
2.8. IdM CLI에서 기본 DNS 영역의 구성 편집 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management) CLI(명령줄 인터페이스)를 사용하여 기본 DNS 영역의 구성을 편집하려면 다음 절차를 따르십시오.
사전 요구 사항
- IdM 관리자로 로그인되어 있습니다.
프로세스
기존 기본 DNS 영역을 수정하려면
ipa dnszone-mod명령을 사용합니다. 예를 들어 실패한 새로 고침 작업을 다시 시도하기 전에 대기할 시간을 1800초로 설정하려면 다음을 수행합니다.$ ipa dnszone-mod --retry 1800사용 가능한 설정 및 해당 CLI 옵션에 대한 자세한 내용은 IdM DNS 영역 속성을 참조하십시오.
특정 설정에 수정 중인 DNS 영역 항목에 값이 없는 경우
ipa dnszone-mod명령은 값을 추가합니다. 설정에 값이 없는 경우 명령은 현재 값을 지정된 값으로 덮어씁니다.참고영역의 기본 시간 (TTL)을 변경하는 경우 모든 IdM DNS 서버에서
named서비스를 다시 시작하여 변경 사항이 적용됩니다. 다른 모든 설정은 즉시 자동으로 활성화됩니다.
2.9. IdM에서 영역 전송 링크 복사링크가 클립보드에 복사되었습니다!
통합된 DNS가 있는 RHEL IdM(Identity Management) 배포에서 영역 전송을 사용하여 한 이름 서버의 모든 리소스 레코드를 다른 이름으로 복사할 수 있습니다. 이름 서버는 해당 영역에 대한 신뢰할 수 있는 데이터를 유지합니다. 영역 A DNS 영역에 권한이 있는 DNS 서버의 영역을 변경하는 경우 영역 A 외부에 있는 IdM DNS 도메인의 다른 이름 서버에 변경 사항을 배포해야 합니다.
IdM 통합 DNS는 다른 서버에서 동시에 작성할 수 있습니다. IdM 영역의 SOA(시작) 일련 번호는 개별 IdM DNS 서버 간에 동기화되지 않습니다. 이러한 이유로 to-be-transferred 영역 외부에 있는 DNS 서버를 to-be-transferred 영역 내에서 하나의 특정 DNS 서버만 사용하도록 구성합니다. 이렇게 하면 동기화되지 않은 SOA 일련 번호로 인한 영역 전송 오류가 발생하지 않습니다.
IdM은 RFC 5936 (AXFR) 및 RFC Cryostat(IXFR) 표준에 따른 영역 전송을 지원합니다.
2.10. IdM 웹 UI에서 영역 전송 활성화 링크 복사링크가 클립보드에 복사되었습니다!
IdM 웹 UI를 사용하는 RHEL IdM(Identity Management)에서 영역 전송을 활성화하려면 다음 절차를 따르십시오.
사전 요구 사항
- IdM 관리자로 로그인되어 있습니다.
프로세스
-
IdM 웹 UI에서
네트워크 서비스→DNS→DNS 영역을클릭합니다. -
설정을
클릭합니다. Allow transfer에서 영역 레코드를 전송할 이름 서버를 지정합니다.그림 2.7. 영역 전송 활성화
- DNS 영역 페이지 상단에 있는 클릭하여 새 구성을 확인합니다.
2.11. IdM CLI에서 영역 전송 활성화 링크 복사링크가 클립보드에 복사되었습니다!
IdM CLI(명령줄 인터페이스)를 사용하여 RHEL IdM(Identity Management)에서 영역 전송을 활성화하려면 다음 절차를 따르십시오.
사전 요구 사항
- IdM 관리자로 로그인되어 있습니다.
- 보조 DNS 서버에 대한 루트 액세스 권한이 있습니다.
프로세스
BIND서비스에서 영역 전송을 활성화하려면ipa dnszone-mod명령을 입력하고--allow-transfer옵션을 사용하여 영역 레코드가 전송될 to-be-transferred 영역 외부에 있는 이름 서버 목록을 지정합니다. 예를 들면 다음과 같습니다.$ ipa dnszone-mod --allow-transfer=192.0.2.1;198.51.100.1;203.0.113.1 idm.example.com
검증
영역 전송이 활성화된 DNS 서버 중 하나에 SSH를 실행하십시오.
$ ssh 192.0.2.1dig유틸리티와 같은 툴을 사용하여 IdM DNS 영역을 전송합니다.# dig @ipa-server zone_name AXFR
명령에서 오류를 반환하지 않으면 zone_name 에 대한 영역 전송을 성공적으로 활성화했습니다.
3장. Ansible 플레이북을 사용하여 IdM DNS 영역 관리 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management) 관리자는 ansible-freeipa 패키지에서 사용할 수 있는 dnszone 모듈을 사용하여 IdM DNS 영역이 작동하는 방법을 관리할 수 있습니다.
사전 요구 사항
- DNS 서비스는 IdM 서버에 설치됩니다. 통합 DNS를 사용하여 Ansible을 사용하여 IdM 서버를 설치하는 방법에 대한 자세한 내용은 Ansible 플레이북을 사용하여 ID 관리 서버 설치를 참조하십시오.
3.1. 지원되는 DNS 영역 유형 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management)은 기본 및 전달 영역이라는 두 가지 유형의 DNS 영역을 지원합니다. DNS 전달 시나리오를 포함하여 이러한 두 가지 유형의 영역에 대해 설명합니다.
이 가이드에서는 Microsoft Windows DNS에 사용되는 용어와 다른 영역 유형에 BIND 용어를 사용합니다. BIND의 기본 영역은 Microsoft Windows DNS의 정방향 조회 영역 및 역방향 조회 영역 과 동일한 용도로 사용됩니다. BIND의 전달 영역은 Microsoft Windows DNS의 조건부 전달자 와 동일한 목적을 수행합니다.
- 기본 DNS 영역
기본 DNS 영역에는 권한 있는 DNS 데이터가 포함되어 있으며 동적 DNS 업데이트를 허용할 수 있습니다. 이 동작은 표준 BIND 구성의
유형 마스터설정과 동일합니다.ipa dnszone-*명령을 사용하여 기본 영역을 관리할 수 있습니다.표준 DNS 규칙에 따라 모든 기본 영역에는
권한 시작(SOA) 및이름 서버(NS) 레코드가 포함되어야 합니다. DNS 영역이 생성되면 IdM에서 이러한 레코드를 자동으로 생성하지만 적절한 위임을 생성하려면 NS 레코드를 상위 영역에 수동으로 복사해야 합니다.표준 BIND 동작에 따라 서버가 권한이 없는 이름에 대한 쿼리는 다른 DNS 서버로 전달됩니다. 전달자라고 하는 이러한 DNS 서버는 쿼리에 대해 권한이 없을 수도 있습니다.
예 3.1. DNS 전달 시나리오 예
IdM 서버에는
test.example.기본 영역이 포함되어 있습니다. 이 영역에는하위.test.example.이름에 대한 NS 위임 레코드가 포함되어 있습니다. 또한test.example.영역은sub.text.example하위 영역의192.0.2.254전달자 IP 주소로 구성됩니다.존재하지 않는.test.example이라는 이름을 쿼리하는 클라이언트는NXDomain응답을 수신하고 IdM 서버가 이 이름에 대해 권한이 있기 때문에 전달이 발생하지 않습니다.반면 IdM 서버는 이 이름에 대해 권한이 없으므로
host1.sub.test.example.이름을 쿼리하는 것이 구성된 forwarder192.0.2.254로 전달됩니다.- 정방향 DNS 영역
IdM의 관점에서 전달 DNS 영역에는 권한 있는 데이터가 포함되어 있지 않습니다. 사실, forward "zone"은 일반적으로 다음 두 가지 정보만 포함합니다.
- 도메인 이름
- 도메인과 연결된 DNS 서버의 IP 주소
정의된 도메인에 속하는 이름에 대한 모든 쿼리는 지정된 IP 주소로 전달됩니다. 이 동작은 표준 BIND 구성의 type forward 설정과 동일합니다. ipa dnsforwardzone-* 명령을 사용하여 전달 영역을 관리할 수 있습니다.
정방향 DNS 영역은 IdM-Active Directory(AD) 신뢰 컨텍스트에서 특히 유용합니다. IdM DNS 서버가 idm.example.com 영역에 권한이 있고 AD DNS 서버가 ad.example.com 영역에 권한이 있는 경우 ad.example.com 은 idm.example.com 기본 영역에 대한 DNS 전달 영역입니다. 즉, somehost.ad.example.com 의 IP 주소에 대한 IdM 클라이언트에서 쿼리가 제공되면 ad.example.com IdM DNS 전달 영역에 지정된 AD 도메인 컨트롤러로 쿼리가 전달됩니다.
3.2. Ansible을 사용할 때 기본 IdM DNS 영역의 구성 속성 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management)은 새로 고침 기간, 전송 설정 또는 캐시 설정과 같은 특정 기본 구성을 사용하여 새 영역을 생성합니다. IdM DNS 영역 속성에서는 ipadnszone 모듈을 사용하는 Ansible 플레이북을 사용하여 수정할 수 있는 기본 영역 구성의 속성을 찾을 수 있습니다.
영역에 대한 실제 정보를 설정하는 것과 함께 설정은 DNS 서버가 권한 시작 (SOA) 레코드 항목을 처리하는 방법과 DNS 이름 서버에서 레코드를 업데이트하는 방법을 정의합니다.
| 속성 | ansible-freeipa 변수 | 설명 |
|---|---|---|
| 권한 있는 이름 서버 |
| SOA MNAME이라고도 하는 기본 DNS 이름 서버의 도메인 이름을 설정합니다.
기본적으로 각 IdM 서버는 SOA MNAME 필드에 자신을 알립니다. 결과적으로 |
| 관리자 이메일 주소 |
| 영역 관리자에게 사용할 이메일 주소를 설정합니다. 기본값은 호스트의 root 계정입니다. |
| SOA 직렬 |
| SOA 레코드에서 일련 번호를 설정합니다. IdM은 버전 번호를 자동으로 설정하고 사용자는 수정할 필요가 없습니다. |
| SOA 새로 고침 |
| 보조 DNS 서버가 기본 DNS 서버에서 업데이트를 요청하기 전에 대기하는 간격(초)을 설정합니다. |
| SOA 재시도 |
| 실패한 새로 고침 작업을 다시 시도하기 전에 대기하는 시간(초)을 설정합니다. |
| SOA 만료 |
| 작업 시도를 종료하기 전에 보조 DNS 서버가 새로 고침 업데이트를 수행하려고 하는 시간(초)을 설정합니다. |
| SOA 최소 |
| RFC 2308 에 따른 음수 캐싱을 위해 time을 live(TTL) 값으로 설정합니다. |
| SOA 시간 |
|
영역 apex에서 레코드에 대한 TTL을 초 단위로 설정합니다. 영역 |
| 기본 활성화 시간 |
| 이전에 설정한 개별 TTL 값이 없는 영역의 모든 값에 대한 음수 캐싱의 경우 기본값을 live(TTL) 값으로 설정합니다. |
| BIND 업데이트 정책 |
| DNS 영역에서 클라이언트에 허용되는 권한을 설정합니다. |
| 동적 업데이트 |
| 클라이언트의 DNS 레코드에 대한 동적 업데이트를 활성화합니다. 이 값을 false로 설정하면 IdM 클라이언트 시스템에서 IP 주소를 추가하거나 업데이트할 수 없습니다. |
| 전송 허용 |
| 지정된 영역(;)으로 구분된 지정된 영역을 전송할 수 있는 IP 주소 또는 네트워크 이름 목록을 지정합니다.
영역 전송은 기본적으로 비활성화되어 있습니다. 기본 |
| 쿼리 허용 |
| parameters(;)로 구분된 DNS 쿼리를 실행할 수 있는 IP 주소 또는 네트워크 이름 목록을 제공합니다. |
| PTR 동기화 허용 |
| 영역의 A 또는 AAAA 레코드(전달 레코드)가 PTR(반복) 레코드와 자동으로 동기화되는지 여부를 설정합니다. |
| 영역 전달자 |
| DNS 영역에 대해 특별히 구성된 전달자를 지정합니다. 이는 IdM 도메인에 사용된 글로벌 전달자와 다릅니다. 여러 전달자를 지정하려면 옵션을 여러 번 사용합니다. |
| 전달 정책 |
| 전달 정책을 지정합니다. 지원되는 정책에 대한 자세한 내용은 IdM의 DNS 전달 정책을 참조하십시오. |
3.3. Ansible을 사용하여 IdM DNS에 기본 영역 생성 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 플레이북을 사용하여 기본 DNS 영역이 있는지 확인하려면 다음 절차를 따르십시오. 아래 절차에서 사용된 예제에서는 zone.idm.example.com DNS 영역이 있는지 확인합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다. - IdM 관리자 암호를 알고 있습니다.
프로세스
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnszone디렉터리로 이동합니다.$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnszone인벤토리 파일을 열고 구성할 IdM 서버가
[ipaserver]섹션에 나열되어 있는지 확인합니다. 예를 들어, Ansible에 server.idm.example.com 을 구성하도록 지시하려면 다음을 입력합니다.[ipaserver] server.idm.example.comdnszone-present.yml Ansible 플레이북 파일의 사본을 만듭니다. 예를 들면 다음과 같습니다.
$ cp dnszone-present.yml dnszone-present-copy.yml- 편집을 위해 dnszone-present-copy.yml 파일을 엽니다.
ipadnszone작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.-
ipaadmin_password변수를 IdM 관리자 암호로 설정합니다. zone_name변수를 zone.idm.example.com 으로 설정합니다.현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
--- - name: Ensure dnszone present hosts: ipaserver become: true tasks: - name: Ensure zone is present. ipadnszone: ipaadmin_password: "{{ ipaadmin_password }}" zone_name: zone.idm.example.com state: present-
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file dnszone-present-copy.yml
3.4. Ansible 플레이북을 사용하여 여러 변수가 있는 IdM에 기본 DNS 영역이 있는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 플레이북을 사용하여 기본 DNS 영역이 있는지 확인하려면 다음 절차를 따르십시오. 아래 절차에 사용된 예제에서 IdM 관리자는 zone.idm.example.com DNS 영역이 있는지 확인합니다. Ansible 플레이북은 영역의 여러 매개 변수를 구성합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다.
프로세스
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnszone디렉터리로 이동합니다.$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnszonednszone-all-params.yml Ansible 플레이북 파일을 복사합니다. 예를 들면 다음과 같습니다.
$ cp dnszone-all-params.yml dnszone-all-params-copy.yml- 편집을 위해 dnszone-all-params-copy.yml 파일을 엽니다.
freeipa.ansible_freeipa.ipadnszone작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.-
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. -
zone_name변수를 zone.idm.example.com 으로 설정합니다. -
정방향 및 역방향 레코드 동기화, 즉 PTR 레코드와 AAAA 레코드의 동기화를 허용하려면
allow_sync_ptr변수를 true로 설정합니다. -
IdM 클라이언트 시스템이 IP 주소를 추가하거나 업데이트할 수 있도록
dynamic_update변수를 true로 설정합니다. -
영역에 있는 레코드 인라인 DNSSEC 서명을 허용하려면
dnssec변수를 true로 설정합니다. -
allow_transfer변수를 영역에 있는 보조 이름 서버의 IP 주소로 설정합니다. -
allow_query변수를 쿼리를 발행할 수 있는 IP 주소 또는 네트워크로 설정합니다. -
forwarders변수를 글로벌 전달자의 IP 주소로 설정합니다. -
serial변수를 SOA 레코드 일련 번호로 설정합니다. -
영역의 DNS 레코드에 대한
새로 고침,재시도,만료,최소,ttl및default_ttl값을 정의합니다. -
nsec3param_rec변수를 사용하여 영역의 NSEC3PARAM 레코드를 정의합니다. -
skip_overlap_check변수를 true로 설정하여 기존 영역과 겹치는 경우에도 DNS 생성을 강제 적용합니다. 이름 서버를 확인할 수 없는 경우에도
skip_nameserver_check를 true로 설정하여 DNS 영역 생성을 강제 적용합니다.현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
--- - name: Ensure dnszone present hosts: ipaserver become: true tasks: - name: Ensure zone is present. freeipa.ansible_freeipa.ipadnszone: ipaadmin_password: "{{ ipaadmin_password }}" zone_name: zone.idm.example.com allow_sync_ptr: true dynamic_update: true dnssec: true allow_transfer: - 1.1.1.1 - 2.2.2.2 allow_query: - 1.1.1.1 - 2.2.2.2 forwarders: - ip_address: 8.8.8.8 - ip_address: 8.8.4.4 port: 52 serial: 1234 refresh: 3600 retry: 900 expire: 1209600 minimum: 3600 ttl: 60 default_ttl: 90 name_server: server.idm.example.com. admin_email: admin.admin@idm.example.com nsec3param_rec: "1 7 100 0123456789abcdef" skip_overlap_check: true skip_nameserver_check: true state: present-
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file dnszone-all-params-copy.yml
3.5. Ansible 플레이북을 사용하여 IP 주소가 제공될 때 역방향 DNS 조회를 위한 영역이 있는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 플레이북을 사용하여 역방향 DNS 영역이 있는지 확인하려면 다음 절차를 따르십시오. 아래 절차에 사용된 예에서 IdM 관리자는 IdM 호스트의 IP 주소 및 접두사 길이를 사용하여 역방향 DNS 조회 영역이 있는지 확인합니다.
name_from_ip 변수를 사용하여 DNS 서버의 IP 주소 접두사 길이를 제공하면 영역 이름을 제어할 수 있습니다. 접두사 길이를 지정하지 않으면 시스템은 DNS 서버에 영역 및 name_from_ip 값을 기반으로 DNS 서버를 쿼리하지 않으면 쿼리에서 다음 DNS 영역 중 하나를 반환할 수 있습니다.
- 1.168.192.in-addr.arpa.
- 168.192.in-addr.arpa.
- 192.in-addr.arpa.
쿼리에서 반환된 영역이 예상하지 않을 수 있으므로 name_from_ip 는 영역의 실수로 제거되지 않도록 state 옵션 집합에서만 사용할 수 있습니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다.
프로세스
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnszone디렉터리로 이동합니다.$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnszonednszone-reverse-from-ip.yml Ansible 플레이북 파일의 사본을 만듭니다. 예를 들면 다음과 같습니다.
$ cp dnszone-reverse-from-ip.yml dnszone-reverse-from-ip-copy.yml- 편집을 위해 dnszone-reverse-from-ip-copy.yml 파일을 엽니다.
freeipa.ansible_freeipa.ipadnszone작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.-
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. name_from_ip변수를 IdM 이름 서버의 IP로 설정하고 접두사 길이를 제공합니다.현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
--- - name: Ensure dnszone present hosts: ipaserver become: true tasks: - name: Ensure zone for reverse DNS lookup is present. freeipa.ansible_freeipa.ipadnszone: ipaadmin_password: "{{ ipaadmin_password }}" name_from_ip: 192.168.1.2/24 state: present register: result - name: Display inferred zone name. debug: msg: "Zone name: {{ result.dnszone.name }}"
플레이북은 192.168.1.2 IP 주소 및 접두사 길이 24에서 역방향 DNS 조회를 위한 영역을 생성합니다. 다음으로 플레이북에 결과 영역 이름이 표시됩니다.
-
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file dnszone-reverse-from-ip-copy.yml
4장. IdM에서 DNS 위치 관리 링크 복사링크가 클립보드에 복사되었습니다!
IdM 웹 UI 및 IdM CLI(명령줄 인터페이스)를 사용하여 RHEL IdM(Identity Management) DNS 위치 관리에 대해 알아봅니다.
사전 요구 사항
- IdM의 DNS 기반 서비스 검색 개념을 이해합니다.
- IdM의 DNS 위치에 대한 배포 고려 사항을 이해합니다.
- TTL(DNS Time-to-live) 의 개념을 이해합니다.
4.1. IdM 웹 UI를 사용하여 DNS 위치 생성 링크 복사링크가 클립보드에 복사되었습니다!
DNS 위치를 사용하여 RHEL IdM(Identity Management) 클라이언트와 서버 간의 통신 속도를 높일 수 있습니다. IdM 웹 UI를 사용하여 DNS 위치를 생성하려면 다음 절차를 따르십시오.
사전 요구 사항
- IdM 배포에는 통합 DNS가 있습니다.
- IdM에서 DNS 위치를 생성할 수 있는 권한이 있습니다. 예를 들어 IdM 관리자로 로그인되어 있습니다.
프로세스
-
IPA 서버탭을 엽니다. -
Topology를 선택합니다. -
탐색 모음
에서 IPA 위치를클릭합니다. - 위치 목록의 맨 위에 있는 를 클릭합니다.
- 위치 이름을 입력합니다.
- 버튼을 클릭하여 위치를 저장합니다.
- 선택 사항: 단계를 반복하여 추가 위치를 추가합니다.
4.2. IdM CLI를 사용하여 DNS 위치 생성 링크 복사링크가 클립보드에 복사되었습니다!
DNS 위치를 사용하여 RHEL IdM(Identity Management) 클라이언트와 서버 간의 통신 속도를 높일 수 있습니다. 다음 절차에 따라 IdM CLI(명령줄 인터페이스)에서 ipa location-add 명령을 사용하여 DNS 위치를 생성합니다.
사전 요구 사항
- IdM 배포에는 통합 DNS가 있습니다.
- IdM에서 DNS 위치를 생성할 수 있는 권한이 있습니다. 예를 들어 IdM 관리자로 로그인되어 있습니다.
프로세스
예를 들어 새 위치
germany를 생성하려면 다음을 입력합니다.$ ipa location-add germany ---------------------------- Added IPA location "germany" ---------------------------- Location name: germany- 선택 사항: 단계를 반복하여 추가 위치를 추가합니다.
4.3. IdM 웹 UI를 사용하여 DNS 위치에 IdM 서버 할당 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management) DNS 위치를 사용하여 IdM 클라이언트와 서버 간 통신 속도를 높일 수 있습니다. IdM 웹 UI를 사용하여 DNS 위치에 IdM 서버를 할당하려면 다음 절차를 따르십시오.
사전 요구 사항
- IdM 배포에는 통합 DNS가 있습니다.
- DNS 위치에 서버를 할당할 수 있는 권한이 있는 사용자로 로그인했습니다(예: IdM 관리자).
-
DNS 위치를 할당할 호스트에 대한
루트액세스 권한이 있습니다. - 서버 를 할당하려는 IdM DNS 위치를 생성 했습니다.
프로세스
-
IPA 서버탭을 엽니다. -
Topology를 선택합니다. -
탐색에서
IPA 서버를 클릭합니다. - IdM 서버 이름을 클릭합니다.
DNS 위치를 선택하고 선택적으로 서비스 가중치를 설정합니다.
그림 4.1. DNS 위치에 서버 할당
- 을 클릭합니다.
이전 단계에서 할당한 호스트의 CLI(명령줄)에서 에 대한 DNS 위치를 다시 시작하여
이름이지정된 서비스를 다시 시작합니다.[root@idmserver-01 ~]# systemctl restart named- 선택 사항: 추가 IdM 서버에 DNS 위치를 할당하는 단계를 반복합니다.
4.4. IdM CLI를 사용하여 DNS 위치에 IdM 서버 할당 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management) DNS 위치를 사용하여 IdM 클라이언트와 서버 간 통신 속도를 높일 수 있습니다. IdM CLI(명령줄 인터페이스)를 사용하여 DNS 위치에 IdM 서버를 할당하려면 다음 절차를 따르십시오.
사전 요구 사항
- IdM 배포에는 통합 DNS가 있습니다.
- DNS 위치에 서버를 할당할 수 있는 권한이 있는 사용자로 로그인했습니다(예: IdM 관리자).
-
DNS 위치를 할당할 호스트에 대한
루트액세스 권한이 있습니다. - 서버 를 할당하려는 IdM DNS 위치를 생성 했습니다.
프로세스
선택 사항: 구성된 모든 DNS 위치를 나열합니다.
[root@server ~]# ipa location-find ----------------------- 2 IPA locations matched ----------------------- Location name: australia Location name: germany ----------------------------- Number of entries returned: 2 -----------------------------서버를 DNS 위치에 할당합니다. 예를 들어 서버 idmserver-01.idm.example.com 에 위치
germany를 할당하려면 다음을 실행합니다.# ipa server-mod idmserver-01.idm.example.com --location=germany [...] -------------------------------------------------- Modified IPA server "idmserver-01.idm.example.com" -------------------------------------------------- Servername: idmserver-01.idm.example.com Min domain level: 0 Max domain level: 1 Location: germany Enabled server roles: DNS server, NTP server이전 단계에서 할당한 호스트에서
named서비스를 다시 시작하십시오. DNS 위치는 다음과 같습니다.# systemctl restart named- 선택 사항: 추가 IdM 서버에 DNS 위치를 할당하는 단계를 반복합니다.
4.5. 동일한 위치에서 IdM 서버를 사용하도록 IdM 클라이언트 구성 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management) 서버는 IdM 웹 UI를 사용하여 DNS 위치에 IdM 서버 할당에 설명된 대로 DNS 위치에 할당됩니다. 이제 IdM 서버와 동일한 위치에 있는 DNS 서버를 사용하도록 클라이언트를 구성할 수 있습니다.
-
DHCP서버가 DNS 서버 IP 주소를 클라이언트에 할당하는 경우DHCP서비스를 구성합니다. DHCP 서비스에서 DNS 서버를 할당하는 방법에 대한 자세한 내용은서비스 설명서를 참조하십시오.DHCP -
클라이언트에서
DHCP서버에서 DNS 서버 IP 주소를 수신하지 않으면 클라이언트의 네트워크 구성에서 IP를 수동으로 설정합니다. Red Hat Enterprise Linux에서 네트워크를 구성하는 방법에 대한 자세한 내용은 Red Hat Enterprise Linux 네트워킹 가이드의 네트워크 연결 설정 구성 섹션을 참조하십시오.
다른 위치에 할당된 DNS 서버를 사용하도록 클라이언트를 구성하는 경우 클라이언트는 두 위치의 IdM 서버에 연결합니다.
예 4.1. 클라이언트의 위치에 따라 다른 이름 서버 항목
다음 예제에서는 다른 위치에 있는 클라이언트의 /etc/resolv.conf 파일의 다른 이름 서버 항목을 보여줍니다.
프라하의 고객:
nameserver 10.10.0.1
nameserver 10.10.0.2
파키스탄의 고객:
nameserver 10.50.0.1
nameserver 10.50.0.3
Oslo의 고객:
nameserver 10.30.0.1
원래의 고객:
nameserver 10.30.0.1
각 DNS 서버가 IdM의 위치에 할당되면 클라이언트는 해당 위치에서 IdM 서버를 사용합니다.
5장. Ansible을 사용하여 IdM의 DNS 위치 관리 링크 복사링크가 클립보드에 복사되었습니다!
IdM(Identity Management) 관리자는 ansible-freeipa 패키지에서 사용할 수 있는 location 모듈을 사용하여 IdM DNS 위치를 관리할 수 있습니다.
5.1. DNS 기반 서비스 검색 링크 복사링크가 클립보드에 복사되었습니다!
DNS 기반 서비스 검색은 클라이언트가 DNS 프로토콜을 사용하여 LDAP 또는 Kerberos 와 같은 특정 서비스를 제공하는 네트워크에서 서버를 찾는 프로세스입니다. 일반적인 작업 유형 중 하나는 클라이언트가 더 높은 처리량과 네트워크 대기 시간을 줄여 전체 비용을 낮추기 때문에 가장 가까운 네트워크 인프라 내에서 인증 서버를 찾을 수 있도록 하는 것입니다.
서비스 검색의 주요 이점은 다음과 같습니다.
- 가까운 서버의 이름으로 클라이언트를 명시적으로 구성할 필요가 없습니다.
- DNS 서버는 정책의 중앙 공급자로 사용됩니다. 동일한 DNS 서버를 사용하는 클라이언트는 서비스 공급자 및 선호하는 순서에 대한 동일한 정책에 액세스할 수 있습니다.
RHEL IdM(Identity Management) 도메인에는 LDAP,Kerberos 및 기타 서비스에 대한 DNS 서비스 레코드(SRV 레코드)가 있습니다. 예를 들어 다음 명령은 IdM DNS 도메인에 TCP 기반 Kerberos 서비스를 제공하는 호스트의 DNS 서버를 쿼리합니다.
예 5.1. DNS 위치 독립적인 결과
$ dig -t SRV +short _kerberos._tcp.idm.example.com
0 100 88 idmserver-01.idm.example.com.
0 100 88 idmserver-02.idm.example.com.
출력에는 다음 정보가 포함됩니다.
-
0(우선 순위): 대상 호스트의 우선 순위입니다. 더 낮은 값이 우선합니다. -
100(중량). 우선순위가 동일한 항목의 상대적 가중치를 지정합니다. 자세한 내용은 RFC 2782, section 3 에서 참조하십시오. -
88(포트 번호): 서비스 포트 번호. - 서비스를 제공하는 호스트의 표준 이름입니다.
이 예제에서는 반환된 두 호스트 이름의 우선순위와 weight가 동일합니다. 이 경우 클라이언트는 결과 목록의 임의의 항목을 사용합니다.
클라이언트가 DNS 위치에 구성된 DNS 서버를 쿼리하도록 구성된 대신 출력은 다릅니다. 위치에 할당된 IdM 서버의 경우 맞춤형 값이 반환됩니다. 아래 예제에서 클라이언트는 germany 위치에서 DNS 서버를 쿼리하도록 구성되어 있습니다.
예 5.2. DNS 위치 기반 결과
$ dig -t SRV +short _kerberos._tcp.idm.example.com
_kerberos._tcp.germany._locations.idm.example.com.
0 100 88 idmserver-01.idm.example.com.
50 100 88 idmserver-02.idm.example.com.
IdM DNS 서버는 로컬 서버를 선호하는 DNS 위치별 SRV 레코드를 가리키는 CNAME(DNS 별칭)을 자동으로 반환합니다. 이 CNAME 레코드는 출력의 첫 번째 행에 표시됩니다. 이 예에서 호스트 idmserver-01.idm.example.com 은 가장 낮은 우선순위 값을 가지므로 선호됩니다. idmserver-02.idm.example.com 은 우선 순위가 높으므로 기본 호스트를 사용할 수 없는 경우 백업으로만 사용됩니다.
5.2. DNS 위치에 대한 배포 고려 사항 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management)은 통합 DNS를 사용할 때 위치별 서비스(SRV) 레코드를 생성할 수 있습니다. 각 IdM DNS 서버는 위치별 SRV 레코드를 생성하므로 각 DNS 위치에 하나 이상의 IdM DNS 서버를 설치해야 합니다.
DNS 위치에 대한 클라이언트의 선호도는 클라이언트에서 수신한 DNS 레코드에 의해서만 정의됩니다. 이러한 이유로 DNS 서비스 검색을 수행하는 클라이언트가 IdM DNS 서버에서 위치별 레코드를 확인하는 경우 IdM DNS 서버와 IdM DNS 소비자 서버를 결합하고 반복기를 결합할 수 있습니다.
대부분의 배포에서는 IdM 및 비 IdM DNS 서비스가 포함된 대부분의 배포에서 DNS 재귀자가 라운드트립 시간 지표를 사용하여 가장 가까운 IdM DNS 서버를 자동으로 선택합니다. 일반적으로 IdM이 아닌 DNS 서버를 사용하는 클라이언트가 가장 가까운 DNS 위치에 대한 레코드를 가져오고, 따라서 최적의 IdM 서버 세트를 사용합니다.
5.3. 라이브 DNS 시간 (TTL) 링크 복사링크가 클립보드에 복사되었습니다!
클라이언트는 영역 구성에 설정된 시간 동안 DNS 리소스 레코드를 캐시할 수 있습니다. 이 캐싱으로 인해 TTL(TTL) 값이 만료될 때까지 클라이언트는 변경 사항을 수신하지 못할 수 있습니다. RHEL IdM(Identity Management)의 기본 TTL 값은 1일 입니다.
클라이언트 컴퓨터가 사이트 간 로밍하는 경우 IdM DNS 영역의 TTL 값을 조정해야 합니다. 클라이언트가 사이트 간에 로밍하는 데 필요한 시간보다 낮은 값으로 값을 설정합니다. 이렇게 하면 클라이언트에서 캐시된 DNS 항목이 다른 사이트에 다시 연결되기 전에 만료되므로 DNS 서버를 쿼리하여 위치별 SRV 레코드를 새로 고칩니다.
5.4. Ansible을 사용하여 IdM 위치가 있는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management)의 시스템 관리자는 클라이언트가 가장 가까운 네트워크 인프라 내에서 인증 서버를 찾을 수 있도록 IdM DNS 위치를 구성할 수 있습니다.
다음 절차에서는 Ansible 플레이북을 사용하여 DNS 위치가 IdM에 있는지 확인하는 방법을 설명합니다. 이 예제에서는 IdM에 germany DNS 위치가 있는지 확인하는 방법을 설명합니다. 결과적으로 로컬 IdM 클라이언트가 서버 응답 시간을 단축하는 데 사용할 수 있도록 특정 IdM 서버를 이 위치에 할당할 수 있습니다.
사전 요구 사항
제어 노드에서 다음을 수행합니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다. - DNS 위치에 대한 배포 고려 사항을 이해하십시오.
프로세스
~/MyPlaybooks/ 디렉터리로 이동합니다.
$ cd ~/MyPlaybooks//usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/location/디렉터리에 있는location-present.yml파일의 사본을 만듭니다.$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/location/location-present.yml location-present-copy.yml-
편집할
location-present-copy.ymlAnsible 플레이북 파일을 엽니다. freeipa.ansible_freeipa.ipalocation작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.-
사용 사례에 맞게 작업
이름을조정합니다. -
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. -
name변수를 위치 이름으로 설정합니다.
현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
--- - name: location present example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure that the "germany" location is present freeipa.ansible_freeipa.ipalocation: ipaadmin_password: "{{ ipaadmin_password }}" name: germany-
사용 사례에 맞게 작업
- 파일을 저장합니다.
Ansible 플레이북을 실행합니다. 플레이북 파일을 지정하고 secret.yml 파일을 보호하는 암호를 저장하는 파일 및 인벤토리 파일을 지정합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory location-present-copy.yml
5.5. Ansible을 사용하여 IdM 위치가 없는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management)의 시스템 관리자는 클라이언트가 가장 가까운 네트워크 인프라 내에서 인증 서버를 찾을 수 있도록 IdM DNS 위치를 구성할 수 있습니다.
다음 절차에서는 Ansible 플레이북을 사용하여 IdM에 DNS 위치가 없는지 확인하는 방법을 설명합니다. 이 예제에서는 IdM에 germany DNS 위치가 없는지 확인하는 방법을 설명합니다. 결과적으로 특정 IdM 서버를 이 위치에 할당할 수 없으며 로컬 IdM 클라이언트는 이를 사용할 수 없습니다.
사전 요구 사항
- 많은 DNS 위치에 IdM 서버가 할당되지 않습니다.
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리를 샘플 플레이북의 복사본을 저장할 중앙 위치로 생성 및 구성 했다고 가정합니다.
프로세스
~/MyPlaybooks/ 디렉터리로 이동합니다.
$ cd ~/MyPlaybooks//usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/location/디렉터리에 있는location-absent.yml파일의 사본을 만듭니다.$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/location/location-absent.yml location-absent-copy.yml-
편집할
location-absent-copy.ymlAnsible 플레이북 파일을 엽니다. freeipa.ansible_freeipa.ipalocation작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.-
사용 사례에 맞게 작업
이름을조정합니다. -
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. -
name변수를 DNS 위치의 이름으로 설정합니다. -
state변수가absent로 설정되어 있는지 확인합니다.
현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
--- - name: location absent example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure that the "germany" location is absent freeipa.ansible_freeipa.ipalocation: ipaadmin_password: "{{ ipaadmin_password }}" name: germany state: absent-
사용 사례에 맞게 작업
- 파일을 저장합니다.
Ansible 플레이북을 실행합니다. 플레이북 파일을 지정하고 secret.yml 파일을 보호하는 암호를 저장하는 파일 및 인벤토리 파일을 지정합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory location-absent-copy.yml
6장. IdM에서 DNS 전달 관리 링크 복사링크가 클립보드에 복사되었습니다!
IdM(Identity Management) 웹 UI, IdM CLI 및 Ansible 사용에서 DNS 글로벌 전달자 및 DNS 전달 영역을 구성하는 방법을 알아봅니다.
6.1. IdM DNS 서버의 두 가지 역할 링크 복사링크가 클립보드에 복사되었습니다!
DNS 전달은 DNS 서비스에서 DNS 쿼리에 응답하는 방법에 영향을 미칩니다. 기본적으로 IdM과 통합된 Berkeley Internet Name Domain(BIND) 서비스는 권한 있는 DNS 서버 및 재귀 DNS 서버 역할을 합니다.
- 권한 있는 DNS 서버
- DNS 클라이언트가 IdM 서버가 권한이 있는 DNS 영역에 속하는 이름을 쿼리하면 BIND는 구성된 영역에 포함된 데이터로 응답합니다. 권한 있는 데이터는 항상 다른 데이터보다 우선합니다.
- 재귀 DNS 서버
- DNS 클라이언트에서 IdM 서버가 권한이 없는 이름을 쿼리하면 BIND에서 다른 DNS 서버를 사용하여 쿼리를 확인하려고 합니다. 전달자가 정의되지 않은 경우 BIND에서 인터넷의 루트 서버를 요청하고 재귀 확인 알고리즘을 사용하여 DNS 쿼리에 응답합니다.
경우에 따라 BIND에서 다른 DNS 서버에 직접 연결하고 인터넷에서 사용 가능한 데이터를 기반으로 재귀를 수행하는 것이 바람직하지 않습니다. 쿼리를 확인하기 위해 다른 DNS 서버인 전달자 를 사용하도록 BIND를 구성할 수 있습니다.
전달자를 사용하도록 BIND를 구성할 때 IdM 서버와 전달자 간에 쿼리 및 응답이 전달되고 IdM 서버는 인증되지 않은 데이터에 대한 DNS 캐시 역할을 합니다.
6.2. IdM 웹 UI에 글로벌 전달자 추가 링크 복사링크가 클립보드에 복사되었습니다!
IdM(Identity Management) 웹 UI에 글로벌 DNS 전달자를 추가하려면 다음 절차를 따르십시오.
사전 요구 사항
- IdM 관리자로 IdM WebUI에 로그인되어 있습니다.
- 쿼리를 전달할 DNS 서버의 인터넷 프로토콜(IP) 주소를 알고 있습니다.
프로세스
IdM 웹 UI에서
네트워크 서비스→DNS 글로벌 구성 →를 선택합니다.DNS
DNS 글로벌 구성섹션에서추가를 클릭합니다.
전달된 DNS 쿼리를 수신할 DNS 서버의 IP 주소를 지정합니다.
Forward 정책을선택합니다.
-
창 상단에서
저장을클릭합니다.
검증
네트워크 서비스→DNS 글로벌 구성→DNS를 선택합니다.
지정한 전달 정책이 있고 IdM 웹 UI에 활성화되어 있는 글로벌 전달자가 있는지 확인합니다.
6.3. CLI에서 글로벌 전달자 추가 링크 복사링크가 클립보드에 복사되었습니다!
CLI(명령줄)를 사용하여 글로벌 DNS 전달자를 추가하려면 다음 절차를 따르십시오.
사전 요구 사항
- IdM 관리자로 로그인되어 있습니다.
- 쿼리를 전달할 DNS 서버의 인터넷 프로토콜(IP) 주소를 알고 있습니다.
프로세스
ipa dnsconfig-mod명령을 사용하여 새 글로벌 전달자를 추가합니다.--forwarder옵션을 사용하여 DNS 전달자의 IP 주소를 지정합니다.[user@server ~]$ ipa dnsconfig-mod --forwarder=10.10.0.1 Server will check DNS forwarder(s). This may take some time, please wait ... Global forwarders: 10.10.0.1 IPA DNS servers: server.example.com
검증
dnsconfig-show명령을 사용하여 글로벌 전달자를 표시합니다.[user@server ~]$ ipa dnsconfig-show Global forwarders: 10.10.0.1 IPA DNS servers: server.example.com
6.4. IdM 웹 UI에 DNS 전달 영역 추가 링크 복사링크가 클립보드에 복사되었습니다!
IdM(Identity Management) 웹 UI에 DNS 전달 영역을 추가하려면 다음 절차를 따르십시오.
전혀 필요하지 않은 한 전도 영역을 사용하지 마십시오. 전달 영역은 표준 솔루션이 아니며 이를 사용하면 예기치 않고 문제가 발생할 수 있습니다. 전달 영역을 사용해야 하는 경우 글로벌 전달 구성을 재정의하는 데 사용을 제한합니다.
새 DNS 영역을 생성할 때 Red Hat은 항상 이름 서버(NS) 레코드를 사용하여 표준 DNS 위임을 사용하고 전달 영역을 방지하는 것이 좋습니다. 대부분의 경우 글로벌 전달자를 사용하는 것으로 충분하며 전달 영역이 필요하지 않습니다.
사전 요구 사항
- IdM 관리자로 IdM WebUI에 로그인되어 있습니다.
- 쿼리를 전달할 DNS 서버의 인터넷 프로토콜(IP) 주소를 알고 있습니다.
프로세스
IdM 웹 UI에서
네트워크 서비스→DNS 전달 영역 →를 선택합니다.DNS
DNS 전달 영역섹션에서추가를 클릭합니다.
Add DNS forward zone창에서 forward zone name을 지정합니다.
추가버튼을 클릭하고 전달 요청을 수신할 DNS 서버의 IP 주소를 지정합니다. 전달 영역당 여러 전달자를 지정할 수 있습니다.
Forward 정책을선택합니다.
-
창 하단에서
추가를 클릭하여 새 전달 영역을 추가합니다.
검증
IdM 웹 UI에서
네트워크 서비스→DNS 전달 영역 →를 선택합니다.DNS
지정한 전달자 및 전달 정책을 사용하여 생성한 전달 영역이 IdM 웹 UI에 있고 활성화되어 있는지 확인합니다.
6.5. CLI에서 DNS 전달 영역 추가 링크 복사링크가 클립보드에 복사되었습니다!
CLI(명령줄)를 사용하여 DNS 전달 영역을 추가하려면 다음 절차를 따르십시오.
전혀 필요하지 않은 한 전도 영역을 사용하지 마십시오. 전달 영역은 표준 솔루션이 아니며 이를 사용하면 예기치 않고 문제가 발생할 수 있습니다. 전달 영역을 사용해야 하는 경우 글로벌 전달 구성을 재정의하는 데 사용을 제한합니다.
새 DNS 영역을 생성할 때 Red Hat은 항상 이름 서버(NS) 레코드를 사용하여 표준 DNS 위임을 사용하고 전달 영역을 방지하는 것이 좋습니다. 대부분의 경우 글로벌 전달자를 사용하는 것으로 충분하며 전달 영역이 필요하지 않습니다.
사전 요구 사항
- IdM 관리자로 로그인되어 있습니다.
- 쿼리를 전달할 DNS 서버의 인터넷 프로토콜(IP) 주소를 알고 있습니다.
프로세스
dnsforwardzone-add명령을 사용하여 새 forward 영역을 추가합니다. forward 정책이none이 아닌 경우--forwarder옵션을 사용하여 하나 이상의 전달자를 지정하고--forward-policy옵션을 사용하여 전달 정책을 지정합니다.[user@server ~]$ ipa dnsforwardzone-add forward.example.com. --forwarder=10.10.0.14 --forwarder=10.10.1.15 --forward-policy=first Zone name: forward.example.com. Zone forwarders: 10.10.0.14, 10.10.1.15 Forward policy: first
검증
dnsforwardzone-show명령을 사용하여 방금 생성한 DNS 전달 영역을 표시합니다.[user@server ~]$ ipa dnsforwardzone-show forward.example.com. Zone name: forward.example.com. Zone forwarders: 10.10.0.14, 10.10.1.15 Forward policy: first
6.6. Ansible을 사용하여 IdM에 DNS 글로벌 전달자 설정 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 플레이북을 사용하여 IdM에서 DNS 글로벌 전달자를 설정하려면 다음 절차를 따르십시오.
아래 예제 절차에서 IdM 관리자는 IP(Internet Protocol) v4 주소 8.8.6.6 및 포트 53 의 IPv6 주소 2001:4860:4860::8800 을 사용하여 DNS 서버에 대한 DNS 글로벌 전달자를 생성합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다.
프로세스
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig디렉토리로 이동합니다.$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfigset-configuration.ymlAnsible 플레이북 파일의 사본을 만듭니다. 예를 들면 다음과 같습니다.$ cp set-configuration.yml establish-global-forwarder.yml-
편집을 위해
establish-global-forwarder.yml파일을 엽니다. 다음 변수를 설정하여 파일을 조정합니다.
-
플레이북의
name변수를Playbook으로 변경하여 IdM DNS에서 글로벌 전달자를 설정합니다. -
tasks섹션에서DNS 글로벌 전달자를 8.8.6.6 및 2001:4860:4860::8800으로 생성하도록작업의이름을변경합니다. freeipa.ansible_freeipa.ipadnsconfig부분의전달자섹션에서 다음을 수행합니다.-
첫 번째
ip_address값을 글로벌 전달자의 IPv4 주소로 변경합니다.8.8.6.6. -
두 번째
ip_address값을 글로벌 전달자2001:4860:4860::8800의 IPv6 주소로 변경합니다. -
port값이53으로 설정되어 있는지 확인합니다.
-
첫 번째
forward_policy를첫번째로 변경합니다.현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
--- - name: Playbook to establish a global forwarder in IdM DNS hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Create a DNS global forwarder to 8.8.6.6 and 2001:4860:4860::8800 freeipa.ansible_freeipa.ipadnsconfig: forwarders: - ip_address: 8.8.6.6 - ip_address: 2001:4860:4860::8800 port: 53 forward_policy: first allow_sync_ptr: true-
플레이북의
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file establish-global-forwarder.yml
6.7. Ansible을 사용하여 IdM에서 DNS 글로벌 전달자가 비활성화되었는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에 따라 Ansible 플레이북을 사용하여 IdM에서 DNS 글로벌 전달자가 비활성화되었는지 확인합니다. 아래 예제 절차에서는 IdM 관리자가 글로벌 전달자의 전달 정책이 none 으로 설정되어 글로벌 전달자를 효과적으로 비활성화합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다.
프로세스
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig디렉토리로 이동합니다.$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig모든 DNS 글로벌 전달자를 비활성화하도록 이미 구성된
disable-global-forwarders.ymlAnsible 플레이북 파일의 내용을 확인합니다. 예를 들면 다음과 같습니다.$ cat disable-global-forwarders.yml --- - name: Playbook to disable global DNS forwarders hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Disable global forwarders. freeipa.ansible_freeipa.ipadnsconfig: forward_policy: nonePlaybook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file disable-global-forwarders.yml
6.8. Ansible을 사용하여 IdM에 DNS 전달 영역이 있는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 플레이북을 사용하여 IdM에 DNS 전달 영역이 있는지 확인하려면 다음 절차를 따르십시오. 아래 예제 절차에서 IdM 관리자는 IP(Internet Protocol) 주소가 8.8.8.8 인 DNS 서버로 example.com 의 DNS 전달 영역이 있는지 확인합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다.
프로세스
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig디렉토리로 이동합니다.$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfigforwarders-absent.ymlAnsible 플레이북 파일의 사본을 만듭니다. 예를 들면 다음과 같습니다.$ cp forwarders-absent.yml ensure-presence-forwardzone.yml-
편집을 위해
ensure-presence-forwardzone.yml파일을 엽니다. 다음 변수를 설정하여 파일을 조정합니다.
-
플레이북의
name변수를Playbook으로 변경하여 IdM DNS에 dnsforwardzone이 있는지 확인합니다. -
tasks섹션에서 작업이름을example.com의 dnsforwardzone이 있는지 확인하도록 8.8.8.8로변경합니다. -
tasks섹션에서freeipa.ansible_freeipa.ipadnsconfig제목을freeipa.ansible_freeipa.ipadnsforwardzone로 변경합니다. freeipa.ansible_freeipa.ipadnsforwardzone섹션에서 다음을 수행합니다.-
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. -
name변수를 추가하고example.com으로 설정합니다. forwarders섹션에서 다음을 수행합니다.-
ip_address및port행을 제거합니다. 대시 후에 전달된 요청을 수신할 DNS 서버의 IP 주소를 추가합니다.
- 8.8.8.8
-
-
forwardpolicy변수를 추가하고먼저설정합니다. -
skip_overlap_check변수를 추가하고true로 설정합니다. -
state변수를present로 변경합니다.
현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
-
--- - name: Playbook to ensure the presence of a dnsforwardzone in IdM DNS hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure the presence of a dnsforwardzone for example.com to 8.8.8.8 freeipa.ansible_freeipa.ipadnsforwardzone: ipaadmin_password: "{{ ipaadmin_password }}" name: example.com forwarders: - 8.8.8.8 forwardpolicy: first skip_overlap_check: true state: present-
플레이북의
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-presence-forwardzone.yml
6.9. Ansible을 사용하여 IdM에 DNS 전달 영역에 여러 전달자가 있는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 플레이북을 사용하여 IdM의 DNS 전달 영역에 여러 전달자가 있는지 확인하려면 다음 절차를 따르십시오. 아래 예제 절차에서는 IdM 관리자가 example.com 의 DNS 전달 영역이 8.8.8.8 및 4.4.4.4 로 전달되는지 확인합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다.
프로세스
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig디렉토리로 이동합니다.$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfigforwarders-absent.ymlAnsible 플레이북 파일의 사본을 만듭니다. 예를 들면 다음과 같습니다.$ cp forwarders-absent.yml ensure-presence-multiple-forwarders.yml-
편집을 위해
ensure-presence-multiple-forwarders.yml파일을 엽니다. 다음 변수를 설정하여 파일을 조정합니다.
-
플레이북의
name변수를Playbook으로 변경하여 IdM DNS의 dnsforwardzone에 여러 전달자가 있는지 확인합니다. -
tasks섹션에서 작업이름을dnsforwardzone의 8.8.8.8 및 4.4.4.4 전달자가 있는지 확인하도록 변경합니다. -
tasks섹션에서freeipa.ansible_freeipa.ipadnsconfig제목을freeipa.ansible_freeipa.ipadnsforwardzone로 변경합니다. freeipa.ansible_freeipa.ipadnsforwardzone섹션에서 다음을 수행합니다.-
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. -
name변수를 추가하고example.com으로 설정합니다. forwarders섹션에서 다음을 수행합니다.-
ip_address및port행을 제거합니다. 확인하려는 DNS 서버의 IP 주소를 추가합니다. 대시 앞에 대시를 추가합니다.
- 8.8.8.8 - 4.4.4.4
-
- state 변수를 present로 변경합니다.
현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
-
--- - name: name: Playbook to ensure the presence of multiple forwarders in a dnsforwardzone in IdM DNS hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure presence of 8.8.8.8 and 4.4.4.4 forwarders in dnsforwardzone for example.com freeipa.ansible_freeipa.ipadnsforwardzone: ipaadmin_password: "{{ ipaadmin_password }}" name: example.com forwarders: - 8.8.8.8 - 4.4.4.4 state: present-
플레이북의
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-presence-multiple-forwarders.yml
6.10. Ansible을 사용하여 IdM에서 DNS 전달 영역이 비활성화되었는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
IdM에서 DNS 전달 영역이 비활성화되어 있는지 확인하려면 Ansible 플레이북을 사용하려면 다음 절차를 따르십시오. 아래 예제 절차에서는 IdM 관리자가 example.com 의 DNS 전달 영역이 비활성화되어 있는지 확인합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다.
프로세스
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig디렉토리로 이동합니다.$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfigforwarders-absent.ymlAnsible 플레이북 파일의 사본을 만듭니다. 예를 들면 다음과 같습니다.$ cp forwarders-absent.yml ensure-disabled-forwardzone.yml-
편집할
ensure-disabled-forwardzone.yml파일을 엽니다. 다음 변수를 설정하여 파일을 조정합니다.
-
플레이북의
name변수를Playbook으로 변경하여 IdM DNS에서 dnsforwardzone이 비활성화되었는지 확인합니다. -
tasks섹션에서 작업이름을Ensure a dnsforwardzone for example.com is disabled로 변경합니다. -
tasks섹션에서freeipa.ansible_freeipa.ipadnsconfig제목을freeipa.ansible_freeipa.ipadnsforwardzone로 변경합니다. freeipa.ansible_freeipa.ipadnsforwardzone섹션에서 다음을 수행합니다.-
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. -
name변수를 추가하고example.com으로 설정합니다. -
전체
forwarders섹션을 제거하십시오. -
state변수를disabled로 변경합니다.
현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
-
--- - name: Playbook to ensure a dnsforwardzone is disabled in IdM DNS hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure a dnsforwardzone for example.com is disabled freeipa.ansible_freeipa.ipadnsforwardzone: ipaadmin_password: "{{ ipaadmin_password }}" name: example.com state: disabled-
플레이북의
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-disabled-forwardzone.yml
6.11. Ansible을 사용하여 IdM에 DNS 전달 영역이 없는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에 따라 Ansible 플레이북을 사용하여 IdM에 DNS 전달 영역이 없는지 확인합니다. 아래 예제 절차에서는 IdM 관리자가 example.com 의 DNS 전달 영역이 없는지 확인합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다.
프로세스
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig디렉토리로 이동합니다.$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfigforwarders-absent.ymlAnsible 플레이북 파일의 사본을 만듭니다. 예를 들면 다음과 같습니다.$ cp forwarders-absent.yml ensure-absence-forwardzone.yml-
편집을 위해
ensure-absence-forwardzone.yml파일을 엽니다. 다음 변수를 설정하여 파일을 조정합니다.
-
플레이북의
name변수를Playbook으로 변경하여 IdM DNS에 dnsforwardzone이 없는지 확인합니다. -
tasks섹션에서 작업의이름을변경하여example.com에 대한 dnsforwardzone이 없는지 확인합니다. -
tasks섹션에서freeipa.ansible_freeipa.ipadnsconfig제목을freeipa.ansible_freeipa.ipadnsforwardzone로 변경합니다. freeipa.ansible_freeipa.ipadnsforwardzone섹션에서 다음을 수행합니다.-
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. -
name변수를 추가하고example.com으로 설정합니다. -
전체
forwarders섹션을 제거하십시오. -
state변수를absent로 둡니다.
현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
-
--- - name: Playbook to ensure the absence of a dnsforwardzone in IdM DNS hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure the absence of a dnsforwardzone for example.com freeipa.ansible_freeipa.ipadnsforwardzone: ipaadmin_password: "{{ ipaadmin_password }}" name: example.com state: absent-
플레이북의
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-absence-forwardzone.yml
7장. IdM에서 DNS 레코드 관리 링크 복사링크가 클립보드에 복사되었습니다!
이 장에서는 RHEL IdM(Identity Management)에서 DNS 레코드를 관리하는 방법을 설명합니다. IdM 관리자는 IdM에서 DNS 레코드를 추가, 수정 및 삭제할 수 있습니다.
사전 요구 사항
IdM 배포에는 통합 DNS 서버가 포함되어 있습니다. 통합 DNS를 사용하여 IdM을 설치하는 방법은 다음 링크 중 하나를 참조하십시오.
- IdM에 어떤 유형의 DNS 레코드가 있는지 알고 있습니다.
- IdM 에서 가장 일반적인 DNS 리소스 레코드 유형을 추가, 수정 및 삭제할 때 사용할 수 있는 옵션을 이해하고 있습니다.
7.1. IdM 웹 UI에 DNS 리소스 레코드 추가 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management) 웹 UI에 DNS 리소스 레코드를 추가하려면 다음 절차를 따르십시오.
사전 요구 사항
- DNS 레코드를 추가하려는 DNS 영역이 존재하며 IdM에서 관리합니다. IdM DNS에서 DNS 영역을 생성하는 방법에 대한 자세한 내용은 IdM의 DNS 영역 관리를 참조하십시오.
- IdM 관리자로 로그인되어 있습니다.
프로세스
-
IdM 웹 UI에서
네트워크 서비스→DNS→DNS 영역을클릭합니다. - DNS 레코드를 추가할 DNS 영역을 클릭합니다.
DNS 리소스 레코드섹션에서 를 클릭하여 새 레코드를 추가합니다.그림 7.1. 새 DNS 리소스 레코드 추가
생성할 레코드 유형을 선택하고 필요에 따라 다른 필드를 작성합니다.
그림 7.2. 새 DNS 리소스 레코드 정의
- 를 클릭하여 새 레코드를 확인합니다.
7.2. IdM CLI에서 DNS 리소스 레코드 추가 링크 복사링크가 클립보드에 복사되었습니다!
CLI(명령줄)에서 모든 유형의 DNS 리소스 레코드를 추가하려면 다음 절차를 따르십시오.
사전 요구 사항
- DNS 레코드를 추가할 DNS 영역이 있습니다. IdM DNS에서 DNS 영역을 생성하는 방법에 대한 자세한 내용은 IdM의 DNS 영역 관리를 참조하십시오.
- IdM 관리자로 로그인되어 있습니다.
프로세스
DNS 리소스 레코드를 추가하려면
ipa dnsrecord-add명령을 사용합니다. 명령은 다음 구문을 따릅니다.$ ipa dnsrecord-add zone_name record_name --record_type_option=data위의 명령에서 다음을 수행합니다.
- zone_name 은 레코드가 추가되는 DNS 영역의 이름입니다.
- record_name 은 새 DNS 리소스 레코드의 식별자입니다.
예를 들어 host1 의 A 유형 DNS 레코드를 idm.example.com 영역에 추가하려면 다음을 입력합니다.
$ ipa dnsrecord-add idm.example.com host1 --a-rec=192.168.122.123
7.3. IdM 웹 UI에서 DNS 레코드 삭제 링크 복사링크가 클립보드에 복사되었습니다!
IdM 웹 UI를 사용하는 RHEL IdM(Identity Management)에서 DNS 레코드를 삭제하려면 다음 절차를 따르십시오.
사전 요구 사항
- IdM 관리자로 로그인되어 있습니다.
프로세스
-
IdM 웹 UI에서
네트워크 서비스→DNS→DNS 영역을클릭합니다. - DNS 레코드를 삭제할 영역을 클릭합니다(예: example.com ).
DNS 리소스 레코드섹션에서 리소스 레코드의 이름을 클릭합니다.그림 7.3. DNS 리소스 레코드 선택
- 삭제할 레코드 유형의 이름으로 확인란을 선택합니다.
삭제를클릭합니다.그림 7.4. DNS 리소스 레코드 삭제
선택한 레코드 유형이 삭제됩니다. 리소스 레코드의 다른 구성은 그대로 유지됩니다.
7.4. IdM 웹 UI에서 전체 DNS 레코드 삭제 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management) 웹 UI를 사용하여 영역의 특정 리소스에 대한 모든 레코드를 삭제하려면 다음 절차를 따르십시오.
사전 요구 사항
- IdM 관리자로 로그인되어 있습니다.
프로세스
-
IdM 웹 UI에서
네트워크 서비스→DNS→DNS 영역을클릭합니다. - DNS 레코드를 삭제할 영역을 클릭합니다(예: zone.example.com. ).
-
DNS 리소스 레코드섹션에서 삭제할 리소스 레코드의 확인란을 선택합니다. 를 클릭합니다.
그림 7.5. 전체 리소스 레코드 삭제
이제 전체 리소스 레코드가 삭제됩니다.
7.5. IdM CLI에서 DNS 레코드 삭제 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management) DNS에서 관리하는 영역에서 DNS 레코드를 제거하려면 다음 절차를 따르십시오.
사전 요구 사항
- IdM 관리자로 로그인되어 있습니다.
프로세스
영역에서 레코드를 제거하려면
ipa dnsrecord-del명령을 사용하고 레코드 값과 함께--recordType-rec옵션을 추가합니다. 예를 들어 A 유형 레코드를 제거하려면 다음을 수행합니다.$ ipa dnsrecord-del example.com www --a-rec 192.0.2.1옵션 없이
ipa dnsrecord-del을 실행하는 경우 명령에서 삭제할 레코드에 대한 정보를 입력하라는 메시지를 표시합니다. 명령과 함께--del-all옵션을 전달하면 영역의 연결된 모든 레코드가 제거됩니다.
8장. Ansible을 사용하여 IdM에서 DNS 레코드 관리 링크 복사링크가 클립보드에 복사되었습니다!
이 장에서는 Ansible 플레이북을 사용하여 RHEL IdM(Identity Management)에서 DNS 레코드를 관리하는 방법을 설명합니다. IdM 관리자는 IdM에서 DNS 레코드를 추가, 수정, 삭제할 수 있습니다.
8.1. IdM의 DNS 레코드 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management)은 다양한 DNS 레코드 유형을 지원합니다. 다음의 4가지가 가장 자주 사용됩니다:
- A
호스트 이름과 IPv4 주소에 대한 기본 맵입니다. A 레코드의 레코드 이름은 호스트 이름(예: WWW)
입니다. A 레코드의IP 주소값은192.0.2.1과 같은 IPv4 주소입니다.A 레코드에 대한 자세한 내용은 RFC 1035 를 참조하십시오.
- AAAA
호스트 이름과 IPv6 주소에 대한 기본 맵입니다. AAAA 레코드의 레코드 이름은 WWW 과 같은 호스트
이름입니다.IP Address값은2001:DB8::1111과 같은 IPv6 주소입니다.AAAA 레코드에 대한 자세한 내용은 RFC 3596 을 참조하십시오.
- SRV
서비스(SRV) 리소스 레코드 는 서비스 이름을 특정 서비스를 제공하는 서버의 DNS 이름에 매핑합니다. 예를 들어 이 레코드 유형은 LDAP 디렉터리와 같은 서비스를 관리하는 서버에 매핑할 수 있습니다.
SRV 레코드의 레코드 이름은
_service._protocol(예:) 형식을 갖습니다. SRV 레코드에 대한 구성 옵션에는 대상 서비스의 우선순위, 가중치, 포트 번호, 호스트 이름이 포함됩니다._ldap._tcpSRV 레코드에 대한 자세한 내용은 RFC 2782 를 참조하십시오.
- PTR
포인터 레코드(PTR)는 IP 주소를 도메인 이름에 매핑하는 역방향 DNS 레코드를 추가합니다.
참고IPv4 주소에 대한 모든 역방향 DNS 조회는
in-addr.arpa.도메인에 정의된 역방향 항목을 사용합니다. 사람이 읽을 수 있는 형식의 역방향 주소는 일반 IP 주소의 정확한 역방향이며in-addr.arpa.도메인이 추가됩니다. 예를 들어 네트워크 주소192.0.2.0/24의 경우 역방향 영역은2.0.192.in-addr.arpa입니다.PTR의 레코드 이름은 RFC 1035 에 지정된 표준 형식이어야 하며 RFC 2317 및 RFC 3596 이어야 합니다. 호스트 이름 값은 레코드를 생성할 호스트의 정식 호스트 이름이어야 합니다.
참고역방향 영역은
.ip6.arpa.도메인에 영역을 사용하여 IPv6 주소에 대해 구성할 수도 있습니다. IPv6 역방향 영역에 대한 자세한 내용은 RFC 3596 을 참조하십시오.
DNS 리소스 레코드를 추가할 때 많은 레코드에는 다른 데이터가 필요합니다. 예를 들어 CNAME 레코드에는 호스트 이름이 필요하지만 A 레코드에는 IP 주소가 필요합니다. IdM 웹 UI에서 현재 선택한 레코드 유형에 필요한 데이터를 반영하도록 새 레코드를 추가하기 위한 양식의 필드가 자동으로 업데이트됩니다.
8.2. 일반적인 ipa dnsrecord-* 옵션 링크 복사링크가 클립보드에 복사되었습니다!
RHEL IdM(Identity Management)에서 가장 일반적인 DNS 리소스 레코드 유형을 추가, 수정 및 삭제할 때 다음 옵션을 사용할 수 있습니다.
- A (IPv4)
- AAAA (IPv6)
- SRV
- PTR
Bash 에서는 --val1,val2,val3} 과 같은 중괄호 내에 쉼표로 구분된 목록에 값을 나열하여 여러 항목을 정의할 수 있습니다.
| 옵션 | 설명 |
|---|---|
|
| 기록에 대한 라이브 시간을 설정합니다. |
|
| 원시 DNS 레코드를 구문 분석하고 구조화된 형식으로 반환합니다. |
| 옵션 | 설명 | 예 |
|---|---|---|
|
| 단일 A 레코드 또는 A 레코드 목록을 전달합니다. |
|
| 지정된 IP 주소를 사용하여 와일드카드 A 레코드를 생성할 수 있습니다. |
| |
|
|
레코드의 IP 주소를 지정합니다. 레코드를 만들 때 |
|
[a]
이 예제에서는 IP 주소가 192.0.2.123인 와일드카드 A 레코드를 생성합니다.
| ||
| 옵션 | 설명 | 예 |
|---|---|---|
|
| 단일 AAAA(IPv6) 레코드 또는 AAAA 레코드 목록을 전달합니다. |
|
|
|
레코드에 IPv6 주소를 지정합니다. 레코드를 만들 때 |
|
| 옵션 | 설명 | 예 |
|---|---|---|
|
|
단일 PTR 레코드 또는 PTR 레코드 목록을 전달합니다. 역방향 DNS 레코드를 추가할 때 |
|
|
| ||
|
| 레코드의 호스트 이름을 지정합니다. |
| 옵션 | 설명 | 예 |
|---|---|---|
|
|
단일 SRV 레코드 또는 SRV 레코드 목록을 전달합니다. 오른쪽에 있는 예제에서 _ldap._tcp 는 SRV 레코드에 대한 서비스 유형 및 연결 프로토콜을 정의합니다. |
|
|
| ||
|
| 레코드의 우선 순위를 설정합니다. 서비스 유형에 대한 SRV 레코드가 여러 개 있을 수 있습니다. 우선순위 (0 - 65535)는 레코드의 순위를 설정합니다. 숫자가 낮고 우선 순위가 높습니다. 서비스는 우선 순위가 가장 높은 레코드를 먼저 사용해야 합니다. |
|
|
| 레코드의 가중치를 설정합니다. 이렇게 하면 우선 순위가 동일한 SRV 레코드 순서를 결정하는 데 도움이 됩니다. 설정 가중치는 특정 레코드가 사용되는 확률(%)을 나타내는 최대 100개를 추가해야 합니다. |
|
|
| 대상 호스트에서 서비스의 포트를 제공합니다. |
|
|
| 대상 호스트의 도메인 이름을 지정합니다. 이는 도메인에서 서비스를 사용할 수 없는 경우 단일 기간(.)일 수 있습니다. |
8.3. Ansible을 사용하여 IdM에 A 및 AAAA DNS 레코드가 있는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 플레이북을 사용하여 특정 IdM 호스트의 A 및 AAAA 레코드가 있는지 확인하려면 다음 절차를 따르십시오. 아래 절차에 사용된 예에서 IdM 관리자는 idm.example.com DNS 영역에 host1 에 대한 A 및 AAAA 레코드가 있는지 확인합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다. - idm.example.com 영역이 존재하며 IdM DNS에서 관리합니다. IdM DNS에 기본 DNS 영역을 추가하는 방법에 대한 자세한 내용은 Ansible 플레이북을 사용하여 IdM DNS 영역 관리를 참조하십시오.
프로세스
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecord디렉토리로 이동합니다.$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecordensure-A-and-AAAA-records-are-present.yml Ansible 플레이북 파일의 사본을 만듭니다. 예를 들면 다음과 같습니다.
$ cp ensure-A-and-AAAA-records-are-present.yml ensure-A-and-AAAA-records-are-present-copy.yml- 편집을 위해 ensure-A-and-AAAA-records-are-present-copy.yml 파일을 엽니다.
freeipa.ansible_freeipa.ipadnsrecord작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.-
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. -
zone_name변수를 idm.example.com 으로 설정합니다. -
records변수에서name변수를 host1 로 설정하고a_ip_address변수를 192.168.122.123 로 설정합니다. records변수에서name변수를 host1 로,aaaa_ip_address변수를 ::1 로 설정합니다.현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
--- - name: Ensure A and AAAA records are present hosts: ipaserver become: true gather_facts: false tasks: # Ensure A and AAAA records are present - name: Ensure that 'host1' has A and AAAA records. freeipa.ansible_freeipa.ipadnsrecord: ipaadmin_password: "{{ ipaadmin_password }}" zone_name: idm.example.com records: - name: host1 a_ip_address: 192.168.122.123 - name: host1 aaaa_ip_address: ::1-
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-A-and-AAAA-records-are-present-copy.yml
8.4. Ansible을 사용하여 IdM에 A 및 PTR DNS 레코드가 있는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 플레이북을 사용하여 특정 IdM 호스트의 A 레코드가 해당 PTR 레코드와 함께 있는지 확인하려면 다음 절차를 따르십시오. 아래 절차에 사용된 예에서 IdM 관리자는 idm.example.com 영역에 IP 주소가 192.168.122.45 인 host1 의 A 및 PTR 레코드가 있는지 확인합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다. - idm.example.com DNS 영역이 존재하며 IdM DNS에서 관리합니다. IdM DNS에 기본 DNS 영역을 추가하는 방법에 대한 자세한 내용은 Ansible 플레이북을 사용하여 IdM DNS 영역 관리를 참조하십시오.
프로세스
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecord디렉토리로 이동합니다.$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecordensure-dnsrecord-with-reverse-is-present.yml Ansible 플레이북 파일의 사본을 만듭니다. 예를 들면 다음과 같습니다.
$ cp ensure-dnsrecord-with-reverse-is-present.yml ensure-dnsrecord-with-reverse-is-present-copy.yml- 편집을 위해 ensure-dnsrecord-with-reverse-is-present-copy.yml 파일을 엽니다.
freeipa.ansible_freeipa.ipadnsrecord작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.-
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. -
name변수를 host1 로 설정합니다. -
zone_name변수를 idm.example.com 으로 설정합니다. -
ip_address변수를 192.168.122.45 로 설정합니다. create_reverse변수를 true 로 설정합니다.현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
--- - name: Ensure DNS Record is present. hosts: ipaserver become: true gather_facts: false tasks: # Ensure that dns record is present - freeipa.ansible_freeipa.ipadnsrecord: ipaadmin_password: "{{ ipaadmin_password }}" name: host1 zone_name: idm.example.com ip_address: 192.168.122.45 create_reverse: true state: present-
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-dnsrecord-with-reverse-is-present-copy.yml
8.5. Ansible을 사용하여 IdM에 여러 DNS 레코드가 있는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 플레이북을 사용하여 여러 값이 특정 IdM DNS 레코드와 연결되어 있는지 확인하려면 다음 절차를 따르십시오. 아래 절차에 사용된 예에서 IdM 관리자는 idm.example.com DNS 영역에 host1 에 대한 여러 A 레코드가 있는지 확인합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다. - idm.example.com 영역이 존재하며 IdM DNS에서 관리합니다. IdM DNS에 기본 DNS 영역을 추가하는 방법에 대한 자세한 내용은 Ansible 플레이북을 사용하여 IdM DNS 영역 관리를 참조하십시오.
프로세스
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecord디렉토리로 이동합니다.$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecordensure-presence-multiple-records.yml Ansible 플레이북 파일을 복사합니다. 예를 들면 다음과 같습니다.
$ cp ensure-presence-multiple-records.yml ensure-presence-multiple-records-copy.yml- 편집을 위해 ensure-presence-multiple-records-copy.yml 파일을 엽니다.
freeipa.ansible_freeipa.ipadnsrecord작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.-
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. -
records섹션에서name변수를 host1 로 설정합니다. -
records섹션에서zone_name변수를 idm.example.com 으로 설정합니다. -
records섹션에서a_rec변수를 192.168.122.112 로 설정하고 192.168.122.122. records섹션에서 두 번째 레코드를 정의합니다.-
name변수를 host1 로 설정합니다. -
zone_name변수를 idm.example.com 으로 설정합니다. -
aaaa_rec변수를 ::1 로 설정합니다.
현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
-
--- - name: Test multiple DNS Records are present. hosts: ipaserver become: true gather_facts: false tasks: # Ensure that multiple dns records are present - freeipa.ansible_freeipa.ipadnsrecord: ipaadmin_password: "{{ ipaadmin_password }}" records: - name: host1 zone_name: idm.example.com a_rec: 192.168.122.112 a_rec: 192.168.122.122 - name: host1 zone_name: idm.example.com aaaa_rec: ::1-
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-presence-multiple-records-copy.yml
8.6. Ansible을 사용하여 IdM에 CNAME 레코드가 여러 개 있는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
Canonical Name record(CNAME 레코드)는 하나의 도메인 이름, 별칭을 다른 이름, 표준 이름에 매핑하는 DNS(Domain Name System)의 리소스 레코드 유형입니다.
단일 IP 주소(예: FTP 서비스 및 웹 서비스)에서 여러 서비스를 실행할 때 CNAME 레코드가 유용할 수 있습니다. 각각 다른 포트에서 실행됩니다.
Ansible 플레이북을 사용하여 IdM DNS에 여러 CNAME 레코드가 있는지 확인하려면 다음 절차를 따르십시오. 아래 절차에서 사용되는 예제에서 host03 은 HTTP 서버와 FTP 서버입니다. IdM 관리자는 idm.example.com 영역에 host03 A 레코드에 대한 Cryostat 및 ftp CNAME 레코드가 있는지 확인합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다. - idm.example.com 영역이 존재하며 IdM DNS에서 관리합니다. IdM DNS에 기본 DNS 영역을 추가하는 방법에 대한 자세한 내용은 Ansible 플레이북을 사용하여 IdM DNS 영역 관리를 참조하십시오.
- host03 A 레코드는 idm.example.com 영역에 있습니다.
프로세스
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecord디렉토리로 이동합니다.$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecordensure-CNAME-record-is-present.yml Ansible 플레이북 파일의 사본을 만듭니다. 예를 들면 다음과 같습니다.
$ cp ensure-CNAME-record-is-present.yml ensure-CNAME-record-is-present-copy.yml- 편집을 위해 ensure-CNAME-record-is-present-copy.yml 파일을 엽니다.
freeipa.ansible_freeipa.ipadnsrecord작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.-
선택 사항: 플레이
이름으로제공된 설명을 조정합니다. -
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. -
zone_name변수를 idm.example.com 으로 설정합니다. records변수 섹션에서 다음 변수와 값을 설정합니다.-
name변수를 Cryostat로 설정합니다. -
cname_hostname변수를 host03 으로 설정합니다. -
name변수를 ftp 로 설정합니다. -
cname_hostname변수를 host03 으로 설정합니다.
현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
-
--- - name: Ensure that 'www.idm.example.com' and 'ftp.idm.example.com' CNAME records point to 'host03.idm.example.com'. hosts: ipaserver become: true gather_facts: false tasks: - freeipa.ansible_freeipa.ipadnsrecord: ipaadmin_password: "{{ ipaadmin_password }}" zone_name: idm.example.com records: - name: www cname_hostname: host03 - name: ftp cname_hostname: host03-
선택 사항: 플레이
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-CNAME-record-is-present.yml
8.7. Ansible을 사용하여 IdM에 SRV 레코드가 있는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
DNS 서비스(SRV) 레코드는 도메인에서 사용할 수 있는 서비스의 호스트 이름, 포트 번호, 전송 프로토콜, 우선 순위 및 가중치를 정의합니다. RHEL IdM(Identity Management)에서는 SRV 레코드를 사용하여 IdM 서버 및 복제본을 찾을 수 있습니다.
Ansible 플레이북을 사용하여 IdM DNS에 SRV 레코드가 있는지 확인하려면 다음 절차를 따르십시오. 아래 절차에 사용된 예에서 IdM 관리자는 값이 10 50 88 idm.example.com 인 _kerberos._udp.idm.example.example.com SRV 레코드가 있는지 확인합니다. 이렇게 하면 다음 값이 설정됩니다.
- 서비스의 우선 순위를 10으로 설정합니다.
- 서비스의 weight를 50으로 설정합니다.
- 서비스에서 사용할 포트를 88으로 설정합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다. - idm.example.com 영역이 존재하며 IdM DNS에서 관리합니다. IdM DNS에 기본 DNS 영역을 추가하는 방법에 대한 자세한 내용은 Ansible 플레이북을 사용하여 IdM DNS 영역 관리를 참조하십시오.
프로세스
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecord디렉토리로 이동합니다.$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecordensure-SRV-record-is-present.yml Ansible 플레이북 파일의 사본을 만듭니다. 예를 들면 다음과 같습니다.
$ cp ensure-SRV-record-is-present.yml ensure-SRV-record-is-present-copy.yml- 편집을 위해 ensure-SRV-record-is-present-copy.yml 파일을 엽니다.
freeipa.ansible_freeipa.ipadnsrecord작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.-
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. -
name변수를 _kerberos._udp.idm.example.com 으로 설정합니다. -
srv_rec변수를 '10 50 88 idm.example.com' 로 설정합니다. zone_name변수를 idm.example.com 으로 설정합니다.현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
--- - name: Test multiple DNS Records are present. hosts: ipaserver become: true gather_facts: false tasks: # Ensure a SRV record is present - freeipa.ansible_freeipa.ipadnsrecord: ipaadmin_password: "{{ ipaadmin_password }}" name: _kerberos._udp.idm.example.com srv_rec: '10 50 88 idm.example.com' zone_name: idm.example.com state: present-
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-SRV-record-is-present.yml
9장. IdM에서 표준 DNS 호스트 이름 사용 링크 복사링크가 클립보드에 복사되었습니다!
잠재적인 보안 위험을 방지하기 위해 IdM(Identity Management) 클라이언트에서 DNS canonicalization은 기본적으로 비활성화되어 있습니다. 예를 들어 공격자가 DNS 서버와 도메인의 호스트를 제어하는 경우 공격자는 데모 와 같은 짧은 호스트 이름을 유발하여 악의적인.example.com 과 같은 손상된 호스트로 확인할 수 있습니다. 이 경우 사용자는 예상과 다른 서버에 연결합니다.
다음 절차에서는 IdM 클라이언트에서 표준 호스트 이름을 사용하는 방법을 설명합니다.
9.1. 호스트 주체에 별칭 추가 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 ipa-client-install 명령을 사용하여 등록한 IdM(Identity Management) 클라이언트는 서비스 주체에 짧은 호스트 이름을 사용할 수 없습니다. 예를 들어 사용자는 서비스에 액세스할 때 대신 host/demo.example.com@EXAMPLE.COM만 사용할 수 있습니다.
host/demo@EXAMPLE.COM
Kerberos 주체에 별칭을 추가하려면 다음 절차를 따르십시오. 또는 /etc/krb5.conf 파일에서 호스트 이름의 canonicalization을 활성화할 수도 있습니다. 자세한 내용은 클라이언트의 서비스 주체의 호스트 이름 활성화를 참조하십시오.
사전 요구 사항
- IdM 클라이언트가 설치되어 있어야 합니다.
- 호스트 이름은 네트워크에서 고유합니다.
프로세스
admin사용자로 IdM에 인증합니다.$ kinit admin호스트 주체에 별칭을 추가합니다. 예를 들어
demo. Cryostatle.com 호스트 주체에 데모 별칭을 추가하려면 다음을 수행합니다.$ ipa host-add-principal demo.example.com --principal=demo
9.2. 클라이언트의 서비스 주체에서 호스트 이름 활성화 링크 복사링크가 클립보드에 복사되었습니다!
클라이언트의 서비스 주체에서 호스트 이름을 사용할 수 있도록 하려면 다음 절차를 따르십시오.
- 참고
호스트 주체에 별칭 추가에 설명된 대로 호스트 주체 별칭을 사용하는 경우 canonicalization을 활성화할 필요가 없습니다.If you use host principal aliases, as described in Adding an alias to a host principal, you do not need to enable canonicalization.
사전 요구 사항
- IdM(Identity Management) 클라이언트가 설치되어 있습니다.
-
root사용자로 IdM 클라이언트에 로그인되어 있습니다. - 호스트 이름은 네트워크에서 고유합니다.
프로세스
/etc/krb5.conf파일의[libdefaults]섹션에서dns_canonicalize_hostname매개변수를false:로 설정합니다.[libdefaults] ... dns_canonicalize_hostname = true
9.3. DNS 호스트 이름 canonicalization이 활성화된 호스트 이름을 사용하는 옵션 링크 복사링크가 클립보드에 복사되었습니다!
클라이언트의 서비스 주체에서 호스트 이름 활성화에 설명된 대로 /etc/krb5.conf 파일에 dns_canonicalize_hostname = true 를 설정하면 서비스 주체에서 호스트 이름을 사용할 때 다음 옵션이 있습니다.
-
IdM(Identity Management) 환경에서는 호스트
/demo.example.com@EXAMPLE.COM와 같은 서비스 주체에서 전체 호스트이름을 사용할 수 있습니다. - IdM이 없는 환경에서는 RHEL 호스트가 AD(Active Directory) 도메인의 멤버인 경우 AD 도메인 컨트롤러(DC)가 AD에 등록된 시스템의 NetBIOS 이름에 대한 서비스 주체를 자동으로 생성하므로 추가 고려 사항이 필요하지 않습니다.
10장. BIND 로깅 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
IdM(Identity Management) 관리자는 BIND에서 로그를 쓰는 위치를 사용자 지정하고 SELinux가 해당 사용자 지정 경로에 액세스할 수 있도록 하여 가시성을 개선하고 보안을 유지 관리할 수 있습니다.
10.1. BIND 로그 경로 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
ipa-logging-ext.conf 파일을 사용하여 BIND 로그의 경로를 사용자 지정할 수 있습니다.
프로세스
/etc/named/디렉토리에서ipa-logging-ext.conf파일을 열고 파일 경로로 로깅 채널을 추가하거나 수정합니다.logging { channel ipa_custom_log { file "/var/log/named/ipa_dns_queries.log" versions 3 size 10m; severity info; print-time yes; print-severity yes; print-category yes; }; category queries { ipa_custom_log; }; category update { ipa_custom_log; }; category update-security { ipa_custom_log; }; };BIND 서버를 다시 시작합니다.
# systemctl restart named
10.2. BIND 사용자 지정 로깅을 위한 SELinux 정책 확장 링크 복사링크가 클립보드에 복사되었습니다!
SELinux 정책을 확장하여 BIND 로그를 포함할 수 있습니다.
프로세스
로그 디렉토리를 생성합니다.
# mkdir -p /var/log/named # chown named:named /var/log/named # chmod 750 /var/log/namednamed_log_tSELinux 컨텍스트를 새 디렉터리 및 로그 파일에 할당합니다.# semanage fcontext -a -t named_log_t "/var/log/named(/.)?"* # restorecon -Rv /var/log/namedBIND 서버를 다시 시작합니다.
# systemctl restart named
검증
사용자 정의 로그 파일을 표시합니다.
$ tail -f /var/log/named/ipa_dns_queries.log