주식회사 누리아이티

정보자산의 보안강화를 위한 다계층 인증SW (BaroPAM) 전문기업.

▶ BaroSolution/가이드

정보자산의 보안강화를 위하여 다계층 인증을 위한 BaroPAM 솔루션의 설치 가이드(Mac OS X)

누리아이티 2023. 3. 6. 10:42

목차
 
1. BaroPAM 설치
1.1 BaroPAM 설치 전 준비사항
1.2 BaroPAM 설치 모듈 다운로드
1.3 BaroPAM 환경 설정 파일 생성
1.4 BaroPAM 환경 설정

 

2. BaroPAM 적용
2.1 BaroPAM 적용 프로세스
2.2 BaroPAM 적용 화면
2.3 Mac OS X 로그인 방법
2.4 ssh/sftp 접속 툴

3. BaroPAM 제거

3.1 BaroPAM 환경 제거
 
4. BaroPAM FAQ

 

5. About BaroPAM

 

 

 

 

1. BaroPAM 설치

1.1 BaroPAM 설치 전 준비사항

Mac OS X는 애플에서 만든 모바일 CPU 아키텍쳐(arm64), 인텔에서 만든 CPU 아키텍쳐인 X86으로 구분하는데, 다음의 명령어를 실행하여 확인한다.

 

참고) 애플에서 만든 모바일 CPU 아키텍쳐인 arm64인 경우

 

[root] /root > uname -a
Darwin igoun-ui-MacBookAir.local 22.3.0 Darwin Kernel Version 22.3.0: Mon Jan 30 20:39:35 PST 2023; root:xnu-8792.81.3~2/RELEASE_ARM64_T8103 arm64

 

참고) 인텔에서 만든 CPU 아키텍쳐인 X86인 경우

 

[root] /root > uname -a
Darwin lamp_macos1 22.3.0 Darwin Kernel Version 22.3.0: Mon Jan 30 20:42:11 PST 2023; root:xnu-8792.81.3~2/RELEASE_X86_64 x86_64

 

정보자산에 접속하여 PAM 모듈을 사용하기 위해서는 신뢰성 있고 안전한 ssh, sftp 서비스를 제공하기 위하여 OpenSSH(Open Secure Shell) 패키지가 반드시 설치되어 있어야 한다. 설치 확인은 다음의 명령어를 실행하여 확인한다. 만약, 설치되어 있지 않으면 "brew install openssh""brew install openssl"를 설치하면 된다.

 

[root] /root > ssh -V
OpenSSH_9.0p1, LibreSSL 3.3.6

 

PAM 인증 중 환경 설정 정보를 MariaDB에 설정하는 경우는 MariaDB Client를 반드시 설치해야 한다.

 

[dhs] /Users/dhs > brew install mariadb

 

BaroPAM 인증 모듈을 다운로드 및 설치하기 위해서 root 계정(일반 계정으로 로그인 한 후 "sudo –i" 명령어 로그인)으로 접속한 후 모듈을 다운로드 및 설치하기 위한 디렉토리(/usr/local/baropam)를 다음과 같이 생성한다.

 

[root]# mkdir /usr/local/baropam

 

BaroPAM 모듈을 다운로드 및 설치하기 위한 디렉토리의 권한(읽기, 쓰기, 실행)을 다음과 같이 부여한다.

 

[root]# chmod 777 /usr/local/baropam

 

1.2 BaroPAM 설치 모듈 다운로드

BaroPAM 인증 모듈은 root 계정으로 접속한 후 모듈을 다운로드 및 설치하기 위한 디렉토리(/usr/local/baropam)로 이동하여 모듈을 다운로드 하는 방법은 다음과 같다.

 

[root] /usr/local/baropam > wget http://nuriapp.com/download/libpam_baro_auth-x.x.tar

 

BaroPAM 인증 모듈의 다운로드가 완료되면 tar 파일의 압축을 해제하는 방법은 다음과 같다.

 

[root] /usr/local/baropam > tar -xvf libpam_baro_auth-x.x.tar

 

 BaroPAM 솔루션에는 설치일로부터 6개월간 유효한 평가용(Evaluation) 라이선스가 적용되어 무료 체험이 가능하며, 이후에는 라이선스 갱신이 필요하다.

 

BaroPAM 인증 모듈의 압축을 해제하면 baropam 디렉토리에 다음과 같은 BaroPAM 관련 모듈이 생성된다.

 

[root] /usr/local/baropam > ls -al
합계 180
drwxrwxrwx  7 root   root   4096  8 23 09:59 .
drwxr-xr-x 17 root   root   4096  2 10  2017 ..
-r--r--r--  1 root   root      8  3 24  2021 .baro_acl
-r--r--r--  1 root   root    305  7  2 14:41 .baro_auth
-r--r--r--  1 root   root    290  6 30 12:55 .baro_curl
-r--r--r--  1 root    root    287  2 28 12:19 .baro_sql
-rwxr-xr-x  1 root   root  69149  4  6 19:12 baro_auth
-rwxr-xr-x  1 root   root  65072  6 29 16:36 baro_curl
-rwxr-xr-x  1 root    root  57074  2 28 12:18 baro_sql
drwxr-xr-x  2 root   root   4096  7 20  2021 jilee
-rwxr-xr-x  1 root   root 152649  6  9 08:19 pam_baro_auth.so
-rwxr-xr-x  1 root   root 116158  6 30 12:54 pam_baro_curl.so
-rwxr-xr-x  1 root    root 170863  2 28 12:18 pam_baro_sql.so
-rw-r--r--  1 root   root    221  6 27 15:59 setauth.sh
-rw-r--r--  1 root   root    150  6 29 16:29 setcurl.sh
-rw-r--r--  1 root    root    180  2 28 12:19 setsql.sh

 

참고) 애플에서 만든 모바일 CPU 아키텍쳐인 arm64인 경우

 

[root] /usr/local/baropam > file pam_baro_auth.so
pam_baro_auth.so: Mach-O 64-bit dynamically linked shared library arm64
 
[root] /usr/local/baropam > otool -L pam_baro_auth.so
pam_baro_auth.so:
        pam_baro_auth.so (compatibility version 0.0.0, current version 0.0.0)
        /usr/lib/libpam.2.dylib (compatibility version 3.0.0, current version 3.0.0)
        /opt/homebrew/opt/openssl@1.1/lib/libssl.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)
        /opt/homebrew/opt/openssl@1.1/lib/libcrypto.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
        /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)

 

참고) 인텔에서 만든 CPU 아키텍쳐인 X86인 경우

 

[root] /usr/local/baropam > file pam_baro_auth.so
pam_baro_auth.so.0: Mach-O 64-bit dynamically linked shared library x86_64
 
[root] /usr/local/baropam > otool -L pam_baro_auth.so
pam_baro_auth.so.0:
        pam_baro_auth.so (compatibility version 0.0.0, current version 0.0.0)
        /usr/lib/libpam.2.dylib (compatibility version 3.0.0, current version 3.0.0)
        /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)
        /usr/local/opt/openssl@1.1/lib/libcrypto.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
        /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)

 

 

1.3 BaroPAM 환경 설정 파일 생성

 

1) PAM 인증(.baro_auth): 환경 설정 정보를 File에 설정

 

BaroPAM 환경 설정 파일은 baro_auth 프로그램을 실행하여 반드시 생성하는데, BaroPAM 인증 모듈의 디렉토리인 /usr/local/baropam 밑에 위치 하도록 한다.

 

형식)

baro_auth -r rate_limit -R rate_time -t cycle_time k key_method e encrypt_flag -A acl_type -a acl_filename -S secure_key -s filename

 

BaroPAM 환경설정 파일의 설정 옵션에 대한 내용은 다음과 같다.

 

옵션 설명 설정값 비고
-r 일회용 인증키의 제한횟수(1~10) 3  
-R 일회용 인증키의 제한시간(, 15~600) 30  
-t 일회용 인증키의 인증주기(, 3~60) 30  
-k 일회용 인증키의 인증방식(app1, app256, app384, app512). app512  
-e 환경설정 파일의 암호화 여부(yes or no) no  
-A 2차 인증에서 허용(allow) 또는 제외(deny)할지 선택 deny  
-a 2차 인증에서 허용(allow) 또는 제외(deny)할 계정에 대한 ACL 파일명(파일 접근권한은 444) /usr/local/baropam/.baro_acl  
-S 반드시 벤더에서 제공하는 Secure key(라이선스 키) jIqIcHbVqdpj7b4PzBpM2DiIeBvmHFV/  
-s BaroPAM 환경설정 파일을 생성할 디렉토리를 포함한 파일명 /usr/local/baropam/.baro_auth  

 

주의) –s 옵션의 filenameBaroPAM 환경설정 파일을 생성할 디렉토리를 포함한 파일명(파일 접근권한은 444)이다.

 

사용 예)

[root] /usr/local/baropam > ./baro_auth -r 3 -R 30 -t 30 –k app512 –e no -A deny -a /usr/local/baropam/.baro_acl -S jIqIcHbVqdpj7b4PzBpM2DiIeBvmHFV/ -s /usr/local/baropam/.baro_auth

 

만약, 계정마다 BaroPAM 환경 설정파일을 각각 설정하는 경우 해당 계정으로 접속하여 작업을 진행한다. (Not root)

 

[root] /usr/local/baropam > ./baro_auth -r 3 -R 30 -t 30 –k app512 –e no -A deny -a ~/.baro_acl -S jIqIcHbVqdpj7b4PzBpM2DiIeBvmHFV/ -s ~/.baro_auth

 

1) Your emergency one-time authentication keys are :

 응급 일회용 인증키는 일회용 인증키 생성기인 BaroPAM 앱을 사용할 수 없을 때 분실한 경우를 대비하여 SSH 서버에 다시 액세스하는데 사용할 수 있는 접속이 가능한 Super 인증키 이므로 어딘가에 적어 두는 것이 좋다.

 

2) 다음에 나오는 물음에 대해서는 모두 "y"를 입력한다.

   "/usr/local/baropam/.baro_auth" 파일을 업데이트하시겠습니까 (y/n) y

중간자(man-in-the-middle) 공격을 예방할 것인가 (y/n) y

 

BaroPAM 환경 설정 파일인 .baro_auth에 설정한 내용은 다음과 같다.

 

[root] /usr/local/baropam > cat .baro_auth
" AUTH_KEY
" RATE_LIMIT 3 30
" KEY_METHOD app512
" CYCLE_TIME 30
" SECURE_KEY jIqIcHbVqdpj7b4PzBpM2DiIeBvmHFV/
" ACL_NAME /usr/local/baropam/.baro_acl
" ACL_TYPE deny
" DISALLOW_REUSE
33458936
19035576
15364353
54649370
84342192

 

BaroPAM 환경설정 파일인 .baro_auth의 설정 항목에 대한 내용은 다음과 같다.

 

항목 설명 설정값 비고
AUTH_KEY 인증 구분자(고정)    
RATE_LIMIT 일회용 인증키의 제한횟수(1~10), 제한시간(, 15~600) 설정. 3 30  
KEY_METHOD 일회용 인증키의 인증 방식(app1, app256, app384, app512) app512  
CYCLE_TIME 일회용 인증키의 인증주기(, 3~60) 30  
SECURE_KEY Secure key(라이선스 키) jIqIcHbVqdpj7b4PzBpM2DiIeBvmHFV/  
ACL_TYPE 2차 인증에서 허용(allow) 또는 제외(deny) 구분 deny  
ACL_NAME 2차 인증에서 허용 또는 제외할 계정에 대한 ACL Filename(파일 접근권한은 444) /usr/local/baropam/.baro_acl  
DISALLOW_REUSE
or
ALLOW_REUSE
중간자(man-in-the-middle) 공격을 예방할 경우는 "DISALLOW_REUSE"을 설정한 경우 인증키 인증주기 동안은 다른 사용자가 로그인 할 수 없으며, 만약 허용할 경우는 "ALLOW_REUSE"을 설정한다. DISALLOW_REUSE  

 

2) PAM 인증(.baro_sql): 환경 설정 정보를 MariaDB에 설정

 

BaroPAM 환경 설정 정보가 존재하는 Mariadb와 연동하기 위한 접속 정보는 baro_sql 프로그램을 실행하여 반드시 생성하는데, BaroPAM 인증 모듈의 디렉토리인 /usr/local/baropam 밑에 위치하도록 한다.

 

형식)

baro_sql -H hostname –u username –p password –d dbname –P portno -r rate_limit -R rate_time -t cycle_time -k key_method -e encrypt_flag -A acl_type -a acl_filename -S secure_key -s filename

 

BaroPAM 환경설정 파일의 설정 옵션에 대한 내용은 다음과 같다.

 

옵션 설명 설정값 비고
-H MariaDB 서버의 호스트 이름 또는 IP 주소 nurit.co.kr  
-u MariaDB 사용자 이름 nurit  
-p MariaDB 사용자의 비밀번호 baropam  
-d 연결할 MariaDB 이름 baropamdb  
-P MariaDB 서버의 포트 번호 3308  
-r 일회용 인증키의 제한횟수(1~10) 3  
-R 일회용 인증키의 제한시간(, 15~600) 30  
-t 일회용 인증키의 인증주기(, 3~60) 30  
-k 일회용 인증키의 인증방식(app1, app256, app384, app512). app512  
-e 환경설정 파일의 암호화 여부(yes or no) no  
-A 2차 인증에서 허용(allow) 또는 제외(deny)할지 선택 deny  
-a 2차 인증에서 허용(allow) 또는 제외(deny)할 계정에 대한 ACL 파일명(파일 접근권한은 444) /usr/local/baropam/.baro_acl  
-S 반드시 벤더에서 제공하는 Secure key(라이선스 키) jIqIcHbVqdpj7b4PzBpM2DiIeBvmHFV/  
-s BaroPAM 환경설정 파일을 생성할 디렉토리를 포함한 파일명 /usr/local/baropam/.baro_sql  

 

주의) –s 옵션의 filenameBaroPAM 환경설정 파일을 생성할 디렉토리를 포함한 파일명(파일 접근권한은 444)이다.

 

사용 예)

[root] /usr/local/baropam > ./baro_sql -H nurit.co.kr -e no -u nurit -p baropams -d baropamdb -P 3306 -r 3 -R 30 -t 30 –k app512 –e no -A deny -a /usr/local/baropam/.baro_acl -S jIqIcHbVqdpj7b4PzBpM2DiIeBvmHFV/ -s /usr/local/baropam/.baro_sql

 

1) Your emergency one-time authentication keys are :

 응급 일회용 인증키는 일회용 인증키 생성기인 BaroPAM 앱을 사용할 수 없을 때 분실한 경우를 대비하여 SSH 서버에 다시 액세스하는데 사용할 수 있는 접속이 가능한 Super 인증키 이므로 어딘가에 적어 두는 것이 좋다.

 

2) 다음에 나오는 물음에 대해서는 모두 "y"를 입력한다.

   "/usr/local/baropam/.baro_sql" 파일을 업데이트하시겠습니까 (y/n) y

중간자(man-in-the-middle) 공격을 예방할 것인가 (y/n) y

 

BaroPAM 환경 설정 파일인 .baro_sql에 설정한 내용은 다음과 같다.

 

[root] /usr/local/baropam > cat .baro_sql
" AUTH_KEY
" HOSTNAME nurit.co.kr
" USERNAME nurit
" PASSWORD baropams
" DBNAME baropamdb
" PORTNO 3306
" RATE_LIMIT 3 30
" KEY_METHOD app512
" CYCLE_TIME 30
" SECURE_KEY jIqIcHbVqdpj7b4PzBpM2DiIeBvmHFV/
" ACL_NAME /usr/local/baropam/.baro_acl
" ACL_TYPE deny
" DISALLOW_REUSE
33458936
19035576
15364353
54649370
84342192

 

BaroPAM 환경설정 파일인 .baro_sql의 설정 항목에 대한 내용은 다음과 같다.

 

항목 설명 설정값 비고
AUTH_KEY 인증 구분자(고정)    
HOSTNAME MariaDB 서버의 호스트 이름 또는 IP 주소 nurit.co.kr  
USERNAME MariaDB 사용자 이름 nurit  
PASSWORD MariaDB 사용자의 비밀번호 baropam  
DBNAME 연결할 MariaDB 이름 baropamdb  
PORTNO MariaDB 서버의 포트 번호 3308  
RATE_LIMIT 일회용 인증키의 제한횟수(1~10), 제한시간(, 15~600) 설정. 3 30  
KEY_METHOD 일회용 인증키의 인증 방식(app1, app256, app384, app512) app512  
CYCLE_TIME 일회용 인증키의 인증주기(, 3~60) 30  
SECURE_KEY Secure key(라이선스 키) jIqIcHbVqdpj7b4PzBpM2DiIeBvmHFV/  
ACL_TYPE 2차 인증에서 허용(allow) 또는 제외(deny) 구분 deny  
ACL_NAME 2차 인증에서 허용 또는 제외할 계정에 대한 ACL Filename(파일 접근권한은 444) /usr/local/baropam/.baro_acl  
DISALLOW_REUSE
or
ALLOW_REUSE
중간자(man-in-the-middle) 공격을 예방할 경우는 "DISALLOW_REUSE"을 설정한 경우 인증키 인증주기 동안은 다른 사용자가 로그인 할 수 없으며, 만약 허용할 경우는 "ALLOW_REUSE"을 설정한다. DISALLOW_REUSE  


참고) MariaDB의 문제로 인하여 접속이 불가능할 경우 해당 서버에 설정된 환경 설정 정보가 적용된다.

 

 

3) cURL 인증(.baro_curl)

 

curl 의 명칭은 "client URL" 을 대표하는 것으로 1997년에 처음 출시되었다. 즉 클라이언트가 스크립트로써 서버에 데이터를 요청하는 것으로 BaroPAM curlhttp/https 되어 있는 인증 사이트를 호출하여 인증을 요청한다.

 

BaroPAM 환경 설정 파일은 baro_curl 프로그램을 실행하여 반드시 생성하는데, BaroPAM 인증 모듈의 디렉토리인 /usr/local/baropam 밑에 위치 하도록 한다.

 

형식)

baro_curl -r rate_limit -R rate_time -t cycle_time k key_method e encrypt_flag -H hostname u auth_url -S secure_key -s filename

 

BaroPAM 환경설정 파일의 설정 옵션에 대한 내용은 다음과 같다.

 

옵션 설명 설정값 비고
-r 일회용 인증키의 제한횟수(1~10) 3  
-R 일회용 인증키의 제한시간(, 15~600) 30  
-t 일회용 인증키의 인증주기(, 3~60) 30  
-k 일회용 인증키의 인증방식(app1, app256, app384, app512: ). app512  
-e 환경설정 파일의 암호화 여부(yes or no) no  
-H 서버의 호스트명(uname n) nurit.co.kr  
-u 호출할 URL로 호스트명(hostname), 사용자 계정(username), 인증주기(cycle_time), 일회용 인증키(auth_key) 등의 파라미터가 포함되어 호출 http://1.23.456.789/baropam/web/result_curl.jsp  
-S 반드시 벤더에서 제공하는 Secure key(라이선스 키) jIqIcHbVqdpj7b4PzBpM2DiIeBvmHFV/  
-s BaroPAM 환경설정 파일을 생성할 디렉토리를 포함한 파일명 /usr/local/baropam/.baro_curl  

 

주의) s 옵션의 filenameBaroPAM 환경설정 파일을 생성할 디렉토리를 포함한 파일명(파일 접근권한은 444)이며, 설정한 서버의 호스트명(hostname)이 맞지 않는 경우 BaroPAM이 정상적으로 작동되지 않을 수 있으니, 호스트명(hostname)가 변경되는 경우 반드시 환경 설정의 해당 항목에 반영해야 한다.

 

사용 예)

[root] /usr/local/baropam > ./baro_curl -r 3 -R 30 -t 30 -k app512 -e no -H nurit.co.kr -u http://1.23.456.789/baropam/web/result_curl.jsp -S jIqIcHbVqdpj7b4PzBpM2DiIeBvmHFV/ -s /usr/local/baropam/.baro_curl

 

1) 다음에 나오는 물음에 대해서는 모두 "y"를 입력한다.

   중간자(man-in-the-middle) 공격을 예방할 것인가? y

   같은 일회용 인증키는 하나의 계정 외에 다른 계정에도 로그인이 가능하게 할 것인가? y

   일회용 인증키의 제한 시간을 30초로 지정할 것인가? y

 

BaroPAM 환경 설정 파일인 .baro_curl에 설정한 내용은 다음과 같다.

 

[root] /usr/local/baropam > cat .baro_curl
" AUTH_KEY
" RATE_LIMIT 3 30
" AUTH_URL http://1.23.456.789/baropam/web/result_curl.jsp
" KEY_METHOD app512
" SECURE_KEY jIqIcHbVqdpj7b4PzBpM2DiIeBvmHFV/
" CYCLE_TIME 30
" HOSTNAME baropam
" DISALLOW_REUSE

 

BaroPAM 환경설정 파일인 .baro_curl의 설정 항목에 대한 내용은 다음과 같다.

 

항목 설명 설정값 비고
AUTH_KEY 인증 구분자(고정)    
RATE_LIMIT 일회용 인증키의 제한횟수(1~10), 제한시간(, 15~600) 3 30  
AUTH_URL 호출할 URL로 호스트명(hostname), 사용자 계정(username), 인증주기(cycle_time), 일회용 인증키(auth_key) 등의 파라미터가 포함되어 호출 http://1.23.456.789/baropam/web/result_curl.jsp  
KEY_METHOD 일회용 인증키의 인증방식(app1, app256, app384, app512: ) app512  
SECURE_KEY 반드시 벤더에서 제공하는 Secure key(라이선스 키) jIqIcHbVqdpj7b4PzBpM2DiIeBvmHFV/  
CYCLE_TIME 일회용 인증키의 인증주기(,