sshd_config 파일에서 사용자(User)와 그룹(Group)을 기반으로 설정을 매치(match)하는 방법은 다음과 같습니다:
1. SSH 설정 파일 열기
sudo vi /etc/ssh/sshd_config
2. Match 지시어 사용: sshd_config 파일에 Match 지시어를 사용하여 특정 사용자나 그룹에 대한 설정을 적용할 수 있습니다. 예를 들어, sftpdev 사용자와 sftpgroup 그룹에 대한 설정을 다음과 같이 추가할 수 있습니다.이 설정은 sftpdev 사용자가 sftpgroup 그룹의 일원일 때만 적용됩니다.
Match User sftpdev Group sftpgroup
ChrootDirectory /home/sftp
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
3. 여러 조건 매치: Match 지시어는 여러 조건을 조합하여 사용할 수 있습니다. 예를 들어, 특정 사용자와 주소에 대해 다음과 같이 설정할 수 있습니다.이 설정은 sftpdev 사용자가 192.168.1.* 주소 범위에서 접속할 때만 적용됩니다.
Match User sftpdev Address 192.168.1.*
ChrootDirectory /home/sftp
ForceCommand internal-sftp
4. SSH 서비스 재시작: 설정을 변경한 후에는 SSH 서비스를 재시작해야 새 설정이 적용됩니다.
sudo systemctl restart sshd
Match 지시어를 사용하면 매우 유연하게 특정 사용자나 그룹, 주소 등에 대한 세부적인 SSH 설정을 적용할 수 있습니다. 설정을 변경할 때는 항상 주의를 기울여야 하며, 변경 사항을 적용하기 전에 설정이 올바른지 확인하는 것이 중요합니다.
sshd_config 파일에서 Match 지시어를 사용하여 특정 조건에 따라 다른 설정을 적용할 수 있습니다. Match 지시어는 다음과 같은 옵션들을 지원합니다:
- User: 특정 사용자에게만 설정을 적용합니다.
- Group: 특정 그룹의 사용자에게만 설정을 적용합니다.
- Host: 특정 호스트에 대한 접속에만 설정을 적용합니다.
- LocalAddress: 서버의 특정 로컬 주소에 대한 접속에만 설정을 적용합니다.
- LocalPort: 서버의 특정 로컬 포트에 대한 접속에만 설정을 적용합니다.
- Address: 클라이언트의 특정 주소 또는 주소 범위에 대한 접속에만 설정을 적용합니다.
Match 지시어를 사용할 때는 다음과 같은 형식을 따릅니다:
Match 조건1 [조건2] [조건3] ...
설정1
설정2
설정3
...
예를 들어, sftpusers 그룹의 사용자가 192.168.1.* 주소 범위에서 접속할 때만 특정 설정을 적용하려면 다음과 같이 작성할 수 있습니다:
Match Group sftpusers Address 192.168.1.*
ChrootDirectory /home/sftp
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
Match 블록은 다음 Match 지시어가 나오거나 파일이 끝날 때까지 유효합니다. 설정을 변경한 후에는 SSH 서비스를 재시작해야 새 설정이 적용됩니다.
예제
# Match 블록 시작
Match User sftpuser Group sftpgroup Address 192.168.1.*
# ChrootDirectory: 사용자가 SFTP 접속 시 볼 수 있는 최상위 디렉토리를 지정합니다.
ChrootDirectory /home/sftpuser
# ForceCommand: 사용자가 실행할 수 있는 명령을 제한합니다. 여기서는 internal-sftp를 사용하여 SFTP 세션만 허용합니다.
ForceCommand internal-sftp
# AllowTcpForwarding: TCP 포워딩을 허용할지 여부를 설정합니다. no로 설정하면 TCP 포워딩을 금지합니다.
AllowTcpForwarding no
# X11Forwarding: X11 포워딩을 허용할지 여부를 설정합니다. no로 설정하면 X11 포워딩을 금지합니다.
X11Forwarding no
# PermitTunnel: 터널링 옵션을 설정합니다. no로 설정하면 터널링을 금지합니다.
PermitTunnel no
# Banner: 접속 시 보여줄 환영 메시지나 경고 메시지의 파일 경로를 지정합니다.
Banner /etc/issue.net
# Match 블록 끝
위의 예시에서는 sftpuser라는 사용자가 sftpgroup 그룹에 속해 있고, IP 주소가 192.168.1.* 범위에 해당될 때만 특정 설정이 적용됩니다. 이 설정들은 해당 사용자가 SFTP를 통해 서버에 접속할 때만 유효합니다.
Match 블록은 매우 강력한 도구로, 서버 관리자가 특정 사용자나 그룹, 혹은 특정 네트워크에서 오는 접속에 대해 세밀한 제어를 할 수 있게 해줍니다. 설정을 변경한 후에는 반드시 SSH 서비스를 재시작하여 변경 사항을 적용해야 합니다.
Match 블록에 사용할 수 있는 모든 옵션의 전체 목록과 자세한 설명을 보려면, 터미널에서 man sshd_config 명령어를 실행하여 sshd_config의 매뉴얼 페이지를 확인할 수 있습니다. 이 페이지에서는 Match 블록과 관련된 모든 옵션과 사용 예제, 그리고 각 옵션에 대한 상세한 설명을 제공합니다. 이러한 정보를 통해 보다 복잡하고 세부적인 설정을 구성할 수 있습니다.
'Linux' 카테고리의 다른 글
[Linux] ssh 접속 시 This account is currently not available 해결 방법 (1) | 2024.05.15 |
---|---|
[Linux] sftp 계정 생성 및 설정 방법 (1) | 2024.05.14 |
[Linux] nc 명령어로 기관 통신 모니터링 스크립트 (1) | 2024.05.02 |
[Linux] SSL,TLS 인증서 만료일 체크하여 Mattermost 전송 (1) | 2024.04.30 |
[Linux] 리눅스에서 <,> 표준 입력,출력 리디렉션 명령어 사용법 (1) | 2024.04.29 |