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를 설정하는 것이 가장 안전합니다.
- PermitRootLogin은 no로 설정하여 루트 로그인을 방지합니다.
- 방화벽(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 |