回答:
含まれているルールを見ると、fail2ban
これらの変数を使用して、よりきれいでよりパラメーター化されたものになっていることがわかります。たとえば、含まれjail.conf
ているものでは、それらを使用して、さまざまな刑務所を定義するときに使用できる一般的なアクションルールを作成しました。
上部にいくつかの基本的な変数があります。
# Destination email address used solely for the interpolations in
# jail.{conf,local,d/*} configuration files.
destemail = root@localhost
# Sender email address used solely for some actions
sender = root@localhost
# Default protocol
protocol = tcp
# Ports to be banned
# Usually should be overridden in a particular jail
port = 0:65535
これらの変数は、他の変数で使用され、いくつかの基本的なアクションを構築します。
# Default banning action (e.g. iptables, iptables-new,
# iptables-multiport, shorewall, etc) It is used to define
# action_* variables. Can be overridden globally or per
# section within jail.local file
banaction = iptables-multiport
# The simplest action to take: ban only
action_ = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
# ban & send an e-mail with whois report to the destemail.
action_mw = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
%(mta)s-whois[name=%(__name__)s, dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"]
彼らはと呼ばれる汎用のアクション、構築していることをここで注意してくださいaction_
などの他の変数、使用して作られている%(banaction)s
、%(port)s
など、 `%(プロトコル)Sを、
man jail.conf
manページから:
Pythonの「文字列補間」メカニズムを使用すると、他の定義が許可され、後で他の定義内で%(name)sとして使用できます。例えば。
baduseragents = IE|wget failregex = useragent=%(baduseragents)s
したがって、%(...)s
これらはPython言語の一部です。それらを検索すると、最終的にPython言語の仕様からこのページ、特に5.6.2というタイトルのセクションが見つかります。文字列フォーマット操作。このページには例があります。
>>> print '%(language)s has %(number)03d quote types.' % \
... {"language": "Python", "number": 2}
Python has 002 quote types.
%(...string...)s
Pythonで文字列フォーマットや補間演算子と呼ばれています。のs
最後は%(...string...)
フラグであり、渡されるPythonオブジェクトが文字列に変換されることを指定します。私が参照したリンクから、すべてのフラグが許可されたテーブルがあります:
%
あなたが指定を開始したい、と指定し(...string...)
、我々がここに拡大しているしたいのか、Pythonの変数です。