web-dev-qa-db-ja.com

Linux UbuntuサーバーのVSFTPD / FTPに関する問題-トラブルシューティングの手順?

解決方法がはっきりせず、しばらく前から髪の毛を抜いている問題に対処しています。以下を使用してFTPユーザーを構成しようとしています(すべてのサーバーでこの同じドキュメントを使用しています)

FTPサーバーのインストール

  • apt-get install vsftpd local_enableおよびwrite_enableをYESに設定
  • および匿名ユーザーは/etc/vsftpd.confでNOに再起動します-サービスvsftpd
  • 再起動-変更が行われるようにします

Add WordPress FTPアクセス用のユーザーWP Admin

ユーザー用の偽のシェルを作成し、/ etc/shellsファイルの最後に「usr/sbin/nologin」を追加します。

FTPユーザーアカウントを追加

  • useraddユーザー名-d/var/www/-s/usr/sbin/nologin
  • パスワードのユーザー名

これらの行を/etc/vsftpd.confの最後に追加します
-userlist_file =/etc/vsftpd.userlist-userlist_enable = YES-userlist_deny = NO

/etc/vsftpd.userlistの上部にあるリストにユーザー名を追加します

  • 再起動vsftpd "サービスvsftpd再起動"
  • ファイアウォールがftpに対して開いていることを確認します "ufw allow ftp" allow
  • / var/wwwディレクトリをユーザー名「chown -R/var/www」に変更します。

私も この投稿 に記載されているすべてを試してみましたが、運はありません。接続が拒否されました。

上記の不適切なテキストの書式設定でごめんなさい。あなたはアイデアを理解していると思います。これは私たちが何度も行っていることであり、何らかの理由でここでは協力していません。

セットアップはUbuntu 12.04LTSおよびVSFTPD v2.3.5です。

7
jnolte

これがiptables設定のINPUT部分です。

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  anywhere             127.0.0.0/8          reject-with icmp-port-unreachable
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http-alt
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables denied: "
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

ここ^

ufw-before-logging-input  all  --  anywhere             anywhere            
ufw-before-input  all  --  anywhere             anywhere            
ufw-after-input  all  --  anywhere             anywhere            
ufw-after-logging-input  all  --  anywhere             anywhere            
ufw-reject-input  all  --  anywhere             anywhere            
ufw-track-input  all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:ftp state ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:ftp-data state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp spts:1024:65535 dpts:1024:65535 state ESTABLISHED

REJECTで強調した行は、すべての着信接続を拒否しています。 ftpとftp-dataを許可するために下部に配置したルールは決して実行されません。 ufw-ルール。

私はubuntuの人ではないので、確認するのに便利な箱はありませんが、ファイアウォールを処理するinitスクリプトが最初のいくつかのルールをハードコーディングしており、その後、構成を追加した場所で後で発生していますブートシーケンス。

1
Dan Pritts

これが役立つかどうかはわかりませんが、これは私にとって完璧に機能する私のvsftpd.confファイルです:)何年にもわたる変更の量が原因です。 vsftpd.confファイルに変更が加えられていることに気づきました。

    # /etc/vsftpd.conf - vsftpd configuration file
#
# Run standalone
listen=YES
#
# Allow anonymous FTP
anonymous_enable=NO
#
# Allow local users to log in
local_enable=YES
#
# Allow any form of FTP write command
write_enable=YES
#
# Default umask is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd)
local_umask=022
anon_umask=022
#
# Allow the anonymous FTP user to upload files
anon_upload_enable=NO
#
# Allow the anonymous FTP user to be able to create new directories
anon_mkdir_write_enable=NO
#
# Activate directory messages
dirmessage_enable=YES
#
# Display directory listings with the time in your local time zone
use_localtime=YES
#
# Activate logging of uploads/downloads
xferlog_enable=YES                    
#
# Make sure PORT transfer connections originate from port 20 (ftp-data)
connect_from_port_20=YES
#
# Customise the login banner string
ftpd_banner=Welcome to FTP service.
#
# Restrict local users to their home directories
chroot_local_user=NO
#
# Activate the "-R" option to the builtin ls. This is disabled by default to
# avoid remote users being able to cause excessive I/O on large sites.
# However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option
ls_recurse_enable=YES
#
# Show textual names in the user and group fields of directory listings
text_userdb_names=YES
#
# Empty directory not writable by the ftp user as a secure chroot() jail at
# times vsftpd does not require filesystem access
secure_chroot_dir=/var/run/vsftpd/empty
#
# PAM service vsftpd will use
pam_service_name=vsftpd
#
# Support secure connections via SSL. This applies to the control connection
# (including login) and also data connections
ssl_enable=YES
#
# Certificate to use for SSL encrypted connections
rsa_cert_file=/etc/vsftpd/ssl/ssl.pem
#
#
# Not to require all SSL data connections to exhibit SSL session reuse
require_ssl_reuse=NO
#
# Force authenticated login and data via SSL
force_local_logins_ssl=NO
force_local_data_ssl=NO

ssl_ciphers=HIGH

# DEV1 Settings
listen_port=21
pasv_enable=YES
pasv_min_port=64400
pasv_max_port=64499

pasv_address=YOUR Static Public IP
1
jmituzas