ページ 11

iptables on 64bit

投稿記事Posted: 2015/9/21(月) 21:08
by yusk
64bitクロスコンパイラが作れたので
カーネルモジュールを作ってみました。
別ポストのx86_64 gccを参照ください。

0.インストール
/opt/bin,/opt/cross/binをパスの先頭にする

1.qnapのサイトよりGPLソースを落としてくる

2.cp kernel_cfg/TS-X53/linux-3.12.6-x86_64-hal.cfgを src/linux-3.12.6/.configにコピー

3.vi .configでNETFILETRあたりを編集して、好きなモジュールは"=m"にする

4.
ln -s /opt/lib/libncurses.so /lib/libncurses.so
ln -s /opt/lib/libncurses.so.5 /lib/libncurses.so.5
ln -s /opt/lib/libncurses.so.5.7 /lib/libncurses.so.5.7
ln -s /opt/lib/libncursesw.so /lib/libncursesw.so
ln -s /opt/lib/libncursesw.so.5 /lib/libncursesw.so.5
ln -s /opt/lib/libncursesw.so.7 /lib/libncursesw.so.7

5.make oldconfig <途中で質問が出るが、基本的にENTERキーでOK>

6.make -j4 CROSS_COMPILE=x86_64-unknown-linux-gnu- modules
<カーネルモジュールのみ>

7.net/netfilterの中にカーネルモジュールができている。

8.iptables 1.4.12のコンパイル
netfilter.orgよりダウンロード
./configure --prefix=/opt
make
make install

9.テスト
insmod /lib/modules/others/vpn/iptable_filter.ko
insmod net/netfilter/xt_hashlimit.ko
insmod net/netfilter/xt_LOG.ko
insmod net/ipv4/netfilter/ipt_REJECT.ko

/opt/sbin/iptables -A INPUT -p udp --dport 5060 -m hashlimit --hashlimit-name hash_sip --hashlimit 1/m --hashlimit-burst 50 --hashlimit-mode srcip --hashlimit-htable-expire 600000 -j ACCEPT
/opt/sbin/iptables -A INPUT -p udp --dport 5060 -j LOG
/opt/sbin/iptables -A INPUT -p udp --dport 5060 -j REJECT

#windowsマシンからUDP:5060に大量に送ってみたらちゃんとブロックされた。

/opt/sbin/iptables -A INPUT -p udp --dport 5060 -m hashlimit --hashlimit-name hash_sip --hashlimit 1/m --hashlimit-burst 50 --hashlimit-mode srcip --hashlimit-htable-expire 600000 -j ACCEPT
/opt/sbin/iptables -A INPUT -p udp --dport 5060 -j LOG
/opt/sbin/iptables -A INPUT -p udp --dport 5060 -j REJECT

では。