squidと ftpと selinux

2009/05/17

Categories: linux

squidを使ってプロクシサーバをたてた。
NATの内側にproxyがある。

http/httpsは問題ないが、LAN内のブラウザ→squid→ftpリソース、だと取得できない。
試しにsquidが動作しているサーバでwgetを使って同じftpリソースを取得してみたがこっちはOK。なので、ネットワーク的にはいけるはず。

PASVになってないのかな?と思ってtsharkでキャプチャしてみると、PASVに対して肯定応答をもらっているのに、その後なぜかPORTを送り、相手のサーバからConnection確立できない、という応答。

今度はstraceで様子を見てみると、PASVを送ったあと相手のサーバに接続しようとしたところでconnectがEACCESでエラーになっている。

どういうこと?と思ったけど「squid ftp selinux」で検索してみると良くある話題のようだ。
selinuxポリシー内で、squidがftp接続に行けるポートを制限しているらしい。

selinuxってこういう制限もするのか。

実のところ、selinuxでブロックされている、ということは後からわかった。
試行錯誤しまくった過程で、iptablesのモジュール(/etc/sysconfig/iptables-configのIPTABLES_MODULES)にip_conntrack_ftp を加えても通るようになった。これはいまだになぜかわかってない・・・。


CentOS:5.3
squid-2.6.STABLE21-3.el5
selinux-policy-2.4.6-203.el5
selinux-policy-targeted-2.4.6-203.el5


>> Home