Amazon Web Services(AWS)のApplication Load Balancerや、リバースプロキシを構成したNginxなどのリバースプロキシ配下のアプリケーションサーバにて、iptablesのみで接続元IPアドレス制限を実現する方法です。
本手順のメリットは、接続元アクセス制御(接続元IPアドレス制限)のために、ApacheやNginxなどのWebサーバ(HTTPd)を立てる必要が無いことです。また、Linuxが標準で提供する(カーネルに内包される)機能を利用するため、デーモン(サーバ)が落ちるような心配をする必要がありません。
デメリットは、セグメント(サブネット)での制限が行えない、行えても前方一致での制限(例:192.168.1. → 192.168.1.0~255)に限られることです。ただし、膨大なIPアドレスを保有していなければ、それほど影響は無いものと思います。
特定のIPアドレスのみ拒否する
# iptables -A INPUT -m string --algo bm --string 'X-Forwarded-For: <拒否したいIPアドレス>' -j DROP
特定のIPアドレスは許可して、それ以外は拒否する
# iptables -A INPUT -m string --algo bm --string 'X-Forwarded-For: <許可したいIPアドレス>' -j ACCEPT # iptables -A INPUT -m string --algo bm --string 'X-Forwarded-For: ' -j DROP