web-dev-qa-db-ja.com

VSFTPD「アクセス拒否」を使用したFTP

Ubuntu 10.04i386を実行しています。 Cyber​​duck(FTP GUIクライアント)を使用してサーバーmysub.domainname.com(ここで変更)に接続します。

これが私がやりたいことです:

1)Apache2ルートを/var/wwwから/home/myuser/webrootに変更して、index.htmlなどのファイルを提供します

2)FTPが/home/myuser/webrootに書き込むことを許可します

3)myuserがユーザー/パスコンボでFTPを使用してログインし、myuserフォルダー内の任意の場所で読み取り/書き込みができるようにします

Apache2ルートフォルダは正常に機能します。 myserver.com/index.htmlにアクセスすると機能します。しかし、etc/vsftpd.confでこれらの行を変更したのに、FTPに書き込むことができません。

listen=YES
#listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
#local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/vsftpd.log
#xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd.banned_emails
# chroot_list_enable below.
#chroot_local_user=YES
#chroot_local_user=YES
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
#ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

問題

/home/myuserまたは/home/myuser/webrootにフォルダを作成しようとすると、FTPプログラムCyber​​duckでエラーCreate directory operation failed.が発生します。

多分役立つ情報:

drwxrwsr-x 2 myuser www-data 4096 2011-04-18 03:04 webroot

ここでも権限を変更しました:

-rw-rwSr-- 1 myuser root 69 2011-04-18 02:14 index.html

...しかし、運がありません。 FTPを使用してアップロードまたは書き込みを行うことができません。どんな提案やポインタも素晴らしいでしょう、私はこれにかなり正直に迷っています。

更新:

FTPの匿名ログインを有効にしようとしましたが、それを機能させることさえできませんでした...唯一の解決策は、vsftpdとApache2のシステムを完全に削除して最初からやり直すことだと思います

1
lollercoaster

権限については、myuserアカウントからアクセスできるように、フォルダとファイルをmyuserが所有している必要があります。

Apache(またはスクリプト)がフォルダーにwriteする必要がある場合は、chgrpを使用して、www-dataに書き込む必要のある特定の場所を割り当てるのが最善の方法です。グループ、次にchmod g+wその場所またはファイル。フォルダへの書き込みアクセスを許可している場合、chmod g+swはフォルダへの書き込みアクセスを許可し、そこで作成されたファイルもwww-dataグループに属するようにします。

この場合のファイルとディレクトリは次のようになります。

drwxrwxr-x 2 myuser   www-data    4096 2011-04-18 03:04 webroot
-rw-rw-r-- 1 myuser   www-data    1000 2011-04-18 03:04 index.html
drwxrwsr-x 2 myuser   www-data    4096 2011-04-18 03:04 folderwithg+ws

ただし、Apacheへのファイルやフォルダへの書き込みアクセスを許可する場合は十分に注意する必要があります。そうしないと、攻撃者がスクリプトを上書きしたり、index.htmlを置き換えたりする方法を見つけ出す可能性があります。

それ以外の場合、Apacheがドキュメントディレクトリに書き込む必要がない場合は、すべてのサブディレクトリとファイルが誰でも読み取り可能である(そしてディレクトリが誰でもアクセス可能である)限り、アクセス許可は問題ありません。

SSL/TLSの場合、不足しています

ssl_enable=YES

ユーザーに暗号化の使用を強制できます。

force_local_logins_ssl=YES
force_local_data_ssl=YES

また、HIGHまたは特定の暗号リストに制限する場合は、ssl_ciphers=オプションもあります。 「暗黙のSSL」(AUTH SSLまたはAUTH TLSコマンドで暗号化を開始する代わりに、暗号化は接続の開始時にネゴシエートされます)が必要な場合、それはimplicit_ssl=YESです。

2
DerfK