정리하는 공간
리눅스) ssh 보안 설정 (feat: PAM) 본문
PAM
pam은 인증 묘듈로 응용 프로그램에 대한 사용자의 사용 권한을 제어하는 모듈이다.
패킷이 들어오면 방화벽에서 필터링을 거치고, PAM의 설정을 거쳐
각 모듈의 환경설정 파일에 따라 패킷의 허용여부를 결정하게 되는데,
이때, pam의 설정으로 사용자를 제한할 수 있다.
pam은 관리자가 응용프로그램들의 사용자 인증방법을 선택할 수 있도록 해준다.
pam.d
pam 설정으로 관리할 수 있는 명령어들이 담겨 있다.
이곳에서 각 시스템에 사용가능한 인증 모듈을 설정해 사용자 접속 등의 권한을 제어할 수 있다.
서비스에 대한 요청이 오면 /etc/pam.d 디렉토리안의 파일의 설정을 보고 처리하며
그 외의 서비스들은 /etc/pam.d/other에서 처리한다.
P.S
login
슈퍼유저로 로그인할 수 있는 사용자 인증과 관련된 파일
pam 기본구조
type | control | module-name | module-arguments |
1. type
어떤 타입의 인증이 사용될지 기입
[type 종류]
1) account
명시된 계정이 현재 조건에서 유효한 인증 목표인지 검사하는 것으로
계정에 대한 접근 통제 및 계정 정책 관리하는 모듈
2) auth
사용자에게 비밀번호를 요청하고 입력 받은 정보가 맞는지 검사하는 모듈
3) password
사용자가 인증정보(패스워드)를 변경할 수 있도록 비밀번호 갱신을 관리하는 모듈
4) session
사용자가 인증을 받기 전,후에 수행해야 할 일을 정의하는 모듈
2. control
통제를 담당하는 부분, pam에 무엇을 해야할지 알려준다.
[control 종류]
1) required
인증을 위해서 반드시 이 모듈에 대한 실행 결과가 성공 되어야한다.
이 모듈의 실행결과가 실패할 경우, 나머지 모듈에 대해 테스트를 계속 진행하지만
서비스 사용자는 전체적인 결과만 알뿐 어느 지점에서 실패했는지 정보는 확인 불가.
2) requisite
required와 동일하게 인증을 위해서 반드시 이 모듈에 대한 실행 결과가 성공 되어야 한다.
차이점은 실행결과 실패 시 나머지 모듈에 대한 테스트 없이 처음 실패한 required 또는 requisite 모듈의
결과가 함께 '실패' 값을 리턴
3) sufficient
실행결과가 '성공'일 경우 같은 인터페이스에 대한 테스트는 더이상 수행되지 않고
'성공'으로 끝남 단, 이전에 위치한 required모듈의 테스트가 모두 '성공'으로 끝났을 경우
4) optional
이 모듈에 대한 테스트 결과는 무시된다. (성광과 실패 모두)
단, 다른 모듈에 대한 테스트에서 이 모듈에 대한 테스트 결과를 참조할 수는 있다.
5) include
다른 contrl 종류와 달리 include는 모듈명 대신 다른 pam 관련 서비스가 포함되며
해당 서비스의 인증이 통과되어야만 해당 인터페이스에 대한 인증이 성공한다.
3. module name
[module name 종류]
1) pam_rootok
root 계정인 경우, 추가 인증 없이 무조건 허용하는 모듈
2) pam_wheel.so
su 명령어 사용 인증에 사용되며 특정 그룹에 대한 인증 제어하는 모듈
3) pam_succeed_if.so
인수로 주어진 조건에 따라 인증을 제어하는 모듈
4) pam_securetty.so
root 계정인 경우에만 적용되는 모듈로 /etc/securetty 파일을 참고해
해당파일에 root가 있으면 특정 서비스에 대한 root 접근을 허용하는 모듈
(root 이외의 계정일 경우, 항상 인증 성공값을 반환한다)
참조 : One Step Ahead 이글루시큐리티 (igloosec.co.kr)
실습
[꿈머] 시스템 보안(System Security) - Linux PAM 실습1(/etc/pam.d/remote) : 네이버 블로그 (naver.com)
[꿈머] 시스템 보안(System Security) - Linux PAM 실습1(/etc/pam.d/remote)
안녕하세요. 꿈머입니다. 앞선 포스팅에서 PAM 의 정의 및 관련 파일 , 구성에 대해서 간단히 보았습니...
blog.naver.com
현재 CentOS8이 가상터미널 경로가 이상.. 위에것 참조!
[일반사용자 막기]
vi /etc/pam.d/sshd
auth required pam_listfile.so item=user sense=deny file=/etc/ssh/sshusers onerr=successd
이 부분을 행에 추가해준다. (file은 저 경로에 적힌 user를 차단하겠다)
vi /etc/ssh/sshusers 새로 만들어준다
입력.
'마스터에서 user1, user2 생성 후 슬레이브에서 접속'
user1은 접속이 안 되는 것을 볼 수 있다.
마스터에서 tail /var/log/secure 를 보면 관련 메세지를 볼 수 있다.
sshd_config 환경설정 파일로 차단
Denyusers test1
test1 사용자만을 접속 거부, 나머지 사용자는 접속 허용
AllowUsers test2
test2 사용자만 접속을 허용, 나머진 거부
'상황에 맞게 설정한다'
vi /etc/sshd/sshd_config
지시자 추가
슬레이브에서 마스터로 root접속은 가능하지만 user1은 막힌 걸 볼 수 있다.
'리눅스 기초' 카테고리의 다른 글
리눅스) DDNS(동적 업데이트 [allow-update, update-policy] (0) | 2022.05.12 |
---|---|
리눅스) [포워딩 네임서버, DNS VIEW] (0) | 2022.05.12 |
리눅스) DNS [라운드로빈 기법, DNS의 마스터-슬레이브서버구축, ACL] (0) | 2022.05.12 |
리눅스) DNS [실습] (0) | 2022.05.12 |
리눅스) DNS (0) | 2022.05.12 |