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


FTPS(Vsftpd over SSL/TLS)            2020年7月




FTPの通信をSSL/TLSで暗号化します。

●vsftpd用の自己署名証明書の作成
 まず、Makefileをコピーしておく。
 # cp /usr/share/doc/openssl/Makefile.certificate /etc/pki/tls/certs/
 コピーしたファイル名をMakefileに変更しておく。
 Makefileの編集  有効期限が365日に設定されているので、最初のところにあるDAYS=3650(10年)等に変更しておく。

 # cd /etc/pki/tls/certs
 # make vsftpd.crt  名称はなんでもよい
  パスフレーズの入力(2回)。秘密鍵を暗号化するために利用される。
  再度、パスフレーズの入力(3回目)。
  証明書の情報を入力。(適当に入力)
   国名
   都道府県名
   市区名
   組織名
   部署名
   サーバーFQDN名
   監理者のメールアドレス
 以上で、サーバーの秘密キー(/etc/pki/tls/certs/vsftpd.key)と証明書(/etc/pki/tls/certs/vsftpd.crt)が作成される。
 秘密キーは/etc/pki/tls/private/に移動しておく。
 # mv /etc/pki/tls/certs/vsftpd.key /etc/pki/tls/private/
 秘密鍵からのパスフレーズの削除
 # cd /etc/pki/tls/private
 # mv vsftpd.key vsftpd.key.org
 # openssl rsa -in vsftpd.key.org -out vsftpd.key   パスフレーズの入力
 # chmod 700 vsftpd.key

●設定ファイル /etc/vsftpd/vsftpd.conf

最終行に追記
rsa_cert_file=/etc/pki/tls/certs/vsftpd.crt
rsa_private_key_file=/etc/pki/tls/private/vsftpd.key
ssl_enable=YES
force_local_data_ssl=YES
    平文でのローカルユーザーのデータ転送を許可しない(クライアントがSSL/TLSに対応してない場合があるときのみ変更)
force_local_logins_ssl=YES
   平文でのローカルユーザーのログインを許可しない(クライアントがSSL/TLSに対応してない場合があるときのみ変更)
allow_anon_ssl=NO
      匿名ログインでのSSL/TLS通信は許可しない

###### 暗号モード      SSL/TLSを使う。sslv2やsslv3は推奨されない。
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

#ssl_ciphers=
       暗号方式。デフォルトではDES-CBC3-SHA。

###### PASVポートを固定(パッシブモードで使うポート)
pasv_enable=YES
#pasv_address=
pasv_min_port=51000
pasv_max_port=51010

listen_port=50021
   安全性を考慮して、標準FTPポート21も変更しておく


●firewalldの設定
 # firewall-cmd --get-services  定義されているサービス一覧
 /usr/lib/firewalld/services/ftp.xmlをみると、これは21ポートなっている。
 これをコピーして、/etc/firewalld/services/に貼り付け編集する。
 <port protocol="tcp" port="50021"/>に変更。
 # firewall-cmd --reload   firewalldのリロード。

 FTPポートとPASVポートを開放
 # firewall-cmd --list-service --zone=external  externalゾーンに、すでに適用されているサービス。
 # firewall-cmd --add-service=ftp --zone=external --permanent
 # firewall-cmd --add-port=51000-51010/tcp --zone=external --permanent
 # firewall-cmd --reload

●vsftpdサービスの再起動
# systemctl restart vsftpd


Windowsクライアント

●Filezillaの場合
サイトマネージャー
 一般
  ホスト ***.***.***.***
  ポート 50021
  プロトコル FTP
  暗号化 明示的なFTP over TLS
  ログオンの種類 通常
  ユーザー ******
  パスワード ********
 転送設定
  転送モード パッシブ


●FFFTPの場合

ホストの設定
 基本
  ホスト名 ***.***.***.***
  ユーザー名 ******
  パスワード ********
 拡張
  PASVモード チェックされていることを確認
  ポート番号 50021に変更
 暗号化
  「暗号化なしで接続を許可する」  チェックをはずす
  FTPS(Explict)にチェック

Explicit (明示的)モード
サーバに接続した後にクライアントがAUTHコマンドを実行して、使用するプロトコル(SSLまたはTLS)のネゴシエーションをおこない、適合したプロトコルでのハンドシェイク完了後に暗号化された通信がおこなわれます。クライアントが使用するプロトコルを選択することが可能です。クライアントがAUTHコマンドを発行しなければ暗号化通信は行われません。

Implicit (暗黙)モード
サーバに接続した直後にSSLまたはTLSによるハンドシェイクがおこなわれます。サーバが使用するプロトコルにクライアントが合わせる必要があります。要するに接続したらすぐにFTPSを使用するモードです。現在ではあまり使用されないようです。


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で解く


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