PAM (Pluggable Authentication Modules, 장착형 인증 모듈)
리눅스 시스템 내에서 사용되는 각종 어플리케이션 인증을 위해 제공되는 다양한 인증용 라이브러리들
/lib/security 또는 /usr/lib/security 디렉터리에 해당 라이브러리 저장
프로그램 개발 시 인증모듈을 별도 개발하지 않고 플러그인 방식의 PAM을 사용함으로써 인증 방식 및 정책의 유연성과 중앙 통제가 가능
각 프로그램은 인증이 필요한 부분에 PAM 라이브러리를 호출
->PAM라이브러리 호출되면 해당 프로그램의 PAM 설정파일 참조하여 등록된 여러 PAM 모듈 수행하고 그 결과를 응용 프로그램에 반환
->응용 프로그램은 반환된 결과를 이용해 인증여부 결정
PAM 설정 파일
- /etc/pam.d
PAM 라이브러리 이용하는 각 응용 프로그램(서비스)의 설정파일이 위치
설정파일명은 응용프로그램(서비스)명과 동일
type control module-path module-arguments
(p. 76 참고) - /etc/security
PAM 모듈 실행에 필요한 추가 설정 파일 위치
PAM 활용 예
root 계정 원격 접속 제한
- 설명
/etc/securetty 파일에 등록되어 있는 터미널이 아니면 root의 접속을 허용하지 않도록 PAM 설정
(pam_securetty.so 모듈이 사용하는 파일로 터미널 접속 시 root 접근 제한 설정 파일) - 방법
/etc/pam.d/remote 파일에 pam_securetty.so 모듈 추가
auth required pam_securetty.so
/etc/securetty 파일에 "pts/~" 터미널을 모두 제거(주석처리)
* tty(terminal-teletype) : 서버와 연결된 모니터, 키보드 등을 통해 사용자가 콘솔로 직접 로그인
pts(pseudo-terminal, 가상터미널) : Telnet, 터미널 등을 통해 접속하는 가상터미널 - 유닉스/리눅스 시스템별 root 계정 원격 접속 제한 설정
OS 점검 파일 위치 및 방법 SOLARIS /etc/default/login 파일
CONSOLE=/dev/console
LINUX /etc/pam.d/login 파일
auth required /lib/security/pam_securetty.so
/etc/securetty 파일
pts/~ 관련 설정 존재XAIX /etc/security/user 파일
rlogin = false
HP-UX /etc/securetty파일
console
- 점검
'w' 명령으로 현재 접속 중인 root 사용자 정보를 확인하여 TTY 필드의 값이 pts/~로 설정되어있지 않은 것을 확인 - SSH(Secure Shell) root 원격 접속 제한 설정
/etc/ssh/sshd_config 파일PermitRootLogin no
계정 잠금 임계값 설정
- 설명
패스워드 크래킹 발생 시 암호입력 실패 횟수를 제한하고 공격시간을 지체시켜 패스워드 유출 위험 줄이기 위함
계정잠금 임계값(5회 이하 권장) 초과시 패스워드를 일정시간 잠근다
pam_tally2.so(pam_tally.so) 모듈 이용 - 방법
/etc/pam.d/system-auth 파일에 pam_tally2 모듈 추가auth required pam_tally2.so deny=5 unlock_time=120
(pam_tally 모듈 인수 : deny=5, unlock_time=120)
* pam_tally2 명령
로그인 실패 횟수 확인 (pam_tally2 -u 계정명)
실패 횟수 초기화 (pam_tally2 -u 계정명 -r) - 유닉스/리눅스 시스템별 계정 잠금 임계값 설정
OS 점검 파일 위치 및 방법 SOLARIS /etc/default/login 파일
RETRIES=5
5.9 버전 이상이면 '/etc/security/policy.conf' 파일도 확인
LOCK_AFTER_RETRIES=YES
LINUX /etc/pam.d/system-auth 파일(pam_tally.so모듈일 경우 - 2는 위에서 확인)
auth required /lib/security/pam_tally.so deny=5 unlock_time=120 no_magic_root
account required /lib/security/pam_tally.so no_magic_root reset
AIX /etc/securityuser 파일
loginretries=5
HP-UX /tcb/files/auth/system/defult 파일
u_maxtries#5
11.v3 이상일 경우 '/etc/default/security'파일 확인
AUTH_MAXTRIES=5
root 계정 su 제한
- 설명
권한이 없는 일반 사용자가 su명령으로 로그인을 시도하고 패스워드 크래킹을 통해 root 권한을 획득할 수 있다
su 명령어 사용이 허용된 사용자만 root 계정으로 접속할 수 있도록 설정
pam_wheel.so 모듈 이용 - 방법
wheel그룹(su 명령어 사용그룹)에 su 명령어 사용할 사용자 추가
usermod -G wheel 계정명
또는 직접 /etc/group 파일 수정
/etc/pam.d/su 파일에 pam_wheel.so 모듈 추가
auth required pam\_wheel.so use_uid debug
- 유닉스/리눅스 시스템별 계정 잠금 임계값 설정
OS 점검 파일 위치 및 방법 SOLARIS, LINUX, AIX, HP-UX 1. wheel 그룹 확인
2. wheel 그룹이 su 명령어 사용할 수 있는지 설정 여부 확인 (p.82)
3. /usr/bin/su 파일 권한 확인 : 4750(=-rwsr-x---)이면 양호LINUX PAM 모듈 이용시 1. wheel 그룹 확인
2. wheel 그룹이 su 명령어 사용할 수 있는지 설정 확인
/etc/pam.d/su 파일auth required /lib/security/pam_wheel.so debug group=wheel
- sudo 명령
su보다는 제한적으로 특정 명령어만 root 권한으로 수행할 수 있게 sudo 명령어를 사용하는 것 보안적으로 권장
sudo 명령 설정파일 : /etc/sudoers 파일
계정명 호스트명=(실행권한계정명) [NOPASSWD:]명령어- ex)
algisa
ALL=(root,kiwi)
ALL
algisa 계정은 sudo 명령을 통해 모든 호스트에서 roo, kiwi 계정 권한으로 모든 명령을 실행할 수 있다
- ex)
'보안' 카테고리의 다른 글
보안기사 - 시스템 해킹 (0) | 2020.04.18 |
---|---|
보안기사 - UNIX/Linux 로그 (0) | 2020.04.17 |
보안기사 - UNIX/Linux 서버 네트워크 보안 (0) | 2020.04.16 |
보안기사 - UNIX/Linux 서버 시스템 보안 (0) | 2020.04.15 |
보안기사 - UNIX/Linux 시스템 관리 (crond) (0) | 2020.04.14 |