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

FTPS(Vsftpd over SSL/TLS)            2016年11月




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

●vsftpd用の自己署名証明書の作成
# cd /etc/pki/tls/certs
Makefileの編集  有効期限が365日に設定されているので、-days 365を3650(10年)等に変更しておく。3カ所ある。
# 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

●/etc/hosts.allow  (できるかぎり制限をかける)
vsftpd: .example.jp .example.com ***.***.

●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)へ

目 次

特別企画
Raspberry Piで遊ぶ

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

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

CentOS5〜6
ネットワーク&ファイアウォール(iptables)
DNS(BIND)サーバー
DHCPサーバー
メールサーバー(基本)
メールサーバー/実際の運用
Webサーバー
  WebDAVによるファイル共有
  Webでファイルのやり取り
  アクセス解析ツールawstats
  namazuで全文検索
  WordPressブログサイト構築
  EC-CUBEショッピングサイト構築
FTPサーバー
ファイルサーバー・Samba
データベースpostgreSQL
  ExcelからpostgreSQLを操作
データベースMySQL
SSHサーバー
VNC
SSL/TLSを利用した暗号化通信
openVPN
ストリーミングサーバー
    C++ RTMP Server
    Helix server Basic
ドメインの追加
Xen・仮想化
特定ディレクトリに容量制限

SELinux
SELinux基本設定
新しいタイプとポリシー・モジュールを作成してみる
マクロを利用したteファイルの記述
新しいドメインを導入してみる

coLinux
Fedora11で試す

Cプログラミング目次
X11プログラム
サイエンス・プログラム

計測・プログラム
秋月電子のデーターロガーpico ADC-16
「今すぐ使えるパソコン計測USBマイコン基板」に付属のTRZ1102
センサーの使用例

Glade2/GTK+を使ってみる
テキスト・ビューで簡易エディター
ドローイングエリアで自動描画
放物線運動(pango、cairoも試してみる)
これらを、GTK+のみで書き出す

フォントについて
ネットワーク・プログラミング
postgreSQL接続
CGI
ファイル操作

●その他
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く