カスタマーポータルからサーバーをオーダする時に、無料のファイアウォールとして APF Software Firewall for Linux を選択できるんだけど、本当に使えるのか? というエンジニアとしての素朴な疑問に、素直に調べてみた。
Ubuntu 14.04
起動しようとすると、次のメッセージが表示されて起動できない。
root@generic:/etc/apf# apf -s
apf(7218): {glob} activating firewall
apf(7258): {glob} kernel version not equal to 2.4.x or 2.6.x, aborting.
apf(7218): {glob} firewall initalized
この原因は、カーネルのバージョンがミスマッチなんだね。 プロビジョニングされる APF 2.4系と2.6系にしか対応してない様だ。 以下の様にUbuntu14.04のカーネルは 3.13 となっているので動かない。
root@generic:~# uname -a
Linux generic 3.13.0-55-generic #94-Ubuntu SMP Thu Jun 18 00:27:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
このAPFは、[R-fx Networks] (https://www.rfxn.com/) が開発とメンテを行なっていて、このサイトにある最新版のCHANGELOGには、カーネル3.xに対応とあるので、このサイトからダウンロードして使えそうだ。
Ununtu 12.04
Debian系は、新しいものを積極的に取込むから、カーネルのバージョンも既に3.x系なので、同じ理由で動作しない。
root@ubuntu12:~# uname -a
Linux ubuntu12 3.2.0-86-virtual #124-Ubuntu SMP Wed Jun 17 21:58:13 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
試すまでも無いけど、下記のとおりでした。
root@ubuntu12:~# apf -s
apf(1189): {glob} activating firewall
apf(1229): {glob} kernel version not equal to 2.4.x or 2.6.x, aborting.
apf(1189): {glob} firewall initalized
root@ubuntu12:~#
CentOS7
これも同じ問題で動かないね。
[root@centos7 ~]# uname -a
Linux centos7 3.10.0-229.7.2.el7.x86_64 #1 SMP Tue Jun 23 22:06:11 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
試してみるとそれ以前の問題も含まれている。やってみなきゃわからない!
[root@centos7 ~]# apf -s
/etc/apf/internals/internals.conf: 行 29: /sbin/ifconfig: そのようなファイルやディレクトリはありません
apf(2368): {glob} activating firewall
/etc/apf/internals/internals.conf: 行 29: /sbin/ifconfig: そのようなファイルやディレクトリはありません
/etc/apf/internals/internals.conf: 行 29: /sbin/ifconfig: そのようなファイルやディレクトリはありません
apf(2408): {glob} kernel version not equal to 2.4.x or 2.6.x, aborting.
apf(2368): {glob} firewall initalized
CentOS6
これは対応してると思うけど、どうかな? やっぱり動作した!
[root@centos6 ~]# apf -s
apf(2583): {glob} activating firewall
カーネルも今やレガシーな2.6系なので問題ないって事ですね。
[root@centos6 ~]# uname -a
Linux centos6.softlayer.com 2.6.32-504.23.4.el6.x86_64 #1 SMP Tue Jun 9 20:57:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
対策は?
Ubuntu や Debian 系には、 ufw という iptables の非常に優れたフロントエンドのソフトがあり、リポジトリにも含まれ保守もされているので、ufw を利用すれば良い。 CentOS7の対策が無いので、これを何とかしないといけない。 そこで、APFの最新版をダウンロードして、動作するか確認してみる。
[root@centos7 ~]# wget http://www.rfxn.com/downloads/apf-current.tar.gz
初期状態では ifconfig が入っていないから、追加しておく。
[root@centos7 apf-9.7-2]# yum install net-tools
tar ファイルを展開して、その中にあるREADMEに従ってインストールする。
[root@centos7 apf-9.7-2]# ./install.sh
動作確認すると、無事起動!
[root@centos7 apf-9.7-2]# apf -s
apf(25347): {glob} activating firewall
Ubuntu でも動作するか?
ダウンロードして、インストール・スクリプトを実行するだけで、すんなり入った。
root@ubuntu14:~/apf-9.7-2# ./install.sh
Installing APF 9.7-2: Completed.
Installation Details:
Install path: /etc/apf/
Config path: /etc/apf/conf.apf
Executable path: /usr/local/sbin/apf
起動も問題ない。
root@ubuntu14:~/apf-9.7-2# apf -s
apf(6584): {glob} activating firewall
まとめ
APFを最新版をダウンロードしたら、ちゃんと動くじゃないの、まいったなこりゃ!?
SoftLayerは、もともとベンチャーなので、技術力ある人だけ使ってというスタンスがあって、片鱗が残ってるね〜