通信のながれ
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だとうまくいかなかった。。