SSH - 특정 사용자별 접근 설정

/etc/ssh/sshd_config
# AllowGroups : 접속을 허용할 그룹
# AllowUsers   : 접속을 허용할 유저
# DenyGroups : 접속을 차단할 그룹
# DenyUsers   : 접속을 차단할 유저 
 
# user1 과 user2를 차단하고 싶을경우 (그외에는 모두 허용)
DenyUsers user1 user2
 
# user1과 user2 만 허용하고 싶은경우 (그외에는 모두 차단)
AllowUsers user1 user2
 
# 많은 유저 ( user001 ~ user100 ) 계정을 차단하고싶을 경우 와일드카드를 사용할수 있다.
DenyUsers user*   
 
# 위의 예와 같이 Allow와 Deny의 경우 암묵적으로 그외의 계정에 대해서 설정이 되기 때문에 두 키워드를 혼용해서 사용하지 말고 한가지 형태로 사용하는것을 권장한다.

/etc/pam.d/sshd 에 설정하는경우 sshd에 대해서만 설정이 되며 telnet, console등 모든 로그인에 적용하고자 하면 /etc/pam.d/system-auth 에 적용하면 된다.

/etc/pam.d/sshd
#%PAM-1.0
auth required pam_listfile.so item=user sense=deny file=/etc/ssh/sshusers onerr=succeed 
 
# 맨 윗 부분에 이부분을 추가해주고 /etc/ssh/sshusers를 생성해준다. (파일 경로나 이름은 마음대로 설정하면 된다.)
/etc/ssh/sshusers
# ssh 접속을 제한 할 사용자를 1줄씩 입력해준다.
user1
user2
/etc/pam.d/system-auth
auth required  pam_env.so
 
auth required  pam_listfile.so    # <<== new line add
 
auth sufficient pam_unix.so nullok try_first_pass
auth requisite  pam_succeed_if.so uid>= 500 quiet
auth required  pam_deny.so

사용할수 있는 옵션은 아래와 같다

/etc/pam.d/system-auth
# 그룹단위로 설정할경우
auth required pam_listfile.so onerr=fail item=group sense=allow file=/etc/login.group
 
# 사용자단위로 설정할 경우
auth required pam_listfile.so onerr=fail item=user sense=allow file=/etc/login.group
  • onerr = fail : 오류 발생시 수행 할 작업 (파일 또는 사용중인 디스크 I/O를 열 수 없음). 문제가있는 경우 문제가 해결 될 때까지 로그인이 거부됩니다.
  • item = group : 그룹 이름 확인 (user : 사용자에 대한 체크)
  • sense = allow : 그룹 이름이 /etc/login.group 파일에서 발견되면 진행할 인증 요청 (deny : 해당 목록에 들어있으면 거부)
  • file = /etc/login.group : 그룹 / 사용자가 나열된 파일. 이 파일에는 그룹 / 이름별로 한 행이 들어 있습니다. 그룹 이름이 발견되고 sense = allow 인 경우 PAM_SUCCESS가 리턴되어 권한 요청이 성공하게됩니다.

참조링크

로그인하면 댓글을 남길 수 있습니다.
  • ssh_-_특정_사용자별_접근_설정.txt
  • 마지막으로 수정됨: 2018/08/28 18:09
  • 저자 koov