Menu Close

Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.15.3. リッチルールのコマンドオプションについて

family
ルールファミリーに ipv4 または ipv6 が指定されている場合、それぞれ IPv4 または IPv6 にルールを限定します。ルールファミリーを指定しない場合、IPv4IPv6 の 両方にルールが追加されます。ルールで送信元アドレスまたは宛先アドレスが使用されている場合は、ルールファミリーを提供する必要があります。これは、ポートフォワーディングにも当てはまります。

ソースアドレスおよび宛先のアドレス

source
送信元アドレスを指定することにより、接続試行の発信元を送信元アドレスに制限できます。送信元アドレスまたはアドレス範囲は、IPv4 または IPv6 のマスクを使用した IP アドレスまたはネットワーク IP アドレスのいずれかです。 IPv4 の場合、マスクはネットワークマスクか普通の数字になります。IPv6 のマスクは単純な番号になります。ホスト名の使用はサポートされていません。NOT キーワードを追加することで、source address コマンドの意味を反転させることができます。指定されたアドレス以外はすべて一致します。
ルールに family が指定されていない場合は、IPv4 および IPv6 に MAC アドレスと hash:mac タイプの IP セットを追加できます。他の IP セットは、ルールの family 設定と一致する必要があります。
destination
宛先アドレスを指定することにより、ターゲットを宛先アドレスに限定することができます。宛先アドレスは、IP アドレスまたはアドレス範囲の送信元アドレスと同じ構文を使用します。送信元アドレスと宛先アドレスの使用はオプションであり、すべての要素で宛先アドレスを使用できるわけではありません。これは、たとえば、サービスエントリーでの宛先アドレスの使用によって異なります。destinationaction を組み合わせることができます。

要素

要素の種類は、serviceportprotocolmasqueradeicmp-blockforward-portsource-portの中から1つだけを指定します。
service
service 要素は、firewalld が提供するサービスの 1 つです。定義済みサービスの一覧を取得するには、次のコマンドを入力します。
~]$ firewall-cmd --get-services
サービスが宛先アドレスを提供する場合、ルール内の宛先アドレスと競合し、エラーが発生します。内部で宛先アドレスを使用するサービスは、ほとんどがマルチキャストを使用するサービスである。コマンドの形式は、
service name=service_name
になります。
port
port 要素は、単一のポート番号またはポート範囲 (たとえば 5060-5062) のいずれかで、その後に、tcp または udp としてのプロトコルを続けることができます。コマンドの形式は、
port port=number_or_range protocol=protocol
になります。
protocol
protocol 値は、プロトコル ID 番号またはプロトコル名のいずれかになります。許可された protocol エントリーについては、/etc/protocols を参照してください。コマンドの形式は、
protocol value=protocol_name_or_ID
になります。
icmp-block
1 つ以上の ICMP タイプをブロックするには、このコマンドを使用します。ICMPタイプは、firewalldがサポートするICMPタイプの1つです。サポートされている ICMP タイプの一覧を取得するには、次のコマンドを入力します。
~]$ firewall-cmd --get-icmptypes
ここではアクションの特定はできません。icmp-block は、アクション reject を内部的に使用します。コマンドの形式は、
icmp-block name=icmptype_name
になります。
masquerade
ルール内の IP マスカレードを有効にします。マスカレードをこのエリアに限定するために送信元アドレスを指定できますが、宛先アドレスは指定できません。ここではアクションの特定はできません。
forward-port
プロトコルが tcp または udp として指定されているローカルポートから、ローカルの別のポート、別のマシン、または別のマシンの別のポートにパケットを転送します。portto-port は、単一のポート番号またはポート範囲のいずれかになります。宛先アドレスは、単純な IP アドレスです。ここではアクションの特定はできません。forward-port コマンドは、内部でaccept というアクションを使用します。コマンドは以下の形式になります。
forward-port port=number_or_range protocol=protocol /
            to-port=number_or_range to-addr=address
source-port
パケットのソースポート、つまり接続を試みる際の発信元で使用されるポートに一致します。現在のマシンのポートに一致させるには、port 要素を使用します。source-port 要素は、単一のポート番号またはポート範囲 (たとえば 5060-5062) のいずれかで、その後に、tcp または udp としてのプロトコルを続けることができます。コマンドは以下の形式になります。
source-port port=number_or_range protocol=protocol

ロギング

log
カーネルロギングを使用して、ルールへの新しい接続試行を syslog などに記録します。ログメッセージに接頭辞として追加される接頭辞テキストを定義できます。ログレベルは、emergalertcriterrorwarningnoticeinfo、または debug のいずれかになります。ログの使用はオプションです。ロギングを
log [prefix=prefix text] [level=log level] limit value=rate/duration
のように制限することが可能です。レートは自然な正の数 [1, ..] で、期間は smhd です。s は秒、m は分、h は時間、d は日数を意味します。最大制限値は 1/d で、これは 1 日に最大 1 つのログエントリーを意味します。
audit
監査は、サービス auditd に送られる監査記録を使ってログに記録する別の方法を提供します。監査タイプは ACCEPTREJECTDROP のいずれかですが、ルールアクションから自動的に監査タイプが収集されるため、コマンド audit 後に指定されません。監査には独自のパラメーターはありませんが、オプションで制限を追加できます。監査の使用はオプションになります。

アクション

accept|reject|drop|mark
アクションは、acceptrejectdrop、または mark のいずれかになります。ルールは、要素またはソースのみを含むことができます。ルールに要素が含まれる場合、その要素に一致する新しい接続は、アクションで処理されます。ルールにソースが含まれている場合、送信元アドレスからのすべてが、指定されたアクションで処理されます。
accept | reject [type=reject type] | drop | mark set="mark[/mask]"
accept を指定すると、すべての新しい接続試行が許可されます。reject を指定すると、それらは拒否され、そのソースには拒否メッセージが表示されます。拒否タイプは、他の値を使用するように設定することができます。drop を指定すると、すべてのパケットが直ちにドロップされ、ソースには何も情報が送られません。mark を指定すると、すべてのパケットは、指定された mark とオプションの mask でマークされます。