ホームページ  >  記事  >  運用・保守  >  Linux でのソフトウェア ファイアウォール iptables - ルールの定義と削除

Linux でのソフトウェア ファイアウォール iptables - ルールの定義と削除

齐天大圣
齐天大圣オリジナル
2020-11-18 15:22:531992ブラウズ

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

  • # が含まれます
  • ##-m state データパケットのステータス

  • --state パケットステータス 一般​​的なステータスには、INVALID (無効なパケット)、ESTABLISHED (正常に接続されたステータス)、NEW (新しく接続されたステータス) が含まれます。確立されたパケット)、RELATED (既存の接続に関連付けられた新しい接続)

  • -s 送信元アドレス アドレスは、192.168.1.110 やネットワーク アドレス 192.168.1.0/24 などの IP アドレスです。

  • -d 宛先アドレス

  • -j の後には操作が続きます。一般的な操作は ACCEPT (受け入れる)、DROP (ドロップ)、REJECT (拒否)

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               destination

192.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               destination

192.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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。