728x90
반응형
Kerberos란?
Kerberos는 컴퓨터 네트워크에서 안전한 인증을 제공하는 프로토콜입니다. 주로 네트워크 내에서 사용자 및 서비스 간에 안전하게 인증 정보를 교환하기 위해 사용됩니다. Kerberos는 사용자와 서비스가 네트워크를 통해 통신할 때, 암호화된 인증을 통해 데이터가 안전하게 전달되도록 도와줍니다.
Kerberos의 주요 특징은 티켓 기반 인증 시스템을 사용하여 비밀번호를 네트워크를 통해 전송하지 않고도 사용자 인증을 수행한다는 점입니다. 이 시스템은 암호화된 티켓을 사용하여 인증을 처리하고, 비밀번호를 네트워크상에서 전달하지 않기 때문에 보안성이 뛰어납니다.
Kerberos의 구성 요소
- KDC (Key Distribution Center): Kerberos의 중앙 인증 서버로, 인증서버(Kerberos Authentication Server, AS)와 티켓 발급서버(Ticket Granting Server, TGS)로 구성됩니다.
- Authentication Server (AS): 사용자 인증을 담당하며, 초기 인증을 처리하고 티켓을 발급합니다.
- Ticket Granting Server (TGS): 사용자가 서비스에 접근할 때 필요한 서비스 티켓을 발급합니다.
- Client (사용자): 네트워크를 통해 서비스에 접근하려는 사용자입니다. 사용자는 인증을 요청하고, 티켓을 받아서 서비스를 이용합니다.
- Service: Kerberos 인증을 사용하는 서비스들로, 각 서비스는 자신만의 티켓을 필요로 합니다.
- Ticket: 사용자가 인증을 받을 때 발급되는 암호화된 데이터로, 사용자와 서비스 간의 신뢰를 제공합니다. 서비스 티켓은 사용자가 접근하려는 서비스에 대한 인증을 나타냅니다.
Kerberos의 작동 원리
Kerberos는 인증을 위한 다음과 같은 절차를 따릅니다:
- 초기 인증 요청 (AS 요청):
- 사용자가 Kerberos 인증 서버에 아이디와 비밀번호를 입력하여 인증을 요청합니다.
- 인증서버(AS)는 사용자가 올바른 자격을 갖춘 사람인지 확인하고, 티켓을 발급합니다. 이 티켓은 암호화되어 있으며, 사용자는 이를 통해 네트워크 상에서 인증을 받을 수 있습니다.
- 티켓 발급 (TGS 요청):
- 사용자는 인증을 완료한 후, 서비스를 이용하려면 추가적인 티켓이 필요합니다. 이 티켓을 발급해주는 역할을 하는 것이 **티켓 발급 서버(TGS)**입니다.
- 사용자는 서비스에 대한 접근을 요청하며 TGS에서 서비스에 필요한 서비스 티켓을 받습니다.
- 서비스 접근:
- 사용자는 발급받은 서비스 티켓을 가지고 서비스에 접근하고, 서비스를 제공하는 서버는 이 티켓을 확인하여 사용자 인증을 마칩니다.
Kerberos 예시
예시 1: Kerberos 설치 및 설정 (Ubuntu/Debian 기준)
- Kerberos 서버 설치 (KDC, AS, TGS)
sudo apt update sudo apt install krb5-kdc krb5-admin-server - 먼저, Kerberos 서버인 KDC를 설치해야 합니다.
- Kerberos 설정 파일 구성
파일을 열고 아래와 같이 설정을 추가합니다:sudo vi /etc/krb5.conf - [libdefaults] default_realm = EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = false [realms] EXAMPLE.COM = { kdc = kerberos.example.com admin_server = kerberos.example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM
- /etc/krb5.conf 파일을 수정하여 Kerberos 도메인 및 KDC 서버를 설정합니다.
- Kerberos 데이터베이스 초기화
이 명령은 Kerberos 데이터베이스를 설정하고, 관리자가 사용할 비밀번호를 입력하도록 요구합니다.sudo krb5_newrealm - Kerberos 데이터베이스를 초기화합니다.
- 사용자 추가
user1 사용자에 대해 비밀번호를 설정합니다.sudo kadmin.local kadmin.local: addprinc user1 - Kerberos 서버에 사용자를 추가하려면 kadmin.local 명령어를 사용합니다.
예시 2: Kerberos 클라이언트 설정
- Kerberos 클라이언트 설치
sudo apt install krb5-user - 클라이언트 시스템에서도 Kerberos 클라이언트 패키지를 설치해야 합니다.
- 클라이언트 설정 파일 구성
서버와 동일한 realms 및 kdc 설정을 추가합니다.sudo vi /etc/krb5.conf - /etc/krb5.conf 파일을 수정하여, 서버와 동일한 Kerberos 도메인을 사용하도록 설정합니다.
- Kerberos 인증 받기
비밀번호를 입력하면, Kerberos 서버에서 인증을 완료하고 티켓을 발급받습니다.kinit user1 - 클라이언트에서 kinit 명령어를 사용하여 Kerberos 인증을 요청합니다.
- 티켓 확인
klist - 인증이 성공하면, klist 명령어를 사용하여 티켓을 확인할 수 있습니다.
Kerberos 사용 예시
Kerberos는 네트워크에서 다양한 서비스의 인증을 위해 사용됩니다. 예를 들어, 파일 서버, 웹 서버, SSH 서버 등에서 Kerberos 인증을 활용할 수 있습니다.
예시: SSH에서 Kerberos 인증 사용
- SSH 서버에서 Kerberos 인증 활성화
다음 줄을 추가하여 Kerberos 인증을 활성화합니다.sudo vi /etc/ssh/sshd_config - KerberosAuthentication yes KerberosOrLocalPasswd yes
- SSH 서버에서 Kerberos 인증을 사용하려면 /etc/ssh/sshd_config 파일을 수정해야 합니다.
- SSH 클라이언트에서 Kerberos 인증 사용
이 경우, 사용자는 Kerberos 인증을 통해 SSH 서버에 인증되고, 비밀번호를 입력하지 않고도 접속할 수 있습니다.ssh user1@kerberos-server.example.com - 클라이언트에서 Kerberos 인증을 통해 SSH 서버에 접속하려면, Kerberos 티켓을 받은 후 ssh 명령어를 사용합니다.
결론
Kerberos는 티켓 기반의 인증 시스템으로, 비밀번호를 네트워크 상에 전송하지 않고도 안전한 인증을 제공하는 강력한 보안 프로토콜입니다. 이를 통해 사용자는 여러 서비스에 대해 한 번의 인증으로 여러 번의 접근을 할 수 있습니다. Kerberos는 다양한 시스템과 서비스에서 보안 강화를 위한 인증 방법으로 널리 사용되고 있습니다.
반응형
'OS > Linux' 카테고리의 다른 글
| 기본 디렉토리 구조와 역할 및 로그 종류 (3) | 2025.07.21 |
|---|---|
| NAS 서버 (1) | 2025.03.27 |
| Remote Log Server (0) | 2025.03.26 |
| DHCP (0) | 2025.03.26 |
| NTP 설정 및 활용 (0) | 2025.03.26 |