Ubuntu 14.04 LTSに導入されているiptablesが古いので最新版をビルドしてみました。その備忘録です。
Ubuntu 14.04 LTSに導入されているiptablesのバージョンは以下になります。
$ iptables -V iptables v1.4.21
普通に使う分には困ることはないのですが、kernelの新しい機能を活かすにはiptablesも新しくしないといけません。
動作環境
以下のバージョンでの確認手順になります。なお、ビルドしたiptablesを用いた細かい動作確認はしておりませんのであしからず。
Ubuntu Server 14.04.3 LTS
$ lsb_release -drc Description: Ubuntu 14.04.3 LTS Release: 14.04 Codename: trusty
Linux Kernel
$ uname -r 3.19.0-25-generic
ビルド手順
必要なパッケージのインストール
ビルドに必要なツールチェインや依存ライブラリを取ってきます。
$ sudo apt-get install build-essential git dh-autoreconf pkg-config bison flex libmnl-dev
作業ディレクトリ作成
適当なディレクトリを作ってその下で作業することにします。
$ mkdir work $ cd work
libnftnl
パッケージで導入できないライブラリを最新のiptablesでは用いているのでこちらからビルドします。
The netfilter.org “libnftnl” project
$ git clone git://git.netfilter.org/libnftnl $ cd libnftnl $ ./autogen.sh && ./configure $ make $ sudo make install $ sudo ldconfig $ cd ..
ビルドしたライブラリはこんな感じです。
$ ls /usr/local/lib/libnftnl* /usr/local/lib/libnftnl.la /usr/local/lib/libnftnl.so.4 /usr/local/lib/libnftnl.so /usr/local/lib/libnftnl.so.4.0.0
iptables
さて、ようやく本命のiptablesです。
The netfilter.org “iptables” project
$ git clone git://git.netfilter.org/iptables $ cd iptables $ ./autogen.sh && ./configure $ make $ sudo make install $ cd ..
“/usr/local/sbin”配下にインストールされます。デフォルトのiptablesは”/sbin”配下に残っているのでパスを切り替えればどちらも使えます。
$ /usr/local/sbin/iptables -V iptables v1.6.0
nftables
ついでにiptablesの後継、というか{ip,ip6,arp,eb}tablesを統合するらしいnftablesも入れてみましょうか。
The netfilter.org “nftables” project
一部依存ライブラリがあるので追加でパッケージインストールしてビルドします。
$ sudo apt-get install libgmp3-dev libreadline6-dev $ git clone git://git.netfilter.org/nftables $ cd nftables $ ./autogen.sh && ./configure $ make $ sudo make install $ cd ..
“/usr/local/sbin”配下にインストールされます。
$ nft -v nftables v0.5 (Support Edward Snowden)
バージョンは”0.5″。公式サイトでも
It is currently under development.
とあるのでゴリゴリ使うことはないでしょうが、今後はiptablesよりもnftablesのほうの開発を進めていくと思われますのでいつかは使い方を覚えないといけないですね。
バージョン番号の後ろのサポート者はもしかしてあの御方なのでしょうか(よくわかりません)。