기본 우분투 FTP 서버


33

우분투 서버 설치에서 기본 FTP 서버를 설정하고 싶습니다. VSFTPD로 놀고 있지만 서버에서 디렉토리를 만들고 파일을 복사 할 수있게하는 데 문제가 있습니다. 로컬 사용자를 허용하도록 시스템을 설정했지만 디렉토리를 만들 수있는 것은 아닙니다. 이것은이 FTP 서버를 적절히 구성하기 위해 우분투 서버 설정에 더 잘 기초 해야하는 인스턴스 일 수 있습니다. 최종 목표는 배포 할 로컬 dev 폴더에서 www 폴더로 파일을 이동할 수 있도록하는 것입니다. 디렉토리도 이동할 수 있어야합니다. 도움을 주시면 감사하겠습니다.


로컬 dev에서 www 폴더로 파일 및 폴더 이동을 언급했습니다.이 모든 것을 동일한 컴퓨터 또는 다른 컴퓨터에서 수행합니까?
— Marco Ceppi

또한 VSFTPD와 함께 판매 되었습니까? 아니면 pureftp와 같은 다른 유형의 FTP 소프트웨어에 관심이 있습니까?
— Marco Ceppi

로컬 개발자는 모두 별도의 시스템입니다. FTP를 통해 파일을 웹 서버로 옮기는 데 익숙합니다. 아마 더 좋은 방법이있을 것입니다.
— JPrescottSanders

나는 VSFTPD에서 판매되지 않았지만, 인터넷 검색 중에 처음으로 발견했습니다. 더 간단한 해결책이 있다면 모두 귀입니다.
— JPrescottSanders

답변:


42

PureFTPD는 제 생각에 가장 간단하고 사용하기 쉽기 때문에 추천합니다. 먼저 설치해야합니다. sudo apt-get install pure-ftpd일단 설치되면 자동으로 시작됩니다. 기본적으로 PAM 인증을 사용합니다. 즉, 인증을 위해 시스템에 이미 존재하는 계정을 사용합니다. 홈 디렉토리가 www 경로 인 사용자 계정을 만들고 해당 계정의 비밀번호를 설정하기 만하면됩니다. 그런 다음 해당 사용자 / 패스 조합에 연결하여 파일을 업로드 / 다운로드 할 수 있어야합니다.

이 같은:

sudo adduser ftpman --home /var/www/ --ingroup www-data

이것은 ftpman사용자 를 생성하고 Apache가 사용하는 www-data 그룹에 배치하고 나머지 설정 스크립트를 안내합니다. 일단 정의되면 chmodWWW 폴더에 이미 작성된 사용자 / 그룹 조합에 이미 존재하는 오류가 발생하면이를 확인하십시오 .

마지막으로 해당 계정 실행에 대한 SSH 액세스를 잠 그려면 sudo chsh -s /bin/false ftpman해당 사용자 셸을 false로 변경합니다. (ftpman을 ftp 사용자로 바꾸십시오)


5
PureFTP는 내가 생각하는 한 가장 쉬운 설정입니다.
— Nathan Osman

1
선생님처럼 항상 완전한 설명을하는 습관이 있습니다. 대박 !!!
— user3215

1
시도했지만 새로 만든 사용자와 연결할 수 없습니다. 기존 사용자가 잘 작동
— wim

1
내가 이것을 실행할 때를 제외하고는 모두 잘 작동합니다. 이것은 chsh사용자가 FTP를 통해 로그인하지 못하게하는 것처럼 보입니다. /bin/bash다시 작동하려면 다시 설정 하십시오.
— DanH

1
감사합니다. 설정 시간에 vsftpd로 하루를 보내고 pureftpd로 5 분을 보낸 것을 확인할 수 있습니다. 간단한 설정 및 보안을 위해 pureftpd를 사용하십시오. 주류가 vsftpd를 선전하는 이유가 혼란 스럽습니다!
— RyBolt

10

제 생각에는 SFTP가 더 나은 방법입니다. 이봐, 이름에 "안전하다"라는 단어가있어

SFTP는 ssh를 사용하여 파일 전송을 수행합니다 (기본적으로 FTP + TLS 인 FTPS와 구별됨). 즉, 대상 시스템에 ssh 할 수 있으면 동일한 인증 메커니즘을 사용하므로 거의 항상 SFTP를 사용할 수 있으므로 다른 서버 데몬을 전혀 설치 및 구성 할 필요가 없습니다 (예 : pureftpd 또는 vsftpd 없음). 언제 까지나 당신의 권한이 올바르게에 대한 설정으로 /var/www- 인 아마 의 문제 sudo chmod g+w /var/www; sudo usermod -g $USER -G www-data $USER- 즉시 SFTP를 사용할 수 있어야합니다.

요즘 대부분의 클라이언트 소프트웨어는 SFTP를 매우 행복하게 할 것이며 scp, dev 서버의 셸에서 물건을 복사하기 위해 사용할 수도 있습니다 ( scp -R전체 폴더를 복사하고 매우 편리합니다). 다른 단계로 넘어 가서 공개 키로 로그인을 자동화 할 수도 있습니다. 더 이상 암호를 입력하지 않아도됩니다. :)


3
힌트 힌트 ... Windows 클라이언트가있는 경우 WinSCP winscp.net/eng/index.php 를 사용 하여 sftp 서버에 액세스 할 수 있습니다 .
— LassePoulsen

귀하의 의견에 따르면 OP는 물론 vsftpd를 사용해야합니다 .vs는 매우 안전 합니다. :-)
— qbi

PureFTPD는 SFTP와 동일한 인증을 사용합니다. 계정 정보가 유출 된 경우 아무도 시스템에 대한 SSH 액세스 권한이 없기 때문에 실제로는 더 안전합니다. 최악의 경우 파일 액세스 권한이 있습니다.
— Marco Ceppi

앱이 FTP 만 지원하고 SSH를 통해 터널링하는 경우 차이점은 무엇입니까? :)
— endolith

5

vsftpd를 사용하는 것이 좋습니다. Linux에서 가장 안전한 FTP 데몬 중 하나입니다. 다른 많은 사람들은 과거에 약점을 가지고 있었고 FTP는 안전한 방식으로 구현하기가 어렵습니다.

vsftpd는 설치 직후 시작됩니다. Ubuntu를 사용하면 로컬 사용자가 로그인 할 수 있습니다. 따라서 FTP 클라이언트를 시작하고 시스템 비밀번호를 사용하여 일반 사용자로 로그인하십시오 (예 : lftp 사용).

> lftp 127.0.0.1 ftp
lftp 127.0.0.1:~> user qbi
Password: #typing my password which I also use to log in via GDM
lftp qbi@127.0.0.1:~> ls
drwxr-xr-x 10 1000 1000   4096 2008-07-28 16:32 Desktop
... many more

이제 일종의 파일 관리자 (노틸러스, 셸 등)를 사용하여 새 디렉토리를 만들고 fooFTP 클라이언트로 돌아갑니다.

ftp qbi@127.0.0.1:~> ls -l
...
drwxr-xr-x 2 1000 1000   4096 2010-08-09 13:32 foo

디렉토리가 있고 거기에 cd들어가서 사용할 수 있습니다. 특별한 사용자가있는 경우에도 마찬가지입니다. 거기에서 디렉토리를 작성할 수도 있으며 즉시 액세스 할 수 있습니다. 여기에서 액세스 권한을 찾는 것이 중요합니다.


3

나는 내가 처음부터 쓴 FTP 서버 JetFTP를 겸손히 추천한다 . 설치 및 사용 이 매우 간단합니다.


설치:

  • 소프트웨어 소스에 PPA를 추가하고 업데이트하십시오.

    sudo apt-add-repository ppa:george-edison55/george-edison
    
  • 다음 명령을 실행하십시오.

    sudo apt-get install jetftp
    
  • 그게 다야!

JetFTP 사용은 간단 8021합니다. JetFTP가 실행중인 컴퓨터에서 로그인 이름과 암호를 사용하여 포트에 연결하면 됩니다.


2

ftp를 사용하지 마십시오. 이는 사용자 이름과 비밀번호를 서버에 분명하게 보내기 때문에 본질적으로 안전하지 않은 프로토콜입니다. sftp를 구현하는 것만 큼 쉽고 연결 보안에 큰 이점이 있습니다.


명백한 문제는 가장 좋은 답변입니다 :-)
— Sajad Bahmani

0

ftp 서버를 설정하는 방법에는 세 가지가 있습니다.

(1) 익명 FTP :

사람들은 익명 계정과 암호없이 서버에 액세스 할 수 있습니다. 물론 서버 관리자는 사용자가 불법 복제 된 음악 / 영화 / 게임과 같은 불법 파일을 넣지 못하도록 업로드 제한을 설정합니다.

(2) 익명 액세스 권한이있는 FTP 및 비밀번호 계정이있는 사용자 :

이 방법을 사용하면 익명 및 비밀번호 계정 사용자가 모두 서버에 들어갈 수 있습니다. 모든 파일 및 / 또는 폴더를 보거나 수정 / 삭제할 수있는 사용자 루트를 제외하고 지정된 디렉토리에만 액세스 할 수 있습니다.

(3) 가상 사용자 인증을위한 mysql 지원 FTP :

이 방법을 사용하면 시스템에 가상 사용자 인증 셸 계정이없는 일부 사용자 그룹에 대해서만 서버에 액세스 할 수 있습니다. 사용자 정보를 저장하는 외부 mysql 서버를 사용합니다.

첫 번째 옵션 : 익명 FTP

익명의 ftp 서버 생성을 시작하기 전에 홈 디렉토리와 함께 ftp라는 사용자를 시스템에 추가해야합니다. 이 단계는 정말 쉽습니다. 다음 명령을 따르십시오.

useradd -d /home/ftp/ftp -s /bin/false ftp

mkdir -p /home/ftp/upload

이렇게하면이 계정에만이 폴더에 쓸 수 있습니다. 더 많은 변수를 사용하여 ftp 서버가 수행 할 작업을 지정할 수 있습니다. 여기 몇 가지 예가 있어요.

-e Allow access to the server only by anonymous users
-B Start the server with background demon
-i Anonymous users can't upload files
-M Let anonymous users create folders
-s ftp user files cannot be downloaded

두 번째 옵션 : '' '익명 및 암호 계정 사용자' ''

동일한 서버에 익명 및 비밀번호 계정 사용자를 둘 수있게하려면이 작은 안내서를 따르십시오.

-B ,-i ,M, -r, -s same of before
-u <uid> Enable users with a specified user id (uid) to access the server 
-V <Ip address> Only specified IPs will be able to access the server in non-anonymous mode 

세 번째 옵션 : '' 'Mysql을 가진 가상 사용자' ''

mysql을 지원하는 서버를 만들려면 다음 단계를 수행하십시오.

http://machiel.generaal.net/index.php?subject=user_manager_pureftpd에서 찾을 수있는 PureFTPd 용 사용자 관리자를 다운로드하여 설치하십시오 .

압축을 풀고 모든 내용을 웹 서버 www 디렉토리에 업로드 한 다음 브라우저에이 링크 링크를 작성 하십시오. http : //localhost/ftp/install.php 설치 프로그램이 요청한 모든 단계를 수행하십시오. pureftpd 사용자 관리자 디렉토리의 .conf

끝난. 이 링크 http : // localhost / ftp를 사용하여 관리 패널에 액세스

서버 프로세스를 시작하기 전에 추가 할 추가 옵션

-c <num> Max client that can connect to the server
-C <num> Max connections for a IP
-T <bandwitdh> Max bandwitdh disponible for each connection
-n <MBytes> Max MB that a user can have into its home folder
-m <Cpu Loading> Stops the anonymous uploads if the cpu loading exceed from this value 

일부 ftp 서버 응용 프로그램은 다음을 참조하십시오.
https://help.ubuntu.com/6.06/ubuntu/serverguide/C/ftp-server.html


4
다른 곳에서 답변을 복사하여 붙여 넣을 때 항상 출처를 신용해야합니다 .
— Dori

0

VSFTPD의 기본 설치에서는 기본적으로 변경 사항 작성 / 수정이 허용되지 않습니다 . /etc/vsftpd.conf다음 줄 을 편집 하고 주석 해제 해야합니다 .

write_enable=YES

둘째, 해당 파일과 폴더에 대해 적절한 파일 시스템 권한을 구성해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.