
vsftpd サーバーの設定を始めたときに多くの問題が発生しましたが、今回は何が問題なのか正確にはわかりません。
職場に vsftpd を実行している Ubuntu 14.04 サーバーがあります。サーバーは DMZ 内のファイアウォールの背後にあり、特定の内部およびグローバル IP アドレスが割り当てられています。ローカルホストからの接続も内部ネットワークからの接続も機能します。
ここまでは順調ですが、内部ネットワークからでも他の場所からでも、グローバル IP アドレス経由で FTP サーバーにアクセスしようとすると、FileZilla は次のようなメッセージを表示します。
Status: Connecting to <global.ip>:21...
Status: Connection attempt failed with "ECONNREFUSED - Connection refused by server".
Error: Could not connect to server
存在しない IP を入力するとタイムアウト エラーが発生し、グローバル IP で whois チェックを実行すると会社のインターネット サービス プロバイダーが表示されるため、間違った IP アドレスが原因である可能性は排除できます。
vsftpd.conf 内で 50.000 の範囲にパッシブ ポートを設定しました。また、ファイアウォールはポート 20、21、50.000-50.050 からの要求を転送します。次に、必要なトラフィックを通過させるために、iptables 構成にいくつかのルールを追加しました。
参考までに、私の iptables 設定は次のとおりです。
~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere
tcp dpts:50000:50050
ACCEPT tcp -- anywhere anywhere
tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere
tcp dpt:ftp
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere
tcp spt:ftp-data
そして私の vsftpd.conf:
listen=YES
local_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
ftpd_banner=Welcome
chroot_local_user=YES
ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_ciphers=HIGH
rsa_cert_file=/home/awacs/vsftp.crt
rsa_private_key_file=/home/awacs/vsftp_clear.key
#pasv_address=<global.ip>
pasv_min_port=50000
pasv_max_port=50050
listen_port=21
pasv_enable=YES
#listen_address=<global.ip>
ご覧のとおり、私は設定でpasv_address
とlisten_address
パラメータを試しました。 listen_address の結果、サーバーはグローバル IP からのリクエストのみを受け取り、まったく応答しなくなります。 pasv_address を設定しても、外部リクエストがまだ機能せず、内部ネットワークからの接続がディレクトリ LIST コマンドで停止したため、満足のいく結果にはなりませんでした。
誰かが私が何を間違えたか、または見落としたか教えてくれると嬉しいです。サーバーは内部ネットワークからは完璧に動作していますが、グローバル IP 経由で接続できないことを再度強調します。よろしくお願いします。