実践Linux
CentOS8        CentOS8 目次へ  TOP(HOME)へ


FTPサーバー(vsftpd)            2020年7月



FTPサーバー(vsftpd 3.0.3-28)

●設定ファイル /etc/vsftpd/vsftpd.conf
  anonymous_enable=NO  匿名ユーザはアクセス禁止にする。
  以下、#をはずす。
  ascii_upload_enable=YES  アスキーモードでのアップロード・ダウンロード許可。
  ascii_download_enable=YES
  chroot_local_user=YES  ローカルユーザーはchroot有効。
  追記 allow_writeable_chroot=YES

 あとはほぼ変更なしで使えるようになっている。詳細は後述。
 TCP Wrappersについて:TCP WrappersはRHEL7の段階で既に非推奨で、RHEL8では使用できなくなった。

●vsftpdサービスの起動
 # systemctl --type=service list-unit-files  インストールされたユニット一覧
 # systemctl --type=service list-units  実行中のユニット一覧
 # systemctl start vsftpd  スタート
 # systemctl restart vsftpd  再スタート
 # systemctl enable vsftpd  起動時有効化

●SElinux
 booleanのポリシーは、 # getsebool -a | grep ftpで調べておく。
 ポリシーftp_home_dirがOFFでも、なぜかホ−ムにアクセスできる。
 ホ−ムにアクセスできず、ONにする場合は、
 # setsebool -P ftp_home_dir 1

●firewalldの設定
 trustedゾーンに対しては、必要ない。
 externalゾーンに対しては、「Vsftpd Over SSL/TLS」のところで後述する。


/etc/vsftpd/vsftpd.confの主な設定項目

anonymous_enable=NO  匿名ユーザはアクセス禁止にする。
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
  Activeモード時のデータコネクションポートを20番に固定するかどうかの設定。デフォルトのNOでは任意のポートが使用される。20番にしないと、クライアント側環境によってはデータ転送ができない可能性もある。
xferlog_std_format=YES

ascii_upload_enable=YES
  #をはずす=アスキーモードでのアップロード・ダウンロード許可。
ascii_download_enable=YES

chroot_local_user=YES
  #をはずす=ローカルユーザーは全てchrootを有効にする。
allow_writeable_chroot=YES
  追記。chrootを有効にすると、ホームディレクトリに書き込み権限のあるユーザがログイン出来なくなるので、ログイン出来るようにする。
#chroot_list_enable=YES
  下のリストファイルを利用する場合。
#chroot_list_file=/etc/vsftpd/chroot_list
    上のchroot_local_user=YESの設定がないとchrootするユーザーリストとなるが、
    上の設定があると逆転してchrootしない(全て覗ける)ユーザーリストとなる。

#ls_recurse_enable=YES
  ディレクトリを丸ごと削除できるようにする。

listen=NO
YESだとipv4のみスタンドアローン
listen_ipv6=YES
ipv4とipv6の両方がスタンドアローン

pam_service_name=vsftpd
userlist_enable=YES
←/etc/vsftpd/user_listは接続拒否ユーザーリスト/ftpusersは認証後拒否/他は許可
#userlist_enable=NO
 →user_listを使用しない/ftpusersは拒否ユーザーとなる


firewalledとFTPパッシブモードについて
FTPには、データ転送に使用するポートと接続方法の違いによって、アクティブFTPとパッシブFTPがある。
アクティブFTP: 昔からある方法で、サーバからクライアントに対してデータコネクション確立を行なう。 FTPの制御(コマンドとレスポンス)に21番ポートを使用し、FTPのデータ転送(lsコマンドの結果、ファイルのアップロード・ダウンロード)に20番ポートを使用する。
パッシブFTP: クライアントからサーバに対してデータコネクション確立を行なう。FTPの制御に21番ポートを使用し、FTPのデータ転送に任意のポートを使用する。
FTPでクライアントからサーバにファイルを送信するには、通常のモードではクライアントからサーバに接続した後、サーバからクライアントにデータ通信用の接続要求を行い、このコネクションを利用してファイル送信を行う。この方式だと、クライアントがファイアウォールの内側にあり、外部から直に接続要求を行うことができないような環境ではファイルの送信が行えない。こうした場合に利用するのがパッシブモードである。

firewalledに「nf_conntrack_ftp」モジュールを組み込んでおくと、データコネクションやパッシブモードの対応を自動で行ってくれる。
ftp.xml(/usr/lib/firewalled/services)をみると、すでに組み込まれていることがわかる。


TOP(HOME)へ

目 次
HOME
 全体のシステム構成&目次

CentOS7-8の新機能(systemdとfirewalld)

CentOS8
CentOS8のインストール〜ネットワークの設定ほか
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
DHCPサーバー
FTPサーバー
FTPS(FTP over SSL/TLS)
Webサーバー
  アクセス解析ツールAwstats
Mail(Dovecot&Postfix)サーバー
MariaDB(MySQL)サーバー
SSHサーバー
Sambaサーバー
openVPNサーバー

CentOS7
CentOS7のインストール〜ネットワークの設定ほか
CentOS7の新機能(systemdとfirewalld)
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
Webサーバー
  Webでファイルの受け渡し
  アクセス解析ツールAwstats
  Wordpressでブログ構築
  EC-CUBEショッピングサイト構築
FTPサーバー
FTPS(FTP over SSL/TLS)
Mail(Dovecot&Postfix)サーバー
Sambaサーバー
MariaDB(MySQL)サーバー
DHCPサーバー
SSHサーバー
VNCサーバー
ストリーミングサーバーRed5
ドメインの追加
PHP7.1をインストール

CentOS5〜6

SELinux

Cプログラミング


●その他
クラウド Amazon EC2
Raspberry Piで遊ぶ
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く


●趣味の世界
相対性理論
量子力学
群論
熱力学・統計力学
解析力学