기본 우분투 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.