Ubuntu에서 SFTP 서버 설정 방법

Ubuntu에서 SFTP 서버 설정 방법

2022-06-04 last update

7 minutes reading Ubuntu
SFTP는'보안 파일 전송 프로토콜'(Secure File Transfer Protocol)의 줄임말로 인터넷을 사용하여 파일을 한 곳에서 다른 곳으로 전송하는 데 사용되며, 그 작업 원리는 FTP(File Text Protocol)와 유사하지만, SFTP는 SSH 서비스로 파일의 프라이버시를 확보하고, SSH 서비스는 파일을 암호화함으로써 파일의 데이터를 보호하기 때문에 누구도 데이터에 접근할 수 없다.
데이터에 대한 암호화와 목표 위치로 더욱 안전하게 전송하는 것이 장점이지만 단점도 있다.대상 위치에 도달하면 모든 사용자가 액세스할 수 있습니다.따라서 그것을 더욱 안전하게 하기 위해서, 우리는 허용된 사용자가 아니라 다른 사용자의 접근을 제한해야 한다.
본고에서 우리는 Ubuntu에 SFTP를 설치하는 방법(아직 설치하지 않은 경우)과 Ubuntu의 간단한 명령을 사용하여 설정하는 방법을 토론할 것이다.

Ubuntu에 SFTP 서버 설치 방법


기본적으로 SFTP 서버는 일반적으로 Ubuntu에 설치되지만 설치되지 않은 경우 Ubuntu의 간단한 명령을 사용하여 SSH를 설치할 수 있습니다.SFTP는 SSH 서버를 사용하기 때문에 SFTP 서버가 설치되어 있는지 확인하기 위해 아래에 언급된 명령을 실행합니다.
$ sudo systemctl status ssh

Ubuntu에 SSH가 설치되어 있지 않습니다. 설치하려면 Ubuntu의 다음 명령을 실행하십시오.
$ sudo apt install ssh -y

설치 후 시스템 ctl 명령을 사용하여 사용합니다.
$ sudo systemctl enable ssh

이제 systemctl 명령을 다시 사용하여 시작합니다.
$ sudo systemctl start ssh

ssh의 설치를 확인하려면 systemctl 명령을 사용하여 상태를 확인하십시오.
$ sudo systemctl status ssh

SSH가 성공적으로 설치되었음을 나타냅니다.

SFTP 사용자 계정 생성 방법


우리는 직접 사용자를 만들 수도 있고, SFTP 그룹을 만든 다음 사용자를 만들어서 SFTP에 접근할 수도 있다.예를 들어 그룹을 만들려면 "sftp"라고 명명합니다. 사용자의 선택에 따라 이름을 지정하고 터미널에서 다음 작업을 수행할 수 있습니다.
$ sudo addgroup sftp

사용자 "John"을 만들려면 사용자 이름을 사용하여 "John"으로 이름을 바꾸려면 다음 명령을 실행하십시오.
$ sudo useradd John

새로 만든 사용자를 확인하려면 다음을 수행합니다.
$ less /etc/passwd | grep John

새 사용자에 암호를 추가하려면 다음을 실행하십시오.
$ sudo passwd John

사용자 John을 그룹 sftp로 이동하려면 다음 명령을 실행합니다.
$ sudo usermod -a -G sftp John

사용자 John이 그룹 sftp에 추가되었는지 확인하려면 다음 문장을 실행하십시오.
$ grep sftp /etc/group

파일 전송 디렉터리를 만드는 방법


다른 사용자의 디렉터리에 대한 접근을 제한하는 방법을 이해하기 위해서, 루트/var/sftp에 디렉터리'Document'를 만듭니다. 이 디렉터리는 루트가 소유합니다.그런 다음 우리가 만든 John 사용자만 이 디렉토리에 액세스하여 파일을 업로드할 수 있습니다.
이렇게 하려면 먼저 mkdir 명령을 사용하여 Document 디렉토리를 만듭니다.
$ sudo mkdir -p /var/sftp/Document

루트 사용자가/var/sftp의 소유자를 식별할 수 있도록 허용:
$ sudo chown root:root /var/sftp

이 디렉터리에 대한 쓰기 권한을 같은 디렉터리에 부여하고 다른 사용자가 읽기만 할 수 있도록 합니다.
$ sudo chmod 755 /var/sftp

이제 사용자 John에게 문서에 대한 권한을 부여합니다.
$ sudo chown John:John /var/sftp/Document

SSH 데몬을 구성하는 방법


설치가 완료되면 모든 편집기를 사용하여 SSH 서버의 구성 파일을 열고 구성합니다.이 설정에서, 우리는 사용자 John을 디렉터리/var/sftp에 제한하고, 다른 사용자는 이 디렉터리에 접근할 수 없습니다.다음 명령을 실행하기 위해 nano 텍스트 편집기를 사용하여 구성하고 있습니다.
$ sudo nano /etc/ssh/sshd_config

파일을 연 후 다음 텍스트를 입력합니다.
Match User John

ChrootDirectory /var/sftp

X11Forwarding no

AllowTcpForwarding no

ForceCommand internal-sftp

파일을 열면 아래에 "Subsystem sftp/usr/lib/openssh/sftp server"텍스트를 볼 수 있습니다. 이 줄을 이 줄 뒤에 쓰십시오.이 다섯 줄의 설명은 다음과 같다.
  • Match User는 SSH가 언급된 사용자에게 이러한 변경 사항을 실현한다고 알려줍니다. 예를 들어 "John"
  • 입니다.
  • ChrootDirectory는 사용자가 다른 디렉터리에 접근할 수 없으나 일부 디렉터리를 제공하는 경우를 제외하고 "/var/sftp"
  • 입니다.
  • AllowTcpForwarding과 X11Forwarding은 포트 터널과 X11Forwarding을 사용하거나 사용하지 않습니다. 예를 들어 "no"
  • 를 입력하여 이 두 기능을 사용하지 않습니다.
  • ForceCommand는 SSH가 로그인 후에만 SFTP 서버를 실행하는지 확인
  • 변경이 완료되면 Ctrl+S를 눌러 변경 사항을 저장한 다음 Ctrl+X를 눌러 편집기를 종료합니다.
    이러한 새 변경 사항을 적용하려면 다음 명령을 사용하여 SSH 서버를 다시 시작합니다.
    $ sudo systemctl restart ssh

    제한 구성을 검증하는 방법


    제한 구성을 검증하기 위해 일반 SSH 명령을 사용하여 파일에 액세스하려고 합니다.
    $ ssh [email protected]

    다른 SSH에서는 John을 액세스할 수 없음을 내보냅니다.

    명령줄을 사용하여 SFTP 서버에 로그인하는 방법


    순환 주소(기본 127.0.1)를 사용하여 명령줄에서 SFTP 서버로부터 보호되는 사용자에게 로그인할 수 있습니다. 명령을 실행하면 암호를 설정해야 합니다.
    $ sftp [email protected]

    SFTP 서버에 연결되어 있습니다.ls 명령을 사용하여 이 사용자의 디렉토리를 나열합니다.
    $ ls

    사용자가 제한된 디렉터리와 문서의 출력을 표시합니다.현재 사용자는 이 외에 다른 디렉터리에 접근할 수 없습니다.

    GUI를 사용하여 SFTP 서버에 로그인하는 방법


    GUI 모드를 사용하여 SFTP에 액세스할 수도 있습니다. 기본 폴더로 이동하여 다른 위치를 선택하고sftp://[email protected] 을 클릭하고 연결을 클릭합니다.

    사용자의 암호를 묻고 암호를 입력한 다음 잠금 해제를 클릭합니다.

    마지막으로 디렉토리가 열립니다.

    SFTP 서버 제거 방법


    SFTP 서버를 삭제하거나 제거하려면 다음 명령을 사용하여 ssh를 제거합니다.
    $ sudo apt purge ssh -y

    결론


    SFTP 서버는 파일을 암호화하여 목적지로 전송한 다음 파일을 디코딩하여 안전하게 데이터를 전송합니다.파일을 전송할 때 보안을 유지해야 합니다. 파일은 민감한 정보를 포함하고 있기 때문에 이 정보는 권한을 부여받은 사람에게만 보내야 합니다. 이것은 SFTP의 도움으로 완성될 수 있습니다.본고에서 우리는 Ubuntu에서 기본적으로 SFTP를 설치하지 않은 상황에서 SFTP를 설치하는 방법을 배웠고, 그룹의 도움으로 SFTP 사용자를 직접 만들거나 만드는 방법을 배웠다.또한 선택한 사용자만 파일로 제한하는 기능과 사용자가 다른 디렉토리로 이동할 수 없도록 특정 파일로 제한하는 기능도 학습했습니다.마지막으로 우리는 Ubuntu 20.04에서 ssh 서버를 삭제하는 방법을 배웠다.