サーバー

CentOS7でwebサーバーを作る時に最低限やっておきたいこと。

CentOS7でwebサーバーを作る際に、変更点が結構あって戸惑ったので、webサーバー作って最初にやることをまとめました。

ちなみにApacheはyumで入れるくらいなので省略。

抑えておきた変更された概念

本質的にわかったわけではないんですけど、操作していてちょこちょこ出てくる概念を先に。知っておくと理解が早いかもしれない。

ユニットとは?

centosでは/etc/init.d/*** start などでデーモンの制御をしていましたが、ここが随分と変更された模様。

デーモンで制御される対象はユニットと呼ばれるそうで、httpdの起動とかにはhttpd.serviceを指定します。

他にも色々あるそうで、下記のものがあります。

ユニット 概要
.service バイナリを実行する
.socket systemdがSocketをListenして、接続があるとプロセスに受け渡す(xinetdの代替的な機能
.target 複数のユニットをまとめるために使用する
.device udevから通知されたデバイスを表す
.snapshot ある時点のユニットの状態
.path 指定のファイルが生成されると指定されたサービスを起動する
.mount 指定のファイルシステムをマウントする
.automout オートマウント処理を実施する ( automountdの代替的な機能 )

setvice以外は今回ご縁がありません。

firewalld

iptablesの後継がfirewallなのか、一応iptablesも存在しますが、設定はfirewallが優先されるなどがあるので、CentOS7ではfirewallを使ったほうがいいでしょう。

firewallはzoneという概念があって、それらに設定していく感じみたいですね。
デフォルトだとzoneはpublicに設定されているようなので、それらに設定していきましょう。

めちゃくちゃオプションあった….。いちいち見ていくのは無理だ..。

なので設定の仕方だけを見ていきます。

zoneとは?

現状の確認

設定方法

下記でこれでzoneへ追加します。

再起動してもzoneへの追加を残していくには下記を。

ちなみに上記だけでもいけるかなって思ってたが、ちゃんと追加してからじゃないとダメのようです。

自動起動設定

自動起動はもともとはchkconfigがその役割を持ってましたが、これはsystemctlに役割が映ったようです。

一応機能はしているようですが、注記にもあるようにsystemctl list-unit-filesを使えよって言われました。

現状の確認

上記のような形でズラッと出てきます。
右のSTATEは下記のよう意味らしいです。

static: 独自で起動できないunit
disabled: 自動起動じゃない
enabled: 自動起動されている

ちなみにサービスだけを調べたければ下記でサービスのみの表示ができます。

もっと特定のユニットを確認したければ、下記を。

最後に設定をします。

確認するとenabledになってるはずです。

ロケールの設定

localctlコマンド

いろいろコマンドがあるけど、入れるだけなら全部は使わない。

現在のロケールの確認

設定できるlocaleをリスト化

これだとめちゃくちゃ出てくるから、grepする

localeの設定を反映する。

ちょっとめんどくさいのが、上記で出てくる set-locale は設定内容ファイルを変更するだけで反映まではしてくれないそうなので、わざわざ設定ファイルを読み込まないといけない。

再読み込みさせるの無駄だと思うんだけど。。

タイムゾーンの設定

timedatectlコマンドで設定することが可能です。使い方はlocalectlと似てますね。

現状確認

タイムゾーンがベルリンになっているのでAsia/Tokyoに変えましょう。

インストールできるtimezoneの確認

タイムゾーンを設定する

CentOS7にMySQL5.7のYumレポジトリを追加してインストールする

環境

  • CentOS7
  • MySQL5.7

CentOS7を使うために改めてMySQLを入れようと思ったので、メモ。
MySQLの本家の公式に記載されている方法です。

まっさらなCentOS7に追加していきます。

必要なパッケージのインストール

パッケージのDLはこちらから
http://dev.mysql.com/downloads/repo/yum/

今回はCentOS7なので下記。

確認してmysql7のレポジトリがenabledになっていればよさそう。

インストールする

煩わしい手順はなく、下記で一発。

起動してみる

CentOS7からは/etc/init.d/以下にあったやつらがsystemdの管理下に映ったらしく、その関係で下記のように出る。非常にきもい。
ここは別途調べます。

初回ログイン

これまでは確かrootのディレクトリに.mysql_secretというファイルに存在してたらりしてたと思うが、それも変更された模様。

これで無事に入れる。

パスワードの使用変更あり

MySQL7からはvalidate_password pluginというものがデフォルトで入ったらしくパスワードに使う文字の条件が厳しくなったようです。

  • 1つ以上の大文字
  • 小文字
  • 数字
  • 特殊文字(!とか)
  • 上記を使って8文字以上

ここら辺が条件として入っているみたいですね。

以上でインストールは終わりです。MySQLのインストールは簡単ですけど、CentOS7の方がなんか慣れずに気持ち悪さを感じでしまいましたw

tmuxの最新版(2.0)をCentOSとMacへ入れる

tmuxを使いたいので、MacとLinux両方に入れてみた備忘録です。

Macに入れる

macに入れるのはHomebrewが入っていれば簡単です。
Homebrewを入れてない人は下記を参照してみてください。

はじめてのHomebrewの導入

入っていれば下記で一発で入ります。

CentOSにtmux最新版を入れます。

CentOSの環境です。

tmuxに必要なもの

  • tmuxの最新版のパッケージ
  • libeventの最新
  • ncurses-devel

tmuxとlibeventはyumでもインストールできるはできるんですが、バージョンが古いです。

ncurses-develはyumで入ります。

ちなみにlibeventってなんだ?!っておもったので調べたのですが、僕にはまだよく理解できませんでした。。

libeventとは – NeiNeigh’s blog

勉強させていただきました。

まずはncurses-develを持ってくる

libeventの最新版を入れる

ここから最新版を持ってきてください。(2015年7月22日時点は下記が最新です)

libeventに認識させる

libeventを使うためにリンクを作成する

tmuxをインストール

tmuxの最新版はこちらから持ってきます。

以上でtmuxが動けばOK!動かしてみて下記のようなエラーがでたらシンボリックリンクが貼れてないとかそんな感じです。

CentOS6.6に最新のVimを入れる

はじめに

yumで入れるvimは古いため設定ファイルをいろいろな環境で共存させようとしたりすると不具合が生じます。

あとは個人的には必須アイテムのunite等が使えなかったりするので結構大打撃です。

Kaoriya Vim なんかを使っているとするとyumでインストールされるVimは結構使い物にならない気がします。

vimを入れる環境

念のため、今回入れる環境です。

バージョン

マシンアーキテクチャ

gitがなければgitを入れる

ここは割愛します。下記記事を参照していただけると嬉しいです。

さくらVPSで借りたCentOSでLAMP環境のセッティング

vimを入れる

まずはGitからvimの最新のソースを持ってくる。

ユーザー共通にするために/usr/local/src以下におきます。

buildに必要なものをゲットする

Lua拡張できるようにする

「Lua」とはご存知の方は多いと思いますけど、プログラミング言語の一つです。特徴は移植性が高くて非常に高速なんだそうです。

build します

再構築

再構築する際のメモ

VagrantのCentOS6.5を日本語対応、文字化けを解消する!

目的

CentOS6.5で日本語表示にしたいのと、ところどころ文字化けするのでそれを直したい。

localeで設定します。

まずは現状確認をします。

現状は以下です。

設定ファイルの中身

設定ファイルの中身を確認してみます。

ちなみにi18nはinternationalizationの略だそうです。
i で始まり n で終わる間に18文字あるからi18nというそうです。略し方がいかにもエンジニアの発想でかっこいいですね。

LANGで指定できる値を確認

引数に-aを入れれば値の確認をすることができます。

今回はあんまりでなかったので、いいんですが多い場合は、grepかけるといいでしょう

とりあえず、日本語のlocaleがありません。。

日本語関連のパッケージを取得する

これで日本語関連のパッケージを一度に入手してくれます。

ちょっと脱線してgroupinstallについて

groupinstallはパッケージをグループ単位で入手してくれるものです。
後述のgrouplistでインストール済みのものと未インストールのものが確認できます。ちなみに確認してみると日本とか言語系のものやプログラミング言語のパッケージなどがあります。

localeを追加します

確認してみると

ja_JP.utf8が増えていますね。

設定ファイルi18nを更新する

確認してみる

日本語対応しました!

[余談]git logはlessのエンコーディングで直る。

git logすると完全に文字化けしていました。その原因はgit logはlessで表示されていて、そこの設定をしてあげると解消されました。

日本語対応していれば、そもそも文字化けはしないっぽいですが、ここだけ解消したいというときは有効です。

CentOSでPostfixを使ってメール送信を行う

環境

  • CentOS6.6

Linux上でメールを送るにはpostfixを仕様します。
sendmailやqmailなどもあるが、設定が複雑で構築するには時間も手間も色々とかかってしまうので、postfixがおすすめ。

一般的にメールを送るこれらのものはMTA(Message Transfer Agent)と呼ばれています。ここでいうpostfix,sendmail,qmailなどのことです。

環境を構築する

sendmail、 qmailが動いてないかを確認する。

もし動いていたらしっかりと止めてい起きましょう。

postfixをインストール

alternativesでMTAの設定を切り替える

複数入っていれば選択肢として現れるので、番号を押して選択します。+がついているものが現在選択されているものになります。

少し脱線して、alternativesとは

alternativesとはLinuxのユーティリティです。何の役割があるかというと、同時にインストールされた同じ機能を持つソフトやバージョン違いのソフトを管理します。
下記で、内容を確認することもできます。

その他のことは

他だたgccとかバージョンをいくつか使えもので使うことがあるみたいですね。

chkconfig で自動起動を登録

onになっていれば問題なし!

とりあえずsendmailコマンドで送ってみる

上記の内容をコマンドラインで書けば送れるハズです。(宛先とかは適宜変更して下さい。)
送った内容は/var/log/maillogにログが吐き出されているので確認してみてください。遅れなかった場合などはの対応はここから見ます。ちなみにステータスが表示されていますが内容は

status=send (遅れている)
status=bounced (送信できない)
status=deferred (送信できないのであとで送る)

となります。

Postfixの設定

設定ファイルは/etc/postfix/以下のファイル

いくつか入っていますが、基本的な設定ファイルは main.cf です。

とりあえず行う基本設定

一旦こんな感じで送ることが出来ます。

SSLの概要とApacheへの導入

しょっちゅうするわけではないので、ちょこちょこ記憶の彼方にいってしまうので、色々まとめがてら、設定方法をメモします。

参考URL
八丁堀の旦那
ろば電子が詰まっている「opensslでRSA暗号と遊ぶ」
ろば電子が詰まっている「オレオレ証明書をopensslで作る(詳細版)」

大変勉強させていただきました。有難うございます。

前提知識(共通鍵暗号方式と公開鍵暗号方式)

SSLは「共通鍵暗号方式」と「公開鍵暗号方式」を組み合わせて利用している。

共通鍵暗号方式

特徴

共通鍵を使って、単一の鍵で暗号化と復号化を行う。
(送信側)→《共通鍵で暗号化》→ 送信 →《共通鍵で復号化》→(受信側)

メリット

仕組みがシンプルなので処理が早い。
双方のやりとりができる。

デメリット

一番最初の共通鍵の共有の際にセキュリティ上の問題が起こりやすい。
複数の相手の場合、(会社が違うなど)の場合はその相手分共通鍵が必要になる。

公開鍵暗号方式

特徴

公開鍵と共通鍵の2つ鍵を用いて暗号化と復号化を行う。
公開鍵と秘密鍵はペアになっており、片方で暗号化したものはペアの鍵でのみ復号化できる。

(送信側)→《公開鍵で暗号化》→ 送信 →《秘密鍵で復号化》→(受信側)

メリット

秘密鍵を鍵作成者のみしっかりと保管していれば、不特定多数の相手とも暗号かされたデータの受け渡しができる。

デメリット

基本的には公開鍵は公開するのもなので、一方通行のやり取りしかできない。
「非対称アルゴリズム」と呼ばれており、複雑な数学処理のため、重い。

サーバー側構築

Apacheに必要なもの

構築方法としては、

  1. SSLeay – Apache-SSL(パッチ)
  2. OpenSSL – Apache-SSL(パッチ)
  3. OpenSSL – mod_ssl(モジュール)

の3通りの構築の方法がある。
SSLeayが使えない場合があるので、一般的にはOpenSSLが使われることが多い。3が最も一般的。

構築手順

OpenSSLとmod_sslの組み合わせで構築する。

必要なものをインストール

mod_sslをインストールすると/etc/http/conf.d/ssl.confができる

証明書の作成

通常の証明書を作成する流れ

ssl証明書作成の流れ

作成時に入力が必要な項目。先に決めておくとベター。

opensslコマンドを使わないで証明書を作成

opensslをコマンドを使って証明書を作成

以上で、オレオレ証明書が完成しました。それぞれのファイルの中身は下記で確認することができます。

Apacheの設定

次に生成した証明書をApacheに設定していきたいと思います。通常の設定の方法と、VirtualHostを仕様している内容です。

基本設定

VirtualHostを併用している場合

VirtualHostを設定している場合、通常よりもいくつか追加修正する必要があります。

apache再起動

以上でSSLのサーバの設定が完了しました。

用語メモ
PKIとは公開鍵基盤のこと。簡単にいうと、証明書を正しく発行し、配布するシステムのこと。

拡張子.KEYは秘密鍵。(秘密鍵は拡張子はなんでもいい。今回は.keyにしている。)
「—–BEGIN RSA PRIVATE KEY—–」からはじまり、「—–END RSA PRIVATE KEY—–」で終わるファイル

拡張子.CSRとは、SSLサーバー証明書を発行するための署名要求(Certificate Signing Request)。
このファイルに含まれる情報を元に証明書が発行される。
「—–BEGIN CERTIFICATE REQUEST—–」からはじまり、「—–END CERTIFICATE REQUEST—–」で終わるファイル。

拡張子.CRTは証明書のこと。
「—–BEGIN CERTIFICATE —–」からはじまり「—–END CERTIFICATE—–」で終わるファイル

RSA暗号とは、公開鍵暗号方式の実装の一つ。

Apacheのパフォーマンスをチューニングする

目的

Virtual Hostを設定時についでに、無駄なログの吐かないようにしたりgzip使ったりしてApacheのパフォーマンスを少しチューニングしています。

そういう時の自分の設定を丸々載せておきます。ほぼ自分用メモです。チューニング関係はここに今後も追記予定。

すごく簡単なことしか書いて無く恐縮です。

環境

CentOS6.6
Apache2.2

httpd.confの設定をする

とりあえずVirtual Hostを使用する設定をhttpd.conf

/etc/httpd/conf/httpd.conf

NameVirtualHost :80 #コメントアウトをはずす
Include conf.d/vhost/
.conf #追加する

conf.d以下にVirtualHostのconfファイルを作成する

やることは2つです。

  1. アクセスログの設定最低限のログ出力に抑える。
  2. Deflate_moduleを活用してhtml、css、javascriptをgzip形式で処理する。

MacBookAirでVagrantの開発環境を構築する

vagrantは従来のVirtualBox等での開発を簡単に構築することを手助けしてくれます。
LAMPやruby on rails環境化など、本番と違う環境が開発環境ではできやすいですが、
そういった問題を解決してくれます。

VirtualBox

VirtulaBoxの公式サイトから環境に会ったものをDL

Vagrant

1,vagrant をインストール

Vagrantの公式から自身の環境にあったインストーラーをDL

もしくは

インストールがおわったら、

で確認。下記の様にバージョンが表示されればOK。

2, Vagrantで何を使うか決める

box名は今後表示される名前なので、わかりやすい名前がベター(centos6.5_x86_64など)。
vagrantのボックスリストからURLは選択。

EX)

下記で確認できればOK。

###3, Vagrantfileの初期化と作成

作業スペースとして任意のところにディレクトリの作成

移動して、初期化

vagrantfileを編集

4, 仮想マシン起動

以上で起動。

ちょこちょこ使うコマンド

バージョン確認

ボックスの確認

その他vagrant boxコマンドで使えるコマンドの確認

ステータス確認

スリープ

スリープ復帰

終了

再起動

仮想マシンの削除

ssh

vagrantの起動時にエラーがある場合に、デバックするために使うコマンド
起動時のアクションのログを抽出してくれる。

共有フォルダをapacheで使える様にする

細かいLAMP環境構築の手順はまた別途記述します。

vagrantの共有フォルダは/vagrantにだがそれをシンボリックリンクしないとローカルで編集したものが、仮想環境で確認できない。

###vagrantfileを編集

下記の部分をコメントアウトをはずす

シンボリックリンクを作成

/var/www/htmlを/vagrantのシンボリックリンクで置き換える。

何故か困った時のメモ

起動しなくなった

参考サイト様:http://qiita.com/kangju1988/items/1a7444b8886260d5105f

ゲストマシンとホストマシンのGuest Additionsがそれぞれ違う場合、問題がおこる。
そのため、VagrantのGuest Additions を自動的にアップデートしてくれるプラグインを導入する。

/etc/yum.conf を修正する

一度シャットダウンして、再度vagrantを起動する。
kernel-devel がダウンロードされているかを確認。

さらに再起動をする

となればOK

さくらVPSで借りたCentOSでLAMP環境のセッティング

今回はさくらのVPS借りている CentOS release 6.5 (Final)でLAMP環境を設定。

お決まりのyumの更新

yum list installed |grep yum-plugin-fastestmirror
// なければインストール
yum install yum-plugin-fastestmirror
yum check-update
yum update

1
2
3
4
5
6
yum list installed |grep yumpluginfastestmirror
// なければインストール
yum install yumpluginfastestmirror
yum checkupdate
yum update
 

ユーザーの作成

useradd username
passwd username

1
2
3
useradd username
passwd username
 

sudo権限の付与

su –
visudo

visudo

username All(=ALL)ALL #←追加

1
2
3
4
5
su
visudo
# visudo
username All(=ALL)ALL #←追加
 

rootでsshを禁止する

/etc/ssh/sshd_config

PermitRootLogin cheap nba jerseys yes

PermitRootLogin no #へ変更する

1
2
3
4
# /etc/ssh/sshd_config
# PermitRootLogin yes
PermitRootLogin no #へ変更する
 

iptablesの設定

http://structured-p.info/server/iptables-setting/

remi epel rpmforgeのインストール

epel(さくらVPSの場合は最初から導入されている)
http://fedoraproject.org/wiki/EPEL/ja
EPEL 6: i386, cheap nfl jerseys x86_64, ppc64, sources のx86_64をクリック
epel-release を検索し、リンク先のepel-release-6-8.noarch のリンクからwgetする

remi
http://rpms.famillecollet.com/
TOPページの「Maintained Enterprise Linux (RHEL / CentOS / Other clones)」
epelとの依存関係があり、epelがないとインストールできない

RPMforge
http://pkgs.repoforge.org/rpmforge-release/
※今回は使わないので入れなくてもOK

必要なものをダウンロード

wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6.rpm

1
2
3
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm Uvh remirelease6.rpm
 

下記のようにヒットすればOK(結果にバージョンの違いあり)

yum list instaled |grep remi-release
emi-release.noarch 6.5-1.el6.remi installed

1
2
3
yum list instaled |grep remirelease
emirelease.noarch 6.51.el6.remi      installed
 

Apacheを入れる

2.4系は入れるのが依存関係などで入れるのが面倒なので、ここでは2.2系をそのまま入れる。

yum install httpd

1
2
yum install httpd
 

PHPを入れる

ここではphp5.5をremiから導入する

yum list –enablerepo=remi –enablerepo=remi-php55 |grep php
// 必要なものを登録する
yum install –enablerepo=remi –enablerepo=remi-php55 php php-mbstring php-mysql php-devel php-pecl-xdebug php-opcache

1
2
3
4
yum list enablerepo=remi enablerepo=remiphp55 |grep php
// 必要なものを登録する
yum install enablerepo=remi enablerepo=remiphp55 php phpmbstring phpmysql phpdevel phppeclxdebug phpopcache
 

MySQLを導入する

本家(http://dev.mysql.com/downloads/mysql/)からもってきてビルド

mysql-libsがデフォルトでインストールされていてmysql-libsに依存しているパッケージがいくつかある。その場合、最新版のmysqlを持ってくる場合に依存性の問題が発生するので、 mysql-sharedをインストールする際に、依存性エラーが発生する。

その場合の対策として、 mysql-shared-compatをが必要で、mysql-sharedより先にインストールしなければいけない。

よって MySQL-client, MySQL-devel, MySQL-server, MySQL-shared-compatをまずビルド。

また、 MySQL-shard-compatをMySQL-serverより先にビルドしないとエラーが起きる。(原因不明)

MySQL-shardを最後にビルドする。

1.まずは取得

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-devel-5.6.21-1.el6.x86_64.rpm
//それぞれ取得する。

1
2
3
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-devel-5.6.21-1.el6.x86_64.rpm
//それぞれ取得する。
 

2.rpmでそれぞれビルドする

rpm -Uvh MySQL-***

1
2
rpm Uvh MySQL*
 

起動すればOK

Gitをビルド

rpm -qa で下記が導入されているかを確認する

rpm -qa make or yum list installed |grep ‘make’
// 下記にそれぞれ同じコマンドで確認
make
libcurl-devel
gcc
openssl-devel
expat-devel
gettext
asciidoc
xmlto
git
perl-ExtUtils-MakeMaker

1
2
3
4
5
6
7
8
9
10
11
12
13
rpm qa make or yum list installed |grep ‘make’
// 下記にそれぞれ同じコマンドで確認
make
libcurldevel
gcc
openssldevel
expatdevel
gettext
asciidoc
xmlto
git
perlExtUtilsMakeMaker
 

最新のgitをビルドする為には、GitHubからcloneしてくる必要がある。その為、そもそもgitが必要(さくらVPSの場合は最初からGit1.7が導入されている)

git cloneする

git clone https://github.com/git/git.git

1
2
git clone https://github.com/git/git.git
 

git をmakeする

cd für git
make configure

1
2
3
cd git
make configure
 

configureする

./configure –prefix=/usr/local –with-curl –with-expat

1
2
./configure prefix=/usr/local withcurl withexpat
 

make all docl(処理が長い)

make all doc

1
2
make all doc
 

make install

make install install-doc install-html

1
2
make install installdoc installhtml
 

versionの確認

//一度ログアウトして
git –version

1
2
3
//一度ログアウトして
git version
 

cloneしてきたバージョンに変わっていればOK!!

localtimeを確認

date
2014年 12月 1日 月曜日 08:01:48 UTC

1
2
3
date
2014 12  1 月曜日 08:01:48 UTC
 

という形で、UTCが設定されている場合は(vagrantなどは初期がコレ)JSTに変えてあげる必要がある。

先ずは確認。

/etc/localtime
strings /etc/localtime
TZif2
TZif2
UTC0

1
2
3
4
5
6
/etc/localtime
strings /etc/localtime
TZif2
TZif2
UTC0
 

上記の場合、最後の行がJST-9になっていると正しいため変更してあげる。

#念のためバックアップ
cp /etc/localtime /etc/localtime.bak
#上書き
cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
#確認
strings /etc/localtime
TZif2
TZif2
JST-9

#dateコマンドでも確認
date
Mon Skin Dec すごく基本的なiptablesの設定 1 17:07:03 JST 2014

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#念のためバックアップ
cp /etc/localtime /etc/localtime.bak
#上書き
cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
#確認
strings /etc/localtime
TZif2
TZif2
JST9
 
#dateコマンドでも確認
date
Mon Dec  1 17:07:03 JST 2014
 

変更されていればOK。

ちなみに/var/log/cronを確認すると時刻が変わっていないかったので、cronもしくはサーバーの再起動をして対応。

FTPを使えるようにする

vsftpのインストトール

yum install vsftpd

1
2
yum install vsftpd
 

設定ファイルの変更

//匿名ユーザーのログインを不許可にする。
// wholesale nfl jerseys anonymous_enable = YES
anonymous_enable = NO
.
.
.
//ホームディレクトリ以上には行けないようにする
chroot_local_user=YES
.
.
.
// /etc/vsftpd/ftpuser はブラックリスト
// /etc/vsftpd/user_list は下記の設定を追加することでホワイトリスト
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//匿名ユーザーのログインを不許可にする。
// anonymous_enable = YES
anonymous_enable = NO
.
.
.
//ホームディレクトリ以上には行けないようにする
chroot_local_user=YES
.
.
.
// /etc/vsftpd/ftpuser はブラックリスト
// /etc/vsftpd/user_list は下記の設定を追加することでホワイトリスト
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list