유연한 리눅스 인증의 열쇠, ‘PAM’
상태바
유연한 리눅스 인증의 열쇠, ‘PAM’
  • Network Computing
  • 승인 2002.05.17 00:00
  • 댓글 0
이 기사를 공유합니다

오늘날에는 기업에서 데스크탑에 있는 리눅스 사용자를 지원해야 하는 경우가 많아지고 있으며, 특히 ‘파워 유저’로 알려진 직원들 사이에서는 더욱 그러하다. 한때 리눅스는 하나의 변절한 플랫폼이었다. 비록 다양한 네트워크/서비스 인증 및 액세스 메커니즘과 상호운용이 가능하고, 마이크로소프트 윈도, 유닉스 및 애플 매킨토시 플랫폼과 파일을 공유할 수도 있지만, 이러한 상호운용성은 그리 중요하게 부각되지 못했다. 하지만 이제 시대는 바뀌고 있다.

기업 환경의 리눅스 사용자들의 경우에는 파일을 안전하게 공유할 수 있는(다른 유닉스 사용자와 윈도 사용자 양쪽 모두와) 능력이란 여전히 리눅스용 패스워드 한 세트와 다른 플랫폼용 한 세트를 기억하는 것을 의미한다. 하지만, 보다 나은 방법도 있다. 즉, 리눅스 사용자가 윈도 NT 도메인에 대한 보안 인증을 확보할 수 있도록 시스템을 셋업할 수 있다. 여기서 이들은 리눅스 계정과 별도의 NT 도메인 계정이 필요치 않을 것이다. 이것은 네트워크 운영자로서의 생활을 한층 수월하게 해주며, 파워 유저를 더욱 행복하게 해준다.

인증 對 계정 관리

인증은 시스템이 사용자의 신원을 확인하는 절차다. 액세스 제어는 인증 후 무엇이 허가되는지를 결정한다. 인증은 종종 계정이라는 개념과 밀접히 연관된 경우가 많으며, 계정은 일반적으로 하나의 고유한 식별기(identifier)에 결합된 한 세트의 정보를 말한다. 이 정보에는 보통 누군가가 시스템 자원을 사용할 수 있도록 하는 데 필요한 데이터가 포함돼 있다. 예를 들어, 이것은 사용자의 인적 파일이 위치나 사용자의 실제 이름을 제공한다. 여기에는 환경적 변수와 자원 제한이 포함될 수 있다. 우리는 주로 인증 서비스와 프로토콜에 초점을 둘 것이다.

대부분의 최근 리눅스 배포판들은 PAM(Pluggable Authentication Module)을 사용하며, 이것은 유연한 인증에서 열쇠가 된다. PAM은 사용자를 서비스로 인증하는 프로세스를 모듈화시키도록 만들어진 하나의 ASP다. 이것은 썬 마이크로시스템스에 의해 개발되었으며, 리눅스(특히 레드햇, 드비안 및 수세), FreeBSD 및 NetBSD 등 다양한 무료 운영시스템에서 가장 폭넓게 사용되고 있지만, 최근의 썬 솔라리스, 아이비엠 AIX, 휴렛팩커드의 HP-UX 및 애플 맥 OS X 버전에도 포함돼 있다.

레드햇에서의 PAM

우리는 PAM 시스템을 이용해 수많은 인증 소스들에 대해 어떻게 인증을 하는지를 보여주고자 한다. 하지만 우선 레드햇 리눅스 7.2 시스템에 설치될 때의 PAM에 대해 살펴보자(어떠한 PAM 인지 시스템에서건 같은 기법이 적용될 것이다).

어떠한 서비스든 인증용으로 PAM을 사용할 수 있다. 서비스는 사용자를 대신해 인증을 수행할 필요가 있는 애플리케이션의 또 다른 이름에 불과하며, 그 예로는 로그인, FTP 및 POP 등이 있다. 서비스가 특히 PAM을 사용하도록 만들어져야 한다는 사실을 기억하라. 레드햇 7.2에서는 인증을 수행하는 모든 애플리케이션이 PAM을 사용한다. 그림에서처럼 명령어를 입력함으로써, 주어진 실행가능 프로그램들(예를 들어 사용자의 신원을 확인하기 위해 텔넷 서비스에 의해 사용되는 로그인 등)이 libpam이라는 PAM 라이브러리를 사용하고 있는지를 점검, 이들이 PAM을 사용하는지 확인할 수 있다.

사태를 약간 더 복잡하게 만드는 것은 애플리케이션이 PAM을 통해 인증을 할 수 있다고 하더라도 그럴 필요가 없을 수도 있다는 사실이다. 이는 즉, 애플리케이션이 이것을 구성 옵션으로 남겨둘 것이라는 얘기다. 삼바(Samba)와 아파치(Apache)는 모두 PAM을 제공하긴 하지만 PAM 사용을 요구하지 않는다.

각각의 서비스용으로, /ect/pam.d/directory에는 하나의 파일이 있다. 이 파일에는 인증 및 계정 정보가 이 서비스용으로 확보될 방법에 대한 규정이나 명령어가 라인당 하나씩 포함돼 있다. 이런 파일들은 그림 에 나열돼 있다.

세 번째 칸의 모듈은 어떠한 인증 메커니즘을 이용하는 PAM 인지 라이브러리다. 옵션인 네 번째 칸은 인증 모듈에 대한 인수(argument)며, 그 모듈에만 해당되는 것이다. 모듈은 규정이 액세스를 허용하는지 아니면 거부하는지를 결정하기 위해 실행되는 프로그램이다.

여기에는 auth, account, password 및 session 등 네 가지 종류가 가능하다. auth는 서비스가 사용자를 인증하려 시도할 때 이 라인이 사용돼야 하는지를 지정한다. account는 서비스가 사용자 아이디와 같은 계정 정보를 필요로 할 때 사용된다. password는 서비스가 사용자의 password를 바꾸려할 때 사용되며, session은 사용자 로그인 바로 전에, 그리고 사용자 로그아웃 바로 후에 서비스에 의해 사용된다. 이것은 감사 로그를 만들어내는 데 편리할 뿐만 아니라, 다양한 환경 설정을 셋업하거나, 네트워크 디스크 드라이브를 장착하는 데도 사용될 수 있다. 각 종류마다 한 가지 이상이 허용되며, 이들은 라인들 중 하나에 필수항목 제어가 있지 않는 한 순서대로 따라오게 될 것이다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.