[Hlfl-cvs] r178 - trunk/doc
hlfl at hlfl.org
hlfl at hlfl.org
Tue Aug 22 01:05:09 CEST 2006
Author: asl
Date: 2006-08-22 01:05:09 +0200 (Tue, 22 Aug 2006)
New Revision: 178
Added:
trunk/doc/syntax.ja.utf8.txt
Log:
Add hlfl syntax in japanese;
contributed by AirWhite <airwhite at airwhite.net>
Added: trunk/doc/syntax.ja.utf8.txt
===================================================================
--- trunk/doc/syntax.ja.utf8.txt (rev 0)
+++ trunk/doc/syntax.ja.utf8.txt 2006-08-21 23:05:09 UTC (rev 178)
@@ -0,0 +1,290 @@
+HLFL 構文
+-----------------------------------------------------------------------------
+
+hlfl are a list of statements. Each statement have the following syntax :
+hlfl は statement で構成されています。各 statement の構文 :
+
+statement ::= "protocol" ("local") "operator" ("remote") ["on"] [interfaces] keywords
+
+'local' は あなたのネットワーク
+'remote' は 外部のネットワーク
+
+例 :
+
+tcp (192.168.1.1) X (192.168.2.1) [fxp0,xl1]
+
+bsd ipfw 言語での意味 :
+
+ipfw -f add deny tcp from 192.168.1.1 to 192.168.2.1 out via fxp0
+ipfw -f add deny tcp from 192.168.2.1 to 192.168.1.1 in via fxp0
+ipfw -f add deny tcp from 192.168.1.1 to 192.168.2.1 out via xl1
+ipfw -f add deny tcp from 192.168.2.1 to 192.168.1.1 in via xl1
+
+そして この意味を人間の言葉で表現すると :
+
+ 'deny communication between 192.168.1.1 and 192.168.2.1'
+
+all (any) X (any)
+
+意味 :
+
+ipfw -f add deny all from any to any
+
+オペレータのリスト :
+-----------------------------------------------------------------------------
+
+1. 記号オペレータ
+=====================
+
+-> : 送信を許可(accept)
+<- : 受信を許可(accept)
+<-> : 送信と受信を許可(accept)
+<=>> : 送信から確立された(established)送受信を許可(accept)
+<<=> : 受信から確立された(established)送受信を許可(accept)
+X : 送受信の不許可(deny)
+X! : 送受信の拒否(reject)
+X-> : 送信の不許可(deny)
+<-X : 受信の不許可(deny)
+X!-> : 送信の拒否(reject)
+<-X! : 受信の拒否(reject)
+
+Note
+記号 <=>> や <<=> は制御されたUDP通信を構築できますが
+記号 <-> は制御されないUDP通信が構築されます。
+
+2. 記号ではなオペレータ
+=========================
+
+記号オペレータで大量で複雑な規則を書くと読む時に苦痛かもしれないので
+もう1セットのオペレータが定義されました。
+
+それらの構文は :
+
+operator ::= "accept" | "deny" | "reject" ["from" |
+ "to" | "and" | "established" | "log"]
+
+例 :
+
+# 192.168.1.1 から 192.168.2.1 への送信を許可して
+# 192.168.2.1 から 192.168.2.2 への受信を許可(すなわち<->と同じ)
+
+tcp (192.168.1.1) accept (192.168.2.1) on interface0
+
+# 上と同じ意味の別の文は
+
+tcp (192.168.1.1) accept from and to (192.168.2.1) on interface0
+
+
+# Accept outgoing connections from 10.1.1.1 to 10.2.2.2, and
+# log them (the same as "log <=>>")
+#
+
+# 10.1.1.1 から 102.2.2.2 への送受信の許可とログ
+
+tcp (10.1.1.1) accept established to and log (10.2.2.2)
+
+
+
+
+(src) と (dst) のフォーマット
+-------------------------------------------------------------------------
+
+(src) や (dst) は (IPアドレス ポート番号) と表現できる
+
+すなわち :
+(192.168.1.1 1-1024) # 192.168.1.1 の 1~1024番ポート
+(192.168.2.1 21,22,80,49152-65535) # 192.168.2.1 の 21,22,49152~65535番ポート
+
+または :
+(IPアドレス ポート番号 | 他IPアドレス 他ポート番号 | ....)
+
+すなわち :
+
+(192.168.1.1|192.168.1.12|192.168.1.200) # 192.168.1.1 か 192.168.1.12 か 192.168.1.200
+
+
+幾つかの送信元は、幾つかの受信元と結合できる:
+
+tcp (192.168.1.1|192.168.2.1|192.168.3.1) <=> (172.22.0.1|172.22.0.2|172.22.0.3)
+
+意味は :
+ 192.168.1.1 は 172.22.0.1 や 172.22.0.2 と 172.22.0.3 通信できる
+ 192.168.2.1 は 172.22.0.1 や 172.22.0.2 と 172.22.0.3 通信できる
+ 192.168.3.1 は 172.22.0.1 や 172.22.0.2 と 172.22.0.3 通信できる
+
+次のケースだとキーワード 'nomix' を行の最後につけることができる
+
+tcp (192.168.1.1|192.168.2.1|192.168.3.1) <=> (172.22.0.1|172.22.0.2|172.22.0.3) nomix
+意味は :
+
+ 192.168.1.1 は 172.22.0.1 と通信できる
+ 192.168.2.1 は 172.22.0.2 と通信できる
+ 192.168.3.1 は 172.22.0.3 と通信できる
+
+
+tcp (192.168.1.1 80 | 192.168.2.1 21) X (172.22.0.1)
+
+上の文は有効です。
+172.22.0.1 は 192.168.1.1 の 80番 と 192.168.2.1 の 21番 と通信できません。
+
+最後に
+
+tcp ((192.168.1.1|192.168.2.1) 80,21) X (172.22.0.1)
+
+これも有効な文で
+172.22.0.1 は 192.168.1.1 か 192.168.2.1 の 21番,80番 と通信できません。
+
+
+インタフェース フォーマット
+-------------------------------------------------------------------------------
+
+[インタフェース] は
+* 省略できる
+* 1つを指定してもいい
+* または、複数をカンマで区切って並べられる
+
+すなわち:
+tcp (192.168.1.1) X (192.168.1.2)
+意味は 192.168.1.1 と 192.168.1.2 は通信できない。
+
+tcp (192.168.1.1) X (192.168.1.2) [eth0]
+意味は 192.168.1.1 と 192.168.1.2 は eth0 上では通信できない。
+
+tcp (192.168.1.1) <-> (192.168.1.2) [fxp1,fxp2]
+意味は 192.168.1.1 と 192.168.1.2 は fxp1, fxp2 上で通信できる。
+
+tcp (10.0.0.1) <-> (10.254.254.254) on Ethernet0
+意味は 10.0.0.1 と 10.254.254.254 は Ethernet0 上で通信できる。
+
+他の有効な文は :
+
+tcp (10.0.0.1) <-> (10.1.1.1) on [eth1, eth2, eth3]
+tcp (10.0.0.1) <-> (10.1.1.1) on (eth1,eth2,eth3)
+
+
+
+
+ICMP
+-------------------------------------------------------------------------------
+
+icmp の為に使える単語は :
+
+ echo-request
+ echo-reply
+ destination-unreachable
+ time-exceeded
+
+例えば 'ping' を許可する場合は :
+
+icmp (any echo-request) -> (any)
+icmp (any) <- (any echo-reply)
+
+
+
+変数
+-------------------------------------------------------------------------------
+
+'define'というキーワードを使って、規則をより読み易いように変数を定義できます。
+
+ define 単語 値
+
+すなわち :
+
+define inside 192.168.1.0/24
+define public_ports 1024-65535
+
+と定義しておいて、次のように使えます。
+
+(inside public_ports) <=>> (any)
+
+
+Include
+------------------------------------------------------------------------------
+
+'include' を使って他の定義を読み込めます。
+
+例えば :
+
+ファイル「def.hlfl」の中 :
+
+define ftp 21
+define ssh 22
+define telnet 23
+
+
+ファイル「rules.hlfl」の中 :
+
+include def.hlfl
+
+tcp (any ssh) <<=> (any)
+
+
+
+コメント
+-------------------------------------------------------------------------------
+
+hlfl は、3種類のコメントを扱うことができます。
+
+- '%'で始まるコメントは変換されたファイルには出力されません。
+
+ 例えば :
+
+ %
+ % This rules are written in hlfl
+ %
+
+ tcp (any) -> (any)
+
+ 変化された ipchains フォーマットでは :
+
+ ipchains -A output -s 0/0 -d 0/0 -j ACCEPT
+
+- '#'で始まるコメントは変換されたファイルにも含まれます。但し、cisco 形式では出ない。
+
+ 例えば :
+
+ %
+ % This rules are written in hlfl
+ %
+
+ # allow all the outgoing tcp
+ tcp (any) -> (any)
+
+ 変換後は :
+
+ # allow all the outgoing tcp
+ ipchains -A output -s 0/0 -d 0/0 -j ACCEPT
+
+- '!'で始まるコメントは変換されたファイルにも出力されますが
+ 先頭の'!'が除かれた状態で出力されます。
+ これは、コマンドを指定するときに使えます。
+
+ !ipchains -A forward -s 0/0 -d 0/0 -i eth0 -j ACCEPT
+ tcp (any) -> (any)
+
+ これを変換すると :
+
+ ipchains -A forward -s 0/0 -d 0/0 -i eth0 -j ACCEPT
+ ipchains -A output -s 0/0 -d 0/0 -j ACCEPT
+
+ Note: もし ipfw 形式で出力すると次のようになってしまう。
+
+ ipchains -A forward -s 0/0 -d 0/0 -i eth0 -j ACCEPT
+ ipfw add allow tcp from any to any out
+
+
+ 次のようにコンディションを聞くことができるでしょう :
+
+ ! if(ipchains) $ipchains -A forward -s 0/0 -d 0/0 -j eth0 -j ACCEPT
+
+ このケースでは ipchains で出力を得られるでしょう。
+ 'else'文も使えて有効です。
+
+ ! if(ipchains) $ipchains -A forward -s 0/0 -d 0/0 -i eth0 -j MASQ
+ ! else echo "MASQUERADING NOT IMPLEMENTED" ; exit
+
+
+実際のサンプル
+-------------------------------------------------------------------------------
+
+ファイル sample_1.hlfl と sample_2.hlfl 参考にしてみてください。
More information about the Hlfl-cvs
mailing list