記事のソフトウェアファイアウォールのiptables / netfilterの実用的な操作(B)

簡単な紹介

上記のiptablesの基本的な概念はあなたに説明したが、この記事を読んでの基礎を補完するために来てください。この記事では主にファイアウォールの日常業務です。

表ルールビュー

出力コンテンツ解析ルールテーブル

操作テーブルを実行する前に、このセクションのテーブル構造を終えた上で、再びケースを確認してください。

テーブル チェーン
PREROUTING、出力
行方不明 前方PREROUTING、入力、出力、POSTROUTING
NAT PREROUTING、出力、POSTROUTING
フィルタ 入力、前方に、出力

あなたのホストへの通常のアクセスに影響を与えないように、次の操作は、好ましくは、上記の試験機で行われます。

上に示したように、私たちはテーブルを指定するには、-tオプションを使用し、操作し、対応するルールテーブル-tを表示するには、-lオプションを使用する必要があり、-Lは、ルールを示します。3つのコマンド・チェーン、入力、forword、出力の現実は、各鎖は独自のルールを有します。これらのフィールドのプロパティを以下に記載されています。

target: 规则对应的target,往往表示规则对应的动作,即规则匹配成功之后采取的措施;
prot: 表示规则对应的协议,是否针对某些协议应用此规则;
opt: 表示规则对应的选项;
source: 表示规则对应的源头地址,可以是一个ip,也可以是一个网段;
destination: 表示规则对应的目标地址。可以是一个ip,也可以是一个网段;

また、直接、次のコマンドの反対側に他のテーブルのためのルールを表示することができます。

iptables -t raw -L
iptables -t mangle -L
iptables -t nat -L

フィルタテーブルなしのデフォルトのビュー-t iptablesの

一般的なコマンドを使用ビューのテーブルのルール

iptables -t 表名 -L  #查看对应表的所有规则

iptables -t 表名 -L 链名 #查看指定表指定链的规则

iptables -t 表名 -L -v #表示指定表的所有规则,并且更详细输出

iptables -t 表名 -n -L #表示查看表的所有规则,并且在显示规则时,不对规则中的IP或者端口进行名称反解,-n选项表示不解析IP地址。

iptables --line-numbers -t 表名 -L #表示查看表的所有规则,并且显示规则的序号,--line-numbers选项表示显示规则的序号,注意,此选项为长选项,不能与其他短选项合并,不过此选项可以简写为--line,注意,简写后仍然是两条横杠,仍然是长选项。

ベストプラクティス:実際の長さは、多くの場合、短いオプションがマージされます。

iptables --line -t filter -nvxL
iptables --line -t filter -nvxL INPUT

ルールの一般的な手術台

試験機でiptablesの動作のために本明細書に参照場合、

取扱説明書

ルールの追加

iptables -F INPUT  #删除filter表中INPUT链的所有规则
iptables -t filter -I INPUT -s 192.168.56.12 -j DROP #表示丢弃从192.168.56.12来的主机的所有数据; 
iptables -A INPUT -s 192.168.56.12 -j ACCEPT #这个命令并没有指定操作那个表,我们之前强调默认的表是filter表,所以此处操作的也是filter表;-A表示在对应的链INPUT中追加规则,而上一步使用的-I则是插入操作;—I是在首部添加。此时虽然添加了规则允许访问,但是注意顺序,匹配到上个丢弃规则之后就不会往下执行了,所以依然无法访问
iptables -t filter -I INPUT 2 -s 192.168.56.12 -j accept #表示插入到第几行
iptables -t 表名 -P 链名 动作 #设置指定链的默认策略
示例:iptables -t filter -P FORWARD ACCEPT

ルールの削除

ルールを削除するルールを保存する時間がない場合は、慎重に操作してください

iptables -t filter -D INPUT 3 #删除filter表中INPUT链中序号为3的规则
iptables -t filter -D INPUT -s 192.168.1.146 -j DROP # 删除指定表的指定链的指定规则
iptables -t filter -F INPUT  # 删除指定表的指定链的所有规则
iptables -t filter -F  #删除指定表filter中的所有规则

ルールを変更します。

命令语法:iptables -t 表名 -R 链名 规则序号 规则原本的匹配条件 -j 动作
示例:iptables -t filter -R INPUT 3 -s 192.168.1.146 -j ACCEPT

図3は、この一致条件、修飾されたルールを省略した場合、このルールの動作は、元のマッチング条件でこのルールの192.168.1.146を-s、ACCEPT修飾されたフィルタテーブル入力鎖を修飾する上述の例示的物品規則を表します送信元アドレスは0.0.0.0/0になることがあります。

他のルールの変更:最初の数でルールを削除し、元の番号の位置にルールを追加します。

ルールを保存

iptables-save > /etc/sysconfig/iptables
iptables-restore < /etc/sysconfig/iptables

表ルールマッチング動作

一般的なmatch文

説明:パケットの送信元アドレスを一致させるため-s、ソースアドレスは各IPとの間にコンマを使用して、同時に複数指定することができ、
また、ネットワーク・セグメントを指定することができ

iptables -t filter -I INPUT -s 192.168.1.111,192.168.1.118 -j DROP
iptables -t filter -I INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -t filter -I INPUT ! -s 192.168.1.0/24 -j ACCEPT

一度に複数の宛先を指定することができ、パケットの宛先アドレスと一致するために使用される-d、各IPとの間のカンマで区切られ、また、ネットワークセグメントを指定することができます。

#示例如下
iptables -t filter -I OUTPUT -d 192.168.1.111,192.168.1.118 -j DROP
iptables -t filter -I INPUT -d 192.168.1.0/24 -j ACCEPT
iptables -t filter -I INPUT ! -d 192.168.1.0/24 -j ACCEPT

プロトコルタイプを一致させるために使用される、プロトコルタイプは、TCPと一致していることができ、UDP、ICMP、ESP等-p

iptables -t filter -I INPUT -p tcp -s 192.168.1.146 -j ACCEPT
iptables -t filter -I INPUT ! -p udp -s 192.168.1.146 -j ACCEPT

本発明の機械のカードから流れるパケットを照合するための-iは、機械にパケットフローを一致させるための唯一の一致条件ので、出力チェーンにこのオプションを使用して、チェーンをPOSTROUTINGことができません。

iptables -t filter -I INPUT -p icmp -i eth4 -j DROP
iptables -t filter -I INPUT -p icmp ! -i eth4 -j DROP

あなたが入力チェーンとPOSTROUTINGチェーンではこのオプションを使用することはできませんので、マシンのうち、ネットワークカードからのパケットを一致させるために使用-o。

iptables -t filter -I OUTPUT -p icmp -o eth4 -j DROP
iptables -t filter -I OUTPUT -p icmp ! -o eth4 -j DROP

拡張一致する文

TCP拡張モジュール

ソースポート-pマッチングのTCP -mのTCP --sport TCPパケット、コロンが連続ポートの範囲を指定するために使用することができる
宛先ポートプロトコルを一致させるため-p TCPの-mのTCP --dport TCPを、コロンを使用することができますポートの連続した範囲に一致

iptables -t filter -I OUTPUT -d 192.168.1.146 -p tcp -m tcp --sport 22 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport 22:25 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport :22 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport 80: -j REJECT
iptables -t filter -I OUTPUT -d 192.168.1.146 -p tcp -m tcp ! --sport 22 -j ACCEPT

マルチポート拡張モジュール

マルチ
次のように一般的な構文は次のとおりです。
-p -mマルチパケット・マッチングのためのTCP送信元ポートがカンマで区切られた、不連続なポート番号を指定することができ--sports
一致するパケットのために-p UDP -mマルチ--dports宛先ポートには、カンマで区切られ、個別の宛先ポート番号を指定することができます

iptables -t filter -I OUTPUT -d 192.168.1.146 -p udp -m multiport --sports 137,138 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport --dports 22,80 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport ! --dports 22,80 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport --dports 80:88 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport --dports 22,80:88 -j REJECT

一般的な拡張モジュール

iprange

iprangeは、指定されたアドレスの連続範囲に使用される、
膨張整合条件は、以下のものが含まれる
--src-範囲:継続を指定するソースアドレスの範囲
のアドレスが連続した範囲を指定されたターゲット:--dst範囲

#示例
iptables -t filter -I INPUT -m iprange --src-range 192.168.1.127-192.168.1.146 -j DROP
iptables -t filter -I OUTPUT -m iprange --dst-range 192.168.1.127-192.168.1.146 -j DROP
iptables -t filter -I INPUT -m iprange ! --src-range 192.168.1.127-192.168.1.146 -j DROP

stringモジュール

使用文字列拡張モジュールのメッセージは、対応する文字列がアコードの条件に一致する含まれている場合、あなたは、一致する文字列を指定することができます。
--algo:対応するマッチングアルゴリズムを指定し、アルゴリズムはBM \ KMPに使用することができ、これが必要です
--stringは:一致する文字列を指定します。

#示例
iptables -t filter -I INPUT -p tcp --sport 80 -m string --algo bm --string "OOXX" -j REJECT
iptables -t filter -I INPUT -p tcp --sport 80 -m string --algo bm --string "OOXX" -j REJECT

時間モジュール

時間が指定された時間枠内テキストメッセージを到着した場合、練習期間に基づいてパケットを一致させるには、その後、条件に一致します。
--timestart:時間範囲の開始時間を指定するために使用される、望ましくない抗
--timestop:指定した時間範囲の終了時間、望ましくない抗
--weekdays:「週」を指定するために使用される、それは望ましい抗ある
--monthdays: 「いくつかの番号」、好ましくは抗指定
開始日の日付の範囲を指定して、望ましくない抗:--datestart
--datestop:指定した日付範囲の終了時間、望ましくないトランスを

#示例
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --timestart 09:00:00 --timestop 19:00:00 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 443 -m time --timestart 09:00:00 --timestop 19:00:00 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --weekdays 6,7 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --monthdays 22,23 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time ! --monthdays 22,23 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --timestart 09:00:00 --timestop 18:00:00 --weekdays 6,7 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --weekdays 5 --monthdays 22,23,24,25,26,27,28 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --datestart 2017-12-24 --datestop 2017-12-27 -j REJECT

connlimitモジュール

このモジュールは、同時にそれぞれのIPアドレスの制限は、サーバ側へのリンクの数をリンクします。IPを使用する必要はありません、IP制限のデフォルトは、各クライアントのために行うことです注意してください。それは、同時リンク数の単一IP制限です。

#示例
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 2 -j REJECT
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 20 --connlimit-mask 24 -j REJECT
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 10 --connlimit-mask 27 -j REJECT

制限モジュール

制限制限パケット到着レートのメインモジュール
--limit-バースト:

#示例 #注意,如下两条规则需配合使用,
iptables -t filter -I INPUT -p icmp -m limit --limit-burst 3 --limit 10/minute -j ACCEPT
iptables -t filter -A INPUT -p icmp -j REJECT

TCPのflage

#示例
iptables -t filter -I INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN -j REJECT
iptables -t filter -I OUTPUT -p tcp -m tcp --sport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN,ACK -j REJECT
iptables -t filter -I INPUT -p tcp -m tcp --dport 22 --tcp-flags ALL SYN -j REJECT
iptables -t filter -I OUTPUT -p tcp -m tcp --sport 22 --tcp-flags ALL SYN,ACK -j REJECT

おすすめ

転載: www.cnblogs.com/chenxiba/p/11334697.html