質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • CentOS

    3017questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • servlet

    505questions

    Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

  • FTP

    352questions

    FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

CentOS7でFTP(vsftpd)サーバを作る

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 571

ryohasegawa

score 111

前回の質問の続きです。

 発生している問題

*FTPツール(Cyberduck)で通信モードはPassive Modeを使っています。
ファイル階層は見れるのですが、ファイルの書き込み読み込みが行えません。
また、接続しているユーザ(ryo)は管理者としているので、/home/ryo/ の中だけではなく、/以下すべてのファイルへのアクセス権を与えたいんです。

 前回わかったこと

前回はhichonさんとblack_sleepmanさんから回答をいただき、データポートにアクセス出来ないのが原因という事がわかりました。

 サーバの設定

ファイヤーウォールの設定

[root@server-1 ryo]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s31f6
  sources:
  services: ssh dhcpv6-client http https ftp
  ports: 21/tcp 60000/tcp 60001/tcp 60002/tcp 60003/tcp 60004/tcp 60005/tcp 60006/tcp 60007/tcp 60008/tcp 60009/tcp 60010/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

vsftpd(/etc/vsftpd/vsftpd.conf)の設定

#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
# When SELinux is enforcing check for SE bool ftp_home_dir
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=077
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=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
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/xferlog
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
ascii_upload_enable=YES
ascii_download_enable=YES
#
# You may fully customise the login banner string:
ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd/banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
#
# You may 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, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=NO
#
# This directive enables listening on IPv6 sockets. By default, listening
# on the IPv6 "any" address (::) will accept connections from both IPv6
# and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6
# sockets. If you want that (perhaps because you want to listen on specific
# addresses) then you must run two copies of vsftpd with two configuration
# files.
# Make sure, that one of the listen options is commented !!
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

#Add
pasv_enable=YES
pasv_address=192.168.3.100
pasv_min_port=60000
pasv_max_port=60010

 追記

 ftp localhostの実行

[ryo@server-1 ~]$ ftp localhost
Trying ::1...
Connected to localhost (::1).
220 Welcome to blah FTP service.
Name (localhost:ryo): ryo
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

詳しい方 設定の間違っている所など教えてください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • showkit

    2018/03/16 19:18

    vsftpd と chroot をキーワードに検索してみてください。希望することができるかと思います。

    キャンセル

  • ryohasegawa

    2018/03/16 23:50

    ありがとうございます。検索してみます。

    キャンセル

  • ryohasegawa

    2018/03/22 16:12

    vsftpdでどういう設定を行うと良いのですか?

    キャンセル

回答 2

+1

「前回の質問」を拝見しました。
ファイルリストが取得できているので、データポートへのアクセスは問題ないと思います。
firewalld で許可しなくても、TCP 21番ポートであれば、kernel の nf_conntrack_ftp モジュールがデータポートを許可してくれるはずです。

切り分けとして、サーバーのコマンドライン(シェル)から、ftp localhost や lftp -u ryo localhost コマンドで接続し、ファイルアップロードを試すとどうなりますでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/22 16:05

    返信ありがとうございます。
    ftp localhostの実行を追記します。
    lftp -u ryo localhostはエラーになってしまいます。

    キャンセル

  • 2018/03/22 18:22 編集

    ftp コマンドでログイン後、ls コマンドでファイル・ディレクトリ一覧を表示したり、put コマンドでファイルをアップロードできますか?
    同じユーザーだとわかりにくいかもしれませんので、例えば /tmp/ 以下にファイルを作成し、"cd /tmp/" で移動した後、ftp コマンドでログイン、put でホームディレクトリにアップロードするなどで確認ください。

    また、lftp でエラーとは、どのようなメッセージが出力されますか?
    "lftp -u ryo 127.0.0.1" でも同じでしょうか?

    キャンセル

  • 2018/03/22 18:26

    ftp コマンドでログイン後lsコマンドでファイルリストの取得は可能です。
    ファイルをアップロードはputやgetを使うのですか?よくわからないのでやってないです。

    lftp -u ryo localhostのエラーは
    [ryo@server-1 ~]$ lftp -u ryo localhost
    -bash: lftp: コマンドが見つかりません

    です。
    lftp -u ryo 127.0.0.1も上記と同じエラーになります。

    キャンセル

checkベストアンサー

0

とりあえず、参考サイトを紹介します。

vsftpd の設定に関しては
FTPサーバー : Vsftpd インストール

chroot に関しては
vsftpd でユーザーのルートディレクトリを変更する

を参考にしてみてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/03 10:23

    ありがとうございます。
    勉強してきます。

    キャンセル

同じタグがついた質問を見る

  • CentOS

    3017questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • servlet

    505questions

    Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

  • FTP

    352questions

    FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。