IPファイアウォール

CentOS7からファイアウォールサービスがiptablesからFirewalldに変更されました。
Firewalldは内部的に従来の iptablesを使用しているようなのですが、ファイアウォールルール数が増えて7000ぐらいになってからCPU使用率が異常に上がり、さらにはReloadに時間がかかってしまうようになりました。
そこで、旧来のiptablesに戻すことにしました。iptablesもルール数が4000を超えるとスループットが下がるそうですが、20000ルールエントリしてもCPU使用率が上がっていないので結果的ですがシステム全体のスループットが改善されました。

まずはiptablesを利用できるようにします。
# yum -y install iptables-services

基本的なルールを追加します。(詳細はこちら「CentOS 7 でiptables」)
/etc/sysconfig/iptables  IPv4filter
/etc/sysconfig/ip6tables  IPv6filter

さらに特定の国からの通信をDROPするルールを追加しました。
― 世界の国別 IPv4 アドレス割り当てリスト ―を参考にさせて頂きました。(先人に感謝です)

# systemctl stop firewalld
# systemctl start iptables
# systemctl enable iptables
# systemctl disable firewalld

↑先頭