2025

리눅스 ssh 사용자계정과 IP로 접근 제어 (ACL) 방법 - AllowUsers, usePAM

운좋은하루 2025. 1. 16. 14:13
728x90
반응형

리눅스 SSH 접속 시 사용자 계정과 IP 주소를 기반으로 접근을 제어하는 방법 중에서

AllowUsers 지시자와 UsePAM 설정을 활용법을 알아보겠습니다.

 

1. AllowUsers를 사용하여 특정 사용자 계정만 허용

  • AllowUsers 지시자는 SSH 접속을 허용할 사용자 계정을 명시적으로 지정하는 데 사용됩니다.
  • 이 설정을 사용하면 지정된 사용자 외에는 모두 접속이 거부됩니다.

설정 방법:

SSH 서버 설정 파일 열기

# vi /etc/ssh/sshd_config

AllowUsers 지시자를 찾거나 새로 추가 (파일 끝에 추가하는 것을 권장):

  • user1: user1 계정의 모든 IP 접속 허용
  • user2@192.168.1.10: user2 계정이 192.168.1.10 IP에서 접속하는 것만 허용
  • user3@10.0.0.0/24: user3 계정이 10.0.0.0/24 대역 IP에서 접속하는 것만 허용
  • 공백으로 구분하여 여러 사용자와 IP 조건을 나열할 수 있습니다.
  • 특정 IP를 명시하지 않으면 해당 사용자의 모든 IP에서의 접속을 허용합니다.
AllowUsers  user1  user2@192.168.1.10  user3@10.0.0.0/24

 

설정 파일 저장 후 SSH 서비스 재시작:

systemctl  restart  sshd

 

주의 사항:

  • AllowUsers 지시자를 사용할 때는 오타에 주의해야 합니다. 오타로 인해 관리자 계정이 잠기는 경우 콘솔 접속 등 다른 방법으로 문제를 해결해야 합니다.
  • 루트 로그인을 막으려면 PermitRootLogin 설정을 no로 변경하는 것이 좋습니다. (PermitRootLogin no)
  • 방화벽 설정도 함께 사용하여 보안을 더욱 강화할 수 있습니다.
  • 여러 유저를 추가할 때 한 줄로 쭉 연결해서 작성해야 해서 수정이 불편합니다.

 

 

2. UsePAM 활성화 및 PAM 설정을 통한 제어:

  • UsePAM 옵션은 PAM(Pluggable Authentication Modules)을 사용하여 인증을 처리하도록 지시합니다.
  • PAM을 사용하면 더 유연하고 세밀한 접근 제어가 가능합니다.

설정 방법:

SSH 서버 설정 파일 열기

# vi /etc/ssh/sshd_config

UsePAM 설정이 yes로 되어 있는지 확인 (기본값은 yes)

SSH 서비스에 대한 PAM 설정 파일 편집

# vi /etc/pam.d/sshd

특정 사용자 및 IP 제한 규칙 추가특정 사용자 및 IP 제한 규칙 추가

auth  required  pam_listfile.so  onerr=succeed  item=user  sense=allow  file=/etc/ssh/allowed_users
auth  required  pam_access.so

# user1 계정을 192.168.1.100 에서만 허용

# /etc/ssh/allowed_users 파일 내용 (예시):
user1:192.168.1.100

또는

특정 IP에서만 허용하는 설정 (예: 192.168.1.0/24 대역만 허용)

account required pam_access.so listsep=, debug

/etc/security/access.conf 파일에 다음 줄을 추가합니다.

#추가 형식
[CONDITION]:[USER or GROUP]:[ORIGIN]

# 192.168.1.0/24 대역에서만 ssh 접속 허용
+:ALL:192.168.1.0/24
-:ALL:ALL

# root와 a유저를 뺀 나머지 접속 거부
-:ALL EXCEPT root a:ALL
# root와 a유저는 192.168.1.2 에서만 접속 허용
-:ALL EXCEPT root test:192.168.1.2

pam_listfile.so: 특정 파일에 정의된 규칙을 기반으로 접근을 제어합니다.

pam_access.so: /etc/security/access.conf 파일의 설정을 참조하여 접근을 제어합니다.

access.conf 파일의 형식은 +:user or group:IP 또는 -:user or group:IP 형식으로 허용/거부를 지정합니다.


설정 파일 저장 후 SSH 서비스 재시작

systemctl  restart  sshd

 

주의 사항:

  • PAM 설정은 강력하지만 잘못 설정할 경우 시스템 접근이 완전히 차단될 수 있으므로 주의해야 합니다.
  • PAM 설정을 변경하기 전에 반드시 백업을 하고, 테스트 환경에서 충분히 검증하는 것이 좋습니다.
  • /etc/ssh/allowed_users/etc/security/access.conf 파일의 권한을 root 소유, 600 또는 644 권한으로 설정하여 보안을 강화하는 것이 좋습니다.

 

3. DenyUsers, AllowGroups, DenyGroups:

  • DenyUsers: AllowUsers와 반대로 특정 사용자들의 ssh 접속을 막습니다.
  • AllowGroups: 특정 그룹에 속한 사용자들만 ssh 접속을 허용합니다.
  • DenyGroups: AllowGroups와 반대로 특정 그룹에 속한 사용자들의 ssh 접속을 막습니다.
  • 위 설정들은 /etc/ssh/sshd_config에서 설정할 수 있습니다.

 

종합 권장 사항:

  • 꼭 필요한 사용자와 IP만 허용하도록 AllowUsers를 설정하는 것이 가장 안전합니다.
  • PermitRootLoginno로 설정하여 루트 로그인을 방지합니다.
  • 방화벽(iptables 또는 firewalld)을 사용하여 SSH 포트(기본 22)에 대한 접근을 제한합니다.
  • 실패한 로그인 시도를 제한하고 계정을 잠그는 도구(예: fail2ban)를 사용하는 것이 좋습니다.
  • SSH 키 기반 인증을 사용하면 보안을 더욱 강화할 수 있습니다.
  • 주기적으로 보안 감사를 수행하고 최신 보안 권장 사항을 적용합니다.

위 설명들이 리눅스 SSH 서버의 보안을 강화하는 데 도움이 되기를 바랍니다.

728x90
반응형

'2025' 카테고리의 다른 글

미코  (1) 2025.01.22
비트코인 $100,000 다시 돌파 후 건강한 조정? MVRV Z-Score Index 2.83  (0) 2025.01.16
프럼파스트 LK삼양 클로봇  (0) 2025.01.15
리눅스 ssh 보안 설정 방법  (0) 2025.01.14