
FreeIPA는 통합 인증을 위해 여러 오픈소스를 통합한 솔루션으로 다음과 같은 오픈소스로 구성된다.
cli, gui 모두 지원하고 ID관리와 인증을 동시에 처리할 수 있다. 일반적으로 네트워크를 통한 서비스는 다수의 시스템으로 구성되어 있고, 각각 로그인을 해야하지만 FreeIPA는 SSO(Single Sign On)을 지원하여 한번 로그인 한 사용자는 다시 로그인을 할 필요가 없다. 이는 LDAP과 Kerberos가 지원한다.
클라이언트가 네트워크를 통해 디렉토리 정보에 접근할 때 사용하는 TCP/IP 기반 프로토콜이다. 계층형 구조로 각 계층을 구성하는 노드는 Entry라고 하고, 다수의 속성이 포함되어 있다. 즉, Entry는 목록이고 속성은 Entry 관련 정보, 데이터를 의미한다.
네트워크 인증 프로토콜로 사용자 인증시 대칭키를 사용하고 네트워크를 통해 패스워드를 전송하지 않기 때문에 Sniffing 같은 공격을 방지할 수 있다는 장점이 있다. Kerberos는 클라이언트, 서버, KDC(Key Distribution Center) 등으로 구성되어 있다. 인증 과정은 위 그림과 같고 간단히 정리하면 아래와 같다.
74 sudo hostnamectl hostname ipa.toss.example.com
76 nmcli con show
77 dnf install ipa-server iap-server-dns
78 sudo dnf install ipa-server ipa-server-dns
81 sudo nmcli con add type ethernet con-name ipa-net ifname enp0s8 ipv4.addresses 10.0.2.100/24 ipv4.gateway 10.0.2.1 ipv4.method manual
82 sudo nmcli con up ipa-net
83 nmcli con show
84 sudo nmcli con up 4028441d-774a-45c1-a14e-bac697df4b72
87 nmcli con show
88 sudo vim /usr/local/
89 sudo vim /etc/host
90 tail -n1 /etc/host
91 sudo chronyc sources
92 ip addr
93 sudo ipa-server-install --setup-dns
95 sudo firewall-cmd --add-service={freeipa-ldap,freeipa-ldaps,dns,ntp}
96 sudo firewall-cmd --list-all
97 sudo firewall-cmd --add-service={freeipa-ldap,freeipa-ldaps,dns,ntp} --permanent
98 ls
99 sudo ls /root
100 kinit admin
101 klist
102 ipa
103 ipa config-show
먼저 ipa-server, ipa-server-dns를 설치 해주고 진행하자.
IPA 서버 구성을 위해 먼저 호스트 이름과 네트워크 IP를 설정하고 up옵션을 통해 설정한 네트워크 인터페이스를 활성화 시킨다.
/etc/host파일에 설정한 ip와 host를 추가 해준다. 그 후 sudo ipa-server-install --setup-dns 명령으로 서버를 설치한다. 이때 관리자 계정, 주요 서버 설정들을 하게 된다. 계정 설정 부분 외에는 그냥 다 yes로 넘어가면 된다.
설정이 완료되면 위와 같은 화면을 확인할 수 있다.
이후 방화벽 설정에도 ipa 관련 서비스들을 --permanent옵션으로 추가하면 서버 설정이 끝난다.
그리고 사용자를 위와 같이 추가할 수 있다.
75 sudo dnf -y install ipa-client
76 nmcli con show
77 hostnamectl hostname nfs.toss.example.com
78 sudo nmcli con add type ethernet ifname enp0s3 con-name static ipv4.addresses 10.0.2.200/24 ipv4.gateway 10.0.2.1 ipv4.dns 10.0.2.100 ipv4.method manual
79 nmcli con show
85 sudo nmcli con up 2cc638a9-cd19-49f7-816b-cc5568c1258e
86 nmcli con show
87 ipa-client-install --mkhomedir
88 sudo ipa-client-install --mkhomedir
Client 측 설정은 더 간단하다. 먼저 ipa-client를 설치하도록 하자.
설치가 완료되면 서버와 마찬가지로 호스트 이름을 등록하고 네트워크 인터페이스를 설정한다. 이때 Gateway는 서버와 동일하게 설정 해야한다.
이제 FreeIPA 서버에 클라이언트를 연결하는 작업을 해야한다. 이때 ipa-client-install --mkhomedir명령을 사용하고 User authorized to enroll computers: 에 설정한 admin의 이름을 넣고 패스워드를 입력하면 끝난다.
getent명령으로 서버측에서 확인해보면 클라이언트가 잘 등록됐음을 확인할 수 있다.
keytab 파일은 FreeIPA 서버에 연결된 시스템 간 인증시 서비스 목록과 암호화 방법을 담고 있는 파일이다.
먼저 kerberos 인증 사용을 위해 ipa service-add 명령으로 서비스를 등록 해준다.
ipa-getkeytab명령으로 등록한 서비스에 대한 keytab 파일을 생성 해준다.
klist명령에 -k옵션을 주면 등록된 서비스에 대한 keytab파일 정보를 확인 가능하고 -e옵션까지 입력하면 각 파일의 암호화 방식에 대해 확인도 가능하다.