Linux カーネルのネットワーク パケット処理サブシステムは Netfilter と呼ばれ、iptables はそれを構成するために使用されるコマンドです。最近まで、単純な iptables がすべての Linux ディストリビューションのデフォルトのファイアウォール マネージャーでした。それはまだほとんどのディストリビューションにありますが、Red Hat Enterprise Linux 7 とそのすべての派生製品は、iptables ルールを設定するための使いやすいフロントエンドとして新しい firewalld を使用するようになりました。 Ubuntu には Uncomplicated Firewall (ufw) が付属しており、これも iptables の使いやすいフロントエンドです。 iptables は、それぞれ独自の目的を持つ 5 つのルール テーブルで構成されています。
- テーブルをフィルタ :サーバーとクライアントの基本的な保護のために、これが使用する唯一のテーブルである可能性があります。
- ネットワーク アドレス変換 (NAT) テーブル :NAT は、パブリック インターネットをプライベート ネットワークに接続するために使用されます。
- マングル テーブル :これは、ネットワーク パケットがファイアウォールを通過する際に変更するために使用されます。
- 未加工のテーブル :これは、接続追跡を必要としないパケット用です。
- セキュリティ テーブル :セキュリティ テーブルは、SELinux がインストールされているシステムでのみ使用されます。
サンプルの iptables コマンドは次のとおりです:
# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.3:8080
ここで、
- -t nat :nat テーブルで操作します…
- -PREROUTING :… PREROUTING チェーンに次のルールを追加します。
- -i eth1 :eth1 ネットワーク インターフェースに着信するパケットを照合します…
- -p tcp :… tcp (TCP/IP) プロトコルを使用するもの
- –ポート 80 :…ローカル ポート 80 を対象としています。
- -j DNAT :DNATターゲットにジャンプ…
- –宛先 192.168.1.3:8080 :…宛先アドレスを 192.168.1.3 に、宛先ポートを 8080 に変更します。
iptables コマンドの実行中に以下のエラーが発生した場合:
iptables: command not found
選択したディストリビューションに従って、以下に示すように iptables パッケージをインストールしてみてください。
分布 | コマンド |
---|---|
Debian | apt-get install iptables |
Ubuntu | apt-get install iptables |
アルパイン | apk add iptables |
Arch Linux | pacman -Siptables |
カリ Linux | apt-get install iptables |
CentOS | yum install iptables |
Fedora | dnf インストール iptables |
Raspbian | apt-get install iptables |