Linux

[Linux] sftp sshd_config 에서 match 로 user, group 설정 방법

IT-PAPA 2024. 5. 13. 06:02
728x90
반응형

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 블록과 관련된 모든 옵션과 사용 예제, 그리고 각 옵션에 대한 상세한 설명을 제공합니다. 이러한 정보를 통해 보다 복잡하고 세부적인 설정을 구성할 수 있습니다.

728x90
반응형
LIST