목차
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 옵션의 filename는 BaroPAM 환경설정 파일을 생성할 디렉토리를 포함한 파일명(파일 접근권한은 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 옵션의 filename는 BaroPAM 환경설정 파일을 생성할 디렉토리를 포함한 파일명(파일 접근권한은 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은 curl로 http/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 옵션의 filename는 BaroPAM 환경설정 파일을 생성할 디렉토리를 포함한 파일명(파일 접근권한은 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 | 일회용 인증키의 인증주기(초, |