基本的なUbuntu FTPサーバー


33

Ubuntu Serverのインストール時に基本的なFTPサーバーをセットアップしたいと思います。私はVSFTPDで遊んでいますが、ディレクトリを作成してファイルをコピーできるようにするためにサーバーを取得するのに問題があります。ローカルユーザーを許可するようにシステムを設定しましたが、ディレクトリを作成するためのアクセス権が得られるわけではありません。これは、このFTPサーバーを適切に構成するために、Ubuntuサーバーのセットアップをよりよく理解する必要がある場合です。最終目標は、ローカルのdevフォルダーからファイルを展開のためにwwwフォルダーに移動できるようにすることです。ディレクトリも同様に移動できる必要があります。どんな助けも大歓迎です。


ファイルとフォルダーをローカルdevからwwwフォルダーに移動することについて言及しましたが、これはすべて同じマシンで実行していますか、それとも異なるマシンで実行していますか?
マルコセッピ

また、VSFTPDで完全に販売されていますか?または、pureftpのような他のタイプのFTPソフトウェアに興味がありますか?
マルコセッピ

Local devは完全に独立したマシンです。FTPを介してWebサーバーにファイルを移動することに慣れています。おそらくもっと良い方法があります。
-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グループにユーザーが配置され、セットアップスクリプトの残りの部分が表示されます。定義したら、chmod作成したユーザー/グループの組み合わせに既に存在するエラーが発生した場合は、WWWフォルダーを確認してください。

最後に、そのアカウントの実行のためにSSHアクセスをロックダウンしたい場合:sudo chsh -s /bin/false ftpmanそのユーザーシェルをfalseに変更します。(ftpmanをftpユーザーに置き換えてください)


5
PureFTPは、私が考える限り、セットアップが最も簡単です。
ネイサンオスマン

1
常に先生のように完全な説明をする習慣があります。驚くばかり!!!
user3215

1
これを試しましたが、新しく作成したユーザーと接続できません。既存のユーザーの作業罰金
WIM

1
これはすべて正常に動作しますが、chshこれを実行すると、ユーザーはFTP経由でもログインできなくなります。に戻すと/bin/bash、再び機能します。
DanH

1
おかげで、セットアップ時間はvsftpdで1日、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サーバーにアクセスできます。
ラッセポールセン

あなたのコメントによると、OPはもちろんvsftpdを使用するべきです。なぜならvsは非常に安全だからです。:-)
qbi

PureFTPDはSFTPと同じ認証を使用します-私の意見では、アカウント情報が漏えいした場合、マシンへのSSHアクセスとして誰も安全ではないため、実際にはより安全です。最悪の場合、ファイルにアクセスできます。
マルコセッピ

アプリがFTPのみをサポートし、SSHでトンネリングしている場合、違いは何ですか?:)
エンドリス

5

vsftpdの使用を強くお勧めします。Linuxで最も安全なFTPデーモンの1つです。他の多くには過去に弱点があり、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

現在、何らかのファイルマネージャ(Nautilus、Shellなど)を使用して新しいディレクトリを作成fooし、FTPクライアントに戻ります。

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の実装も同様に簡単で、接続のセキュリティにおいて大きな利点が得られます。


明確な問題がベストアンサーです:-)
サジャドバーマニ

0

FTPサーバーをセットアップするには、3つの異なる方法があります。

(1)匿名FTP:

ユーザーは、匿名アカウントとパスワードなしでのみサーバーにアクセスできます。もちろん、サーバー管理者は、ユーザーが海賊版の音楽/映画/ゲームなどの違法なファイルを入れないように、アップロードの制限を設定します。

(2)匿名アクセスとパスワード付きアカウントを持つユーザーの両方を使用したFTP:

この方法では、匿名アカウントユーザーとパスワードアカウントユーザーの両方がサーバーに入ることができます。すべてのファイルやフォルダを表示/変更/削除できるユーザーrootを除き、指定されたディレクトリにのみアクセスできます。

(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

2番目のオプション: '' '匿名アカウントとパスワードアカウントの両方のユーザー' ''

同じサーバーで匿名アカウントユーザーとパスワードアカウントユーザーの両方を使用できるようにするには、次の小さなガイドに従ってください。

-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 

3番目のオプション: '' 'Mysqlを使用する仮想ユーザー' ''

mysqlをサポートするサーバーを作成するには、次の手順に従います。

http://machiel.generaal.net/index.php?subject=user_manager_pureftpdにある PureFTPdのユーザーマネージャーをダウンロードしてインストールします

それを解凍し、そのすべてのコンテンツをWebサーバーのwwwディレクトリにアップロードしてから、ブラウザーにこのリンクlink http://localhost/ftp/install.phpに書き込みます。 インストーラーが要求するすべての手順に従いますrge pureftpd-mysqlをコピーして保存します.confをpureftpdユーザーマネージャーディレクトリに

できた このリンク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
他の場所から回答をコピーして貼り付けるときは、常にsourceをクレジットする必要があります
ドリ

0

VSFTPDのデフォルトのインストールでは、デフォルトで作成/変更の変更は許可されません。/etc/vsftpd.conf次の行を編集してコメント解除する必要があります...

write_enable=YES

次に、それぞれのファイルとフォルダーに適切なファイルシステムのアクセス許可を構成する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.