Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

정리하는 공간

리눅스) ssh 보안 설정 (feat: PAM) 본문

리눅스 기초

리눅스) ssh 보안 설정 (feat: PAM)

개구리집 2022. 5. 12. 10:30
반응형
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은 막힌 걸 볼 수 있다.

 

 

LIST
Comments