커버 로스 간단한 설치 구성

커버 로스 간단한 설치 구성

태그 (공백으로 구분)의 Kerberos


첫째, 커버 로스의 간략한 역사

Kerberos는 아테나 프로젝트가 제공하는 네트워크 서버를 보호하기 위해, 첫째, 매사 추세 츠 공과 대학에서 개발 한 네트워크 인증 프로토콜의 보안입니다. 그리스 신화 문자 커버 로스 (또는 켈베로스) 이름을 가진 계약, 그는 그리스 신화에서 사나운 세 향하고 가드 개 신 하데스입니다.

커버 로스

인터넷은 매우 안전하지 않은 장소입니다. 인터넷에서 사용되는 대부분의 프로토콜은 보안을 제공하지 않습니다. 일부 사이트는 네트워크 보안 문제를 해결하기 위해 시도하는 방화벽을 사용합니다. 불행하게도, "나쁜 놈들"외부에있는 경우 방화벽은 종종 그것을 가정하는 것은 매우 어리석은 일이다. 현실은 대부분의 컴퓨터 범죄 파괴 이벤트가 내부에서 시작되는 것입니다.

보안 문제, 강력한 암호화 기술의 사용 등의 Kerberos 네트워크 솔루션은 그래서 클라이언트는 서버의 ID를 증명하기 위해 안전하지 않은 네트워크에 연결할 수 있습니다. 서로의 신원을 증명하기 위해 클라이언트와 서버가 사용하는 Kerberos를 한 후, 그들은 또한 데이터의 무결성과 개인 정보 보호를 위해 모든 통신을 암호화 할 수 있습니다. 그 지원의 클라이언트와 서버의 상호 인증 감속 암호화 기술을 기반으로 C / S 아키텍처를 사용하여 시스템 설계에서 Kerberos.

즉, Kerberos는 문제에 대한 네트워크 보안 솔루션입니다. 그것은 당신이 기업 전체의 정보 시스템을 보호하기 위해 웹 기반 도구로 강력한 암호화 및 인증을 제공합니다.

두, Kerberos를 기본 원칙

1, Kerberos 인증 원리

Kerberos는 사용자와 서비스 Kerberos 서버에 따라 접속하기위한 사용자의 희망이 서로를 인증되는 타사 인증 메커니즘이다. 이 메커니즘은 또한 사용자와 서비스 간의 모든 통신의 암호화를 지원한다. 키 분배 센터로 Kerberos 서버는 KDC라고도합니다. : 높은 수준에서, 그것은 세 부분으로 구성되어
1, 데이터베이스 사용자 및 서비스 (즉, 교장) 및 각각의 Kerberos 암호 :
초기 인증 및 발급 권한 부여 티켓 (TGT)을 수행, 2, 인증 서버 (AS)
3, 티켓 부여를 초기 TGT에 기반 서버 (TGS) 서비스 티켓 발행 후속 (ST)

도 17에 도시 된 관계 AS, TGS, 사용자 클라이언트 애플리케이션 서버 TGT와 ST의 상 :

image.png를-113KB

주요 사용자는 AS에서 인증 요청이 AS에서 Kerberos 주요 사용자의 TGT를 사용하여 암호화 된 비밀번호를 반환, 그것은 단지의 주요 사용자와 AS입니다. 사용자 주요 지역 사용의 Kerberos TGT를 해독하는 암호 및 법안이 만료 될 때까지이 지점에서 시작은 사용자 주체는 서비스 티켓 TGS에서 (ST)를 얻기 위해이 TGT를 사용할 수 있습니다.

시위 운동자 클라이언트 증명하기 위해 암호화 된 일련의 메시지를 사용하여 Kerberos 인증 시스템은 지정된 사용자에서 실행됩니다. 암호를 다시 입력 Kerberos를뿐만 아니라, 타임 스탬프 검증을 사용하여 기초를 필요로 메시지의 수를 줄이기 위해 "tikcket-부여"(TGS) 서비스가 다음 인증을 지원하는 데 사용됩니다 교장은 필요하지 않습니다.

처음에는, 클라이언트와 서버는 암호화 키를 공유하지 않았다. 새로운 클라이언트 컴퓨터 인증합니다 확인을 할 때마다 자체는 그대로 암호화 키의 새로운 세대에 의존하고 안전하게 서로를 배포합니다. 세션 키라고 불리는 새 암호화 키, Kerberos 티켓은 시위에 배포하는 데 사용됩니다.

서비스 주체가 항상 TGT의 암호를 해독 할 수있는 암호를 제공 할 수 없기 때문에,이 파일은 인증 및 권한 부여를 포함, 키 탭이라는 특수 파일을 사용합니다.
이는 주요 서비스 티켓은 다양한 서비스에 액세스 할 수 있습니다. Kerberos를 호스트 서버 제어 설정하고, 상기 서비스는 사용자 도메인 (영역)로 지칭된다.

2, 커버 로스 노트

사용자 이름 / FQDN (전체 Quafilied 도메인 이름) 호스트 이름 @REALM (보호 도메인, 모두 대문자)

물론, 이것은 사용자 이름이 리눅스 사용자에 존재해야합니다

FQDN 정규화 된 도메인 이름, 호스트 도메인을 제공하지 않는 경우, 도메인 이름을 쓸 수 없습니다, 물론,이 양식을 hostname.domain 가지고 확실하다. 어쨌든, 그 호스트 이름 호스트 이름 -f 출력되는 호스트 이름과 도메인 이름 (도메인 이름있는 경우), 모든입니다. 그러나 Kerberos를, 호스트 이름이라고하지만, 인스턴스라는 인스턴스 이름이되지 않는 사실, 그는 모든 호스트 서버의 이름을 수는 없지만, 쉽게 이해하고 우리는 여전히 그 원래의 호스트 이름을보고 얻을 것을 인식하는 것이 그것.

영역은 그 보호 커버 로스 도메인입니다 클래스 또는 Windows 도메인으로 상상할 수있는 커버 로스 서버 보호 서비스에 의해 그룹을 설정합니다. KDC에 동시에 여러 도메인을 보호 할 수 있습니다, 예를 들어, 당신은 단지 KDC 서버 그룹에 하둡을 보호 할 수 인해, 또한 보호 MYSQL 서버 그룹에, 우리가 일반적으로 구별하기 위해 도메인 이름을 사용할 수 있도록.

도메인 이름 내부의 호스트 이름을 사용하는 경우, 당신은 그렇지 않으면 호스트 이름 정보에 TGT 암호화 호스트 KDC의 정당성을 검증 할 수 없습니다, 교장의 두 번째 부분을 작성해야합니다.

또한, 특별한주의는, 도메인 (도메인 이름)은 두 번째 부분, 영역 (도메인) 중국어 영어 단어에서 동일하지만, 완전히 다른에 단어의 세 번째 부분은 완전하게 표현하는 의미가있다 다른. Kerberos 영역은 일반적 형태로 기록됩니다 도메인 이름의 일부이기 때문에, 혼동되지만 사실,이 도메인이 가능 내부 작업 그룹이나 집 창문의 영역의 한 부분으로 이해했다. 이름은 쉽게 실제 도메인 이름으로 반드시, 재생할 수 있습니다. 그냥 코드 이름은 서비스의 다른 세트를 구분합니다.

참고 : Kerberos 프로토콜은 시간에 민감한이며, 도메인의 모든 호스트는 시간 동기화해야합니다. 작은 5로 분, 클라이언트 힘 인증 실패로 클라이언트와 KDC 사이에도 로컬 시스템 시간 차이.

세, KDC 서비스 설치 및 구성

호스트가 분석 할 수 있는지 확인하십시오

호스트 이름 -f 호스트 이름 호스트 파일은 FQDN 형식 (호스트 파일에 따라 경우)에 인수되고, 커버 로스 호스트 FQDN 형식 요구 사항은 소문자로 지정해야합니다.
따라서, 호스트는 다음과 같은 형식으로 파일 :

ip vecs02583.domain.com vecs02583

당신이 긴 domain.com 도메인처럼하지 않는 경우, 호스트 이름이 소문자이어야 주목해야합니다.
모든 클라이언트와 서버 사이의 시간 동기화 및 DNS가 제대로 해결되었는지 확인합니다.

2, 설치 KDC 서비스

KDC 호스트 자체는 매우 안전한 보통에만 KDC 호스트 프로그램을 실행합니다.
위의 소프트웨어를 설치 한 후, 구성 파일은 KDC /var/kerberos/krb5kdc/kdc.conf /etc/krb5.conf 및 호스트에서 생성 된 각각의 영역 이름과 도메인 간 영역 매핑을 반영합니다.
아래에서 vecs02583를 입력 루트 사용자의 (KDC 서버 노드는 노드입니다)

yum -y install krb5-server krb5-libs krb5-auth-dialog krb5-workstation openldap-clients

3 주 구성 파일 /etc/krb5.conf 수정이 낮은 프로파일은 모든 후속 Kerberos 클라이언트 서버에 배포됩니다.

/etc/krb5.conf : 구성 정보 Kerberos는 포함되어 있습니다. 예를 들어, KDC 위치, 관리자의 Kerberos와 같은 영역. 필요에 프로필은 모든 시스템이 커버 로스 서버 및 Kerberos 클라이언트 기계를 포함하여, 동기 Kerberos를 사용합니다. 이름에 단지 기본 구성이 필요합니다.
구성 예 :

정력 /etc/krb5.conf

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log
[libdefaults]
 default_realm = HADOOP.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
[realms]
 HADOOP.COM = {
  kdc = vecs02583
  admin_server = vecs02583
 }
[domain_realm]
 .hadoop.com = HADOOP.COM
 hadoop.com = HADOOP.COM

설명 :
[기록]이 :의 위치 로그 인쇄 서버 측을 나타냅니다
[의 libdefaults] : 각 연결의 기본 구성은 다음과 같은 키 작은 구성에 관심을 지불 할 필요
에 default_realm = HADOOP.COM 기본 영역, 이름이의 영역으로 구성해야합니다 일관된.
udp_preference_limit = 1에서 오류 하둡 UDP의 사용을 금지하는 것을 방지 할 수있다
, 일반적으로, 유효 시간이 24 시간을 oticket_lifetime 인증서.
orenew_lifetime 증거 긴 시간 제한은 일반적으로 일주일 동안, 연기 될 수 있습니다 보여줍니다. 인증서가 만료되면,
보안 인증 서비스에 대한 후속 액세스가 실패합니다.
KDC : 위치에 KDC 대표. 포트 : 형식은 기계
대신 위치에 대한 관리자 : admin_server. 형식은 기계 : 포트
default_domain으로 : 기본 도메인 이름을 나타냅니다.

4 구성 kdc.conf

/var/kerberos/krb5kdc/kdc.conf에 기본. 또는 KRB5_KDC_PROFILE 환경 변수를 덮어 구성 파일의 위치를 수정합니다.
정력 /var/kerberos/krb5kdc/kdc.conf

[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88
[realms]
 HADOOP.COM = {
  #master_key_type = aes256-cts
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }

설명 :
HADOOP.COM : 영역의 집합. 무작위 이름을 지정합니다. Kerberos를 여러 영역을 지원할 수 있습니다, 그것은 복잡성을 증가시킬 것이다. 이 문서에서는 설명하지 않습니다. 대소 문자를 구분, 일반적으로 모두 대문자를 식별하는 데 사용. 더 중요한 관계 호스트 시스템의 영역.
max_renewable_life는 = 7D renwe 티켓을 구성해야하는지에 관한 것이다.
master_key_type : supported_enctypes 및 사용 AES256-CTS 기본. JAVA는 AES256-CTS에게 인증 요구를 사용하기 때문에 AES-256 암호화에 대한 추가 2.2.9 단지 패키지, 상기 참조를 설치하려면 그것은 사용하지 않는 것이 좋습니다.
acl_file : 관리자 사용자 권한을 표시했다. 파일 형식은
Kerberos_principal 권한 [target_principal [제한]지지 와일드 등.
admin_keytab : KDC는 키 탭 확인합니다. 내가 만드는 방법을 나중에 언급 할 것이다.
supported_enctypes는 : 체크 모드를 지원. 참고 추가 항아리 설치 JDK를 필요로 AES256은-CTS.

다섯 번째는, Kerberos 데이터베이스를 초기화 / 생성

초기화 및 시작 : 두 개의 구성 파일 위를 완료 한 후에는 초기화 및 시작할 수 있습니다.

[root@VECS02583 ~]# /usr/sbin/kdb5_util create -s -r HADOOP.COM

상기 [- (S)]는 생성 숨김 파일 저장 마스터 서버 키 (krb5kdc)을 나타내고, 또한 영역 이름을 지정하는 [-r]를 사용하여 - krb5.conf의 항에 복수의 영역이 필요한 경우 가.
저장 경로는 / var / 커버 로스 / krb5kdc 데이터베이스를 다시 작성해야하는 경우, 디렉토리 관련 파일의 주요 삭제할 수 있습니다
이 과정에서, 우리는 데이터베이스 암호 관리를 입력합니다. 암호 세트는 여기에 당신이 잊어 버린 경우에는 Kerberos 서버를 관리 할 수 없습니다 기억해야합니다.
Kerberos 데이터베이스가 생성 될 때, 당신은 디렉토리를 볼 수는 / var / 커버 로스 / krb5kdc 팽창하는 여러 개의 파일로 :

-rw------- 1 root root   22 Nov 23  2016 kadm5.acl
-rw------- 1 root root  405 Feb 23 20:25 kdc.conf
-rw------- 1 root root 8192 Feb 23 22:26 principal
-rw------- 1 root root 8192 Feb 23 21:56 principal.kadm5
-rw------- 1 root root    0 Feb 23 21:56 principal.kadm5.lock
-rw------- 1 root root    0 Feb 23 22:26 principal.ok

여섯, 추가 KDC 데이터베이스 관리자

우리는 관리 주체를 추가해야합니다 (즉, 교장의 데이터베이스를 관리 할 수있는 기능) Kerberos 데이터베이스에 대한 - 적어도 네트워크에 kadmin의 프로그램과 통신 할 수 kadmind를의 관리 프로세스를 만들 수있는 Kerberos 주체를 추가 할 수 있습니다.
마스터 KDC (vecs02583)에 수행 :

/usr/sbin/kadmin.local -q "addprinc admin/admin"

그리고 암호를 설정합니다.

kadmin.local는
, Kerberos 인증에 의해 처음없이, 마스터 KDC에서 직접 실행 할 수 있습니다 사실, 그것은 단지 현재에 필요
파일을 읽고 쓰기 액세스 할 수 있습니다.

세븐, 데이터베이스 관리자의 ACL 권한을 설정

권한을 설정은 ACL에 KDC에 우리가 편집에 파일을 필요 파일의 ACL 기본 경로는 (또한 kdc.conf에서 파일을 수정할 수 있습니다) /var/kerberos/krb5kdc/kadm5.acl입니다. Kerberos는 kadmind를 데몬이 Kerberos 데이터베이스에 대한 액세스를 관리하려면이 파일을 사용합니다. 그 작업이 pincipal 영향을 미칠 수 있습니다 들어있는 주요 ACL 파일은 다른 pricipals가 작동 할 수있는 제어 할 수 있습니다.

파일 /var/kerberos/krb5kdc/kadm5.acl 편집의 내용 : 이제 우리는 관리자 권한을 설정이다

정력 /var/kerberos/krb5kdc/kadm5.acl

*/[email protected]

이름 매칭 /[email protected]을 나타냅니다하는 관리, 권한 예로 간주됩니다. 모든 권한을 대신하여.

여덟, Kerberos는 시작하고 설정 백그라운드 프로세스는 데몬이다

마스터에서 시작 커버 로스 데몬 KDC

[root@VECS02583 /]# service krb5kdc start
[root@VECS02583 /]# service kadmin start

시작시

[root@VECS02583 /]# chkconfig krb5kdc on
[root@VECS02583 /]# chkconfig kadmin on

KDC는 직장에서 지금있다. 이 두 데몬 당신은 자신의 로그 파일 (/var/log/krb5kdc.log 및 /var/log/kadmind.log)를 볼 수 있습니다 백그라운드에서 실행됩니다.
kinit 명령이 제대로 작동이 데몬 확인할 수 있습니다.

나인, AES-256의 암호화

centos5, 6 위 시스템의 경우, AES-256의 기본을 사용하여 암호화. 이 클러스터의 모든 노드가 자바 암호화 확장 기능 (JCE) 무제한 강도 설치해야합니다 관할 정책 파일.
$ JAVA_HOME / JRE / lib 디렉토리 / : 다운로드 한 파일은 압축 가방, 비구 속성, 다음 디렉토리에 두 파일의 내부입니다 보안

구성 JCE, 설치하고 모든 노드를 기본적으로 AES-256 암호화를 사용하여 필요 CentOS6.5 때문에 시스템 위의 구성 JCE, JCE의 다운로드 경로 : http://www.oracle.com/technetwork/java/javase/downloads/ jce8 다운로드-2133166.html

10 가지 클러스터의 다른 Kerberos 클라이언트 구성

Kerberos 클라이언트는 다음 설치 기계를 사용하는

yum install krb5-workstation krb5-libs krb5-auth-dialog

구성은 krb5.conf
구성 /etc/krb5.conf 이러한 호스트에서 KDC 파일과이 파일의 내용이 일치 될 수 있습니다.

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = HADOOP.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 HADOOP.COM = {
  kdc = vecs02583
  admin_server = vecs02583
 }

[domain_realm]
 .hadoop.com = HADOOP.COM
 hadoop.com = HADOOP.COM

추천

출처www.cnblogs.com/hit-zb/p/12534426.html