ipitables ファイアウォールの概要、ルールやクリーンアップ ルールの表示方法などは以前の記事で説明しましたが、今回はファイアウォール ルールの作成方法をデモンストレーションします。仕事では主にフィルタチェーンのルールを策定するため、ここでは主にフィトラーチェーンをデモンストレーションに使用します。
準備作業
ルールを作成する前に、まず firewalld サービスを終了し、iptables サービスを有効にしてから、既存のルールをクリアします。
# systemctl stop firewalld # systemctl start iptables # iptables -F # iptables -X # iptables -Z
新しいルール チェーンの追加
ルール チェーンを iptables に追加するには、多くのオプションがあります。以下に基本的な使用法を見てみましょう。
iptables [-t tables] -A|I 链名 [-i|o 网络接口] [-m state] [--state 数据包状态] \ > [-p 网络协议] [-s 源地址 --sport 端口范围] [-d 目标地址 --dport 端口范围] \ > -j [ACCEPT|DROP|REJECT]
オプションとパラメータ:
-A|I チェーン名 A は既存のルールの後にルールを追加することを意味し、I はルールを先頭に挿入することを意味します
-i|o ネットワーク インターフェイス i は、データ パケットが入るネットワーク インターフェイスを表し、INPUT チェーンまたは PREROUTING チェーンと組み合わせて使用する必要があります。o は、データ パケットが通過するインターフェイスを表します。データ パケットは送信され、OUTPUT チェーンと組み合わせて使用する必要があります
-p ネットワーク プロトコル 一般的なものには、tcp、upd、icmp、および all
IP、ネットワーク、およびネットワーク カード インターフェイスのルールの定式化
以下に、いくつかのルール チェーンの例を示します。が与えられます。 192.168.1.110 から送信されるデータを許可し、192.168.1.111 から送信されるデータを拒否します。# iptables -A INPUT -s 192.168.1.110 -j ACCEPT # iptables -I INPUT -s 192.168.1.111 -j DROP # iptables -vnL Chain INPUT (policy ACCEPT 33 packets, 3048 bytes) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 192.168.1.111 0.0.0.0/0 0 0 ACCEPT all -- * * 192.168.1.110 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 18 packets, 1844 bytes) pkts bytes target prot opt in out source destination192.168.1.0/24 ネットワーク アドレス アクセスを許可する
# iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT # iptables -vnL Chain INPUT (policy ACCEPT 29 packets, 2328 bytes) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 192.168.1.111 0.0.0.0/0 0 0 ACCEPT all -- * * 192.168.1.110 0.0.0.0/0 0 0 ACCEPT all -- * * 192.168.1.0/24 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 15 packets, 1460 bytes) pkts bytes target prot opt in out source destination192.168.1.111 のデータ パケットが受け入れられるか拒否されるかという質問について考えてください。 INPUT の最初のルールから判断すると拒否されますが、最後のルールから判断すると受け入れられます。いずれかのルールが満たされると、次のルールは従わなくなるため、ルールチェーンの順序も非常に重要です。 #引き続きケースを見てください。ローカル ループバック アドレス lo である限り、許可されます
# iptables -A INPUT -i lo -j ACCEPT
ポートのルール
は、「ポート 21 のすべてのローカル データ パケットをブロックする」# iptables -A INPUT -i eth0 -p tcp --dport 21 -j DROPを入力します。1024 ~ 65534 の間のすべてのポートを開きます。ポート番号: ポート番号を使用して、連続したポート番号を表すことができます
# iptables -A INPUT -i eth0 -p tcp --dport 1024:65534 -j ACCEPT次の 2 つの包括的なルールを見てください。このマシンの 3306 ポートは、ネットワーク 192.168.1.0/24 に対して開かれていません。 ローカル ssh サービスは、ネットワーク 192.168.1.0/24 の 1024:65535 ポートからのデータ パケットを受け入れません
# iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --dport 3306 -j DROP # iptables -A INPUT -i etc0 -p tcp -s 192.168.1.0/24 \ > --sport 1024:65535 --dport 22 -j DROP
データ パケットの接続ステータスに関するルール
データ パケットの一般的なステータスには、INVALID (無効なデータ パケット)、ESTABLISHED (正常に接続されたステータス)、NEW (新しく確立されたデータ パケット)、RELATED (新しい接続と既存の接続に関連付けられたもの) が含まれます。繋がり)。 ESTABLISHED および RELATED ステータスのすべてのデータ パケットを受け入れ、INVALID ステータスのすべてのデータ パケットを破棄します# iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # iptables -A INPUT -m state --state INVALID -j DROP
ルール チェーンを削除します
ルール チェーンの削除は、-A を -D に置き換えることができる点を除いて、ルール チェーンの追加と基本的に同じです。いくつかのルールをまとめて削除しましょう。# iptables-save # Generated by iptables-save v1.4.21 on Sun Nov 15 22:36:41 2020 *filter :INPUT ACCEPT [4:1920] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [16:1380] -A INPUT -s 192.168.1.111/32 -j DROP -A INPUT -s 192.168.1.110/32 -j ACCEPT -A INPUT -s 192.168.1.0/24 -j ACCEPT …… # iptables -t filter -D INPUT -s 192.168.1.111/32 -j DROP # iptables -D INPUT -s 192.168.1.110/32 -j ACCEPT
注: iptables の上記の設定はメモリにのみ保存され、サービスの再起動後にシステムが再起動されると、これらの設定は消えます。したがって、外部から自分自身をブロックしない限り、それを実践してください。
ルールを保存したい場合は、/usr/libexec/iptables/iptables.init save と入力して保存してください。 。 関連する推奨事項: 「Linux ビデオ チュートリアル 」
以上がLinux でのソフトウェア ファイアウォール iptables - ルールの定義と削除の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。