설정하는 동안 fail2ban
상단의 변수는 jail.conf
다음과 같습니다.
mytime=300
.
.
.
[ssh]
bantime=%(mytime)s
또는 다음과 같이 더 복잡한 형태로 사용할 수 있습니다.
action_ = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"].
질문
- 이것들은 어떻게 작동하며, 그들에게 무슨 일이 일어나는가?
- 정확히 무슨 일이 일어났나요
%(...string...)s
?
답변1
포함된 규칙을 살펴보면 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_
여기에서는 다른 변수(예: `%(protocol)s 등 %(banaction)s
) 를 사용하여 생성되는 이라는 일반 작업을 구성하고 있습니다 %(port)s
.
man jail.conf
매뉴얼 페이지 에서 :
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.
Python에서는 %(...string...)s
문자열 형식화 또는 보간 연산자 로 알려져 있습니다. 마지막 s
에는 %(...string...)
전달될 수 있는 모든 Python 객체가 문자열로 변환됨을 지정하는 플래그가 있습니다. 내가 인용한 링크에는 허용되는 모든 플래그가 포함된 테이블이 있습니다.
%
지정자를 시작할 위치와 (...string...)
확장하려는 Python 변수가 있는 위치를 지정합니다 .