特定の場所[A](グローバルIPアドレスで判断)からのFTP要求しか受け付けないようになっているFTPサーバ[B]に、別の場所[C]からアクセスする必要ができてきたので*1、[A]にあるサーバ上にFTPプロキシを立てることでなんとかしようとしたのだけれど(Squidをその目的で使用)、なにか検索してみてもいまいちこれ、という設定が見つからない気がする。
探し方が悪いのか、常識過ぎてだれも書かないのか……。
/etc/squid.conf がデフォルトのままではやはり動作しなかったので、次のような箇所を追加変更。
とりあえずは動作しているのだけれど、これが果たして妥当なのかどうか自信が持てない。
FTP over TLS/SSL のための設定
acl SSL_ports port 989 # ftps (ftp protocol, data, over TLS/SSL) acl SSL_ports port 990 # ftps (ftp protocol, control, over TLS/SSL)
と
acl Safe_ports port 989 # ftps data acl Safe_ports port 990 # ftps control
の設定をそれぞれ追加。
とりあえず、これらは後の
# Deny requests to certain unsafe ports http_access deny !Safe_ports
とか
# Deny CONNECT to other than secure SSL ports http_access deny CONNECT !SSL_ports
で効いてくれればいいなと。
ftpsのポート番号間違っていたので修正、っていうか993ってIMAP over SSLじゃないか、なにを思って書いてたんだ…。
パッシブ FTP のための設定
acl FTP_ports port 21 # ftp acl FTP_ports port 1024-65535 # port range for passive ftp
を追加しておいて、
# Deny CONNECT to other than secure SSL ports http_access deny CONNECT !SSL_ports
の直前に、
http_access allow CONNECT FTP_ports
を追加。
パッシブモードのポート範囲の制限はFTPサーバ(上記だと[B])側だよねぇ…
追記
上記は、Squid Web Proxy 3.1.10 の話ね、念のため。
そういえば、これの squid.conf には
acl Safe_ports port 1025-65535 # unregistered ports
ってあるけれど、TCPやUDPにおけるポート番号の一覧 - Wikipediaとかで見ると、
ウェルノウンポート番号
(well known port numbers)0–1023 登録済みポート番号
(registered port numbers)1024-49151 自由に利用できるポート番号
(動的あるいはプライベートポート番号、dynamic/private port numbers)49152-65535
ってなっているね。
手元の
UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI
- 作者: W.リチャードスティーヴンス,W.Richard Stevens,篠田陽一
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 1999/07
- メディア: 単行本
- 購入: 8人 クリック: 151回
- この商品を含むブログ (37件) を見る
*1:ちなみに[B]の設定は変えることができない制限あり。