FTPサーバー:vsftpd ⇒ proftpdに変更

FTP, SSL

profptdのことについて書きたいと思います。
今までは “vsftpd” を使っていましたが、SSLの通信が思うように出来なかったので “proftpd” に切替えました。
正常に動作したのでメモ的に書きたい思います。

【設定条件】
◎正規で購入した “SSL証明書” があることを前提とします。
◎ファイアウォールは “Firewalld” とします。

【実験環境
VPSサーバ:さくらインターネット さくらのVPS
OS:centOS7

【設定方法】
1. “proftpd” インストールする。

[user@localhost] yum --enablerepo=epel -y install proftpd

2.設定ファイルを変更・追加する。

[user@localhost] vi /etc/proftpd.conf

【ファイル内容】
※省略部分があります。

#--- ipv6通信を行わない場合---#
UseIPv6       off

#--- 自分のドメイン ---#
ServerName    "tmyinsight.net"

#--- Port21を変更したい場合 ---#
#--- 変更が無ければ記入なし ---#
Port          10021

#--- パッシブポートの設定 ---#
#--- 設定なしで出来ますが、セキュリティ面で使用する---#
passivePorts  40000 50000

#--- 管理者アドレス変更 ---#
ServerAdmin   adm@tmyinsight.net

#--- アクセス・認証のログを取得の設定---#
#--- ログの取得によっては、複数やり方あります。---#
#--- お調べになった方がよろしいかと思います。---#
ExtendedLog     /var/log/proftpd/access.log WRITE,READ default
ExtendedLog     /var/log/proftpd/auth.log AUTH auth 

#~~~ 省きます~~~#

#--- 一番最後に ---#
#--- SSLの設定 ---#
TLSEngine                 on
TLSRequired               on
TLSProtocol               SSLv23
TLSLog                    /var/log/proftpd/tls.log
TLSRSACertificateFile     /root/SSL/tmyinsightnetinter.crt
TLSRSACertificateKeyFile  /root/SSL/tmyinsightnet.key
TLSOptions NoSessionReuseRequired

3.証明書の設定
サーバ証明書と中間証明書 結合する。
※証明書ファイル類は必ずバックアップをする。
※中間証明書については、購入先からダウンロードをする。

[user@localhost] cat tmyinsightnet.crt inter.crt >> tmyinsightinter.crt

4.ファイアーウォールの設定
※port “21” を変更もありますので、その場合を含めて以下の書き方にします。
4.1 port 21 の設定

[user@localhost] firewall-cmd --add-port=21/tcp --zone=public --permanent

4.2 パッシブポートの設定

[user@localhost] firewall-cmd --add-port=40000-50000/tcp --zone=public --permanent

4.3 更新する。

[user@localhost] firewall-cmd --reload

以上、設定が完了します。

lftpのコマンドでの接続可能でした。
lftp コマンド接続の仕方

【参考文献】
Server World さん -FTPサーバ:proFTPD インストール-
mk-mode BLOG さん -centos7.0 -ファイルウォール設定!
CSPSSL さん -SSLサーバ証明書とは?-
CentOSサーバー構築入門 さん -FTPにおけるアクティブモードとパッシブモードの違い-

記事を読む   FTPサーバー:vsf ...

lftp コマンド接続の仕方

centOS, FTP, SSL, ubuntu, VPS

こんにちは。
自分の諸事情で全然更新していませんでしたが・・・。
FTPについて書きたいと思います。

FTPサーバに接続をするために、ソフトを使用しています
しかし、自分の諸事情でコマンドを使用しなければいけなくなったので、今回はコマンドでやってみました。
今回は “FTP接続方法だけ” について書きます。

自分の場合は、ちょっとめんどくさいやり方なので・・・箇条書と図で説明します。

1.パソコンから自宅サーバにSSH接続をする。
2.自宅サーバからVPSサーバにFTP接続をする。また、SSL通信で行う。

lftp

【設定環境】
・自宅サーバのOSは “Ubuntu”
・VPSサーバのOSは “centOS”
・PCのOSは “Windows7”
・PCから自宅サーバにSSH接続する場合は “Tera Term” を使用します。
・自宅サーバでFTP接続する場合は “lftp” を使用します。

【設定方法】
※1 パソコンから自宅サーバにSSH接続が出来ている前提とします。
※2 VPSサーバにはFTPサーバが構築されている前提とします。
※3 lftpのコマンドについては、省略させて頂きます。

1.自宅サーバに “lftp” をインストールする。

[user@localhost]# apt-get install lftp

2.自宅サーバに接続されている “ユーザ” で、その “ユーザ” から コマンドでFTPサーバに接続ができる設定をする。
※ユーザ全体にする場合は、”/etc/lftp.conf” で記述する。
1) 必ずホームディレクトリ内で設定する。
念のために、ホームディレクトリに移動する。

[user@localhost]# cd

2)”.lftprc” を作成する。

[user@localhost]# vi .lftprc

内容

#aliasの設定
alias ls "ls -la"

#通信の設定
set ftp:ssl-auth TLS
set ftp:ssl-force true
set ftp:ssl-allow yes
set ftp:ssl-protect-list yes
set ftp:ssl-protect-data yes
set ftp:ssl-protect-fxp yes
# ※4
set ssl:verify-certificate no

※4 “set ssl:verify-certificate no” については、SSL証明書について検証エラーが出てしまうために切断されてしまう。
そのため、オフにする。
なお、自分自身理解が出来ていない部分がありますので、ネットなのでお調べをして下さい。

3.接続

[user@localhost]# lftp -u 【ユーザ】-e "debug 10" ftp://【ドメイン or ipアドレス】:【ポート】

※【】は、ご自身が指定されている記述をして下さい。”ポート” が変更されている場合は、指定されているポート記述をして下さい。

実行が行われた場合
実行1)パスワードが聞かれます。パスワードを入力する。

[user@localhost]# lftp -u 【ユーザ】-e "debug 10" ftp://【ドメイン or ipアドレス】:【ポート】
パスワード:

実行2)パスワードが入力後

lftp 【ユーザ】@【ドメイン or ipアドレス】:~>

実行3)接続を確認する。
lsで確認。
lftp 【ユーザ】@【ドメイン or ipアドレス】:~> ls

実行内容
※一部変更させて頂きます。

---- dns cache hit
---- 【ドメイン】 (【ipアドレス】) ポート 【番号】 に接続中
<--- 220 (vsFTPd 2.2.2)
---> FEAT
<--- 211-Features:
<---  AUTH SSL
<---  AUTH TLS
<---  EPRT
<---  EPSV
<---  MDTM
<---  PASV
<---  PBSZ
<---  PROT
<---  REST STREAM
<---  SIZE
<---  TVFS
<---  UTF8
<--- 211 End
---> AUTH TLS
<--- 234 Proceed with negotiation.
---> OPTS UTF8 ON

【SSL証明内容が出力されます。】

<--- 200 Always in UTF8 mode.
---> USER 【ユーザ】
<--- 331 Please specify the password.
---> PASS XXXX
<--- 230 Login successful.
---> PWD
<--- 257 "/"
---> PBSZ 0
<--- 200 PBSZ set to 0.
---> PROT P
<--- 200 PROT now Private.
---> PROT P
<--- 200 PROT now Private.
---> PASV
<--- 227 Entering Passive Mode (【ipアドレス】,195,87).
---- データソケットを (【ipアドレス】) のポート 【ポート番号】 に接続中
---- Data connection established1
---> LIST -la
<--- 150 Here comes the directory listing.


【証明書の内容が出力されます。】


drwx------   37 5002      5002          4096 Jun 09 18:51 .
drwx------   37 5002      5002          4096 Jun 09 18:51 ..
          :
          :
---- Got EOF on data connection
---- データソケットを閉じています
<--- 226 Directory send OK.
copy: get hit eof
copy: waiting for put confirmation
copy: put confirmed store
copy: get is finished - all done

これで接続が出来たことになります。

【参考文献】
yuu_nkjm blog さん – コマンドラインからFTPSでFTPサーバ上のデータを取得
憩いの場 さん – lftp – 致命的エラー: Certificate verification: Not trusted
ITPRO さん -【lftp】FTPサーバに接続してファイルを転送する

【素材】
パソコン・ルータ・サーバの素材を使わせて頂きました。
Digipot さん –

記事を読む   lftp コマンド接続の仕方

FTP(vsftpd)サーバのSSL設定について(3)

FTP, VPS

FTP(vsftpd)サーバのSSL設定について(2) の続きです。

FileZillaの説明したいと思います。

【設定方法】
※インストール 設定※
1.FileZilla のサイトからファイルをダウンロードする。
– Download FileZilla Client をクリックして下さい。
2.ダウンロードしたファイルをインストールする。
– 私がインストールした時は、WINZIPの広告が出てきました。その時は、”Decline” をクリックしました。
3.Choose Installation Options の画面が出てきます。”Anyone who uses this computer (all users)” または “Only for me ([ユーザ名])” どれか選択して、”Next”
4.Choose Componants の画面が出てきます。Select components to install のチェックが4つうち3つチェック入っています。これは変更しないで良いと思います。最後の1個はデスクトップにアイコンを追加したい場合は、チェックを入れてください。
“Next” をクリックします。
5.choose install location の画面が出てきます。ファイルをインストール先を選択してください。変更なければ、そのまま “Next”
6.Choose Start Menu Folder の画面が出てきます。そのまま “Install”
7.インストールが完了したら、 “Finish”
これで、インストールが完了です。

※サーバ接続 設定※
1.○で囲んである “アイコン” をクリックする。

2.”新規サイト” をクリックする。そして、”自分サイト” の下に “新規サイト” 出てきます。分かりやすい名前に変更して下さい。

3.サーバ接続するための設定します。

[1]ホスト名に接続したドメインを選択する
[2]ポート番号を入力する。
[3]プロトコルを “FTP – ファイル転送プロトコル” を選択する。
[4]暗号化を “明示的なFTP over TLSが必要” を選択する。
[5]ログオンの種類を “通常” を選択する。
[6]ユーザ名を入力する。
[7]パスワードを入力する。

4.”OK” をクリックする。”Ok” をクリックすることにより保存される。

これで設定が完了です。

サーバ接続ができるか確認をしてみてください。
接続する場合は、最初の画像のアイコンをクリックします。先ほど作成されたデータがあります。
それを選択して、 “接続” をクリックして下さい。
サーバに接続が出来れば完了です。

記事を読む   FTP(vsftpd)サー ...

FTP(vsftpd)サーバのSSL設定について(2)

FTP, VPS

FTP(vsftpd)サーバのSSL設定について の続きです。

自分が使っているFTPクライアントソフトは・・・
windowsの場合は winSCP
Linuxl(ubuntu)の場合は FileZilla
を使っています。
【設定方法】
winSCP
※インストール設定※
1.winSCP のサイトからファイルをダウンロードします。
2.インストールしたファイルを起動させる。
3.言語を”Japanese – 日本語”
4.セットアップウィザード “次へ”
5.使用許諾契約の同意 同意する場合は ラジオボタンを “同意” にチェックして “次へ”
6.セットアップ形式 ラジオボタンに “標準的なインストール” になっていることを確認して “次へ”
7.ユーザの初期設定 “コマンダーインターフェース” “エクスプローラインターフェース” があります。自分の好きな方に選択をしてから “次へ”
自分は、”コマンダーインターフェース” にしてあります
8.インストール準備完了 “インストール” をクリックする。

ここでインストール完了です。

※サーバ接続 設定※
1.ログイン設定をするために “新規” ボタンをクリックする。

2.セッションの設定をする。

[1]ファイルプロトコル → FTP 選択
[2]暗号化 → SSL 明確な暗号
[3]ホスト名を入力する。
[4]ポート番号を入力する。
[5]ユーザ名を入力する。
[6]パスワードを入力する

3.”保存ボタン”をクリックして、セッション名の保存 を入力する。

自分が解りやすい名前に設定する。また、パスワードを保存をする場合は、”パスワードを保存(推奨されません)” にチェックを入れる。そして、保存をする。

これで設定が完了です。
ログインを確認をしてみて、接続ができれば完了です。

記事を読む   FTP(vsftpd)サー ...

[訂正]FTP(vsftpd)サーバのSSL設定について

FTP, VPS

–【訂正】–
2015/02/10
vsftpdでのSSL設定の内容について変更します。
前回の内容をすべて”打消し”状態にしています。
また、設定内容に追加をしました。
——————————————

 

正規のSSL証明を買ってみました。
お金が無いために、安い証明書を探したところ、ネットオウル株式会社 SSL boxで購入しました。


ラビットSSL 2100円/年 (2013/07/03 現在)

 

–2013/7/4-前回の内容 開始–
自分が証明書の申請したのは、去年です。

FTPサーバでSSL通信が出来るようになったのは・・・購入してから2ヶ月ぐらい経ってからでした。
その当時は、思うよう設定が出来ない・・・理解が出来て無かったと思います。

Web(Apache)サーバの場合は、ラビットSSLは中間証明書が必要でした。
だから・・・FTPサーバにも中間証明書の設定が必要だと思っていたのですが・・・
FTP(vsftpd)サーバの設定では、中間証明書の記述する部分がありませんでした。。。
サイトで色々調べても思うような記事がありませんでした。

ずーと悩んで、2ヶ月ぐらい経ってから・・・
証明書だけ出来るかなぁ~と思ってやってみたところ、SSL通信が出来るようになりました。
–2013/7/4-前回の内容 終了–

 

SSLの通信を行うためには、”サーバ証明書” + “中間証明書” が必要です。
前回の内容では、サーバ証明書だけで設定可能と書いていましたが・・・間違えです。

設定をする場合は、”サーバ証明書” + “中間証明書” を1つのファイルに設定する必要があります。

 

※注意※
サーバ証明書での “SHA1” から “SHA2” ハッシュアルゴリズムの移行してください。。。と、各セキュリティ会社・認証局など方々がサイトなど通じて注意喚起を出しています。
SSLを購入したところでは、再発行の手続きが出来るようになりました。
再発行の手続きについて、各業者さんごと異なります。
十分に気をつけて下さい。

参考文献:さくらのナレッジ – MOONGIFT 中津川 篤司 さん

 

【設定方法】
※———————————注意———————————-※
・サーバOSはcentOSで行っています。なお、ubuntuサーバでも同じ設定で出来ます。
・vsftpdの一般的な設定が出来ていることと、正規の証明書が出来ているという前提で行っています。
※———————————————————————–※

–2015/02/10 追加 開始–
1.”サーバ証明書” + “中間証明書” を1つのファイルに設定する
※サーバに “サーバ証明書”・”中間証明書”の2つのファイルが存在することします。

[user@localhost]# cat tmyinsightnet.crt inter.crt >> tmyinsightnetinter.crt

これで、”サーバ証明書”・”中間証明書” の2つのファイルを1つのファイルにすることができました。

–2015/02/10 追加 終了–

2.vsftpd.confにSSLの設定を記述する

[user@localhost]# sudo vi /etc/vsftpd/vsftpd.conf

ファイル内容

~~~~~~~~~~~~~~~~~~~~~~省略~~~~~~~~~~~~~~~~~~~~~~~~~~
#最後に記述する。
ssl_enable=YES   #FTP over SSLを有効にする。
force_local_data_ssl=NO >※1
force_local_logins_ssl=NO #※2

#----2015/07/04 前回の部分 開始--
#rsa_cert_file=[絶対パス]>/localhost.crt #証明書ファイルの場所を指定する。
#rsa_private_key_file=[絶対パス]/loacalhost.key # 秘密鍵の場所を指定する。
#----2015/07/04 前回の部分 終了--

#----2015/07/04 追加部分 開始--
rsa_cert_file=[絶対パス]>/tmyinsightnetinter.crt
rsa_private_key_file=[絶対パス]/tmyinsightnet.key
#----2015/07/04 追加部分 終了--

ssl_ciphers=HIGH #SSL暗号化接続に使用する暗号スイートする設定
~~~~~~~~~~~~~~~~~~~~~~省略~~~~~~~~~~~~~~~~~~~~~~~~~~

※1 ローカルユーザがデータを送受信する場合に、強制的にSSL接続する設定。
※2 ローカルユーザが接続した場合に、強制的にSSL接続する設定。
※1と※2を2つ”YES”にした方が良いと思います。
自分は、Wordpressをプラグインのインストールするときに、SSL接続を行うとインストールが出来ないので、”NO”にしてあります。

一応、この設定でFTPのSSL接続が出来るようになりました。

【参考文献】
XOOPS Cubeさん – RHEL関連/centOS/パッケージ/vsftpd/FTPS
サーバの実験室 RedHat/Fedora さん
パソコンおやじ さん
脳みそスワップアウトさん – vsftpdでFTPS(FTP over SSL) の設定

記事を読む   [訂正]FTP(vsftpd ...

PAGE TOP