1
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

HaproxyでFTPをプロキシさせる方法

通信のながれ

Traffic -> Firewall -> Haproxy -> virtual machine(localIPのみ)

Haproxyはグローバルのvlanをきり、仮想マシンはローカルのみのvlanをきっている
これにより、仮想マシンには、踏み台経由からかWeb経由からのアクセスしかできなくなる。
※踏み台経由だと接続元制限をしているため、セキュリティを担保している。

経緯

仮想マシンにFTPでファイルをアップロードしたいとの要望があり、FTP通信は必ずHaproxy経由で仮想マシンにアクセスする必要があるため、
検証した。

環境

・Haproxy
CentOS 7
Haproxy version 1.5.4

・virtual machine
CentOS 6.7
vsftpd version 2.2.2

設定

Haproxy

frontend web01-ftp
 mode tcp
 bind [HaproxyサーバのIP]:50021
 default_backend web01-ftp

frontend web01-ftpdata
 mode tcp
 bind [HaproxyサーバのIP]:50022-50029
 default_backend web01-ftpdata

backend web01-ftp
  server web01 [FTPアップロード対象サーバ] check port 50021 inter 10s rise 1 fall 2
backend web01-ftpdata
  server web01 [FTPアップロード対象サーバ] check port 50021 inter 10s rise 1 fall 2

FTPサーバ(vsftpdの場合)

以下の設定を追加

listen_port=50021
pasv_address=[haproxyサーバのIP]
pasv_min_port=50022
pasv_max_port=50029
pasv_enable=YES
port_enable=YES
port_promiscuous=NO

この環境は1本足構成のため、全ての通信はFirewallを通り、制御している。
そのため、この作業のあと、Firewallで通信許可をして、完了。
L7の設定とL4の設定を共存させてみたが、デフォルト設定がL7だとうまくいかなかった。。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
1
Help us understand the problem. What are the problem?