Macan
[리눅스] CentOs에서 pam_tally.so 사용 본문
이 글은 CentOS5 32bit 기준으로 쓰였다.
pam의 기본 개념
- CentOS를 기준으로 설명함
- 인터넷에서 검색할 내용을 적용하지 마라. 버전별로 옵션이 다르기 때문임. /usr/share/doc/pam-(버전)/txts 을 확인 바람.
- /etc/pam.d/ 밑의 파일을 수정하면, 수정한 이후 로그인 하는 계정부터 바로 적용 됨. 갱신 하는 명령어 없음.
- 당연한 말이지만, 잘못 수정하면 로그인 못하게 되는(콘솔로도!!) 사태 발생. -> 싱글모드로 부팅하는 수 밖에 없다. 개인 컴퓨터면 문제가 없는데 서비스 중인 서버에선 ...생각을 말자.
- 그런 사태를 방지하려면 모듈이 제대로 된 경로에 있는지 확인 해야 함.
- /lib/security/ : 32bit 운영체제는 여기 모듈이 있고, 64bit 버전도 /lib/security/ 에서 /lib64/security 로 심볼릭 링크를 거는 경우가 있지만(CentOS5),
- CentOS6 64bit는 /lib/security에 심볼릭 링크가 없었다… 꼭 직접 확인하고 적용!!
- /lib64/security/ : 64bit 버전용 pam 모듈은 여기 있음.
- 제대로 동작하는 것을 직접 확인하기 전에 root 연결된 터미널 연결을 끊지 말 것.
- 적용 하고 나서 /var/secure 와 /var/message 등의 로그를 확인
- 이하의 명령어로 실패 횟수 카운트 하는지 확인
- pam_tally –u [계정명]
- pam_tally2 –u [계정명]
- faillog –u [계정명]
패스워드 잠금, 임계 값 등으로 불리는 기능을 CentOS에서 사용하려면 /etc/pam.d/system-auth 를 편집해야 한다(정확히는 /etc/pam.d/system-auth-ac, system-auth는 심볼릭 링크이다.).
이 기능은 패스워드 일정 횟수 입력했는데도 로그인 실패 시, 해당 계정을 일정시간 혹은 영구히 잠궈, 이후 제대로 된 패스워드 입력해도 로그인 할 수 없도록 만드는 설정이다.
무식 공격(bruto force)을 차단하는 방법의 하나가 되겠다.
대충 인터넷 검색해서 해당 기능을 적용하려 보니 2012년 12월 현재와 너무 다른 내용이 많았다.
auth required /lib/security/pam_tally.so no_magic_root
account required /lib/security/pam_tally.so deny=4 rock_time=120 no_magic_root reset
이런 식으로 적용하라는 글이 많은데, 적어도 pam-0.99.6.2-6.el5_5.2 에선 reset 과 no_magic_root 란 옵션은 없으며, 저런 옵션 적용 시 /var/log/message 혹은 /var/log/secure 에 unknown option 이라는 로그가 찍힌다.
- 3번 패스워드 틀리면 5초간 차단 / 5초 후 해제(unlock_time=5 를 안 하니 잠금이 안 풀렸음)
- 패스워드 복잡도 설정, 최소길이 8자, 소문자 두 글자 이상, 알파벳 아닌 글자 최소 한 글자 있어야 함.
문제는 pam_tally2.so 인데, 이건 어떻게 적용해야 하는지 모르겠다. man pam_tally2 해봤는데 거기 설정 보고 해봐도 잠기질 않는다.
이 문제 발생한 서버가 CentOS6였는데, sshd에 대해 잠기지 않길래 /etc/pam.d/system-auth-ac가 아닌 /etc/pam.d/sshd 에 적용했더니 잘 된다.;;
출처 : jellypo
'ETC' 카테고리의 다른 글
[리눅스] OpenSSL 버전 업그레이드 (0) | 2017.11.06 |
---|---|
[리눅스] bash 사용자 목록 (0) | 2017.11.06 |
[리눅스] pam.d 패스워드 복잡도 (0) | 2017.11.06 |
[리눅스] tar.gz(tgz) 파일압축 및 압축해제 (0) | 2017.11.01 |
[리눅스] 서버간 파일 복사 명령어 (0) | 2017.11.01 |