4.10.3. SELinux를 사용하여 Enforcing 모드에서 Tang Server 배포
Red Hat Enterprise Linux 7.7 이상에서는
tangd_port_t
SELinux 유형을 제공하며 Tang 서버를 SELinux 강제 모드로 제한된 서비스로 배포할 수 있습니다.
사전 요구 사항
- policycoreutils-python-utils 패키지 및 해당 종속 항목이 설치됩니다.
절차
- tang 패키지 및 해당 종속 항목을 설치하려면
root
로 다음 명령을 입력합니다.~]# yum install tang
- (예: 7500/tcp ) .occupied 포트를 선택하고 tangd 서비스가 해당 포트에 바인딩되도록 허용합니다.
~]# semanage port -a -t tangd_port_t -p tcp 7500
포트는 한 번에 하나의 서비스에서만 사용할 수 있으므로 이미 사용되고 있는 포트를 사용하려는 경우ValueError를 의미합니다. 포트가 이미 정의된
오류 메시지입니다. - 방화벽에서 포트를 엽니다.
~]# firewall-cmd --add-port=7500/tcp ~]# firewall-cmd --runtime-to-permanent
- systemd를 사용하여
tangd
서비스를 활성화합니다.~]# systemctl enable tangd.socket Created symlink from /etc/systemd/system/multi-user.target.wants/tangd.socket to /usr/lib/systemd/system/tangd.socket.
- 덮어쓰기 파일을 생성합니다.
~]# systemctl edit tangd.socket
- 다음 편집기 화면에서
/etc/systemd/system/tangd.socket.d/
디렉터리에 있는 빈override.conf
파일을 열고 다음 행을 추가하여 Tang 서버의 기본 포트를 80에서 이전에 선택한 숫자로 변경합니다.[Socket] ListenStream= ListenStream=7500
파일을 저장하고 편집기를 종료합니다. - 변경된 구성을 다시 로드하고
tangd
서비스를 시작합니다.~]# systemctl daemon-reload
- 구성이 작동하는지 확인합니다.
~]# systemctl show tangd.socket -p Listen Listen=[::]:7500 (Stream)
tangd
서비스를 시작합니다.~]# systemctl start tangd.socket
tangd
는 systemd
소켓 활성화 메커니즘을 사용하므로 첫 번째 연결이 들어오는 즉시 서버가 시작됩니다. 새로 생성된 암호화 키 세트는 처음 시작할 때 자동으로 생성됩니다.
수동 키 생성과 같은 암호화 작업을 수행하려면 jose 유틸리티를 사용합니다. jose -h 명령을 입력하거나
jose(1)
매뉴얼 페이지를 참조하십시오.
예 4.4. Tang 키 교체
정기적으로 키를 순환하는 것이 중요합니다. 회전해야하는 정확한 간격은 애플리케이션, 키 크기 및 기관 정책에 따라 다릅니다. 몇 가지 일반적인 권장 사항은 Cryptographic Key Length Recommendation 페이지를 참조하십시오.
키를 회전하려면 키 데이터베이스 디렉터리(일반적으로
/var/db/tang
)에서 새 키 생성으로 시작합니다. 예를 들어 다음 명령으로 새 서명을 생성하고 키를 교환할 수 있습니다.
~]# DB=/var/db/tang ~]# jose jwk gen -i '{"alg":"ES512"}' -o $DB/new_sig.jwk ~]# jose jwk gen -i '{"alg":"ECMR"}' -o $DB/new_exc.jwk
이전 키의 이름을 지정하여 앞에
.
을 지정하여 광고에서 숨깁니다. 다음 예제의 파일 이름은 키 데이터베이스 디렉터리의 실제 및 고유한 파일 이름과 다릅니다.
~]# mv $DB/old_sig.jwk $DB/.old_sig.jwk ~]# mv $DB/old_exc.jwk $DB/.old_exc.jwk
Tang은 모든 변경 사항을 즉시 선택합니다. 다시 시작하지 않아도 됩니다.
이 시점에서 새 클라이언트 바인딩은 새 키를 선택하고 이전 클라이언트는 이전 키를 계속 사용할 수 있습니다. 모든 이전 클라이언트가 새 키를 사용해야 하는 경우 이전 키를 제거할 수 있습니다.
주의
클라이언트가 계속 사용하는 동안 이전 키를 제거하면 데이터 손실이 발생할 수 있습니다.
4.10.3.1. 고가용성 시스템 배포
Tang은 고가용성 배포를 구축하기 위한 두 가지 방법을 제공합니다.
- 클라이언트 중복(권장)클라이언트는 여러 Tang 서버에 바인딩할 수 있는 기능을 사용하여 구성해야 합니다. 이 설정에서 각 Tang 서버에는 고유한 키가 있으며 클라이언트는 이러한 서버의 하위 집합에 연결하여 암호를 해독할 수 있습니다. Clevis는 이미
sss
플러그인을 통해 이 워크플로를 지원합니다.이 설정에 대한 자세한 내용은 다음 도움말 페이지를 참조하십시오.Tang(8)
, High Availability 섹션Clevis(1)
, Shamir의 시크릿 공유 섹션clevis-encrypt-sss(1)
Red Hat은 고가용성 배포에 이 방법을 권장합니다. - 키 공유중복성을 위해 Tang의 인스턴스를 두 개 이상 배포할 수 있습니다. 두 번째 또는 후속 인스턴스를 설정하려면 tang 패키지를 설치하고 SSH를 통해 rsync 를 사용하여 키 디렉터리를 새 호스트에 복사합니다. 키를 공유할 경우 키 손상의 위험이 증가하고 추가 자동화 인프라가 필요하므로 이 방법을 사용하지 않는 것이 좋습니다.