Ubuntu 18.04 / 19.10에 FTP 서버 (vsftpd) 설치 > 테크게시판

본문 바로가기
사이드메뉴 열기

테크게시판 HOME



Ubuntu 18.04 / 19.10에 FTP 서버 (vsftpd) 설치

페이지 정보

작성자 인바이트미 댓글 0건 조회 198회 작성일 20-03-31 12:00

본문

Ubuntu 18.04 / 19.10에 FTP 서버 (vsftpd) 설치


0732ed33a33c9610c2596786b8ce51fa_1585623598_0852.jpg

vsftpd (Very Secure File Transfer Protocol Daemon)는 우분투에서 널리 사용되는 FTP 서버입니다. 이 안내서에서는 Ubuntu 18.04 / 19.10에서 vsftpd를 설치하고 구성 할 것입니다. 또한 FTP 사용자를 설정하고 보안 파일 전송을 위해 SFTP를 선택적으로 구성 할 것입니다.

시작하기 전에…

SFTP와 FTP / FTPS에 대한 장점을 아직도 모르는 웹 개발자 수는 놀랍습니다. SFTP는 Linux 서버가 사전 설치되어 제공되며 일반 FTP와 동일하게 작동하지만보다 안전하고 설정하기가 더 쉽습니다. FTP 클라이언트가 SFTP를 지원하는 경우이를 사용해야합니다!

1. vsftpd 설치

패키지 목록을 업데이트하고 Ubuntu 18.04 / 19.10에 vsftpd를 설치하는 것으로 시작하겠습니다.

아래에는로 구분 된 두 개의 명령이  &&있습니다. 첫 번째 명령은 패키지 목록을 업데이트하여 vsftpd의 최신 버전과 종속성을 얻습니다. 두 번째 명령은 vsftpd를 다운로드하여 설치합니다.  계속하라는 메시지가 나타나면 y 및을  누릅니다  ENTER.

sudo apt update && sudo apt install vsftpd

설치되면 vsftpd의 상태를 확인하십시오

sudo service vsftpd status
 vsftpd.service - vsftpd FTP server
   Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled
   Active: active (running) since Tue 2018-04-17 15:23:22 UTC; 10s ago
 Main PID: 31602 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─31602 /usr/sbin/vsftpd /etc/vsftpd.conf

Apr 17 15:23:22 myserver systemd[1]: Starting vsftpd FTP server...
Apr 17 15:23:22 myserver systemd[1]: Started vsftpd FTP server.

위의 FTP 서버가 이제 작동 중임을 알 수 있습니다.

2. 방화벽 구성

아직 그렇게하지 않았다면 ufw 우분투 18.04 / 19.10에 방화벽을 활성화하는 것이 좋습니다  ufw 방화벽을 활성화하기 전에  SSH 규칙을 추가해야합니다. 그렇지 않으면 원격으로 연결된 경우 서버에서 잠길 수 있습니다. 방화벽을 설정하지 않으려면 3 단계로 건너 뜁니다.

sudo ufw allow OpenSSH

FTP의 경우 포트 20과 21을, 수동 FTP의 경우 포트 40000-50000을 엽니 다. 또한 TLS 용 포트 990을 열어 나중에 설정합니다.

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw allow 990/tcp

이제 방화벽이 없으면 활성화하십시오. 보도 y및 ENTERSSH를 연결을 방해에 대해 경고합니다.

sudo ufw enable

방화벽의 상태를 확인하려면 다음을 실행하십시오.

sudo ufw status

방화벽이 실행 중이면 Status: active 방금 추가 한 방화벽 규칙 이 표시  됩니다.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Apache Full                ALLOW       Anywhere
3306                       ALLOW       Anywhere
20/tcp                     ALLOW       Anywhere
21/tcp                     ALLOW       Anywhere
40000:50000/tcp            ALLOW       Anywhere
990/tcp                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Apache Full (v6)           ALLOW       Anywhere (v6)
3306 (v6)                  ALLOW       Anywhere (v6)
20/tcp (v6)                ALLOW       Anywhere (v6)
21/tcp (v6)                ALLOW       Anywhere (v6)
40000:50000/tcp (v6)       ALLOW       Anywhere (v6)
990/tcp (v6)               ALLOW       Anywhere (v6)

3. FTP 사용자 생성

이제 FTP에 로그인하는 데 사용할 새 사용자를 만듭니다. 이 예에서는이라는 새 사용자를 만듭니다  ftpuser.

sudo adduser ftpuser

강력한 암호를 생성하고  안전하게 유지하십시오.

연락처 정보를 입력하라는 메시지가 표시 될 수도 있습니다. 당신 ENTER 은 이것들 각각을 누를 수 있습니다  .

ftpuser FTP 를 통해서만  로그인하려면 SSH 구성 파일에서 사용자 이름을 블랙리스트에 추가하여 SSH 액세스를 비활성화해야합니다. 그렇지 않으면 4 단계로 건너 뜁니다.

nano에서 SSH 구성을 엽니 다.

sudo nano /etc/ssh/sshd_config

ftpuser SSH 및 SFTP 액세스를 거부하려는 사용자로 대체하여 파일 맨 아래에 다음을 추가하십시오  여기에 여러 사용자를 단일 공백으로 구분하여 추가 할 수 있습니다. 나노로 붙여 ​​넣으려면 마우스 오른쪽 버튼을 누릅니다.

/ etc / ssh / sshd_config
DenyUsers ftpuser

파일을 저장하고 종료하려면  CTRL +  X를 누르고을 누른  Y 다음을 누릅니다  ENTER.

SSH 서비스를 다시 시작하십시오.

sudo service sshd restart

4. 디렉토리 권한

이제이 새 FTP 사용자가 파일을보고 업로드 할 수있는 위치를 결정해야합니다.

vsftpd는 chroot jails를 사용하여 사용자를 홈 디렉토리로 제한하며 홈 디렉토리를 쓸 수 없어야합니다. 따라서 일부 디렉토리와 권한을 설정해야합니다.

이 FTP 사용자 계정을 사용하여 파일을 웹 서버에 업로드하려는 경우 4.1 단계를 계속하십시오. 홈 폴더에 업로드하려는 경우 4.2 단계로 건너 뜁니다.

4.1. 웹 서버에 업로드

대부분의 경우 웹 서버의 문서 루트에 파일을 업로드 할 수 있기를 원합니다.

여러 도메인을 설정 여기를 이전 가이드를 따라하는 경우처럼, 문서 루트는 어딘가에 위치 할 수있다  /var/www/test1.com/public_html 이 경우에, 당신이 홈 폴더를 설정해야 -  ftpuser 폴더로    : 문서 루트  /var/www/test1.com (대입 test1.com에 대한 자신의 도메인).

여러 도메인을 사용 하지 않는 경우 /var/www/html Ubuntu 18.04 / 19.10에서 Apache 및 Nginx에 대한 기본 문서 루트 를 사용한다고 가정합니다  이 시나리오에서는 /var/www/사용자의 홈 디렉토리 를 만들어야  합니다  ftpuser.

 문서 루트  의 폴더 를의 홈 디렉토리로  설정합시다  ftpuser.

sudo usermod -d /var/www ftpuser

이제 문서 루트  디렉토리의  소유권을로 설정하십시오  ftpuser 서버에 /var/www/html있을 수 있지만  기본값은  /var/www/test1.com/public_html입니다.)

이를 통해 FTP 사용자는 문서 루트 디렉토리에 파일을 작성하고 변경할 수 있습니다.

sudo chown ftpuser:ftpuser /var/www/html

이제 5 단계로 건너 뛰어 vsftpd를 구성하십시오.

4.2 홈 폴더에 업로드

대신이 사용자가 홈 디렉토리에 파일을 업로드하도록 ftp하려면 사용자의 홈 디렉토리에 라는 새 디렉토리를 작성 하고 그 내에 다른 디렉토리를 작성하십시오 files아래의이 예에서는 사용자를이라고  ftpuser합니다.

sudo mkdir /home/ftpuser/ftp

ftp 디렉토리 의 소유권 을 no로 설정하십시오 nobody:nogroup.

sudo chown nobody:nogroup /home/ftpuser/ftp

 다른 사람이 쓸 수 없도록 ftp 디렉토리에  대한 권한을 설정하십시오  chmod. 그렇지 않으면 vsftpd가 로그인을 허용하지 않습니다.   a-wmeans  a = all / everyone  -  = remove  w = 쓰기 권한 이므로 모든 사람에 대한 쓰기 권한을 제거하십시오 .

sudo chmod a-w /home/ftpuser/ftp

다음으로 /ftp사용자가 파일을보고 업로드 할 수 있는 새 디렉토리를 만듭니다 .

sudo mkdir /home/ftpuser/ftp/files

이 디렉토리의 소유권을 새 FTP 사용자에게 할당하십시오. 그렇지 않으면 해당 디렉토리에 쓸 수 없습니다.

sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files

5. vsftpd 구성

Ubuntu 18.04 / 19.10에서 FTP 사용을 시작하기 전에 vsftpd 구성 파일을 약간 변경해야합니다.

구성 파일을 편집하기 전에 백업을 작성하십시오.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

이제 nano편집기 에서 구성 파일을 엽니 다 .

sudo nano /etc/vsftpd.conf

이것은 상당히 큰 파일이지만 대부분 도움이되는 주석으로 채워져 있습니다.

파일을 내려가 설정이 아래의 설정과 일치하는지 확인해야합니다. 참고 :  +  를 nano 사용하여  검색 할 수 있습니다 CTRLW

을 찾아  #write_enable=YES # 기호를 제거하여 및 주석. 이렇게하면 FTP 사용자가 서버에 파일을 쓸 수 있습니다.

etc / vsftpd.conf
write_enable=YES

을 찾아  #chroot_local_user=YES # 기호를 제거하여 및 주석. 이는 FTP 사용자가 자신의 디렉토리 외부를 탐색하지 못하게합니다.

etc / vsftpd.conf
chroot_local_user=YES

을 찾아  #local_umask=022 # 기호를 제거하여 및 주석. 업로드 된 파일 및 폴더에 올바른 권한이 부여됩니다.

etc / vsftpd.conf
local_umask=022

이제 파일에 존재하지 않는 지시문을 추가해야합니다.

리눅스는 점으로 시작하는 파일을 보여주지 않기 때문에, .htaccess FTP 같은 파일  은 보이지 않습니다. Apache를 사용하려고하고 작업을하려면 문제가 될 수 있습니다  .htaccess.

vsftpd가 점으로 시작하는 파일 이름을 표시하도록하려면 파일의 맨 아래에 다음을 붙여 넣습니다. (나노로 붙여 ​​넣으려면 마우스 오른쪽 버튼을 누릅니다)

etc / vsftpd.conf
force_dot_files=YES

마지막으로, 수동 FTP를위한 포트 범위를 추가하여 사용 가능한 연결이 충분한 지 확인하십시오. 파일의 맨 아래에 다음을 붙여 넣습니다. (나노로 붙여 ​​넣으려면 마우스 오른쪽 버튼을 누릅니다)

etc / vsftpd.conf
pasv_min_port=40000
pasv_max_port=50000

당신이 홈 폴더에 파일을 업로드하기 위해 사용자가 원하는 이전에만 4.2 단계를 따라하면 우리는이 것을 vsftpd를 알려 주어야 local_root은 IS /ftp우리가 이전에 만든 폴더.

사용자가 웹 문서 루트에 업로드하도록하려면이 두 줄을 추가하지 마십시오!

etc / vsftpd.conf
user_sub_token=$USER
local_root=/home/$USER/ftp

지금은 vsftpd.conf를 사용했지만 보안 및 SSL을 설정하기 위해 다음 단계로 돌아갑니다.

파일을 저장하고 종료하려면  CTRL +  X를 누르고을 누른  Y 다음을 누릅니다  ENTER.

vsftpd를 다시 시작하십시오.

sudo systemctl restart vsftpd

6. FTP 테스트

이제 vsftpd를 테스트하여 앞서 만든 사용자로 로그인 할 수 있는지 확인할 수 있습니다. Windows, Mac 및 Linux에서 작동하는 FileZilla를 권장  합니다.

서버의 IP, FTP 사용자 이름 및 이전에 생성 한 비밀번호를 입력하고 클릭  빠른 접속을 .

위에서 우리는 성공적으로 연결되었고 웹 루트 디렉토리 html 가 표시 되는 것을 볼 수  있지만, 서버에서 다를 수 있습니다.

웹 루트 디렉토리 내에 폴더 및 파일을 업로드, 작성 및 편집하여 권한이 올바르게 작동하는지 확인하십시오.

FileZilla에“상태 :


댓글목록

등록된 댓글이 없습니다.